From 910bfd9521e9c6b995b54423ecdac9cc2f57938e Mon Sep 17 00:00:00 2001 From: Anthony Dervish Date: Fri, 28 Feb 2014 22:11:55 +0000 Subject: [PATCH 01/33] Better error messages when running sys load --- FScript.xcodeproj/project.pbxproj | 310 +++++++++--------- .../xcschemes/F-Script 10.8.xcscheme | 4 +- .../xcschemes/F-Script 10.9.xcscheme | 10 +- FScriptFramework/CLIView.h | 31 +- FScriptFramework/CLIView.m | 29 -- FScriptFramework/FSSystem.m | 22 +- 6 files changed, 211 insertions(+), 195 deletions(-) diff --git a/FScript.xcodeproj/project.pbxproj b/FScript.xcodeproj/project.pbxproj index 2f9449e..88620ee 100644 --- a/FScript.xcodeproj/project.pbxproj +++ b/FScript.xcodeproj/project.pbxproj @@ -3228,7 +3228,7 @@ BA223360189FA403002C5B6A /* F-Script.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "F-Script.app"; sourceTree = BUILT_PRODUCTS_DIR; }; BA223520189FA412002C5B6A /* F-Script.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "F-Script.app"; sourceTree = BUILT_PRODUCTS_DIR; }; BA223668189FA429002C5B6A /* FScriptFramework.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = FScriptFramework.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - BA2237B0189FA432002C5B6A /* FScriptFramework.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = FScriptFramework.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + BA2237B0189FA432002C5B6A /* FScript.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = FScript.framework; sourceTree = BUILT_PRODUCTS_DIR; }; E2DBA31C161CA57C0035A675 /* EventKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = EventKit.framework; path = System/Library/Frameworks/EventKit.framework; sourceTree = SDKROOT; }; E2DBA31F161CA5D00035A675 /* Accounts.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accounts.framework; path = System/Library/Frameworks/Accounts.framework; sourceTree = SDKROOT; }; E2DBA321161CA60C0035A675 /* AudioVideoBridging.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioVideoBridging.framework; path = System/Library/Frameworks/AudioVideoBridging.framework; sourceTree = SDKROOT; }; @@ -3690,163 +3690,18 @@ 0CD4E2FB00D7DD4D7BE9C1BD = { isa = PBXGroup; children = ( - BA223095189F9924002C5B6A /* Accelerate.framework */, - E2DBA31F161CA5D00035A675 /* Accounts.framework */, - BA22309F189F9A14002C5B6A /* AddressBook.framework */, - 8FC20ADE0CEE3B2F00D9871F /* AddressBook.framework */, - BA2230A0189F9A14002C5B6A /* AGL.framework */, - BA2230A1189F9A14002C5B6A /* AppKit.framework */, - 8FC20A9F0CEE3AEE00D9871F /* AppKit.framework */, - BA2230A2189F9A14002C5B6A /* AppKitScripting.framework */, - BA2230A3189F9A14002C5B6A /* AppleScriptKit.framework */, - BA2230A4189F9A14002C5B6A /* AppleScriptObjC.framework */, - BA2230A5189F9A14002C5B6A /* AppleShareClientCore.framework */, - BA2230A6189F9A14002C5B6A /* ApplicationServices.framework */, - BA223097189F9958002C5B6A /* AudioToolbox.framework */, - BA2230A7189F9A14002C5B6A /* AudioUnit.framework */, - 8F589B600CE38B3B00C1D756 /* AudioUnit.framework */, - E2DBA321161CA60C0035A675 /* AudioVideoBridging.framework */, - BA2230A8189F9A14002C5B6A /* Automator.framework */, - 8F589B800CE38B7100C1D756 /* Automator.framework */, - E2DBA32D161CA7180035A675 /* AVFoundation.framework */, - BA223099189F9976002C5B6A /* AVKit.framework */, - BA2230B3189F9A2E002C5B6A /* CalendarStore.framework */, - 8F552A780C00A6D4002B6067 /* CalendarStore.framework */, - BA2230B4189F9A2E002C5B6A /* Carbon.framework */, - BA2230B5189F9A2E002C5B6A /* CFNetwork.framework */, - BA2230B6189F9A2E002C5B6A /* Cocoa.framework */, - 8F85274707F6016900E706F5 /* Cocoa.framework */, - BA2230B7189F9A2E002C5B6A /* Collaboration.framework */, - 8FC28E9B0C4A7DDF0071E9CC /* Collaboration.framework */, - BA22309B189F9988002C5B6A /* CoreAudio.framework */, - BA2230B8189F9A2F002C5B6A /* CoreAudioKit.framework */, - 8FC28EA80C4A7E3F0071E9CC /* CoreAudioKit.framework */, - BA2230B9189F9A2F002C5B6A /* CoreData.framework */, - 8FD8FD92076624AC009820DF /* CoreData.framework */, - BA2230BA189F9A2F002C5B6A /* CoreFoundation.framework */, - BA2230BB189F9A2F002C5B6A /* CoreGraphics.framework */, - BA22309D189F99CC002C5B6A /* CoreLocation.framework */, - BA2230BC189F9A2F002C5B6A /* CoreMedia.framework */, - BA2230BD189F9A2F002C5B6A /* CoreMediaIO.framework */, - BA2230BE189F9A2F002C5B6A /* CoreMIDI.framework */, - BA2230BF189F9A2F002C5B6A /* CoreServices.framework */, - BA2230C0189F9A2F002C5B6A /* CoreText.framework */, - BA2230C1189F9A2F002C5B6A /* CoreVideo.framework */, - 8FC28EB60C4A7E980071E9CC /* CoreVideo.framework */, - BA2230C2189F9A2F002C5B6A /* CoreWLAN.framework */, - BA2230D3189F9A7A002C5B6A /* DirectoryService.framework */, - BA2230D4189F9A7A002C5B6A /* DiscRecording.framework */, - F55D42D903583F2601B9E934 /* DiscRecording.framework */, - BA2230D5189F9A7A002C5B6A /* DiscRecordingUI.framework */, - F55D42DA03583F2601B9E934 /* DiscRecordingUI.framework */, - BA2230D6189F9A7A002C5B6A /* DiskArbitration.framework */, - 8FC28ECD0C4A7EDC0071E9CC /* DiskArbitration.framework */, - BA2230D7189F9A7A002C5B6A /* DrawSprocket.framework */, - BA22313C189F9AA9002C5B6A /* DTPerformanceSession.framework */, - BA2230D8189F9A7A002C5B6A /* DVComponentGlue.framework */, - BA2230D9189F9A7A002C5B6A /* DVDPlayback.framework */, - E2DBA31C161CA57C0035A675 /* EventKit.framework */, - BA22316F189F9AD3002C5B6A /* ExceptionHandling.framework */, - F51B24640271980D01DB4759 /* ExceptionHandling.framework */, F5F1A9F4022E9A96011160FE /* F-Script */, - BA223170189F9AD3002C5B6A /* ForceFeedback.framework */, - BA223171189F9AD3002C5B6A /* Foundation.framework */, - 0CD4E46500D7E1C37BE9C1BD /* Foundation.framework */, 0CD4E30D00D7DFE17BE9C1BD /* FScriptFramework */, 8F6392E00BDB855B005C8D94 /* FScriptIBPlugin */, F5F1AAAD022E9E4F011160FE /* FSTest1 */, F5F1AAB6022E9E90011160FE /* FSTest2 */, - BA223172189F9AD3002C5B6A /* FWAUserLib.framework */, - BA223173189F9AD3002C5B6A /* GameController.framework */, - E2DBA323161CA6270035A675 /* GameKit.framework */, - E2DBA325161CA64B0035A675 /* GLKit.framework */, - BA223147189F9AC5002C5B6A /* GLUT.framework */, - BA223148189F9AC5002C5B6A /* GSS.framework */, - BA223149189F9AC6002C5B6A /* ICADevices.framework */, - BA22314A189F9AC6002C5B6A /* ImageCaptureCore.framework */, - BA22314B189F9AC6002C5B6A /* ImageIO.framework */, - BA22314C189F9AC6002C5B6A /* IMServicePlugIn.framework */, 8F6DA8EB055FC70C0050409A /* Info-F_Script__Upgraded_.plist */, 8F6DA9DC055FC7200050409A /* Info-FScriptFramework__Upgraded_.plist */, 8F6DA6E7055FC6C80050409A /* Info-FSTest1_2.plist */, 8F6DA6D1055FC6980050409A /* Info-FSTest2_2.plist */, - BA22314D189F9AC6002C5B6A /* InputMethodKit.framework */, - 8F589B980CE38CAB00C1D756 /* InputMethodKit.framework */, - BA22314E189F9AC6002C5B6A /* InstallerPlugins.framework */, - 8F589BA50CE38CCE00C1D756 /* InstallerPlugins.framework */, - BA22314F189F9AC6002C5B6A /* InstantMessage.framework */, - 8FC28FC70C4A7FDC0071E9CC /* InstantMessage.framework */, - BA22313D189F9AA9002C5B6A /* InterfaceBuilderKit.framework */, - BA223150189F9AC6002C5B6A /* IOBluetooth.framework */, - F55D431803583F8501B9E934 /* IOBluetooth.framework */, - BA223151189F9AC6002C5B6A /* IOBluetoothUI.framework */, - F55D431903583F8501B9E934 /* IOBluetoothUI.framework */, - BA223152189F9AC6002C5B6A /* IOKit.framework */, - BA223153189F9AC6002C5B6A /* IOSurface.framework */, - BA223154189F9AC6002C5B6A /* JavaFrameEmbedding.framework */, - BA223155189F9AC6002C5B6A /* JavaScriptCore.framework */, - BA223156189F9AC6002C5B6A /* JavaVM.framework */, - 0CD4E46900D7E1F17BE9C1BD /* JavaVM.framework */, F5F00F100279FB69016D9B48 /* JGAdditions */, - BA223157189F9AC6002C5B6A /* Kerberos.framework */, - BA223158189F9AC7002C5B6A /* Kernel.framework */, - BA223159189F9AC7002C5B6A /* LatentSemanticMapping.framework */, - BA223144189F9ABD002C5B6A /* LDAP.framework */, - BA2230F4189F9A99002C5B6A /* MapKit.framework */, - BA2230F5189F9A99002C5B6A /* MediaAccessibility.framework */, - BA2230F6189F9A99002C5B6A /* MediaLibrary.framework */, - BA2230F7189F9A99002C5B6A /* MediaToolbox.framework */, - BA2230F8189F9A99002C5B6A /* NetFS.framework */, - BA2230F9189F9A99002C5B6A /* OpenAL.framework */, - BA2230FA189F9A99002C5B6A /* OpenCL.framework */, - BA2230FB189F9A99002C5B6A /* OpenDirectory.framework */, - BA2230FC189F9A99002C5B6A /* OpenGL.framework */, - BA2230FD189F9A99002C5B6A /* OSAKit.framework */, - 8FC28FEE0C4A80D80071E9CC /* OSAKit.framework */, - BA2230FE189F9A99002C5B6A /* PCSC.framework */, - BA2230FF189F9A99002C5B6A /* PreferencePanes.framework */, - 8FC290F90C4A81630071E9CC /* PreferencePanes.framework */, 0CD4E2FC00D7DDB47BE9C1BD /* Products */, - BA223100189F9A99002C5B6A /* PubSub.framework */, - 8FC291040C4A81A60071E9CC /* PubSub.framework */, - BA223101189F9A99002C5B6A /* QTKit.framework */, - 8FDF6FCF082BD9560044FD86 /* QTKit.framework */, - BA223102189F9A99002C5B6A /* Quartz.framework */, - 8FC291160C4A82070071E9CC /* Quartz.framework */, - BA223103189F9A99002C5B6A /* QuartzCore.framework */, - 8F1873160B99C7AA003974F2 /* QuartzCore.framework */, - BA223104189F9A99002C5B6A /* QuickLook.framework */, - BA223105189F9A99002C5B6A /* QuickTime.framework */, - BA223106189F9A9A002C5B6A /* Ruby.framework */, - BA223107189F9A9A002C5B6A /* RubyCocoa.framework */, - 8FC2911F0C4A82730071E9CC /* RubyCocoa.framework */, - E2DBA327161CA65A0035A675 /* SceneKit.framework */, - BA223108189F9A9A002C5B6A /* ScreenSaver.framework */, - 8FA095F80CE38F27001AC147 /* ScreenSaver.framework */, - BA223109189F9A9A002C5B6A /* Scripting.framework */, - BA22310A189F9A9A002C5B6A /* ScriptingBridge.framework */, - 8F6584F80C484A5100C8A3FC /* ScriptingBridge.framework */, - BA22310B189F9A9A002C5B6A /* Security.framework */, - BA22310C189F9A9A002C5B6A /* SecurityFoundation.framework */, - 8FC291710C4A82D10071E9CC /* SecurityFoundation.framework */, - BA22310D189F9A9A002C5B6A /* SecurityInterface.framework */, - 8FC2917F0C4A82F90071E9CC /* SecurityInterface.framework */, - BA22313E189F9AA9002C5B6A /* SenTestingKit.framework */, - BA22310E189F9A9A002C5B6A /* ServiceManagement.framework */, - E2DBA329161CA6600035A675 /* Social.framework */, - BA22310F189F9A9A002C5B6A /* SpriteKit.framework */, - BA223110189F9A9A002C5B6A /* StoreKit.framework */, - BA223111189F9A9A002C5B6A /* SyncServices.framework */, - 8FC291920C4A83380071E9CC /* SyncServices.framework */, - BA223112189F9A9A002C5B6A /* SystemConfiguration.framework */, - BA223113189F9A9A002C5B6A /* Tcl.framework */, - BA223114189F9A9A002C5B6A /* Tk.framework */, - BA223115189F9A9A002C5B6A /* TWAIN.framework */, - BA223116189F9A9A002C5B6A /* VideoDecodeAcceleration.framework */, - E2DBA32B161CA6660035A675 /* VideoToolbox.framework */, - BA223117189F9A9A002C5B6A /* WebKit.framework */, - 8FF5AEF80961E56400A3BEA9 /* WebKit.framework */, - BA22313F189F9AA9002C5B6A /* XCTest.framework */, + ED48525318B603C300877668 /* Frameworks */, ); sourceTree = ""; }; @@ -3861,7 +3716,7 @@ BA223360189FA403002C5B6A /* F-Script.app */, BA223520189FA412002C5B6A /* F-Script.app */, BA223668189FA429002C5B6A /* FScriptFramework.framework */, - BA2237B0189FA432002C5B6A /* FScriptFramework.framework */, + BA2237B0189FA432002C5B6A /* FScript.framework */, ); name = Products; sourceTree = ""; @@ -4209,6 +4064,159 @@ name = FScriptIBPlugin; sourceTree = ""; }; + ED48525318B603C300877668 /* Frameworks */ = { + isa = PBXGroup; + children = ( + BA223095189F9924002C5B6A /* Accelerate.framework */, + E2DBA31F161CA5D00035A675 /* Accounts.framework */, + BA22309F189F9A14002C5B6A /* AddressBook.framework */, + 8FC20ADE0CEE3B2F00D9871F /* AddressBook.framework */, + BA2230A0189F9A14002C5B6A /* AGL.framework */, + BA2230A1189F9A14002C5B6A /* AppKit.framework */, + 8FC20A9F0CEE3AEE00D9871F /* AppKit.framework */, + BA2230A2189F9A14002C5B6A /* AppKitScripting.framework */, + BA2230A3189F9A14002C5B6A /* AppleScriptKit.framework */, + BA2230A4189F9A14002C5B6A /* AppleScriptObjC.framework */, + BA2230A5189F9A14002C5B6A /* AppleShareClientCore.framework */, + BA2230A6189F9A14002C5B6A /* ApplicationServices.framework */, + BA223097189F9958002C5B6A /* AudioToolbox.framework */, + BA2230A7189F9A14002C5B6A /* AudioUnit.framework */, + 8F589B600CE38B3B00C1D756 /* AudioUnit.framework */, + E2DBA321161CA60C0035A675 /* AudioVideoBridging.framework */, + BA2230A8189F9A14002C5B6A /* Automator.framework */, + 8F589B800CE38B7100C1D756 /* Automator.framework */, + E2DBA32D161CA7180035A675 /* AVFoundation.framework */, + BA223099189F9976002C5B6A /* AVKit.framework */, + BA2230B3189F9A2E002C5B6A /* CalendarStore.framework */, + 8F552A780C00A6D4002B6067 /* CalendarStore.framework */, + BA2230B4189F9A2E002C5B6A /* Carbon.framework */, + BA2230B5189F9A2E002C5B6A /* CFNetwork.framework */, + BA2230B6189F9A2E002C5B6A /* Cocoa.framework */, + 8F85274707F6016900E706F5 /* Cocoa.framework */, + BA2230B7189F9A2E002C5B6A /* Collaboration.framework */, + 8FC28E9B0C4A7DDF0071E9CC /* Collaboration.framework */, + BA22309B189F9988002C5B6A /* CoreAudio.framework */, + BA2230B8189F9A2F002C5B6A /* CoreAudioKit.framework */, + 8FC28EA80C4A7E3F0071E9CC /* CoreAudioKit.framework */, + BA2230B9189F9A2F002C5B6A /* CoreData.framework */, + 8FD8FD92076624AC009820DF /* CoreData.framework */, + BA2230BA189F9A2F002C5B6A /* CoreFoundation.framework */, + BA2230BB189F9A2F002C5B6A /* CoreGraphics.framework */, + BA22309D189F99CC002C5B6A /* CoreLocation.framework */, + BA2230BC189F9A2F002C5B6A /* CoreMedia.framework */, + BA2230BD189F9A2F002C5B6A /* CoreMediaIO.framework */, + BA2230BE189F9A2F002C5B6A /* CoreMIDI.framework */, + BA2230BF189F9A2F002C5B6A /* CoreServices.framework */, + BA2230C0189F9A2F002C5B6A /* CoreText.framework */, + BA2230C1189F9A2F002C5B6A /* CoreVideo.framework */, + 8FC28EB60C4A7E980071E9CC /* CoreVideo.framework */, + BA2230C2189F9A2F002C5B6A /* CoreWLAN.framework */, + BA2230D3189F9A7A002C5B6A /* DirectoryService.framework */, + BA2230D4189F9A7A002C5B6A /* DiscRecording.framework */, + F55D42D903583F2601B9E934 /* DiscRecording.framework */, + BA2230D5189F9A7A002C5B6A /* DiscRecordingUI.framework */, + F55D42DA03583F2601B9E934 /* DiscRecordingUI.framework */, + BA2230D6189F9A7A002C5B6A /* DiskArbitration.framework */, + 8FC28ECD0C4A7EDC0071E9CC /* DiskArbitration.framework */, + BA2230D7189F9A7A002C5B6A /* DrawSprocket.framework */, + BA22313C189F9AA9002C5B6A /* DTPerformanceSession.framework */, + BA2230D8189F9A7A002C5B6A /* DVComponentGlue.framework */, + BA2230D9189F9A7A002C5B6A /* DVDPlayback.framework */, + E2DBA31C161CA57C0035A675 /* EventKit.framework */, + BA22316F189F9AD3002C5B6A /* ExceptionHandling.framework */, + F51B24640271980D01DB4759 /* ExceptionHandling.framework */, + BA223170189F9AD3002C5B6A /* ForceFeedback.framework */, + BA223171189F9AD3002C5B6A /* Foundation.framework */, + 0CD4E46500D7E1C37BE9C1BD /* Foundation.framework */, + BA223172189F9AD3002C5B6A /* FWAUserLib.framework */, + BA223173189F9AD3002C5B6A /* GameController.framework */, + E2DBA323161CA6270035A675 /* GameKit.framework */, + E2DBA325161CA64B0035A675 /* GLKit.framework */, + BA223147189F9AC5002C5B6A /* GLUT.framework */, + BA223148189F9AC5002C5B6A /* GSS.framework */, + BA223149189F9AC6002C5B6A /* ICADevices.framework */, + BA22314A189F9AC6002C5B6A /* ImageCaptureCore.framework */, + BA22314B189F9AC6002C5B6A /* ImageIO.framework */, + BA22314C189F9AC6002C5B6A /* IMServicePlugIn.framework */, + BA22314D189F9AC6002C5B6A /* InputMethodKit.framework */, + 8F589B980CE38CAB00C1D756 /* InputMethodKit.framework */, + BA22314E189F9AC6002C5B6A /* InstallerPlugins.framework */, + 8F589BA50CE38CCE00C1D756 /* InstallerPlugins.framework */, + BA22314F189F9AC6002C5B6A /* InstantMessage.framework */, + 8FC28FC70C4A7FDC0071E9CC /* InstantMessage.framework */, + BA22313D189F9AA9002C5B6A /* InterfaceBuilderKit.framework */, + BA223150189F9AC6002C5B6A /* IOBluetooth.framework */, + F55D431803583F8501B9E934 /* IOBluetooth.framework */, + BA223151189F9AC6002C5B6A /* IOBluetoothUI.framework */, + F55D431903583F8501B9E934 /* IOBluetoothUI.framework */, + BA223152189F9AC6002C5B6A /* IOKit.framework */, + BA223153189F9AC6002C5B6A /* IOSurface.framework */, + BA223154189F9AC6002C5B6A /* JavaFrameEmbedding.framework */, + BA223155189F9AC6002C5B6A /* JavaScriptCore.framework */, + BA223156189F9AC6002C5B6A /* JavaVM.framework */, + 0CD4E46900D7E1F17BE9C1BD /* JavaVM.framework */, + BA223157189F9AC6002C5B6A /* Kerberos.framework */, + BA223158189F9AC7002C5B6A /* Kernel.framework */, + BA223159189F9AC7002C5B6A /* LatentSemanticMapping.framework */, + BA223144189F9ABD002C5B6A /* LDAP.framework */, + BA2230F4189F9A99002C5B6A /* MapKit.framework */, + BA2230F5189F9A99002C5B6A /* MediaAccessibility.framework */, + BA2230F6189F9A99002C5B6A /* MediaLibrary.framework */, + BA2230F7189F9A99002C5B6A /* MediaToolbox.framework */, + BA2230F8189F9A99002C5B6A /* NetFS.framework */, + BA2230F9189F9A99002C5B6A /* OpenAL.framework */, + BA2230FA189F9A99002C5B6A /* OpenCL.framework */, + BA2230FB189F9A99002C5B6A /* OpenDirectory.framework */, + BA2230FC189F9A99002C5B6A /* OpenGL.framework */, + BA2230FD189F9A99002C5B6A /* OSAKit.framework */, + 8FC28FEE0C4A80D80071E9CC /* OSAKit.framework */, + BA2230FE189F9A99002C5B6A /* PCSC.framework */, + BA2230FF189F9A99002C5B6A /* PreferencePanes.framework */, + 8FC290F90C4A81630071E9CC /* PreferencePanes.framework */, + BA223100189F9A99002C5B6A /* PubSub.framework */, + 8FC291040C4A81A60071E9CC /* PubSub.framework */, + BA223101189F9A99002C5B6A /* QTKit.framework */, + 8FDF6FCF082BD9560044FD86 /* QTKit.framework */, + BA223102189F9A99002C5B6A /* Quartz.framework */, + 8FC291160C4A82070071E9CC /* Quartz.framework */, + BA223103189F9A99002C5B6A /* QuartzCore.framework */, + 8F1873160B99C7AA003974F2 /* QuartzCore.framework */, + BA223104189F9A99002C5B6A /* QuickLook.framework */, + BA223105189F9A99002C5B6A /* QuickTime.framework */, + BA223106189F9A9A002C5B6A /* Ruby.framework */, + BA223107189F9A9A002C5B6A /* RubyCocoa.framework */, + 8FC2911F0C4A82730071E9CC /* RubyCocoa.framework */, + E2DBA327161CA65A0035A675 /* SceneKit.framework */, + BA223108189F9A9A002C5B6A /* ScreenSaver.framework */, + 8FA095F80CE38F27001AC147 /* ScreenSaver.framework */, + BA223109189F9A9A002C5B6A /* Scripting.framework */, + BA22310A189F9A9A002C5B6A /* ScriptingBridge.framework */, + 8F6584F80C484A5100C8A3FC /* ScriptingBridge.framework */, + BA22310B189F9A9A002C5B6A /* Security.framework */, + BA22310C189F9A9A002C5B6A /* SecurityFoundation.framework */, + 8FC291710C4A82D10071E9CC /* SecurityFoundation.framework */, + BA22310D189F9A9A002C5B6A /* SecurityInterface.framework */, + 8FC2917F0C4A82F90071E9CC /* SecurityInterface.framework */, + BA22313E189F9AA9002C5B6A /* SenTestingKit.framework */, + BA22310E189F9A9A002C5B6A /* ServiceManagement.framework */, + E2DBA329161CA6600035A675 /* Social.framework */, + BA22310F189F9A9A002C5B6A /* SpriteKit.framework */, + BA223110189F9A9A002C5B6A /* StoreKit.framework */, + BA223111189F9A9A002C5B6A /* SyncServices.framework */, + 8FC291920C4A83380071E9CC /* SyncServices.framework */, + BA223112189F9A9A002C5B6A /* SystemConfiguration.framework */, + BA223113189F9A9A002C5B6A /* Tcl.framework */, + BA223114189F9A9A002C5B6A /* Tk.framework */, + BA223115189F9A9A002C5B6A /* TWAIN.framework */, + BA223116189F9A9A002C5B6A /* VideoDecodeAcceleration.framework */, + E2DBA32B161CA6660035A675 /* VideoToolbox.framework */, + BA223117189F9A9A002C5B6A /* WebKit.framework */, + 8FF5AEF80961E56400A3BEA9 /* WebKit.framework */, + BA22313F189F9AA9002C5B6A /* XCTest.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; F5F00F100279FB69016D9B48 /* JGAdditions */ = { isa = PBXGroup; children = ( @@ -5617,7 +5625,7 @@ name = "FScriptFramework 10.9"; productInstallPath = ""; productName = FScript; - productReference = BA2237B0189FA432002C5B6A /* FScriptFramework.framework */; + productReference = BA2237B0189FA432002C5B6A /* FScript.framework */; productType = "com.apple.product-type.framework"; }; /* End PBXNativeTarget section */ @@ -7835,7 +7843,7 @@ OTHER_LIBTOOL_FLAGS = "$(value) "; OTHER_REZFLAGS = ""; PRINCIPAL_CLASS = ""; - PRODUCT_NAME = FScriptFramework; + PRODUCT_NAME = FScript; SECTORDER_FLAGS = ""; SKIP_INSTALL = YES; WRAPPER_EXTENSION = framework; @@ -7870,7 +7878,7 @@ OTHER_LIBTOOL_FLAGS = "$(value) "; OTHER_REZFLAGS = ""; PRINCIPAL_CLASS = ""; - PRODUCT_NAME = FScriptFramework; + PRODUCT_NAME = FScript; SECTORDER_FLAGS = ""; SKIP_INSTALL = YES; WRAPPER_EXTENSION = framework; diff --git a/FScript.xcodeproj/xcshareddata/xcschemes/F-Script 10.8.xcscheme b/FScript.xcodeproj/xcshareddata/xcschemes/F-Script 10.8.xcscheme index 595db86..5a626be 100644 --- a/FScript.xcodeproj/xcshareddata/xcschemes/F-Script 10.8.xcscheme +++ b/FScript.xcodeproj/xcshareddata/xcschemes/F-Script 10.8.xcscheme @@ -15,7 +15,7 @@ @@ -29,7 +29,7 @@ diff --git a/FScript.xcodeproj/xcshareddata/xcschemes/F-Script 10.9.xcscheme b/FScript.xcodeproj/xcshareddata/xcschemes/F-Script 10.9.xcscheme index 7c0b39c..75e307c 100644 --- a/FScript.xcodeproj/xcshareddata/xcschemes/F-Script 10.9.xcscheme +++ b/FScript.xcodeproj/xcshareddata/xcschemes/F-Script 10.9.xcscheme @@ -15,7 +15,7 @@ @@ -29,7 +29,7 @@ @@ -47,7 +47,7 @@ @@ -66,7 +66,7 @@ @@ -84,7 +84,7 @@ diff --git a/FScriptFramework/CLIView.h b/FScriptFramework/CLIView.h index dee7c90..675239a 100644 --- a/FScriptFramework/CLIView.h +++ b/FScriptFramework/CLIView.h @@ -1,7 +1,36 @@ /* CLIView.h Copyright (c) 1998-2009 Philippe Mougin. */ /* This software is open source. See the license. */ -/* CLIView is the public API for a Command Line Interface component.*/ +/// CLIView is the public API for a Command Line Interface component. +/** + +The organisation of the view hierarchy: + + ----- CLIView -------------------------------------- + | | + | ----- NSScrollView ---------------------------- | + | | | | + | | ----- ShellView ------------------------- | | + | | | prompt> | | | + | | | | | | + | | | | | | + | | | | | | + | | | | | | + | | | | | | + | | ----------------------------------------- | | + | | | | + | ----------------------------------------------- | + | | + ---------------------------------------------------- + +A CLIView has one subview: an NSScrollView. + +This NSScrollView has a ShellView as document view. + +The ShellView is the view that displays the prompt, receive the keyboard events from the user, display +the commands entered by the user and the results of those commands etc. + +*/ #import diff --git a/FScriptFramework/CLIView.m b/FScriptFramework/CLIView.m index 041d9de..d74a14a 100644 --- a/FScriptFramework/CLIView.m +++ b/FScriptFramework/CLIView.m @@ -1,35 +1,6 @@ /* CLIView.m Copyright (c) 1998-2009 Philippe Mougin. */ /* This software is open source. See the license. */ -/* - -The organisation of the view hierarchy: - - ----- CLIView -------------------------------------- - | | - | ----- NSScrollView ---------------------------- | - | | | | - | | ----- ShellView ------------------------- | | - | | | prompt> | | | - | | | | | | - | | | | | | - | | | | | | - | | | | | | - | | | | | | - | | ----------------------------------------- | | - | | | | - | ----------------------------------------------- | - | | - ---------------------------------------------------- - -A CLIView has one subview: an NSScrollView. - -This NSScrollView has a ShellView as document view. - -The ShellView is the view that displays the prompt, receive the keyboard events from the user, display -the commands entered by the user and the results of those commands etc. - -*/ #import "CLIView.h" #import "ShellView.h" diff --git a/FScriptFramework/FSSystem.m b/FScriptFramework/FSSystem.m index f7cbdfe..2ae7ab3 100644 --- a/FScriptFramework/FSSystem.m +++ b/FScriptFramework/FSSystem.m @@ -262,10 +262,12 @@ - (id) load:(NSString *)fileName NSString *logFmt = @"failure of loading: %@"; FSVerifClassArgsNoNil(@"load:",1,fileName,[NSString class]); - - @try - { - data = [NSData dataWithContentsOfFile:fileName]; + + BOOL unknownFileFormat = NO; + @try + { + NSError* error = nil; + data = [NSData dataWithContentsOfFile:fileName options:0 error:&error ]; if (data) { if (loadNonKeyedArchives) @@ -282,15 +284,18 @@ - (id) load:(NSString *)fileName } @catch (id exception) { - unarchiver = [[[FSUnarchiver alloc] initForReadingWithData:data loaderEnvironmentSymbolTable:[executor symbolTable] symbolTableForCompiledCodeNode:nil] autorelease]; - r = [unarchiver decodeObject]; + unarchiver = [[[FSUnarchiver alloc] initForReadingWithData:data loaderEnvironmentSymbolTable:[executor symbolTable] symbolTableForCompiledCodeNode:nil] autorelease]; + r = [unarchiver decodeObject]; + if (r == nil) { + unknownFileFormat = YES; + } } } } else { r = nil; - errStr = [NSString stringWithFormat:@"loading: can't open file %@",fileName]; + errStr = [NSString stringWithFormat:@"loading: can't open file %@. Error (%lu) = %@",fileName,error.code, error.localizedDescription]; } } @catch (id exception) @@ -302,6 +307,9 @@ - (id) load:(NSString *)fileName if (r == nil) { if (!errStr) errStr = @"failure of loading"; + if (unknownFileFormat) { + errStr = [ NSString stringWithFormat:@"%@: File %@ is in an unknown format (should be a valid keyed archive)",errStr, fileName ]; + } FSExecError(errStr); } return r; From 4fb025a67ac378f6e80d439f287e561f02e53be4 Mon Sep 17 00:00:00 2001 From: Anthony Dervish Date: Fri, 28 Feb 2014 23:03:11 +0000 Subject: [PATCH 02/33] Handle custom getters properly for property introspection --- FScriptFramework/FSObjectBrowserViewObjectInfo.m | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/FScriptFramework/FSObjectBrowserViewObjectInfo.m b/FScriptFramework/FSObjectBrowserViewObjectInfo.m index 868867d..a1b0a93 100644 --- a/FScriptFramework/FSObjectBrowserViewObjectInfo.m +++ b/FScriptFramework/FSObjectBrowserViewObjectInfo.m @@ -1767,12 +1767,21 @@ - (void)fillMatrix:(NSMatrix *)theMatrix withObject:(id)object for (i = 0; i < count; i++) { NSString *propertyName = [NSString stringWithUTF8String:property_getName(properties[i])]; + NSString* propertyEncoding = [ NSString stringWithUTF8String:property_getAttributes(properties[i])]; + NSError*error=nil; + NSRegularExpression* customGetterRegexp = [ NSRegularExpression regularExpressionWithPattern:@"(?:^G|,G)([^,]+)" options:0 error:&error ]; + NSTextCheckingResult* customGetterMatch = [ customGetterRegexp firstMatchInString:propertyEncoding options:0 range:NSMakeRange(0, propertyEncoding.length)]; + NSString* getter = propertyName; + if (customGetterMatch) { + getter = [ propertyEncoding substringWithRange:[customGetterMatch rangeAtIndex:1]]; + } + id propertyValue = nil; // initialized to nil in order to shut down a spurious warning NSString *errorMessage = nil; @try { - propertyValue = [[[[@"[:object| object " stringByAppendingString:propertyName] stringByAppendingString:@"]"] asBlock] value:object]; + propertyValue = [[[[@"[:object| object " stringByAppendingString:getter] stringByAppendingString:@"]"] asBlock] value:object]; } @catch (id exception) { From 58a2cc555b1f5898aaab886ec69dc35b44085135 Mon Sep 17 00:00:00 2001 From: Anthony Dervish Date: Thu, 19 Jun 2014 12:50:20 +0100 Subject: [PATCH 03/33] Remove obsolete frameworks from 10.9 build --- FScript.xcodeproj/project.pbxproj | 8 -------- 1 file changed, 8 deletions(-) diff --git a/FScript.xcodeproj/project.pbxproj b/FScript.xcodeproj/project.pbxproj index 88620ee..208496c 100644 --- a/FScript.xcodeproj/project.pbxproj +++ b/FScript.xcodeproj/project.pbxproj @@ -1176,7 +1176,6 @@ BA223126189F9A9A002C5B6A /* Quartz.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA223102189F9A99002C5B6A /* Quartz.framework */; }; BA223127189F9A9A002C5B6A /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA223103189F9A99002C5B6A /* QuartzCore.framework */; }; BA223128189F9A9A002C5B6A /* QuickLook.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA223104189F9A99002C5B6A /* QuickLook.framework */; }; - BA22312B189F9A9A002C5B6A /* RubyCocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA223107189F9A9A002C5B6A /* RubyCocoa.framework */; }; BA22312C189F9A9A002C5B6A /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA223108189F9A9A002C5B6A /* ScreenSaver.framework */; }; BA22312E189F9A9A002C5B6A /* ScriptingBridge.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA22310A189F9A9A002C5B6A /* ScriptingBridge.framework */; }; BA22312F189F9A9A002C5B6A /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA22310B189F9A9A002C5B6A /* Security.framework */; }; @@ -1243,7 +1242,6 @@ BA223196189F9B2A002C5B6A /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230A1189F9A14002C5B6A /* AppKit.framework */; }; BA223198189F9B2A002C5B6A /* AppleScriptKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230A3189F9A14002C5B6A /* AppleScriptKit.framework */; }; BA223199189F9B2A002C5B6A /* AppleScriptObjC.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230A4189F9A14002C5B6A /* AppleScriptObjC.framework */; }; - BA22319A189F9B2A002C5B6A /* AppleShareClientCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230A5189F9A14002C5B6A /* AppleShareClientCore.framework */; }; BA22319B189F9B2A002C5B6A /* ApplicationServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230A6189F9A14002C5B6A /* ApplicationServices.framework */; }; BA22319C189F9B2A002C5B6A /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA223097189F9958002C5B6A /* AudioToolbox.framework */; }; BA22319D189F9B2A002C5B6A /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230A7189F9A14002C5B6A /* AudioUnit.framework */; }; @@ -2012,7 +2010,6 @@ BA2234BA189FA412002C5B6A /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230A1189F9A14002C5B6A /* AppKit.framework */; }; BA2234BB189FA412002C5B6A /* AppleScriptKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230A3189F9A14002C5B6A /* AppleScriptKit.framework */; }; BA2234BC189FA412002C5B6A /* AppleScriptObjC.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230A4189F9A14002C5B6A /* AppleScriptObjC.framework */; }; - BA2234BD189FA412002C5B6A /* AppleShareClientCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230A5189F9A14002C5B6A /* AppleShareClientCore.framework */; }; BA2234BE189FA412002C5B6A /* ApplicationServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230A6189F9A14002C5B6A /* ApplicationServices.framework */; }; BA2234BF189FA412002C5B6A /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA223097189F9958002C5B6A /* AudioToolbox.framework */; }; BA2234C0189FA412002C5B6A /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230A7189F9A14002C5B6A /* AudioUnit.framework */; }; @@ -2086,7 +2083,6 @@ BA223506189FA412002C5B6A /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA223103189F9A99002C5B6A /* QuartzCore.framework */; }; BA223507189FA412002C5B6A /* QuickLook.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA223104189F9A99002C5B6A /* QuickLook.framework */; }; BA223508189FA412002C5B6A /* Ruby.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA223106189F9A9A002C5B6A /* Ruby.framework */; }; - BA223509189FA412002C5B6A /* RubyCocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA223107189F9A9A002C5B6A /* RubyCocoa.framework */; }; BA22350A189FA412002C5B6A /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA223108189F9A9A002C5B6A /* ScreenSaver.framework */; }; BA22350B189FA412002C5B6A /* ScriptingBridge.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA22310A189F9A9A002C5B6A /* ScriptingBridge.framework */; }; BA22350C189FA412002C5B6A /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA22310B189F9A9A002C5B6A /* Security.framework */; }; @@ -3364,7 +3360,6 @@ BA223196189F9B2A002C5B6A /* AppKit.framework in Frameworks */, BA223198189F9B2A002C5B6A /* AppleScriptKit.framework in Frameworks */, BA223199189F9B2A002C5B6A /* AppleScriptObjC.framework in Frameworks */, - BA22319A189F9B2A002C5B6A /* AppleShareClientCore.framework in Frameworks */, BA22319B189F9B2A002C5B6A /* ApplicationServices.framework in Frameworks */, BA22319C189F9B2A002C5B6A /* AudioToolbox.framework in Frameworks */, BA22319D189F9B2A002C5B6A /* AudioUnit.framework in Frameworks */, @@ -3429,7 +3424,6 @@ BA223126189F9A9A002C5B6A /* Quartz.framework in Frameworks */, BA223127189F9A9A002C5B6A /* QuartzCore.framework in Frameworks */, BA223128189F9A9A002C5B6A /* QuickLook.framework in Frameworks */, - BA22312B189F9A9A002C5B6A /* RubyCocoa.framework in Frameworks */, BA22312C189F9A9A002C5B6A /* ScreenSaver.framework in Frameworks */, BA22312E189F9A9A002C5B6A /* ScriptingBridge.framework in Frameworks */, BA22312F189F9A9A002C5B6A /* Security.framework in Frameworks */, @@ -3568,7 +3562,6 @@ BA2234BA189FA412002C5B6A /* AppKit.framework in Frameworks */, BA2234BB189FA412002C5B6A /* AppleScriptKit.framework in Frameworks */, BA2234BC189FA412002C5B6A /* AppleScriptObjC.framework in Frameworks */, - BA2234BD189FA412002C5B6A /* AppleShareClientCore.framework in Frameworks */, BA2234BE189FA412002C5B6A /* ApplicationServices.framework in Frameworks */, BA2234BF189FA412002C5B6A /* AudioToolbox.framework in Frameworks */, BA2234C0189FA412002C5B6A /* AudioUnit.framework in Frameworks */, @@ -3644,7 +3637,6 @@ BA223506189FA412002C5B6A /* QuartzCore.framework in Frameworks */, BA223507189FA412002C5B6A /* QuickLook.framework in Frameworks */, BA223508189FA412002C5B6A /* Ruby.framework in Frameworks */, - BA223509189FA412002C5B6A /* RubyCocoa.framework in Frameworks */, BA22350A189FA412002C5B6A /* ScreenSaver.framework in Frameworks */, BA22350B189FA412002C5B6A /* ScriptingBridge.framework in Frameworks */, BA22350C189FA412002C5B6A /* Security.framework in Frameworks */, From 247f8141f32c15bd2cfd218707cabce5293a385c Mon Sep 17 00:00:00 2001 From: Anthony Dervish Date: Thu, 19 Jun 2014 12:50:52 +0100 Subject: [PATCH 04/33] Add alt keyboard shortcut to view browser, to select exact view shown in floating window --- FScriptFramework/FSObjectBrowserView.m | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/FScriptFramework/FSObjectBrowserView.m b/FScriptFramework/FSObjectBrowserView.m index 81c77bd..ee65d20 100644 --- a/FScriptFramework/FSObjectBrowserView.m +++ b/FScriptFramework/FSObjectBrowserView.m @@ -1795,6 +1795,10 @@ - (void) selectView:(id)dummy if ( !([event type] == NSKeyDown && [[event characters] characterAtIndex:0] == ESCAPE) ) { + // If Alt is held down, select the exact view shown in the floating window + if ((event.modifierFlags & NSAlternateKeyMask) && view != nil) { + selectedView = view; + } if (selectedView == nil) view = [[[[event window] contentView] superview] hitTest:[event locationInWindow]]; else From 84c1c7a013d49ef573d6ec9b29de20e21a83fc34 Mon Sep 17 00:00:00 2001 From: Ant Date: Thu, 2 Oct 2014 09:50:26 +0100 Subject: [PATCH 05/33] Rudimentary history support --- FScriptFramework/FSCommandHistory.h | 4 +- FScriptFramework/FSCommandHistory.m | 158 ++++++++++++++++++++-------- FScriptFramework/ShellView.m | 14 +-- 3 files changed, 123 insertions(+), 53 deletions(-) diff --git a/FScriptFramework/FSCommandHistory.h b/FScriptFramework/FSCommandHistory.h index 0746de9..f9ab49a 100644 --- a/FScriptFramework/FSCommandHistory.h +++ b/FScriptFramework/FSCommandHistory.h @@ -26,7 +26,7 @@ store is removed. @interface FSCommandHistory : NSObject { NSMutableArray *array; // an array of NSString - NSInteger head, queue, cursor; + NSInteger head, queue, cursor, size; } - (id)addStr:(NSString *)str; // adds a string @@ -44,5 +44,7 @@ store is removed. // set to the value of the argument. The receiver is filled // with empty strings. - (NSInteger)size; +-(void)save; ++(FSCommandHistory*)latestHistoryWithSize:(NSUInteger)size; @end diff --git a/FScriptFramework/FSCommandHistory.m b/FScriptFramework/FSCommandHistory.m index 10935a8..48e547f 100644 --- a/FScriptFramework/FSCommandHistory.m +++ b/FScriptFramework/FSCommandHistory.m @@ -5,30 +5,48 @@ @implementation FSCommandHistory -- (id)addStr:(NSString *)str -{ - if ([array count] != 0) + +- (id)init {return [self initWithUIntSize:0];} + +- (id)initWithUIntSize:(NSUInteger)maxSize +{ + if ((self = [super init])) { - head = (head+1) % [array count]; - if (head == queue) queue = (queue+1) % [array count]; - [array replaceObjectAtIndex:head withObject:str]; - [self goToLast]; - } - return self; -} - + size = maxSize; + array = [[NSMutableArray alloc] initWithCapacity:maxSize]; + [array addObject:@""]; + head = 0; queue =0; + return self; + } + return nil; +} - (void)dealloc { [array release]; [super dealloc]; -} +} + +-(void)resizeToSize:(NSUInteger)newSize +{ + // TODO +} - (void)encodeWithCoder:(NSCoder *)coder { - [coder encodeObject:array forKey:@"array"]; - [coder encodeInteger:head forKey:@"head"]; - [coder encodeInteger:queue forKey:@"queue"]; - [coder encodeInteger:cursor forKey:@"cursor"]; + if ([coder allowsKeyedCoding]) + { + [coder encodeObject:array forKey:@"array"]; + [coder encodeInteger:head forKey:@"head"]; + [coder encodeInteger:queue forKey:@"queue"]; + [coder encodeInteger:cursor forKey:@"cursor"]; + } + else { + [coder encodeObject:array] ; + [coder encodeValueOfObjCType:@encode(NSInteger) at:&head]; + [coder encodeValueOfObjCType:@encode(NSInteger) at:&queue]; + [coder decodeValueOfObjCType:@encode(NSInteger) at:&cursor]; + + } } - (id)initWithCoder:(NSCoder *)coder @@ -36,22 +54,18 @@ - (id)initWithCoder:(NSCoder *)coder self = [super init]; if ([coder allowsKeyedCoding]) { - array = [[coder decodeObjectForKey:@"array"] retain]; + array = [[coder decodeObjectForKey:@"array"] mutableCopy]; head = [coder decodeIntegerForKey:@"head"]; queue = [coder decodeIntegerForKey:@"queue"]; cursor= [coder decodeIntegerForKey:@"cursor"]; } else { - int intHead, intQueue, intCursor; array = [[coder decodeObject] retain]; - [coder decodeValueOfObjCType:@encode(int) at:&intHead]; - head = intHead; - [coder decodeValueOfObjCType:@encode(int) at:&intQueue]; - queue = intQueue; - [coder decodeValueOfObjCType:@encode(int) at:&intCursor]; - cursor = intCursor; - } + [coder decodeValueOfObjCType:@encode(NSInteger) at:&head]; + [coder decodeValueOfObjCType:@encode(NSInteger) at:&queue]; + [coder decodeValueOfObjCType:@encode(NSInteger) at:&cursor]; + } return self; } @@ -69,10 +83,10 @@ - (id)goToLast - (id)goToNext { - if ([array count] != 0) + if (size != 0) { if (cursor == head) cursor = queue; - else cursor = (cursor+1) % [array count]; + else cursor = (cursor+1) % array.count; } return self; } @@ -82,37 +96,91 @@ - (id)goToPrevious if([array count] != 0) { if (cursor == queue) cursor = head; - else cursor = (cursor-1+[array count]) % [array count]; + else cursor = (cursor - 1 + array.count) % array.count; } return self; } - (NSString *)getMostRecentlyInsertedStr { - if ([array count] != 0) return [array objectAtIndex:head]; - else return(@""); + return (size != 0) ? [array objectAtIndex:head] : @""; } - (NSString *)getStr { - if ([array count] != 0) return [array objectAtIndex:cursor]; - else return(@""); -} + return (size != 0) ? [array objectAtIndex:cursor] : @""; +} + +- (id)addStr:(NSString *)str +{ + if (size != 0) + { + if (head == array.count-1 && array.count < size) { [array addObject:@""]; } + head = (head+1) % size; + if (head == queue) queue = (queue+1) % size; + [array replaceObjectAtIndex:head withObject:str]; + [self goToLast]; + } + [self save]; + return self; +} -- (id)init {return [self initWithUIntSize:0];} -- (id)initWithUIntSize:(NSUInteger)size ++(NSString*)_historyPath:(NSError**)errorOut { - if ((self = [super init])) - { - array = [[NSMutableArray alloc] initWithCapacity:size]; - head = 0; queue =0; - for (; size > 0; size--) [array addObject:@""]; - return self; + static NSString *sHistoryPath = nil; + if (sHistoryPath == nil) { + NSArray* paths = NSSearchPathForDirectoriesInDomains( NSApplicationSupportDirectory, NSUserDomainMask, YES ) ; + if ( paths.count ) { + NSBundle *appBundle = [NSBundle mainBundle]; + NSString *appName = [ appBundle.infoDictionary objectForKey:@"CFBundleExecutable" ]; + NSString *applicationSupportDir = [paths[0] stringByAppendingPathComponent:appName]; + NSFileManager *fileManager = [NSFileManager new]; + if (![fileManager fileExistsAtPath:applicationSupportDir]) { + NSError *error = nil ; + BOOL success = [ fileManager + createDirectoryAtPath:applicationSupportDir + withIntermediateDirectories:YES + attributes:nil + error:&error ] ; + if ( !success ) { + if ( errorOut ) { + *errorOut = error ; + } + [fileManager release]; + return nil ; + } + } + sHistoryPath = [applicationSupportDir stringByAppendingPathComponent:@"FScriptHistory.dat"]; + [sHistoryPath retain]; + } } - return nil; -} - -- (NSInteger)size {return [array count];} + return sHistoryPath; +} +-(void)save +{ + NSString *historyPath = [FSCommandHistory _historyPath:nil]; + if (historyPath) { + NSData *archiveData = [NSKeyedArchiver archivedDataWithRootObject:self]; + if (archiveData.length) { + [archiveData writeToFile:historyPath atomically:YES]; + } + } +} + ++(FSCommandHistory*)latestHistoryWithSize:(NSUInteger)maxSize +{ + NSString *historyPath = [FSCommandHistory _historyPath:nil]; + FSCommandHistory *history = nil; + NSFileManager *fileManager = [NSFileManager new]; + if (historyPath && [fileManager fileExistsAtPath:historyPath]) { + history = [[NSKeyedUnarchiver unarchiveObjectWithFile:historyPath] retain]; + history->size = maxSize; + } + [fileManager release]; + return history ?: [[FSCommandHistory alloc] initWithUIntSize:maxSize]; + + +} @end diff --git a/FScriptFramework/ShellView.m b/FScriptFramework/ShellView.m index e74b317..d599331 100644 --- a/FScriptFramework/ShellView.m +++ b/FScriptFramework/ShellView.m @@ -109,7 +109,7 @@ - (id)initWithFrame:(NSRect)frameRect prompt:(NSString *)thePrompt historySize:( if (self = [super initWithFrame:frameRect]) { prompt = [thePrompt retain]; - history = [[FSCommandHistory alloc] initWithUIntSize:theHistorySize]; + history = [FSCommandHistory latestHistoryWithSize:theHistorySize]; parserMode = NO_DECOMPOSE; commandHandler = [theCommandHandler retain]; lineEdited = NO; @@ -267,14 +267,14 @@ - (void)moveUp:(id)sender if ([self selectedRange].location < start || [self selectedRange].location == loc) // moved before start of command || not moved because we are on the first line of the text view { - if ([self selectedRange].location >= start-[prompt length] && [self selectedRange].location < start) - // we are on the prompt, so we move to the start of the current command (the insertion point should not be on the prompt) - [self setSelectedRange:NSMakeRange(start,0)]; - else - { + if (loc >= start - prompt.length && self.selectedRange.location < start) { [self saveEditedCommand:self]; [self replaceCurrentCommandWith:[[history goToPrevious] getStr]]; - } + } + if ([self selectedRange].location >= start-[prompt length] && [self selectedRange].location < start) { + // we are on the prompt, so we move to the start of the current command (the insertion point should not be on the prompt) + [self setSelectedRange:NSMakeRange(start,0)]; + } } } From e1aaf5befc05c228c1891395b32ff782b13ae0d3 Mon Sep 17 00:00:00 2001 From: Ant Date: Thu, 2 Oct 2014 10:21:32 +0100 Subject: [PATCH 06/33] Upgraded NIBs to XIBs, but only use FSConsole and FSScriptPreferences for now --- F-Script/English.lproj/fs.xib | 3287 +++++++++++++++++ F-Script/English.lproj/fs~.xib | 3052 +++++++++++++++ F-Script/FScriptAppPreference.xib | 643 ++++ FSTest1/MainMenu.xib | 1615 ++++++++ FSTest2/MainMenu.xib | 1615 ++++++++ FScript.xcodeproj/project.pbxproj | 76 +- FScriptFramework/ArrayTableView.xib | 511 +++ .../FSAttributedStringInspector.xib | 711 ++++ .../FSAttributedStringInspector_alternate.xib | 839 +++++ FScriptFramework/FSCollectionInspector.xib | 419 +++ .../FSCollectionInspectorView.xib | 1131 ++++++ FScriptFramework/FSConsole.xib | 38 + FScriptFramework/FSImageInspector.xib | 360 ++ .../FSManagedObjectContextInspector.xib | 1042 ++++++ .../FSObjectBrowserButtonsInspector.xib | 1495 ++++++++ FScriptFramework/FScriptPreferences.xib | 679 ++++ FScriptFramework/blockInspector.xib | 927 +++++ FScriptFramework/genObjInspector.xib | 549 +++ .../FScriptIBPluginInspector.xib | 1048 ++++++ .../English.lproj/FScriptIBPluginLibrary.xib | 896 +++++ 20 files changed, 20897 insertions(+), 36 deletions(-) create mode 100644 F-Script/English.lproj/fs.xib create mode 100644 F-Script/English.lproj/fs~.xib create mode 100644 F-Script/FScriptAppPreference.xib create mode 100644 FSTest1/MainMenu.xib create mode 100644 FSTest2/MainMenu.xib create mode 100644 FScriptFramework/ArrayTableView.xib create mode 100644 FScriptFramework/FSAttributedStringInspector.xib create mode 100644 FScriptFramework/FSAttributedStringInspector_alternate.xib create mode 100644 FScriptFramework/FSCollectionInspector.xib create mode 100644 FScriptFramework/FSCollectionInspectorView.xib create mode 100644 FScriptFramework/FSConsole.xib create mode 100644 FScriptFramework/FSImageInspector.xib create mode 100644 FScriptFramework/FSManagedObjectContextInspector.xib create mode 100644 FScriptFramework/FSObjectBrowserButtonsInspector.xib create mode 100644 FScriptFramework/FScriptPreferences.xib create mode 100644 FScriptFramework/blockInspector.xib create mode 100644 FScriptFramework/genObjInspector.xib create mode 100644 FScriptIBPlugin/English.lproj/FScriptIBPluginInspector.xib create mode 100644 FScriptIBPlugin/English.lproj/FScriptIBPluginLibrary.xib diff --git a/F-Script/English.lproj/fs.xib b/F-Script/English.lproj/fs.xib new file mode 100644 index 0000000..e0ab91b --- /dev/null +++ b/F-Script/English.lproj/fs.xib @@ -0,0 +1,3287 @@ + + + + 1050 + 14A379a + 941 + 1343.13 + 755.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 941 + + + YES + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + PluginDependencyRecalculationVersion + + + + YES + + NSApplication + + + FirstResponder + + + NSApplication + + + 15 + 2 + {{272, 346}, {678, 407}} + 1350041600 + F-Script + NSWindow + View + + {1.7976931348623157e+308, 1.7976931348623157e+308} + {92, 10} + + + 256 + + YES + + + 274 + {678, 407} + + FSInterpreterView + + + {678, 407} + + {{0, 0}, {1680, 1028}} + {92, 32} + {1.7976931348623157e+308, 1.7976931348623157e+308} + mainWindow + YES + + + fs + + YES + + + F-Script + + 1048576 + 2147483647 + + NSImage + NSMenuCheckmark + + + NSImage + NSMenuMixedState + + submenuAction: + + + F-Script + + YES + + + About F-Script + + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Preferences... + , + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Services + + 1048576 + 2147483647 + + + submenuAction: + + + + Services + + + YES + + _NSServicesMenu + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Hide F-Script + h + 1048576 + 2147483647 + + + + + + Hide Others + h + 1572864 + 2147483647 + + + + + + Show All + + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Quit F-Script + q + 1048576 + 2147483647 + + + + + _NSAppleMenu + + + + + Workspace + + 1048576 + 2147483647 + + + submenuAction: + + + Workspace + + YES + + + Open Object Browser + + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Close Window + w + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Page Setup... + P + 1048576 + 2147483647 + + + + + + Print... + p + 1048576 + 2147483647 + + + + + + + + + Edit + + 1048576 + 2147483647 + + + submenuAction: + + + Edit + + YES + + + Undo + z + 1048576 + 2147483647 + + + + + + Redo + Z + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Cut + x + 1048576 + 2147483647 + + + + + + Copy + c + 1048576 + 2147483647 + + + + + + Paste + v + 1048576 + 2147483647 + + + + + + Delete + + 1048576 + 2147483647 + + + + + + Select All + a + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Find + + 1048576 + 2147483647 + + + submenuAction: + + + + Find + + + YES + + + Find… + f + 1048576 + 2147483647 + + + 1 + + + + Find Next + g + 1048576 + 2147483647 + + + 2 + + + + Find Previous + G + 1048576 + 2147483647 + + + 3 + + + + Use Selection for Find + e + 1048576 + 2147483647 + + + 7 + + + + Jump to Selection + j + 1048576 + 2147483647 + + + + + + + + + Spelling + + 1048576 + 2147483647 + + + submenuAction: + + + Spelling + + YES + + + Spelling... + : + 1048576 + 2147483647 + + + + + + Check Spelling + ; + 1048576 + 2147483647 + + + + + + Check Spelling As You Type + + 1048576 + 2147483647 + + + + + + + + + Speech + + 1048576 + 2147483647 + + + submenuAction: + + + Speech + + YES + + + Start speaking + + 1048576 + 2147483647 + + + + + + Stop speaking + + 1048576 + 2147483647 + + + + + + + + YES + + + + + View + + 1048576 + 2147483647 + + + submenuAction: + + + View + + YES + + + Customize Toolbar... + + 1048576 + 2147483647 + + + + + + + + + Format + + 1048576 + 2147483647 + + + submenuAction: + + + + Format + + + YES + + + Font + + 1048576 + 2147483647 + + + submenuAction: + + + + Font + + + YES + + + Show Fonts + t + 1048576 + 2147483647 + + + + + + Bold + b + 1048576 + 2147483647 + + + 2 + + + + Italic + i + 1048576 + 2147483647 + + + 1 + + + + Underline + u + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Bigger + + + 1048576 + 2147483647 + + + 3 + + + + Smaller + - + 1048576 + 2147483647 + + + 4 + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Kern + + 1048576 + 2147483647 + + + submenuAction: + + + + Kern + + + YES + + + Use Default + + 1048576 + 2147483647 + + + + + + Use None + + 1048576 + 2147483647 + + + + + + Tighten + + 1048576 + 2147483647 + + + + + + Loosen + + 1048576 + 2147483647 + + + + + + + + + Ligature + + 1048576 + 2147483647 + + + submenuAction: + + + + Ligature + + + YES + + + Use Default + + 1048576 + 2147483647 + + + + + + Use None + + 1048576 + 2147483647 + + + + + + Use All + + 1048576 + 2147483647 + + + + + + + + + Baseline + + 1048576 + 2147483647 + + + submenuAction: + + + + Baseline + + + YES + + + Use Default + + 1048576 + 2147483647 + + + + + + Superscript + + 1048576 + 2147483647 + + + + + + Subscript + + 1048576 + 2147483647 + + + + + + Raise + + 1048576 + 2147483647 + + + + + + Lower + + 1048576 + 2147483647 + + + + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Show Colors + C + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Copy Style + c + 1572864 + 2147483647 + + + + + + Paste Style + v + 1572864 + 2147483647 + + + + + _NSFontMenu + + + + + Text + + 1048576 + 2147483647 + + + submenuAction: + + + + Text + + + YES + + + Align Left + { + 1048576 + 2147483647 + + + + + + Center + | + 1048576 + 2147483647 + + + + + + Justify + + 1048576 + 2147483647 + + + + + + Align Right + } + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Show Ruler + + 1048576 + 2147483647 + + + + + + Copy Ruler + c + 1310720 + 2147483647 + + + + + + Paste Ruler + v + 1310720 + 2147483647 + + + + + + + + + + + + Window + + 1048576 + 2147483647 + + + submenuAction: + + + + Window + + + YES + + + Minimize + m + 1048576 + 2147483647 + + + + + + Zoom + + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Bring All to Front + + 1048576 + 2147483647 + + + + + _NSWindowsMenu + + + + _NSMainMenu + YES + + + FScriptAppController + + + NSFontManager + + + + + YES + + + interpreterView + + + + 121 + + + + delegate + + + + 127 + + + + delete: + + + + 189 + + + + selectAll: + + + + 190 + + + + paste: + + + + 191 + + + + copy: + + + + 192 + + + + cut: + + + + 193 + + + + print: + + + + 311 + + + + unhideAllApplications: + + + + 344 + + + + hide: + + + + 345 + + + + hideOtherApplications: + + + + 346 + + + + terminate: + + + + 347 + + + + showInfoPanel: + + + + 348 + + + + showPreferencePanel: + + + + 349 + + + + runPageLayout: + + + + 353 + + + + checkSpelling: + + + + 400 + + + + showGuessPanel: + + + + 401 + + + + toggleContinuousSpellChecking: + + + + 402 + + + + stopSpeaking: + + + + 407 + + + + startSpeaking: + + + + 408 + + + + redo: + + + + 467 + + + + undo: + + + + 468 + + + + runToolbarCustomizationPalette: + + + + 604 + + + + initialFirstResponder + + + + 606 + + + + performFindPanelAction: + + + + 614 + + + + centerSelectionInVisibleArea: + + + + 615 + + + + performFindPanelAction: + + + + 616 + + + + performFindPanelAction: + + + + 617 + + + + performFindPanelAction: + + + + 618 + + + + copyFont: + + + + 760 + + + + pasteFont: + + + + 761 + + + + pasteRuler: + + + + 762 + + + + underline: + + + + 763 + + + + superscript: + + + + 764 + + + + alignJustified: + + + + 765 + + + + orderFrontColorPanel: + + + + 766 + + + + useStandardLigatures: + + + + 767 + + + + tightenKerning: + + + + 768 + + + + addFontTrait: + + + + 769 + + + + raiseBaseline: + + + + 770 + + + + addFontTrait: + + + + 771 + + + + orderFrontFontPanel: + + + + 772 + + + + copyRuler: + + + + 773 + + + + alignLeft: + + + + 774 + + + + unscript: + + + + 775 + + + + toggleRuler: + + + + 776 + + + + turnOffKerning: + + + + 777 + + + + turnOffLigatures: + + + + 778 + + + + subscript: + + + + 779 + + + + lowerBaseline: + + + + 780 + + + + alignCenter: + + + + 781 + + + + alignRight: + + + + 782 + + + + useAllLigatures: + + + + 783 + + + + useStandardKerning: + + + + 784 + + + + modifyFont: + + + + 785 + + + + modifyFont: + + + + 786 + + + + loosenKerning: + + + + 787 + + + + performZoom: + + + + 794 + + + + arrangeInFront: + + + + 795 + + + + performMiniaturize: + + + + 796 + + + + performClose: + + + + 832 + + + + delegate + + + + 835 + + + + newObjectBrowser: + + + + 863 + + + + + YES + + 0 + + YES + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 21 + + + YES + + + + MyWindow + + + 2 + + + YES + + + + + + 119 + + + + + 44 + + + YES + + + + + + + + + MainMenu + + + 175 + + + YES + + + + + + 159 + + + YES + + + + + + + + + + + + + + + + + 164 + + + + + 165 + + + + + 167 + + + + + 173 + + + + + 181 + + + + + 396 + + + YES + + + + + + 398 + + + YES + + + + + + + + 395 + + + + + 397 + + + + + 399 + + + + + 406 + + + YES + + + + + + 403 + + + YES + + + + + + + 404 + + + + + 405 + + + + + 416 + + + + + 425 + + + + + 465 + + + + + 466 + + + + + 611 + + + YES + + + + + + 607 + + + YES + + + + + + + + + + 608 + + + + + 609 + + + + + 610 + + + + + 612 + + + + + 613 + + + + + 307 + + + YES + + + + + + 309 + + + YES + + + + + + + + + + + 304 + + + + + 305 + + + + + 352 + + + + + 646 + + + + + 650 + + + + + 651 + + + + + 342 + + + YES + + + + + + 343 + + + YES + + + + + + + + + + + + + + + + 331 + + + YES + + + + + + 334 + + + + + 332 + + + + + 333 + + + + + 335 + + + + + 336 + + + + + 337 + + + + + 338 + + + + + 339 + + + + + 340 + + + + + 341 + + + + + 670 + + + + + 601 + + + YES + + + + + + 596 + + + YES + + + + + + 598 + + + + + 715 + + + YES + + + + + + 740 + + + YES + + + + + + + 727 + + + YES + + + + + + 744 + + + YES + + + + + + + + + + + + + + + + + + + + + 717 + + + + + 718 + + + YES + + + + + + 750 + + + YES + + + + + + + + 732 + + + + + 755 + + + + + 758 + + + + + 720 + + + + + 721 + + + + + 723 + + + + + 724 + + + + + 725 + + + + + 730 + + + + + 735 + + + + + 738 + + + YES + + + + + + 716 + + + YES + + + + + + + + + 726 + + + + + 737 + + + + + 745 + + + + + 753 + + + + + 739 + + + + + 741 + + + + + 743 + + + + + 746 + + + + + 752 + + + + + 756 + + + YES + + + + + + 734 + + + YES + + + + + + + + + + 729 + + + + + 731 + + + + + 747 + + + + + 754 + + + + + 757 + + + + + 733 + + + YES + + + + + + 749 + + + YES + + + + + + + + + + + + + 719 + + + + + 722 + + + + + 728 + + + + + 736 + + + + + 742 + + + + + 748 + + + + + 751 + + + + + 759 + + + + + 788 + + + YES + + + + + + 792 + + + YES + + + + + + + + + 789 + + + + + 790 + + + + + 791 + + + + + 793 + + + + + 120 + + + FScriptAppControler + + + 252 + + + Font Manager + + + + + YES + + YES + -3.IBPluginDependency + -3.ImportedFromIB2 + 119.IBPluginDependency + 119.ImportedFromIB2 + 120.ImportedFromIB2 + 159.IBPluginDependency + 159.ImportedFromIB2 + 164.IBPluginDependency + 164.ImportedFromIB2 + 165.IBPluginDependency + 165.ImportedFromIB2 + 167.IBPluginDependency + 167.ImportedFromIB2 + 173.IBPluginDependency + 173.ImportedFromIB2 + 175.IBPluginDependency + 175.ImportedFromIB2 + 181.IBPluginDependency + 181.ImportedFromIB2 + 2.IBPluginDependency + 2.ImportedFromIB2 + 21.IBPluginDependency + 21.ImportedFromIB2 + 21.NSWindowTemplate.visibleAtLaunch + 21.windowTemplate.hasMinSize + 21.windowTemplate.minSize + 252.ImportedFromIB2 + 304.IBPluginDependency + 304.ImportedFromIB2 + 305.IBPluginDependency + 305.ImportedFromIB2 + 307.IBPluginDependency + 307.ImportedFromIB2 + 309.IBPluginDependency + 309.ImportedFromIB2 + 331.IBPluginDependency + 331.ImportedFromIB2 + 332.IBPluginDependency + 332.ImportedFromIB2 + 333.IBPluginDependency + 333.ImportedFromIB2 + 334.IBPluginDependency + 334.ImportedFromIB2 + 335.IBPluginDependency + 335.ImportedFromIB2 + 336.IBPluginDependency + 336.ImportedFromIB2 + 337.IBPluginDependency + 337.ImportedFromIB2 + 338.IBPluginDependency + 338.ImportedFromIB2 + 339.IBPluginDependency + 339.ImportedFromIB2 + 340.IBPluginDependency + 340.ImportedFromIB2 + 341.IBPluginDependency + 341.ImportedFromIB2 + 342.IBPluginDependency + 342.ImportedFromIB2 + 343.IBPluginDependency + 343.ImportedFromIB2 + 352.IBPluginDependency + 352.ImportedFromIB2 + 395.IBPluginDependency + 395.ImportedFromIB2 + 396.IBPluginDependency + 396.ImportedFromIB2 + 397.IBPluginDependency + 397.ImportedFromIB2 + 398.IBPluginDependency + 398.ImportedFromIB2 + 399.IBPluginDependency + 399.ImportedFromIB2 + 403.IBPluginDependency + 403.ImportedFromIB2 + 404.IBPluginDependency + 404.ImportedFromIB2 + 405.IBPluginDependency + 405.ImportedFromIB2 + 406.IBPluginDependency + 406.ImportedFromIB2 + 416.IBPluginDependency + 416.ImportedFromIB2 + 425.IBPluginDependency + 425.ImportedFromIB2 + 44.IBPluginDependency + 44.ImportedFromIB2 + 465.IBPluginDependency + 465.ImportedFromIB2 + 466.IBPluginDependency + 466.ImportedFromIB2 + 596.IBPluginDependency + 596.ImportedFromIB2 + 598.IBPluginDependency + 598.ImportedFromIB2 + 601.IBPluginDependency + 601.ImportedFromIB2 + 607.IBPluginDependency + 607.ImportedFromIB2 + 608.IBPluginDependency + 608.ImportedFromIB2 + 609.IBPluginDependency + 609.ImportedFromIB2 + 610.IBPluginDependency + 610.ImportedFromIB2 + 611.IBPluginDependency + 611.ImportedFromIB2 + 612.IBPluginDependency + 612.ImportedFromIB2 + 613.IBPluginDependency + 613.ImportedFromIB2 + 646.IBPluginDependency + 646.ImportedFromIB2 + 650.IBPluginDependency + 650.ImportedFromIB2 + 651.IBPluginDependency + 651.ImportedFromIB2 + 670.IBPluginDependency + 670.ImportedFromIB2 + 715.IBPluginDependency + 715.ImportedFromIB2 + 716.IBPluginDependency + 716.ImportedFromIB2 + 717.IBPluginDependency + 717.ImportedFromIB2 + 718.IBPluginDependency + 718.ImportedFromIB2 + 719.IBPluginDependency + 719.ImportedFromIB2 + 720.IBPluginDependency + 720.ImportedFromIB2 + 721.IBPluginDependency + 721.ImportedFromIB2 + 722.IBPluginDependency + 722.ImportedFromIB2 + 723.IBPluginDependency + 723.ImportedFromIB2 + 724.IBPluginDependency + 724.ImportedFromIB2 + 725.IBPluginDependency + 725.ImportedFromIB2 + 726.IBPluginDependency + 726.ImportedFromIB2 + 727.IBPluginDependency + 727.ImportedFromIB2 + 728.IBPluginDependency + 728.ImportedFromIB2 + 729.IBPluginDependency + 729.ImportedFromIB2 + 730.IBPluginDependency + 730.ImportedFromIB2 + 731.IBPluginDependency + 731.ImportedFromIB2 + 732.IBPluginDependency + 732.ImportedFromIB2 + 733.IBPluginDependency + 733.ImportedFromIB2 + 734.IBPluginDependency + 734.ImportedFromIB2 + 735.IBPluginDependency + 735.ImportedFromIB2 + 736.IBPluginDependency + 736.ImportedFromIB2 + 737.IBPluginDependency + 737.ImportedFromIB2 + 738.IBPluginDependency + 738.ImportedFromIB2 + 739.IBPluginDependency + 739.ImportedFromIB2 + 740.IBPluginDependency + 740.ImportedFromIB2 + 741.IBPluginDependency + 741.ImportedFromIB2 + 742.IBPluginDependency + 742.ImportedFromIB2 + 743.IBPluginDependency + 743.ImportedFromIB2 + 744.IBPluginDependency + 744.ImportedFromIB2 + 745.IBPluginDependency + 745.ImportedFromIB2 + 746.IBPluginDependency + 746.ImportedFromIB2 + 747.IBPluginDependency + 747.ImportedFromIB2 + 748.IBPluginDependency + 748.ImportedFromIB2 + 749.IBPluginDependency + 749.ImportedFromIB2 + 750.IBPluginDependency + 750.ImportedFromIB2 + 751.IBPluginDependency + 751.ImportedFromIB2 + 752.IBPluginDependency + 752.ImportedFromIB2 + 753.IBPluginDependency + 753.ImportedFromIB2 + 754.IBPluginDependency + 754.ImportedFromIB2 + 755.IBPluginDependency + 755.ImportedFromIB2 + 756.IBPluginDependency + 756.ImportedFromIB2 + 757.IBPluginDependency + 757.ImportedFromIB2 + 758.IBPluginDependency + 758.ImportedFromIB2 + 759.IBPluginDependency + 759.ImportedFromIB2 + 788.IBPluginDependency + 788.ImportedFromIB2 + 789.IBPluginDependency + 789.ImportedFromIB2 + 790.IBPluginDependency + 790.ImportedFromIB2 + 791.IBPluginDependency + 791.ImportedFromIB2 + 792.IBPluginDependency + 792.ImportedFromIB2 + 793.IBPluginDependency + 793.ImportedFromIB2 + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + + {92, 10} + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + + + YES + + + YES + + + + + YES + + + YES + + + + 871 + + + + YES + + FSInterpreterView + + YES + + YES + object1 + object2 + object3 + object4 + object5 + object6 + object7 + object8 + object9 + + + YES + id + id + id + id + id + id + id + id + id + + + + YES + + YES + object1 + object2 + object3 + object4 + object5 + object6 + object7 + object8 + object9 + + + YES + + object1 + id + + + object2 + id + + + object3 + id + + + object4 + id + + + object5 + id + + + object6 + id + + + object7 + id + + + object8 + id + + + object9 + id + + + + + IBUserSource + + + + + FScriptAppController + NSObject + + YES + + YES + newDemoAssistant: + newKVBrowser: + newObjectBrowser: + showConsole: + showInfoPanel: + showPreferencePanel: + updatePreference: + + + YES + id + id + id + id + id + id + id + + + + YES + + YES + newDemoAssistant: + newKVBrowser: + newObjectBrowser: + showConsole: + showInfoPanel: + showPreferencePanel: + updatePreference: + + + YES + + newDemoAssistant: + id + + + newKVBrowser: + id + + + newObjectBrowser: + id + + + showConsole: + id + + + showInfoPanel: + id + + + showPreferencePanel: + id + + + updatePreference: + id + + + + + YES + + YES + automaticallyIntrospectDeclaredPropertiesUI + confirmWhenQuittingUI + displayObjectBrowserAtLaunchTimeUI + fontSizeUI + infoPanel + interpreterView + preferencePanel + runWithObjCAutomaticGarbageCollectionUI + shouldJournalUI + + + YES + NSButton + NSButton + NSButton + NSTextField + NSPanel + FSInterpreterView + NSPanel + NSButton + NSButton + + + + YES + + YES + automaticallyIntrospectDeclaredPropertiesUI + confirmWhenQuittingUI + displayObjectBrowserAtLaunchTimeUI + fontSizeUI + infoPanel + interpreterView + preferencePanel + runWithObjCAutomaticGarbageCollectionUI + shouldJournalUI + + + YES + + automaticallyIntrospectDeclaredPropertiesUI + NSButton + + + confirmWhenQuittingUI + NSButton + + + displayObjectBrowserAtLaunchTimeUI + NSButton + + + fontSizeUI + NSTextField + + + infoPanel + NSPanel + + + interpreterView + FSInterpreterView + + + preferencePanel + NSPanel + + + runWithObjCAutomaticGarbageCollectionUI + NSButton + + + shouldJournalUI + NSButton + + + + + IBUserSource + + + + + FScriptTextView + NSTextView + + IBUserSource + + + + + FirstResponder + + YES + + YES + enterSelection: + findNext: + findPrevious: + newBigBrowser: + orderFrontFindPanel: + + + YES + id + id + id + id + id + + + + YES + + YES + enterSelection: + findNext: + findPrevious: + newBigBrowser: + orderFrontFindPanel: + + + YES + + enterSelection: + id + + + findNext: + id + + + findPrevious: + id + + + newBigBrowser: + id + + + orderFrontFindPanel: + id + + + + + IBUserSource + + + + + NSObject + + IBUserSource + + + + + ShellView + FScriptTextView + + YES + + YES + executeCurrentCommand: + moveDown: + moveLeft: + moveToBeginningOfLine: + moveToBeginningOfParagraph: + moveToEndOfLine: + moveToEndOfParagraph: + moveUp: + parenthesizeCommand: + paste: + saveEditedCommand: + switchParserMode: + + + YES + id + id + id + id + id + id + id + id + id + id + id + id + + + + YES + + YES + executeCurrentCommand: + moveDown: + moveLeft: + moveToBeginningOfLine: + moveToBeginningOfParagraph: + moveToEndOfLine: + moveToEndOfParagraph: + moveUp: + parenthesizeCommand: + paste: + saveEditedCommand: + switchParserMode: + + + YES + + executeCurrentCommand: + id + + + moveDown: + id + + + moveLeft: + id + + + moveToBeginningOfLine: + id + + + moveToBeginningOfParagraph: + id + + + moveToEndOfLine: + id + + + moveToEndOfParagraph: + id + + + moveUp: + id + + + parenthesizeCommand: + id + + + paste: + id + + + saveEditedCommand: + id + + + switchParserMode: + id + + + + + commandHandler + id + + + commandHandler + + commandHandler + id + + + + IBUserSource + + + + + + 0 + IBCocoaFramework + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + ../../FScript.xcodeproj + 3 + + YES + + YES + NSMenuCheckmark + NSMenuMixedState + + + YES + {12, 12} + {10, 2} + + + + diff --git a/F-Script/English.lproj/fs~.xib b/F-Script/English.lproj/fs~.xib new file mode 100644 index 0000000..e2ff1f9 --- /dev/null +++ b/F-Script/English.lproj/fs~.xib @@ -0,0 +1,3052 @@ + + + + 1020 + 14A379a + 941 + 1343.13 + 755.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 941 + + + YES + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + PluginDependencyRecalculationVersion + + + + YES + + NSApplication + + + FirstResponder + + + NSApplication + + + 15 + 2 + {{272, 346}, {678, 407}} + 1350041600 + F-Script + NSWindow + View + + {1.7976931348623157e+308, 1.7976931348623157e+308} + {92, 10} + + + 256 + + YES + + + 274 + {678, 407} + + FSInterpreterView + + + {{1, 9}, {678, 407}} + + {{0, 0}, {1440, 878}} + {92, 32} + {1.7976931348623157e+308, 1.7976931348623157e+308} + mainWindow + YES + + + fs + + YES + + + F-Script + + 1048576 + 2147483647 + + NSImage + NSMenuCheckmark + + + NSImage + NSMenuMixedState + + submenuAction: + + + F-Script + + YES + + + About F-Script + + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Preferences... + , + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Services + + 1048576 + 2147483647 + + + submenuAction: + + + + Services + + + YES + + _NSServicesMenu + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Hide F-Script + h + 1048576 + 2147483647 + + + + + + Hide Others + h + 1572864 + 2147483647 + + + + + + Show All + + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Quit F-Script + q + 1048576 + 2147483647 + + + + + _NSAppleMenu + + + + + Workspace + + 1048576 + 2147483647 + + + submenuAction: + + + Workspace + + YES + + + Open Object Browser + + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Close Window + w + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Page Setup... + P + 1048576 + 2147483647 + + + + + + Print... + p + 1048576 + 2147483647 + + + + + + + + + Edit + + 1048576 + 2147483647 + + + submenuAction: + + + Edit + + YES + + + Undo + z + 1048576 + 2147483647 + + + + + + Redo + Z + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Cut + x + 1048576 + 2147483647 + + + + + + Copy + c + 1048576 + 2147483647 + + + + + + Paste + v + 1048576 + 2147483647 + + + + + + Delete + + 1048576 + 2147483647 + + + + + + Select All + a + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Find + + 1048576 + 2147483647 + + + submenuAction: + + + + Find + + + YES + + + Find… + f + 1048576 + 2147483647 + + + 1 + + + + Find Next + g + 1048576 + 2147483647 + + + 2 + + + + Find Previous + G + 1048576 + 2147483647 + + + 3 + + + + Use Selection for Find + e + 1048576 + 2147483647 + + + 7 + + + + Jump to Selection + j + 1048576 + 2147483647 + + + + + + + + + Spelling + + 1048576 + 2147483647 + + + submenuAction: + + + Spelling + + YES + + + Spelling... + : + 1048576 + 2147483647 + + + + + + Check Spelling + ; + 1048576 + 2147483647 + + + + + + Check Spelling As You Type + + 1048576 + 2147483647 + + + + + + + + + Speech + + 1048576 + 2147483647 + + + submenuAction: + + + Speech + + YES + + + Start speaking + + 1048576 + 2147483647 + + + + + + Stop speaking + + 1048576 + 2147483647 + + + + + + + + YES + + + + + View + + 1048576 + 2147483647 + + + submenuAction: + + + View + + YES + + + Customize Toolbar... + + 1048576 + 2147483647 + + + + + + + + + Format + + 1048576 + 2147483647 + + + submenuAction: + + + + Format + + + YES + + + Font + + 1048576 + 2147483647 + + + submenuAction: + + + + Font + + + YES + + + Show Fonts + t + 1048576 + 2147483647 + + + + + + Bold + b + 1048576 + 2147483647 + + + 2 + + + + Italic + i + 1048576 + 2147483647 + + + 1 + + + + Underline + u + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Bigger + + + 1048576 + 2147483647 + + + 3 + + + + Smaller + - + 1048576 + 2147483647 + + + 4 + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Kern + + 1048576 + 2147483647 + + + submenuAction: + + + + Kern + + + YES + + + Use Default + + 1048576 + 2147483647 + + + + + + Use None + + 1048576 + 2147483647 + + + + + + Tighten + + 1048576 + 2147483647 + + + + + + Loosen + + 1048576 + 2147483647 + + + + + + + + + Ligature + + 1048576 + 2147483647 + + + submenuAction: + + + + Ligature + + + YES + + + Use Default + + 1048576 + 2147483647 + + + + + + Use None + + 1048576 + 2147483647 + + + + + + Use All + + 1048576 + 2147483647 + + + + + + + + + Baseline + + 1048576 + 2147483647 + + + submenuAction: + + + + Baseline + + + YES + + + Use Default + + 1048576 + 2147483647 + + + + + + Superscript + + 1048576 + 2147483647 + + + + + + Subscript + + 1048576 + 2147483647 + + + + + + Raise + + 1048576 + 2147483647 + + + + + + Lower + + 1048576 + 2147483647 + + + + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Show Colors + C + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Copy Style + c + 1572864 + 2147483647 + + + + + + Paste Style + v + 1572864 + 2147483647 + + + + + _NSFontMenu + + + + + Text + + 1048576 + 2147483647 + + + submenuAction: + + + + Text + + + YES + + + Align Left + { + 1048576 + 2147483647 + + + + + + Center + | + 1048576 + 2147483647 + + + + + + Justify + + 1048576 + 2147483647 + + + + + + Align Right + } + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Show Ruler + + 1048576 + 2147483647 + + + + + + Copy Ruler + c + 1310720 + 2147483647 + + + + + + Paste Ruler + v + 1310720 + 2147483647 + + + + + + + + + + + + Window + + 1048576 + 2147483647 + + + submenuAction: + + + + Window + + + YES + + + Minimize + m + 1048576 + 2147483647 + + + + + + Zoom + + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Bring All to Front + + 1048576 + 2147483647 + + + + + _NSWindowsMenu + + + + _NSMainMenu + YES + + + FScriptAppControler + + + NSFontManager + + + + + YES + + + interpreterView + + + + 121 + + + + delegate + + + + 127 + + + + delete: + + + + 189 + + + + selectAll: + + + + 190 + + + + paste: + + + + 191 + + + + copy: + + + + 192 + + + + cut: + + + + 193 + + + + print: + + + + 311 + + + + unhideAllApplications: + + + + 344 + + + + hide: + + + + 345 + + + + hideOtherApplications: + + + + 346 + + + + terminate: + + + + 347 + + + + showInfoPanel: + + + + 348 + + + + showPreferencePanel: + + + + 349 + + + + runPageLayout: + + + + 353 + + + + newBigBrowser: + + + + 355 + + + + checkSpelling: + + + + 400 + + + + showGuessPanel: + + + + 401 + + + + toggleContinuousSpellChecking: + + + + 402 + + + + stopSpeaking: + + + + 407 + + + + startSpeaking: + + + + 408 + + + + redo: + + + + 467 + + + + undo: + + + + 468 + + + + runToolbarCustomizationPalette: + + + + 604 + + + + initialFirstResponder + + + + 606 + + + + performFindPanelAction: + + + + 614 + + + + centerSelectionInVisibleArea: + + + + 615 + + + + performFindPanelAction: + + + + 616 + + + + performFindPanelAction: + + + + 617 + + + + performFindPanelAction: + + + + 618 + + + + copyFont: + + + + 760 + + + + pasteFont: + + + + 761 + + + + pasteRuler: + + + + 762 + + + + underline: + + + + 763 + + + + superscript: + + + + 764 + + + + alignJustified: + + + + 765 + + + + orderFrontColorPanel: + + + + 766 + + + + useStandardLigatures: + + + + 767 + + + + tightenKerning: + + + + 768 + + + + addFontTrait: + + + + 769 + + + + raiseBaseline: + + + + 770 + + + + addFontTrait: + + + + 771 + + + + orderFrontFontPanel: + + + + 772 + + + + copyRuler: + + + + 773 + + + + alignLeft: + + + + 774 + + + + unscript: + + + + 775 + + + + toggleRuler: + + + + 776 + + + + turnOffKerning: + + + + 777 + + + + turnOffLigatures: + + + + 778 + + + + subscript: + + + + 779 + + + + lowerBaseline: + + + + 780 + + + + alignCenter: + + + + 781 + + + + alignRight: + + + + 782 + + + + useAllLigatures: + + + + 783 + + + + useStandardKerning: + + + + 784 + + + + modifyFont: + + + + 785 + + + + modifyFont: + + + + 786 + + + + loosenKerning: + + + + 787 + + + + performZoom: + + + + 794 + + + + arrangeInFront: + + + + 795 + + + + performMiniaturize: + + + + 796 + + + + performClose: + + + + 832 + + + + delegate + + + + 835 + + + + + YES + + 0 + + YES + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + 21 + + + YES + + + + MyWindow + + + 2 + + + YES + + + + + + 119 + + + + + 44 + + + YES + + + + + + + + + MainMenu + + + 175 + + + YES + + + + + + 159 + + + YES + + + + + + + + + + + + + + + + + 164 + + + + + 165 + + + + + 167 + + + + + 173 + + + + + 181 + + + + + 396 + + + YES + + + + + + 398 + + + YES + + + + + + + + 395 + + + + + 397 + + + + + 399 + + + + + 406 + + + YES + + + + + + 403 + + + YES + + + + + + + 404 + + + + + 405 + + + + + 416 + + + + + 425 + + + + + 465 + + + + + 466 + + + + + 611 + + + YES + + + + + + 607 + + + YES + + + + + + + + + + 608 + + + + + 609 + + + + + 610 + + + + + 612 + + + + + 613 + + + + + 307 + + + YES + + + + + + 309 + + + YES + + + + + + + + + + + 304 + + + + + 305 + + + + + 352 + + + + + 646 + + + + + 650 + + + + + 651 + + + + + 342 + + + YES + + + + + + 343 + + + YES + + + + + + + + + + + + + + + + 331 + + + YES + + + + + + 334 + + + + + 332 + + + + + 333 + + + + + 335 + + + + + 336 + + + + + 337 + + + + + 338 + + + + + 339 + + + + + 340 + + + + + 341 + + + + + 670 + + + + + 601 + + + YES + + + + + + 596 + + + YES + + + + + + 598 + + + + + 715 + + + YES + + + + + + 740 + + + YES + + + + + + + 727 + + + YES + + + + + + 744 + + + YES + + + + + + + + + + + + + + + + + + + + + 717 + + + + + 718 + + + YES + + + + + + 750 + + + YES + + + + + + + + 732 + + + + + 755 + + + + + 758 + + + + + 720 + + + + + 721 + + + + + 723 + + + + + 724 + + + + + 725 + + + + + 730 + + + + + 735 + + + + + 738 + + + YES + + + + + + 716 + + + YES + + + + + + + + + 726 + + + + + 737 + + + + + 745 + + + + + 753 + + + + + 739 + + + + + 741 + + + + + 743 + + + + + 746 + + + + + 752 + + + + + 756 + + + YES + + + + + + 734 + + + YES + + + + + + + + + + 729 + + + + + 731 + + + + + 747 + + + + + 754 + + + + + 757 + + + + + 733 + + + YES + + + + + + 749 + + + YES + + + + + + + + + + + + + 719 + + + + + 722 + + + + + 728 + + + + + 736 + + + + + 742 + + + + + 748 + + + + + 751 + + + + + 759 + + + + + 788 + + + YES + + + + + + 792 + + + YES + + + + + + + + + 789 + + + + + 790 + + + + + 791 + + + + + 793 + + + + + 120 + + + FScriptAppControler + + + 252 + + + Font Manager + + + -3 + + + Application + + + + + YES + + YES + 119.IBPluginDependency + 119.ImportedFromIB2 + 120.ImportedFromIB2 + 159.IBPluginDependency + 159.ImportedFromIB2 + 164.IBPluginDependency + 164.ImportedFromIB2 + 165.IBPluginDependency + 165.ImportedFromIB2 + 167.IBPluginDependency + 167.ImportedFromIB2 + 173.IBPluginDependency + 173.ImportedFromIB2 + 175.IBPluginDependency + 175.ImportedFromIB2 + 181.IBPluginDependency + 181.ImportedFromIB2 + 2.IBPluginDependency + 2.ImportedFromIB2 + 21.IBPluginDependency + 21.ImportedFromIB2 + 21.NSWindowTemplate.visibleAtLaunch + 21.windowTemplate.hasMinSize + 21.windowTemplate.minSize + 252.ImportedFromIB2 + 304.IBPluginDependency + 304.ImportedFromIB2 + 305.IBPluginDependency + 305.ImportedFromIB2 + 307.IBPluginDependency + 307.ImportedFromIB2 + 309.IBPluginDependency + 309.ImportedFromIB2 + 331.IBPluginDependency + 331.ImportedFromIB2 + 332.IBPluginDependency + 332.ImportedFromIB2 + 333.IBPluginDependency + 333.ImportedFromIB2 + 334.IBPluginDependency + 334.ImportedFromIB2 + 335.IBPluginDependency + 335.ImportedFromIB2 + 336.IBPluginDependency + 336.ImportedFromIB2 + 337.IBPluginDependency + 337.ImportedFromIB2 + 338.IBPluginDependency + 338.ImportedFromIB2 + 339.IBPluginDependency + 339.ImportedFromIB2 + 340.IBPluginDependency + 340.ImportedFromIB2 + 341.IBPluginDependency + 341.ImportedFromIB2 + 342.IBPluginDependency + 342.ImportedFromIB2 + 343.IBPluginDependency + 343.ImportedFromIB2 + 352.IBPluginDependency + 352.ImportedFromIB2 + 395.IBPluginDependency + 395.ImportedFromIB2 + 396.IBPluginDependency + 396.ImportedFromIB2 + 397.IBPluginDependency + 397.ImportedFromIB2 + 398.IBPluginDependency + 398.ImportedFromIB2 + 399.IBPluginDependency + 399.ImportedFromIB2 + 403.IBPluginDependency + 403.ImportedFromIB2 + 404.IBPluginDependency + 404.ImportedFromIB2 + 405.IBPluginDependency + 405.ImportedFromIB2 + 406.IBPluginDependency + 406.ImportedFromIB2 + 416.IBPluginDependency + 416.ImportedFromIB2 + 425.IBPluginDependency + 425.ImportedFromIB2 + 44.IBPluginDependency + 44.ImportedFromIB2 + 465.IBPluginDependency + 465.ImportedFromIB2 + 466.IBPluginDependency + 466.ImportedFromIB2 + 596.IBPluginDependency + 596.ImportedFromIB2 + 598.IBPluginDependency + 598.ImportedFromIB2 + 601.IBPluginDependency + 601.ImportedFromIB2 + 607.IBPluginDependency + 607.ImportedFromIB2 + 608.IBPluginDependency + 608.ImportedFromIB2 + 609.IBPluginDependency + 609.ImportedFromIB2 + 610.IBPluginDependency + 610.ImportedFromIB2 + 611.IBPluginDependency + 611.ImportedFromIB2 + 612.IBPluginDependency + 612.ImportedFromIB2 + 613.IBPluginDependency + 613.ImportedFromIB2 + 646.IBPluginDependency + 646.ImportedFromIB2 + 650.IBPluginDependency + 650.ImportedFromIB2 + 651.IBPluginDependency + 651.ImportedFromIB2 + 670.IBPluginDependency + 670.ImportedFromIB2 + 715.IBPluginDependency + 715.ImportedFromIB2 + 716.IBPluginDependency + 716.ImportedFromIB2 + 717.IBPluginDependency + 717.ImportedFromIB2 + 718.IBPluginDependency + 718.ImportedFromIB2 + 719.IBPluginDependency + 719.ImportedFromIB2 + 720.IBPluginDependency + 720.ImportedFromIB2 + 721.IBPluginDependency + 721.ImportedFromIB2 + 722.IBPluginDependency + 722.ImportedFromIB2 + 723.IBPluginDependency + 723.ImportedFromIB2 + 724.IBPluginDependency + 724.ImportedFromIB2 + 725.IBPluginDependency + 725.ImportedFromIB2 + 726.IBPluginDependency + 726.ImportedFromIB2 + 727.IBPluginDependency + 727.ImportedFromIB2 + 728.IBPluginDependency + 728.ImportedFromIB2 + 729.IBPluginDependency + 729.ImportedFromIB2 + 730.IBPluginDependency + 730.ImportedFromIB2 + 731.IBPluginDependency + 731.ImportedFromIB2 + 732.IBPluginDependency + 732.ImportedFromIB2 + 733.IBPluginDependency + 733.ImportedFromIB2 + 734.IBPluginDependency + 734.ImportedFromIB2 + 735.IBPluginDependency + 735.ImportedFromIB2 + 736.IBPluginDependency + 736.ImportedFromIB2 + 737.IBPluginDependency + 737.ImportedFromIB2 + 738.IBPluginDependency + 738.ImportedFromIB2 + 739.IBPluginDependency + 739.ImportedFromIB2 + 740.IBPluginDependency + 740.ImportedFromIB2 + 741.IBPluginDependency + 741.ImportedFromIB2 + 742.IBPluginDependency + 742.ImportedFromIB2 + 743.IBPluginDependency + 743.ImportedFromIB2 + 744.IBPluginDependency + 744.ImportedFromIB2 + 745.IBPluginDependency + 745.ImportedFromIB2 + 746.IBPluginDependency + 746.ImportedFromIB2 + 747.IBPluginDependency + 747.ImportedFromIB2 + 748.IBPluginDependency + 748.ImportedFromIB2 + 749.IBPluginDependency + 749.ImportedFromIB2 + 750.IBPluginDependency + 750.ImportedFromIB2 + 751.IBPluginDependency + 751.ImportedFromIB2 + 752.IBPluginDependency + 752.ImportedFromIB2 + 753.IBPluginDependency + 753.ImportedFromIB2 + 754.IBPluginDependency + 754.ImportedFromIB2 + 755.IBPluginDependency + 755.ImportedFromIB2 + 756.IBPluginDependency + 756.ImportedFromIB2 + 757.IBPluginDependency + 757.ImportedFromIB2 + 758.IBPluginDependency + 758.ImportedFromIB2 + 759.IBPluginDependency + 759.ImportedFromIB2 + 788.IBPluginDependency + 788.ImportedFromIB2 + 789.IBPluginDependency + 789.ImportedFromIB2 + 790.IBPluginDependency + 790.ImportedFromIB2 + 791.IBPluginDependency + 791.ImportedFromIB2 + 792.IBPluginDependency + 792.ImportedFromIB2 + 793.IBPluginDependency + 793.ImportedFromIB2 + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + + {92, 10} + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + + + YES + + + YES + + + + + YES + + + YES + + + + 836 + + + + YES + + FSInterpreterView + + IBUserSource + + + + + FScriptAppControler + NSObject + + YES + + YES + myAction: + newBigBrowser: + newKVBrowser: + showConsole: + showInfoPanel: + showPreferencePanel: + updatePreference: + + + YES + id + id + id + id + id + id + id + + + + YES + + YES + myAction: + newBigBrowser: + newKVBrowser: + showConsole: + showInfoPanel: + showPreferencePanel: + updatePreference: + + + YES + + myAction: + id + + + newBigBrowser: + id + + + newKVBrowser: + id + + + showConsole: + id + + + showInfoPanel: + id + + + showPreferencePanel: + id + + + updatePreference: + id + + + + + YES + + YES + confirmWhenQuittingUI + displayObjectBrowserAtLaunchTimeUI + fontSizeUI + infoPanel + interpreterView + preferencePanel + shouldJournalUI + + + YES + NSButton + NSButton + NSTextField + NSPanel + FSInterpreterView + NSPanel + NSButton + + + + YES + + YES + confirmWhenQuittingUI + displayObjectBrowserAtLaunchTimeUI + fontSizeUI + infoPanel + interpreterView + preferencePanel + shouldJournalUI + + + YES + + confirmWhenQuittingUI + NSButton + + + displayObjectBrowserAtLaunchTimeUI + NSButton + + + fontSizeUI + NSTextField + + + infoPanel + NSPanel + + + interpreterView + FSInterpreterView + + + preferencePanel + NSPanel + + + shouldJournalUI + NSButton + + + + + IBUserSource + + + + + FirstResponder + + YES + + YES + enterSelection: + findNext: + findPrevious: + newBigBrowser: + orderFrontFindPanel: + + + YES + id + id + id + id + id + + + + YES + + YES + enterSelection: + findNext: + findPrevious: + newBigBrowser: + orderFrontFindPanel: + + + YES + + enterSelection: + id + + + findNext: + id + + + findPrevious: + id + + + newBigBrowser: + id + + + orderFrontFindPanel: + id + + + + + IBUserSource + + + + + + 0 + IBCocoaFramework + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + + 3 + + YES + + YES + NSMenuCheckmark + NSMenuMixedState + + + YES + {12, 12} + {10, 2} + + + + diff --git a/F-Script/FScriptAppPreference.xib b/F-Script/FScriptAppPreference.xib new file mode 100644 index 0000000..d43527f --- /dev/null +++ b/F-Script/FScriptAppPreference.xib @@ -0,0 +1,643 @@ + + + + 1050 + 14A379a + 941 + 1343.13 + 755.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 941 + + + + com.apple.InterfaceBuilder.CocoaPlugin + + + PluginDependencyRecalculationVersion + + + + + FScriptAppController + + + FirstResponder + + + NSApplication + + + 3 + 2 + {{333, 393}, {443, 138}} + -260571136 + F-Script Preferences + NSPanel + + View + + + {1.7976931348623157e+308, 1.7976931348623157e+308} + {297, 118} + + + 256 + + + + 256 + {{98, 100}, {50, 22}} + + YES + + -1804599232 + -2147482624 + + + .HelveticaNeueDeskInterface-Regular + 13 + 1040 + + + + + + + + + + NaN + + + + 0,00 + + + . + + + wqA + + 0 + 0 + NO + NO + 1 + AAAAAAAAAAAAAAAAAAAAAA + + + -0.00 + + 0.00 + + + 0.00 + -0.00 + + + + + + NaN + + + + + 0 + 0 + YES + NO + 1 + AAAAAAAAAAAAAAAAAAAAAA + + + 3 + YES + YES + YES + + . + wqA + NO + YES + YES + + + YES + + 6 + System + textBackgroundColor + + 3 + MQA + + + + 6 + System + textColor + + 3 + MAA + + + + NO + 1 + + + + 256 + {{18, 78}, {137, 18}} + + YES + + 67108864 + 0 + Enable journaling + + + -935575296 + 0 + + NSImage + NSSwitch + + + NSSwitch + + + + 200 + 25 + + NO + + + + 256 + {{17, 102}, {76, 17}} + + YES + + 67108864 + 134217728 + Font size + + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2NjY3AA + + + + 6 + System + controlTextColor + + + + NO + 1 + + + + 256 + {{18, 58}, {165, 18}} + + YES + + 67108864 + 0 + Confirm when quitting + + + -935575296 + 0 + + + + + 200 + 25 + + NO + + + + 256 + {{18, 38}, {260, 18}} + + YES + + 67108864 + 0 + Display object browser at launch time + + + -935575296 + 0 + + + + + 200 + 25 + + NO + + + + 256 + {{18, 18}, {407, 18}} + + YES + + 67108864 + 0 + Object browser automatically introspects declared properties + + + -935575296 + 0 + + + + + 200 + 25 + + NO + + + {443, 138} + + {{0, 0}, {1366, 746}} + {297, 140} + {1.7976931348623157e+308, 1.7976931348623157e+308} + YES + + + + + + + updatePreference: + + + + 30 + + + + updatePreference: + + + + 31 + + + + preferencePanel + + + + 32 + + + + fontSizeUI + + + + 33 + + + + shouldJournalUI + + + + 34 + + + + initialFirstResponder + + + + 39 + + + + confirmWhenQuittingUI + + + + 42 + + + + updatePreference: + + + + 43 + + + + displayObjectBrowserAtLaunchTimeUI + + + + 50 + + + + updatePreference: + + + + 51 + + + + updatePreference: + + + + 71 + + + + automaticallyIntrospectDeclaredPropertiesUI + + + + 72 + + + + + + 0 + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 24 + + + + + + Panel1 + + + 25 + + + + + + + + + + + + + 26 + + + + + + + + 28 + + + + + + + + 29 + + + + + + + + 40 + + + + + + + + 48 + + + + + + + + 69 + + + + + + + + 76 + + + + + + + + 77 + + + + + 78 + + + + + 79 + + + + + 80 + + + + + 82 + + + + + 27 + + + + + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + {297, 118} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Record in a journal file the instructions you type. The journal is stored into your F-Script repository folder. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + + + 82 + + + + + FSInterpreterView + NSView + + IBProjectSource + ./Classes/FSInterpreterView.h + + + + FScriptAppController + NSObject + + NSButton + NSButton + NSButton + NSTextField + NSPanel + FSInterpreterView + NSPanel + NSButton + NSButton + + + + automaticallyIntrospectDeclaredPropertiesUI + NSButton + + + confirmWhenQuittingUI + NSButton + + + displayObjectBrowserAtLaunchTimeUI + NSButton + + + fontSizeUI + NSTextField + + + infoPanel + NSPanel + + + interpreterView + FSInterpreterView + + + preferencePanel + NSPanel + + + runWithObjCAutomaticGarbageCollectionUI + NSButton + + + shouldJournalUI + NSButton + + + + IBProjectSource + ./Classes/FScriptAppController.h + + + + + 0 + IBCocoaFramework + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + YES + + 3 + + NSSwitch + {15, 15} + + + diff --git a/FSTest1/MainMenu.xib b/FSTest1/MainMenu.xib new file mode 100644 index 0000000..395701a --- /dev/null +++ b/FSTest1/MainMenu.xib @@ -0,0 +1,1615 @@ + + + + 1060 + 14A379a + 941 + 1343.13 + 755.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 941 + + + YES + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + PluginDependencyRecalculationVersion + + + + YES + + + NSApplication + + + + FirstResponder + + + NSApplication + + + 15 + 2 + {{320, 267}, {480, 360}} + 1886912512 + Window + NSWindow + + View + + + {1.7976931348623157e+308, 1.7976931348623157e+308} + {213, 107} + + + 256 + + YES + + {{1, 9}, {480, 360}} + + {{0, 0}, {1152, 746}} + {213, 129} + {1.7976931348623157e+308, 1.7976931348623157e+308} + YES + + + MainMenu + + YES + + + NewApplication + + 1048576 + 2147483647 + + NSImage + NSMenuCheckmark + + + NSImage + NSMenuMixedState + + submenuAction: + + + + Info + + + YES + + + About NewApplication + + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Preferences... + + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Services + + 1048576 + 2147483647 + + + submenuAction: + + + + Services + + + YES + + _NSServicesMenu + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Hide NewApplication + h + 1048576 + 2147483647 + + + + + + Hide Others + + 1048576 + 2147483647 + + + + + + Show All + + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Quit NewApplication + q + 1048576 + 2147483647 + + + + + _NSAppleMenu + + + + + File + + 1048576 + 2147483647 + + + submenuAction: + + + + File + + + YES + + + New + n + 1048576 + 2147483647 + + + + + + Open... + o + 1048576 + 2147483647 + + + + + + Open Recent + + 1048576 + 2147483647 + + + submenuAction: + + + + Open Recent + + + YES + + + YES + Clear Menu + + 1048576 + 2147483647 + + + + + _NSRecentDocumentsMenu + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Close + w + 1048576 + 2147483647 + + + + + + Save + s + 1048576 + 2147483647 + + + + + + Save As... + S + 1048576 + 2147483647 + + + + + + Revert + + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Page Setup... + P + 1048576 + 2147483647 + + + + + + Print... + p + 1048576 + 2147483647 + + + + + + + + + Edit + + 1048576 + 2147483647 + + + submenuAction: + + + + Edit + + + YES + + + Undo + z + 1048576 + 2147483647 + + + + + + Redo + Z + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Cut + x + 1048576 + 2147483647 + + + + + + Copy + c + 1048576 + 2147483647 + + + + + + Paste + v + 1048576 + 2147483647 + + + + + + Clear + + 1048576 + 2147483647 + + + + + + Select All + a + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Find + + 1048576 + 2147483647 + + + submenuAction: + + + + Find + + + YES + + + Find... + f + 1048576 + 2147483647 + + + + + + Find Next + g + 1048576 + 2147483647 + + + + + + Find Previous + d + 1048576 + 2147483647 + + + + + + Use Selection for Find + e + 1048576 + 2147483647 + + + + + + Scroll to Selection + j + 1048576 + 2147483647 + + + + + + + + + Spelling + + 1048576 + 2147483647 + + + submenuAction: + + + Spelling + + YES + + + Spelling... + : + 1048576 + 2147483647 + + + + + + Check Spelling + ; + 1048576 + 2147483647 + + + + + + Check Spelling As You Type + + 1048576 + 2147483647 + + + + + + + + + + + + Window + + 1048576 + 2147483647 + + + submenuAction: + + + + Window + + + YES + + + Minimize + m + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Bring All to Front + + 1048576 + 2147483647 + + + + + _NSWindowsMenu + + + + + Help + + 1048576 + 2147483647 + + + submenuAction: + + + + Help + + + YES + + + MyApp Help + ? + 1048576 + 2147483647 + + + + + + + + _NSMainMenu + + + + + YES + + + performMiniaturize: + + + + 37 + + + + arrangeInFront: + + + + 39 + + + + print: + + + + 86 + + + + runPageLayout: + + + + 87 + + + + showHelp: + + + + 122 + + + + clearRecentDocuments: + + + + 127 + + + + terminate: + + + + 139 + + + + orderFrontStandardAboutPanel: + + + + 142 + + + + hideOtherApplications: + + + + 146 + + + + hide: + + + + 152 + + + + unhideAllApplications: + + + + 153 + + + + cut: + + + + 175 + + + + paste: + + + + 176 + + + + redo: + + + + 178 + + + + selectAll: + + + + 179 + + + + undo: + + + + 180 + + + + copy: + + + + 181 + + + + clear: + + + + 183 + + + + showGuessPanel: + + + + 188 + + + + checkSpelling: + + + + 190 + + + + toggleContinuousSpellChecking: + + + + 192 + + + + performClose: + + + + 193 + + + + + YES + + 0 + + YES + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + 21 + + + YES + + + + Window + + + 2 + + + + + 29 + + + YES + + + + + + + + MainMenu + + + 19 + + + YES + + + + + + 24 + + + YES + + + + + + + + 5 + + + + + 23 + + + + + 92 + + + + + 56 + + + YES + + + + + + 57 + + + YES + + + + + + + + + + + + + + + + 58 + + + + + 129 + + + + + 131 + + + YES + + + + + + 130 + + + + + 134 + + + + + 136 + + + + + 143 + + + + + 144 + + + + + 145 + + + + + 149 + + + + + 150 + + + + + 194 + + + + + 83 + + + YES + + + + + + 81 + + + YES + + + + + + + + + + + + + + + + 72 + + + + + 73 + + + + + 74 + + + + + 75 + + + + + 77 + + + + + 78 + + + + + 79 + + + + + 80 + + + + + 82 + + + + + 112 + + + + + 124 + + + YES + + + + + + 125 + + + YES + + + + + + 126 + + + + + 103 + + + YES + + + + + + 106 + + + YES + + + + + + 111 + + + + + 163 + + + YES + + + + + + 169 + + + YES + + + + + + + + + + + + + + + + 156 + + + + + 157 + + + + + 158 + + + + + 160 + + + + + 164 + + + + + 168 + + + YES + + + + + + 159 + + + YES + + + + + + + + + + 154 + + + + + 155 + + + + + 161 + + + + + 162 + + + + + 167 + + + + + 171 + + + + + 172 + + + + + 173 + + + + + 174 + + + + + 184 + + + YES + + + + + + 185 + + + YES + + + + + + + + 187 + + + + + 189 + + + + + 191 + + + + + -3 + + + Application + + + + + YES + + YES + 103.IBPluginDependency + 103.ImportedFromIB2 + 106.IBPluginDependency + 106.ImportedFromIB2 + 111.IBPluginDependency + 111.ImportedFromIB2 + 112.IBPluginDependency + 112.ImportedFromIB2 + 124.IBPluginDependency + 124.ImportedFromIB2 + 125.IBPluginDependency + 125.ImportedFromIB2 + 126.IBPluginDependency + 126.ImportedFromIB2 + 129.IBPluginDependency + 129.ImportedFromIB2 + 130.IBPluginDependency + 130.ImportedFromIB2 + 131.IBPluginDependency + 131.ImportedFromIB2 + 134.IBPluginDependency + 134.ImportedFromIB2 + 136.IBPluginDependency + 136.ImportedFromIB2 + 143.IBPluginDependency + 143.ImportedFromIB2 + 144.IBPluginDependency + 144.ImportedFromIB2 + 145.IBPluginDependency + 145.ImportedFromIB2 + 149.IBPluginDependency + 149.ImportedFromIB2 + 150.IBPluginDependency + 150.ImportedFromIB2 + 154.IBPluginDependency + 154.ImportedFromIB2 + 155.IBPluginDependency + 155.ImportedFromIB2 + 156.IBPluginDependency + 156.ImportedFromIB2 + 157.IBPluginDependency + 157.ImportedFromIB2 + 158.IBPluginDependency + 158.ImportedFromIB2 + 159.IBPluginDependency + 159.ImportedFromIB2 + 160.IBPluginDependency + 160.ImportedFromIB2 + 161.IBPluginDependency + 161.ImportedFromIB2 + 162.IBPluginDependency + 162.ImportedFromIB2 + 163.IBPluginDependency + 163.ImportedFromIB2 + 164.IBPluginDependency + 164.ImportedFromIB2 + 167.IBPluginDependency + 167.ImportedFromIB2 + 168.IBPluginDependency + 168.ImportedFromIB2 + 169.IBPluginDependency + 169.ImportedFromIB2 + 171.IBPluginDependency + 171.ImportedFromIB2 + 172.IBPluginDependency + 172.ImportedFromIB2 + 173.IBPluginDependency + 173.ImportedFromIB2 + 174.IBPluginDependency + 174.ImportedFromIB2 + 184.IBPluginDependency + 184.ImportedFromIB2 + 185.IBPluginDependency + 185.ImportedFromIB2 + 187.IBPluginDependency + 187.ImportedFromIB2 + 189.IBPluginDependency + 189.ImportedFromIB2 + 19.IBPluginDependency + 19.ImportedFromIB2 + 191.IBPluginDependency + 191.ImportedFromIB2 + 194.IBPluginDependency + 194.ImportedFromIB2 + 2.IBPluginDependency + 2.ImportedFromIB2 + 21.IBPluginDependency + 21.ImportedFromIB2 + 21.NSWindowTemplate.visibleAtLaunch + 21.windowTemplate.hasMinSize + 21.windowTemplate.minSize + 23.IBPluginDependency + 23.ImportedFromIB2 + 24.IBPluginDependency + 24.ImportedFromIB2 + 29.IBPluginDependency + 29.ImportedFromIB2 + 5.IBPluginDependency + 5.ImportedFromIB2 + 56.IBPluginDependency + 56.ImportedFromIB2 + 57.IBPluginDependency + 57.ImportedFromIB2 + 58.IBPluginDependency + 58.ImportedFromIB2 + 72.IBPluginDependency + 72.ImportedFromIB2 + 73.IBPluginDependency + 73.ImportedFromIB2 + 74.IBPluginDependency + 74.ImportedFromIB2 + 75.IBPluginDependency + 75.ImportedFromIB2 + 77.IBPluginDependency + 77.ImportedFromIB2 + 78.IBPluginDependency + 78.ImportedFromIB2 + 79.IBPluginDependency + 79.ImportedFromIB2 + 80.IBPluginDependency + 80.ImportedFromIB2 + 81.IBPluginDependency + 81.ImportedFromIB2 + 82.IBPluginDependency + 82.ImportedFromIB2 + 83.IBPluginDependency + 83.ImportedFromIB2 + 92.IBPluginDependency + 92.ImportedFromIB2 + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + + {213, 107} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + + + YES + + + YES + + + + + YES + + + YES + + + + 195 + + + + YES + + FirstResponder + + IBUserSource + + + + + + 0 + IBCocoaFramework + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + + 3 + + YES + + YES + NSMenuCheckmark + NSMenuMixedState + + + YES + {12, 12} + {10, 2} + + + + diff --git a/FSTest2/MainMenu.xib b/FSTest2/MainMenu.xib new file mode 100644 index 0000000..0f6c806 --- /dev/null +++ b/FSTest2/MainMenu.xib @@ -0,0 +1,1615 @@ + + + + 1060 + 14A379a + 941 + 1343.13 + 755.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 941 + + + YES + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + PluginDependencyRecalculationVersion + + + + YES + + + NSApplication + + + + FirstResponder + + + NSApplication + + + 15 + 2 + {{320, 267}, {480, 360}} + 1886912512 + Window + NSWindow + + View + + + {1.7976931348623157e+308, 1.7976931348623157e+308} + {213, 107} + + + 256 + + YES + + {{1, 9}, {480, 360}} + + {{0, 0}, {1152, 746}} + {213, 129} + {1.7976931348623157e+308, 1.7976931348623157e+308} + YES + + + MainMenu + + YES + + + NewApplication + + 1048576 + 2147483647 + + NSImage + NSMenuCheckmark + + + NSImage + NSMenuMixedState + + submenuAction: + + + + Info + + + YES + + + About NewApplication + + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Preferences... + + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Services + + 1048576 + 2147483647 + + + submenuAction: + + + + Services + + + YES + + _NSServicesMenu + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Hide NewApplication + h + 1048576 + 2147483647 + + + + + + Hide Others + + 1048576 + 2147483647 + + + + + + Show All + + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Quit NewApplication + q + 1048576 + 2147483647 + + + + + _NSAppleMenu + + + + + File + + 1048576 + 2147483647 + + + submenuAction: + + + + File + + + YES + + + New + n + 1048576 + 2147483647 + + + + + + Open... + o + 1048576 + 2147483647 + + + + + + Open Recent + + 1048576 + 2147483647 + + + submenuAction: + + + + Open Recent + + + YES + + + YES + Clear Menu + + 1048576 + 2147483647 + + + + + _NSRecentDocumentsMenu + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Close + w + 1048576 + 2147483647 + + + + + + Save + s + 1048576 + 2147483647 + + + + + + Save As... + S + 1048576 + 2147483647 + + + + + + Revert + + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Page Setup... + P + 1048576 + 2147483647 + + + + + + Print... + p + 1048576 + 2147483647 + + + + + + + + + Edit + + 1048576 + 2147483647 + + + submenuAction: + + + + Edit + + + YES + + + Undo + z + 1048576 + 2147483647 + + + + + + Redo + Z + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Cut + x + 1048576 + 2147483647 + + + + + + Copy + c + 1048576 + 2147483647 + + + + + + Paste + v + 1048576 + 2147483647 + + + + + + Clear + + 1048576 + 2147483647 + + + + + + Select All + a + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Find + + 1048576 + 2147483647 + + + submenuAction: + + + + Find + + + YES + + + Find... + f + 1048576 + 2147483647 + + + + + + Find Next + g + 1048576 + 2147483647 + + + + + + Find Previous + d + 1048576 + 2147483647 + + + + + + Use Selection for Find + e + 1048576 + 2147483647 + + + + + + Scroll to Selection + j + 1048576 + 2147483647 + + + + + + + + + Spelling + + 1048576 + 2147483647 + + + submenuAction: + + + Spelling + + YES + + + Spelling... + : + 1048576 + 2147483647 + + + + + + Check Spelling + ; + 1048576 + 2147483647 + + + + + + Check Spelling As You Type + + 1048576 + 2147483647 + + + + + + + + + + + + Window + + 1048576 + 2147483647 + + + submenuAction: + + + + Window + + + YES + + + Minimize + m + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Bring All to Front + + 1048576 + 2147483647 + + + + + _NSWindowsMenu + + + + + Help + + 1048576 + 2147483647 + + + submenuAction: + + + + Help + + + YES + + + MyApp Help + ? + 1048576 + 2147483647 + + + + + + + + _NSMainMenu + + + + + YES + + + performMiniaturize: + + + + 37 + + + + arrangeInFront: + + + + 39 + + + + print: + + + + 86 + + + + runPageLayout: + + + + 87 + + + + showHelp: + + + + 122 + + + + clearRecentDocuments: + + + + 127 + + + + terminate: + + + + 139 + + + + orderFrontStandardAboutPanel: + + + + 142 + + + + hideOtherApplications: + + + + 146 + + + + hide: + + + + 152 + + + + unhideAllApplications: + + + + 153 + + + + cut: + + + + 175 + + + + paste: + + + + 176 + + + + redo: + + + + 178 + + + + selectAll: + + + + 179 + + + + undo: + + + + 180 + + + + copy: + + + + 181 + + + + clear: + + + + 183 + + + + showGuessPanel: + + + + 188 + + + + checkSpelling: + + + + 190 + + + + toggleContinuousSpellChecking: + + + + 192 + + + + performClose: + + + + 193 + + + + + YES + + 0 + + YES + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + 21 + + + YES + + + + Window + + + 2 + + + + + 29 + + + YES + + + + + + + + MainMenu + + + 19 + + + YES + + + + + + 24 + + + YES + + + + + + + + 5 + + + + + 23 + + + + + 92 + + + + + 56 + + + YES + + + + + + 57 + + + YES + + + + + + + + + + + + + + + + 58 + + + + + 129 + + + + + 131 + + + YES + + + + + + 130 + + + + + 134 + + + + + 136 + + + + + 143 + + + + + 144 + + + + + 145 + + + + + 149 + + + + + 150 + + + + + 194 + + + + + 83 + + + YES + + + + + + 81 + + + YES + + + + + + + + + + + + + + + + 72 + + + + + 73 + + + + + 74 + + + + + 75 + + + + + 77 + + + + + 78 + + + + + 79 + + + + + 80 + + + + + 82 + + + + + 112 + + + + + 124 + + + YES + + + + + + 125 + + + YES + + + + + + 126 + + + + + 103 + + + YES + + + + + + 106 + + + YES + + + + + + 111 + + + + + 163 + + + YES + + + + + + 169 + + + YES + + + + + + + + + + + + + + + + 156 + + + + + 157 + + + + + 158 + + + + + 160 + + + + + 164 + + + + + 168 + + + YES + + + + + + 159 + + + YES + + + + + + + + + + 154 + + + + + 155 + + + + + 161 + + + + + 162 + + + + + 167 + + + + + 171 + + + + + 172 + + + + + 173 + + + + + 174 + + + + + 184 + + + YES + + + + + + 185 + + + YES + + + + + + + + 187 + + + + + 189 + + + + + 191 + + + + + -3 + + + Application + + + + + YES + + YES + 103.IBPluginDependency + 103.ImportedFromIB2 + 106.IBPluginDependency + 106.ImportedFromIB2 + 111.IBPluginDependency + 111.ImportedFromIB2 + 112.IBPluginDependency + 112.ImportedFromIB2 + 124.IBPluginDependency + 124.ImportedFromIB2 + 125.IBPluginDependency + 125.ImportedFromIB2 + 126.IBPluginDependency + 126.ImportedFromIB2 + 129.IBPluginDependency + 129.ImportedFromIB2 + 130.IBPluginDependency + 130.ImportedFromIB2 + 131.IBPluginDependency + 131.ImportedFromIB2 + 134.IBPluginDependency + 134.ImportedFromIB2 + 136.IBPluginDependency + 136.ImportedFromIB2 + 143.IBPluginDependency + 143.ImportedFromIB2 + 144.IBPluginDependency + 144.ImportedFromIB2 + 145.IBPluginDependency + 145.ImportedFromIB2 + 149.IBPluginDependency + 149.ImportedFromIB2 + 150.IBPluginDependency + 150.ImportedFromIB2 + 154.IBPluginDependency + 154.ImportedFromIB2 + 155.IBPluginDependency + 155.ImportedFromIB2 + 156.IBPluginDependency + 156.ImportedFromIB2 + 157.IBPluginDependency + 157.ImportedFromIB2 + 158.IBPluginDependency + 158.ImportedFromIB2 + 159.IBPluginDependency + 159.ImportedFromIB2 + 160.IBPluginDependency + 160.ImportedFromIB2 + 161.IBPluginDependency + 161.ImportedFromIB2 + 162.IBPluginDependency + 162.ImportedFromIB2 + 163.IBPluginDependency + 163.ImportedFromIB2 + 164.IBPluginDependency + 164.ImportedFromIB2 + 167.IBPluginDependency + 167.ImportedFromIB2 + 168.IBPluginDependency + 168.ImportedFromIB2 + 169.IBPluginDependency + 169.ImportedFromIB2 + 171.IBPluginDependency + 171.ImportedFromIB2 + 172.IBPluginDependency + 172.ImportedFromIB2 + 173.IBPluginDependency + 173.ImportedFromIB2 + 174.IBPluginDependency + 174.ImportedFromIB2 + 184.IBPluginDependency + 184.ImportedFromIB2 + 185.IBPluginDependency + 185.ImportedFromIB2 + 187.IBPluginDependency + 187.ImportedFromIB2 + 189.IBPluginDependency + 189.ImportedFromIB2 + 19.IBPluginDependency + 19.ImportedFromIB2 + 191.IBPluginDependency + 191.ImportedFromIB2 + 194.IBPluginDependency + 194.ImportedFromIB2 + 2.IBPluginDependency + 2.ImportedFromIB2 + 21.IBPluginDependency + 21.ImportedFromIB2 + 21.NSWindowTemplate.visibleAtLaunch + 21.windowTemplate.hasMinSize + 21.windowTemplate.minSize + 23.IBPluginDependency + 23.ImportedFromIB2 + 24.IBPluginDependency + 24.ImportedFromIB2 + 29.IBPluginDependency + 29.ImportedFromIB2 + 5.IBPluginDependency + 5.ImportedFromIB2 + 56.IBPluginDependency + 56.ImportedFromIB2 + 57.IBPluginDependency + 57.ImportedFromIB2 + 58.IBPluginDependency + 58.ImportedFromIB2 + 72.IBPluginDependency + 72.ImportedFromIB2 + 73.IBPluginDependency + 73.ImportedFromIB2 + 74.IBPluginDependency + 74.ImportedFromIB2 + 75.IBPluginDependency + 75.ImportedFromIB2 + 77.IBPluginDependency + 77.ImportedFromIB2 + 78.IBPluginDependency + 78.ImportedFromIB2 + 79.IBPluginDependency + 79.ImportedFromIB2 + 80.IBPluginDependency + 80.ImportedFromIB2 + 81.IBPluginDependency + 81.ImportedFromIB2 + 82.IBPluginDependency + 82.ImportedFromIB2 + 83.IBPluginDependency + 83.ImportedFromIB2 + 92.IBPluginDependency + 92.ImportedFromIB2 + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + + {213, 107} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + + + YES + + + YES + + + + + YES + + + YES + + + + 195 + + + + YES + + FirstResponder + + IBUserSource + + + + + + 0 + IBCocoaFramework + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + + 3 + + YES + + YES + NSMenuCheckmark + NSMenuMixedState + + + YES + {12, 12} + {10, 2} + + + + diff --git a/FScript.xcodeproj/project.pbxproj b/FScript.xcodeproj/project.pbxproj index 208496c..e5a4f6c 100644 --- a/FScript.xcodeproj/project.pbxproj +++ b/FScript.xcodeproj/project.pbxproj @@ -7,12 +7,6 @@ objects = { /* Begin PBXBuildFile section */ - 8F0B64C905C5370D0099180D /* FSConsole.nib in Resources */ = {isa = PBXBuildFile; fileRef = 8F0B64C805C5370D0099180D /* FSConsole.nib */; }; - 8F0B64CA05C5370D0099180D /* FSConsole.nib in Resources */ = {isa = PBXBuildFile; fileRef = 8F0B64C805C5370D0099180D /* FSConsole.nib */; }; - 8F0B64CC05C5370E0099180D /* FSConsole.nib in Resources */ = {isa = PBXBuildFile; fileRef = 8F0B64C805C5370D0099180D /* FSConsole.nib */; }; - 8F0B665005C557A40099180D /* FScriptPreferences.nib in Resources */ = {isa = PBXBuildFile; fileRef = 8F0B664F05C557A40099180D /* FScriptPreferences.nib */; }; - 8F0B665105C557A40099180D /* FScriptPreferences.nib in Resources */ = {isa = PBXBuildFile; fileRef = 8F0B664F05C557A40099180D /* FScriptPreferences.nib */; }; - 8F0B665305C557A40099180D /* FScriptPreferences.nib in Resources */ = {isa = PBXBuildFile; fileRef = 8F0B664F05C557A40099180D /* FScriptPreferences.nib */; }; 8F0B66FD05C5639E0099180D /* FScriptMenuItem.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F0B66FB05C5639E0099180D /* FScriptMenuItem.h */; }; 8F0B66FE05C5639E0099180D /* FScriptMenuItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F0B66FC05C5639E0099180D /* FScriptMenuItem.m */; }; 8F0B66FF05C5639E0099180D /* FScriptMenuItem.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F0B66FB05C5639E0099180D /* FScriptMenuItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -133,8 +127,6 @@ 8F0CBC6D0BDB9519002B0AD7 /* ArrayTableView.nib in Resources */ = {isa = PBXBuildFile; fileRef = F58090FC03756D2401AED2EF /* ArrayTableView.nib */; }; 8F0CBC6E0BDB9519002B0AD7 /* constantsDictionary in Resources */ = {isa = PBXBuildFile; fileRef = 8F92F0380463F2A400F4C61F /* constantsDictionary */; }; 8F0CBC6F0BDB9519002B0AD7 /* FSAttributedStringInspector.nib in Resources */ = {isa = PBXBuildFile; fileRef = 8FDCCD7A05C0A0A000747C0A /* FSAttributedStringInspector.nib */; }; - 8F0CBC700BDB9519002B0AD7 /* FSConsole.nib in Resources */ = {isa = PBXBuildFile; fileRef = 8F0B64C805C5370D0099180D /* FSConsole.nib */; }; - 8F0CBC710BDB9519002B0AD7 /* FScriptPreferences.nib in Resources */ = {isa = PBXBuildFile; fileRef = 8F0B664F05C557A40099180D /* FScriptPreferences.nib */; }; 8F0CBC720BDB9519002B0AD7 /* run.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8F2D066F05CED9B9007EA81B /* run.tiff */; }; 8F0CBC730BDB9519002B0AD7 /* build.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8F56036505CF22660044FA65 /* build.tiff */; }; 8F0CBC750BDB9519002B0AD7 /* FSCollectionInspectorView.nib in Resources */ = {isa = PBXBuildFile; fileRef = 8FA8EF9107739FD4001BEC7B /* FSCollectionInspectorView.nib */; }; @@ -1426,8 +1418,6 @@ BA223259189FA403002C5B6A /* ArrayTableView.nib in Resources */ = {isa = PBXBuildFile; fileRef = F58090FC03756D2401AED2EF /* ArrayTableView.nib */; }; BA22325A189FA403002C5B6A /* constantsDictionary in Resources */ = {isa = PBXBuildFile; fileRef = 8F92F0380463F2A400F4C61F /* constantsDictionary */; }; BA22325B189FA403002C5B6A /* FSAttributedStringInspector.nib in Resources */ = {isa = PBXBuildFile; fileRef = 8FDCCD7A05C0A0A000747C0A /* FSAttributedStringInspector.nib */; }; - BA22325C189FA403002C5B6A /* FSConsole.nib in Resources */ = {isa = PBXBuildFile; fileRef = 8F0B64C805C5370D0099180D /* FSConsole.nib */; }; - BA22325D189FA403002C5B6A /* FScriptPreferences.nib in Resources */ = {isa = PBXBuildFile; fileRef = 8F0B664F05C557A40099180D /* FScriptPreferences.nib */; }; BA22325E189FA403002C5B6A /* run.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8F2D066F05CED9B9007EA81B /* run.tiff */; }; BA22325F189FA403002C5B6A /* build.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8F56036505CF22660044FA65 /* build.tiff */; }; BA223260189FA403002C5B6A /* FSCollectionInspectorView.nib in Resources */ = {isa = PBXBuildFile; fileRef = 8FA8EF9107739FD4001BEC7B /* FSCollectionInspectorView.nib */; }; @@ -1851,8 +1841,6 @@ BA223419189FA412002C5B6A /* ArrayTableView.nib in Resources */ = {isa = PBXBuildFile; fileRef = F58090FC03756D2401AED2EF /* ArrayTableView.nib */; }; BA22341A189FA412002C5B6A /* constantsDictionary in Resources */ = {isa = PBXBuildFile; fileRef = 8F92F0380463F2A400F4C61F /* constantsDictionary */; }; BA22341B189FA412002C5B6A /* FSAttributedStringInspector.nib in Resources */ = {isa = PBXBuildFile; fileRef = 8FDCCD7A05C0A0A000747C0A /* FSAttributedStringInspector.nib */; }; - BA22341C189FA412002C5B6A /* FSConsole.nib in Resources */ = {isa = PBXBuildFile; fileRef = 8F0B64C805C5370D0099180D /* FSConsole.nib */; }; - BA22341D189FA412002C5B6A /* FScriptPreferences.nib in Resources */ = {isa = PBXBuildFile; fileRef = 8F0B664F05C557A40099180D /* FScriptPreferences.nib */; }; BA22341E189FA412002C5B6A /* run.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8F2D066F05CED9B9007EA81B /* run.tiff */; }; BA22341F189FA412002C5B6A /* build.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8F56036505CF22660044FA65 /* build.tiff */; }; BA223420189FA412002C5B6A /* FSCollectionInspectorView.nib in Resources */ = {isa = PBXBuildFile; fileRef = 8FA8EF9107739FD4001BEC7B /* FSCollectionInspectorView.nib */; }; @@ -2272,8 +2260,6 @@ BA2235CD189FA429002C5B6A /* ArrayTableView.nib in Resources */ = {isa = PBXBuildFile; fileRef = F58090FC03756D2401AED2EF /* ArrayTableView.nib */; }; BA2235CE189FA429002C5B6A /* constantsDictionary in Resources */ = {isa = PBXBuildFile; fileRef = 8F92F0380463F2A400F4C61F /* constantsDictionary */; }; BA2235CF189FA429002C5B6A /* FSAttributedStringInspector.nib in Resources */ = {isa = PBXBuildFile; fileRef = 8FDCCD7A05C0A0A000747C0A /* FSAttributedStringInspector.nib */; }; - BA2235D0189FA429002C5B6A /* FSConsole.nib in Resources */ = {isa = PBXBuildFile; fileRef = 8F0B64C805C5370D0099180D /* FSConsole.nib */; }; - BA2235D1189FA429002C5B6A /* FScriptPreferences.nib in Resources */ = {isa = PBXBuildFile; fileRef = 8F0B664F05C557A40099180D /* FScriptPreferences.nib */; }; BA2235D2189FA429002C5B6A /* run.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8F2D066F05CED9B9007EA81B /* run.tiff */; }; BA2235D3189FA429002C5B6A /* build.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8F56036505CF22660044FA65 /* build.tiff */; }; BA2235D4189FA429002C5B6A /* FSCollectionInspectorView.nib in Resources */ = {isa = PBXBuildFile; fileRef = 8FA8EF9107739FD4001BEC7B /* FSCollectionInspectorView.nib */; }; @@ -2589,8 +2575,6 @@ BA223715189FA431002C5B6A /* ArrayTableView.nib in Resources */ = {isa = PBXBuildFile; fileRef = F58090FC03756D2401AED2EF /* ArrayTableView.nib */; }; BA223716189FA431002C5B6A /* constantsDictionary in Resources */ = {isa = PBXBuildFile; fileRef = 8F92F0380463F2A400F4C61F /* constantsDictionary */; }; BA223717189FA431002C5B6A /* FSAttributedStringInspector.nib in Resources */ = {isa = PBXBuildFile; fileRef = 8FDCCD7A05C0A0A000747C0A /* FSAttributedStringInspector.nib */; }; - BA223718189FA431002C5B6A /* FSConsole.nib in Resources */ = {isa = PBXBuildFile; fileRef = 8F0B64C805C5370D0099180D /* FSConsole.nib */; }; - BA223719189FA431002C5B6A /* FScriptPreferences.nib in Resources */ = {isa = PBXBuildFile; fileRef = 8F0B664F05C557A40099180D /* FScriptPreferences.nib */; }; BA22371A189FA431002C5B6A /* run.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8F2D066F05CED9B9007EA81B /* run.tiff */; }; BA22371B189FA431002C5B6A /* build.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8F56036505CF22660044FA65 /* build.tiff */; }; BA22371C189FA431002C5B6A /* FSCollectionInspectorView.nib in Resources */ = {isa = PBXBuildFile; fileRef = 8FA8EF9107739FD4001BEC7B /* FSCollectionInspectorView.nib */; }; @@ -2737,6 +2721,23 @@ BA2237AB189FA432002C5B6A /* ExceptionHandling.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F51B24640271980D01DB4759 /* ExceptionHandling.framework */; }; BA2237B2189FAC75002C5B6A /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E2DBA32D161CA7180035A675 /* AVFoundation.framework */; }; BA2237B3189FAC75002C5B6A /* AVKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA223099189F9976002C5B6A /* AVKit.framework */; }; + EDE508D019DD4AA00012F16A /* InterfaceBuilderKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA22313D189F9AA9002C5B6A /* InterfaceBuilderKit.framework */; }; + EDE508D219DD4D310012F16A /* FSConsole.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDE508D119DD4D310012F16A /* FSConsole.xib */; }; + EDE508D319DD4D310012F16A /* FSConsole.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDE508D119DD4D310012F16A /* FSConsole.xib */; }; + EDE508D419DD4D310012F16A /* FSConsole.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDE508D119DD4D310012F16A /* FSConsole.xib */; }; + EDE508D519DD4D310012F16A /* FSConsole.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDE508D119DD4D310012F16A /* FSConsole.xib */; }; + EDE508D619DD4D310012F16A /* FSConsole.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDE508D119DD4D310012F16A /* FSConsole.xib */; }; + EDE508D719DD4D310012F16A /* FSConsole.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDE508D119DD4D310012F16A /* FSConsole.xib */; }; + EDE508D819DD4D310012F16A /* FSConsole.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDE508D119DD4D310012F16A /* FSConsole.xib */; }; + EDE508D919DD4D310012F16A /* FSConsole.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDE508D119DD4D310012F16A /* FSConsole.xib */; }; + EDE508DB19DD4FDC0012F16A /* FScriptPreferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDE508DA19DD4FDC0012F16A /* FScriptPreferences.xib */; }; + EDE508DC19DD4FDC0012F16A /* FScriptPreferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDE508DA19DD4FDC0012F16A /* FScriptPreferences.xib */; }; + EDE508DD19DD4FDC0012F16A /* FScriptPreferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDE508DA19DD4FDC0012F16A /* FScriptPreferences.xib */; }; + EDE508DE19DD4FDC0012F16A /* FScriptPreferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDE508DA19DD4FDC0012F16A /* FScriptPreferences.xib */; }; + EDE508DF19DD4FDC0012F16A /* FScriptPreferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDE508DA19DD4FDC0012F16A /* FScriptPreferences.xib */; }; + EDE508E019DD4FDC0012F16A /* FScriptPreferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDE508DA19DD4FDC0012F16A /* FScriptPreferences.xib */; }; + EDE508E119DD4FDC0012F16A /* FScriptPreferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDE508DA19DD4FDC0012F16A /* FScriptPreferences.xib */; }; + EDE508E219DD4FDC0012F16A /* FScriptPreferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDE508DA19DD4FDC0012F16A /* FScriptPreferences.xib */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -2914,8 +2915,6 @@ 0CD4E46900D7E1F17BE9C1BD /* JavaVM.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaVM.framework; path = /System/Library/Frameworks/JavaVM.framework; sourceTree = ""; }; 66029E580161E0650055708C /* KTestManager.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = KTestManager.h; sourceTree = ""; }; 66029E590161E0650055708C /* KTestManager.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = KTestManager.m; sourceTree = ""; }; - 8F0B64C805C5370D0099180D /* FSConsole.nib */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = FSConsole.nib; path = FScriptFramework/FSConsole.nib; sourceTree = SOURCE_ROOT; }; - 8F0B664F05C557A40099180D /* FScriptPreferences.nib */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; path = FScriptPreferences.nib; sourceTree = ""; }; 8F0B66FB05C5639E0099180D /* FScriptMenuItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FScriptMenuItem.h; sourceTree = ""; }; 8F0B66FC05C5639E0099180D /* FScriptMenuItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FScriptMenuItem.m; sourceTree = ""; }; 8F0E3B7E059F3DBB003F6CE9 /* FSNamedNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSNamedNumber.h; sourceTree = ""; }; @@ -3234,6 +3233,8 @@ E2DBA329161CA6600035A675 /* Social.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Social.framework; path = System/Library/Frameworks/Social.framework; sourceTree = SDKROOT; }; E2DBA32B161CA6660035A675 /* VideoToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = VideoToolbox.framework; path = System/Library/Frameworks/VideoToolbox.framework; sourceTree = SDKROOT; }; E2DBA32D161CA7180035A675 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; + EDE508D119DD4D310012F16A /* FSConsole.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = FSConsole.xib; sourceTree = ""; }; + EDE508DA19DD4FDC0012F16A /* FScriptPreferences.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = FScriptPreferences.xib; sourceTree = ""; }; F501AF7B021497C401A75EC5 /* FScriptTextView.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = FScriptTextView.m; sourceTree = ""; }; F505647F02DF417501FE0326 /* Pointer.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = Pointer.m; sourceTree = ""; }; F505648002DF417501FE0326 /* Pointer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Pointer.h; sourceTree = ""; }; @@ -3313,6 +3314,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + EDE508D019DD4AA00012F16A /* InterfaceBuilderKit.framework in Frameworks */, 8F86086C0CF9F0AB00D2DC99 /* ScriptingBridge.framework in Frameworks */, 8FB5239B0C21FE330028B297 /* ExceptionHandling.framework in Frameworks */, 8FB523970C21FE030028B297 /* Cocoa.framework in Frameworks */, @@ -3833,7 +3835,7 @@ 0CD4E33600D7DFE17BE9C1BD /* FSCompilationResult.m */, 0CD4E33900D7DFE17BE9C1BD /* FSCompiler.h */, 0CD4E33A00D7DFE17BE9C1BD /* FSCompiler.m */, - 8F0B64C805C5370D0099180D /* FSConsole.nib */, + EDE508D119DD4D310012F16A /* FSConsole.xib */, F52EECA6036210E2016141BB /* FSConstantListBuilder.h */, F52EECA7036210E2016141BB /* FSConstantListBuilder.m */, 8FE7E0E6082AD964008231E8 /* FSCoreDataSample.h */, @@ -3843,7 +3845,7 @@ 0CD4E34F00D7DFE17BE9C1BD /* FScriptFunctions.m */, 8F0B66FB05C5639E0099180D /* FScriptMenuItem.h */, 8F0B66FC05C5639E0099180D /* FScriptMenuItem.m */, - 8F0B664F05C557A40099180D /* FScriptPreferences.nib */, + EDE508DA19DD4FDC0012F16A /* FScriptPreferences.xib */, F5FBEF2802149D32018C0134 /* FScriptTextView.h */, F501AF7B021497C401A75EC5 /* FScriptTextView.m */, 0CD4E33D00D7DFE17BE9C1BD /* FSExecEngine.h */, @@ -5673,17 +5675,17 @@ 8F0CBC6D0BDB9519002B0AD7 /* ArrayTableView.nib in Resources */, 8F0CBC6E0BDB9519002B0AD7 /* constantsDictionary in Resources */, 8F0CBC6F0BDB9519002B0AD7 /* FSAttributedStringInspector.nib in Resources */, - 8F0CBC700BDB9519002B0AD7 /* FSConsole.nib in Resources */, - 8F0CBC710BDB9519002B0AD7 /* FScriptPreferences.nib in Resources */, 8F0CBC720BDB9519002B0AD7 /* run.tiff in Resources */, 8F0CBC730BDB9519002B0AD7 /* build.tiff in Resources */, 8F0CBC750BDB9519002B0AD7 /* FSCollectionInspectorView.nib in Resources */, 8F0CBC770BDB9519002B0AD7 /* FSManagedObjectContextInspector.nib in Resources */, 8F913FDF0BDB92FC001685EA /* Info.plist in Resources */, 8F913FE00BDB92FC001685EA /* version.plist in Resources */, + EDE508E219DD4FDC0012F16A /* FScriptPreferences.xib in Resources */, 8FB524190C2205C20028B297 /* FScriptIBPluginInspector.nib in Resources */, 8FB5241A0C2205C20028B297 /* FScriptIBPluginLibrary.nib in Resources */, 8F38D0FA0C36AD13002512EE /* FScript.framework in Resources */, + EDE508D919DD4D310012F16A /* FSConsole.xib in Resources */, 8F6597B60C37F061006CDCA0 /* FScriptMenuItem.png in Resources */, 8F6631D20C4A270000FA798A /* FSMovieInspector.nib in Resources */, 8FE3DC9B0D26C0FD00A1D767 /* FSTestClasses.txt in Resources */, @@ -5704,11 +5706,11 @@ 8F6DA658055FC6980050409A /* fs.scriptSuite in Resources */, 8F6DA659055FC6980050409A /* fs.scriptTerminology in Resources */, 8F6DA65B055FC6980050409A /* FSObjectBrowserButtonsInspector.nib in Resources */, + EDE508D819DD4D310012F16A /* FSConsole.xib in Resources */, 8F6DA65D055FC6980050409A /* FSImageInspector.nib in Resources */, + EDE508E119DD4FDC0012F16A /* FScriptPreferences.xib in Resources */, 8F6DA65F055FC6980050409A /* ArrayTableView.nib in Resources */, 8FDCCD7E05C0A0A000747C0A /* FSAttributedStringInspector.nib in Resources */, - 8F0B64CC05C5370E0099180D /* FSConsole.nib in Resources */, - 8F0B665305C557A40099180D /* FScriptPreferences.nib in Resources */, 8F2D067305CED9B9007EA81B /* run.tiff in Resources */, 8F56036705CF22660044FA65 /* build.tiff in Resources */, 8FA8EFA307739FD5001BEC7B /* FSCollectionInspectorView.nib in Resources */, @@ -5736,6 +5738,7 @@ 8F6DA866055FC70C0050409A /* blockInspector.nib in Resources */, 8F6DA869055FC70C0050409A /* FlightTutorial.txt in Resources */, 8F6DA86A055FC70C0050409A /* genObjInspector.nib in Resources */, + EDE508D219DD4D310012F16A /* FSConsole.xib in Resources */, 8F6DA86B055FC70C0050409A /* KTest.txt in Resources */, 8F6DA86C055FC70C0050409A /* license.txt in Resources */, 8F6DA86D055FC70C0050409A /* fs.icns in Resources */, @@ -5748,8 +5751,7 @@ 8F6DA878055FC70C0050409A /* ArrayTableView.nib in Resources */, 8F6DA879055FC70C0050409A /* constantsDictionary in Resources */, 8FDCCD7C05C0A0A000747C0A /* FSAttributedStringInspector.nib in Resources */, - 8F0B64CA05C5370D0099180D /* FSConsole.nib in Resources */, - 8F0B665105C557A40099180D /* FScriptPreferences.nib in Resources */, + EDE508DB19DD4FDC0012F16A /* FScriptPreferences.xib in Resources */, 8F2D067105CED9B9007EA81B /* run.tiff in Resources */, 8F56036805CF22660044FA65 /* build.tiff in Resources */, 8FA8EFA007739FD5001BEC7B /* FSCollectionInspectorView.nib in Resources */, @@ -5764,10 +5766,12 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + EDE508D319DD4D310012F16A /* FSConsole.xib in Resources */, 8F6DA964055FC71F0050409A /* FSCollectionInspector.nib in Resources */, 8F6DA965055FC71F0050409A /* blockInspector.nib in Resources */, 8F6DA968055FC71F0050409A /* FlightTutorial.txt in Resources */, 8F6DA969055FC71F0050409A /* genObjInspector.nib in Resources */, + EDE508DC19DD4FDC0012F16A /* FScriptPreferences.xib in Resources */, 8F6DA96A055FC71F0050409A /* KTest.txt in Resources */, 8F6DA96B055FC71F0050409A /* license.txt in Resources */, 8F6DA96D055FC71F0050409A /* fs.scriptSuite in Resources */, @@ -5778,8 +5782,6 @@ 8F6DA974055FC71F0050409A /* ArrayTableView.nib in Resources */, 8F6DA975055FC71F0050409A /* constantsDictionary in Resources */, 8FDCCD7B05C0A0A000747C0A /* FSAttributedStringInspector.nib in Resources */, - 8F0B64C905C5370D0099180D /* FSConsole.nib in Resources */, - 8F0B665005C557A40099180D /* FScriptPreferences.nib in Resources */, 8F2D067005CED9B9007EA81B /* run.tiff in Resources */, 8F56036905CF22660044FA65 /* build.tiff in Resources */, 8FA8EF9F07739FD4001BEC7B /* FSCollectionInspectorView.nib in Resources */, @@ -5799,6 +5801,7 @@ BA22324D189FA403002C5B6A /* blockInspector.nib in Resources */, BA22324E189FA403002C5B6A /* FlightTutorial.txt in Resources */, BA22324F189FA403002C5B6A /* genObjInspector.nib in Resources */, + EDE508D419DD4D310012F16A /* FSConsole.xib in Resources */, BA223250189FA403002C5B6A /* KTest.txt in Resources */, BA223251189FA403002C5B6A /* license.txt in Resources */, BA223252189FA403002C5B6A /* fs.icns in Resources */, @@ -5811,8 +5814,7 @@ BA223259189FA403002C5B6A /* ArrayTableView.nib in Resources */, BA22325A189FA403002C5B6A /* constantsDictionary in Resources */, BA22325B189FA403002C5B6A /* FSAttributedStringInspector.nib in Resources */, - BA22325C189FA403002C5B6A /* FSConsole.nib in Resources */, - BA22325D189FA403002C5B6A /* FScriptPreferences.nib in Resources */, + EDE508DD19DD4FDC0012F16A /* FScriptPreferences.xib in Resources */, BA22325E189FA403002C5B6A /* run.tiff in Resources */, BA22325F189FA403002C5B6A /* build.tiff in Resources */, BA223260189FA403002C5B6A /* FSCollectionInspectorView.nib in Resources */, @@ -5833,6 +5835,7 @@ BA22340D189FA412002C5B6A /* blockInspector.nib in Resources */, BA22340E189FA412002C5B6A /* FlightTutorial.txt in Resources */, BA22340F189FA412002C5B6A /* genObjInspector.nib in Resources */, + EDE508D619DD4D310012F16A /* FSConsole.xib in Resources */, BA223410189FA412002C5B6A /* KTest.txt in Resources */, BA223411189FA412002C5B6A /* license.txt in Resources */, BA223412189FA412002C5B6A /* fs.icns in Resources */, @@ -5845,8 +5848,7 @@ BA223419189FA412002C5B6A /* ArrayTableView.nib in Resources */, BA22341A189FA412002C5B6A /* constantsDictionary in Resources */, BA22341B189FA412002C5B6A /* FSAttributedStringInspector.nib in Resources */, - BA22341C189FA412002C5B6A /* FSConsole.nib in Resources */, - BA22341D189FA412002C5B6A /* FScriptPreferences.nib in Resources */, + EDE508DF19DD4FDC0012F16A /* FScriptPreferences.xib in Resources */, BA22341E189FA412002C5B6A /* run.tiff in Resources */, BA22341F189FA412002C5B6A /* build.tiff in Resources */, BA223420189FA412002C5B6A /* FSCollectionInspectorView.nib in Resources */, @@ -5861,10 +5863,12 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + EDE508D519DD4D310012F16A /* FSConsole.xib in Resources */, BA2235C2189FA429002C5B6A /* FSCollectionInspector.nib in Resources */, BA2235C3189FA429002C5B6A /* blockInspector.nib in Resources */, BA2235C4189FA429002C5B6A /* FlightTutorial.txt in Resources */, BA2235C5189FA429002C5B6A /* genObjInspector.nib in Resources */, + EDE508DE19DD4FDC0012F16A /* FScriptPreferences.xib in Resources */, BA2235C6189FA429002C5B6A /* KTest.txt in Resources */, BA2235C7189FA429002C5B6A /* license.txt in Resources */, BA2235C8189FA429002C5B6A /* fs.scriptSuite in Resources */, @@ -5875,8 +5879,6 @@ BA2235CD189FA429002C5B6A /* ArrayTableView.nib in Resources */, BA2235CE189FA429002C5B6A /* constantsDictionary in Resources */, BA2235CF189FA429002C5B6A /* FSAttributedStringInspector.nib in Resources */, - BA2235D0189FA429002C5B6A /* FSConsole.nib in Resources */, - BA2235D1189FA429002C5B6A /* FScriptPreferences.nib in Resources */, BA2235D2189FA429002C5B6A /* run.tiff in Resources */, BA2235D3189FA429002C5B6A /* build.tiff in Resources */, BA2235D4189FA429002C5B6A /* FSCollectionInspectorView.nib in Resources */, @@ -5890,10 +5892,12 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + EDE508D719DD4D310012F16A /* FSConsole.xib in Resources */, BA22370A189FA431002C5B6A /* FSCollectionInspector.nib in Resources */, BA22370B189FA431002C5B6A /* blockInspector.nib in Resources */, BA22370C189FA431002C5B6A /* FlightTutorial.txt in Resources */, BA22370D189FA431002C5B6A /* genObjInspector.nib in Resources */, + EDE508E019DD4FDC0012F16A /* FScriptPreferences.xib in Resources */, BA22370E189FA431002C5B6A /* KTest.txt in Resources */, BA22370F189FA431002C5B6A /* license.txt in Resources */, BA223710189FA431002C5B6A /* fs.scriptSuite in Resources */, @@ -5904,8 +5908,6 @@ BA223715189FA431002C5B6A /* ArrayTableView.nib in Resources */, BA223716189FA431002C5B6A /* constantsDictionary in Resources */, BA223717189FA431002C5B6A /* FSAttributedStringInspector.nib in Resources */, - BA223718189FA431002C5B6A /* FSConsole.nib in Resources */, - BA223719189FA431002C5B6A /* FScriptPreferences.nib in Resources */, BA22371A189FA431002C5B6A /* run.tiff in Resources */, BA22371B189FA431002C5B6A /* build.tiff in Resources */, BA22371C189FA431002C5B6A /* FSCollectionInspectorView.nib in Resources */, @@ -7535,6 +7537,7 @@ FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", + "$(DEVELOPER_FRAMEWORKS_DIR)", ); FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SYSTEM_DEVELOPER_DIR)/Library/Frameworks\""; GCC_DYNAMIC_NO_PIC = NO; @@ -7566,6 +7569,7 @@ FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(FRAMEWORK_SEARCH_PATHS_QUOTED_1)", + "$(DEVELOPER_FRAMEWORKS_DIR)", ); FRAMEWORK_SEARCH_PATHS_QUOTED_1 = "\"$(SYSTEM_DEVELOPER_DIR)/Library/Frameworks\""; GCC_ENABLE_OBJC_GC = unsupported; diff --git a/FScriptFramework/ArrayTableView.xib b/FScriptFramework/ArrayTableView.xib new file mode 100644 index 0000000..d0eca84 --- /dev/null +++ b/FScriptFramework/ArrayTableView.xib @@ -0,0 +1,511 @@ + + + + 1050 + 14A379a + 941 + 1343.13 + 755.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 941 + + + YES + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + PluginDependencyRecalculationVersion + + + + YES + + ArrayTableView + + + FirstResponder + + + NSApplication + + + 15 + 2 + {{178, 303}, {488, 244}} + 813170688 + ArrayTableView + NSWindow + View + + {1.7976931348623157e+308, 1.7976931348623157e+308} + + + 256 + + YES + + + 274 + + YES + + + 2304 + + YES + + + 256 + {471, 211} + + YES + NO + YES + + + 256 + {471, 17} + + + + + + 256 + {{472, 0}, {16, 17}} + + + + YES + + 47 + 10 + 1000 + + 75497536 + 2048 + + + .HelveticaNeueDeskInterface-Regular + 12 + 4880 + + + 3 + MC4zMzMzMzMzMzMzAA + + + 6 + System + headerTextColor + + 3 + MAA + + + + + 338690112 + 1024 + 9 + + Helvetica + 12 + 16 + + + + 3 + MQA + + + 6 + System + controlTextColor + + + + 3 + YES + YES + + + + 418 + 10 + 1000 + + 75497536 + 2048 + + + + + + + 338690112 + 1024 + Redwood City + + + + + + 3 + YES + YES + + + + 3 + 2 + + 6 + System + controlBackgroundColor + + 3 + MC42NjY2NjY2NjY3AA + + + + 6 + System + gridColor + + 3 + MC41AA + + + 16 + -767557632 + + + 4 + -1 + 0 + YES + 0 + 1 + + + {{1, 17}, {471, 211}} + + + + + 4 + YES + + + + 256 + {{472, 17}, {15, 211}} + + NO + _doScroller: + + + _doScroller: + 0.7849462628364563 + + + + 256 + {{1, 228}, {471, 15}} + + NO + _doScroller: + + 1 + + _doScroller: + 0.99009901285171509 + + + + 2304 + + YES + + + {{1, 0}, {471, 17}} + + + + YES + + + + {488, 244} + + + 133170 + + + + + QSAAAEEgAABBkAAAQZAAAA + 0.25 + 4 + 1 + + + {{1, 9}, {488, 244}} + + {{0, 0}, {1440, 878}} + {1.7976931348623157e+308, 1.7976931348623157e+308} + YES + + + + + YES + + + dataSource + + + + 11 + + + + tableView + + + + 19 + + + + + YES + + 0 + + YES + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 5 + + + YES + + + + Window + + + 6 + + + YES + + + + + + 7 + + + YES + + + + + + + + + 8 + + + YES + + + + + + + 9 + + + YES + + + + + + 10 + + + YES + + + + + + 21 + + + + + 22 + + + + + 23 + + + + + 24 + + + + + 25 + + + + + + + YES + + YES + -3.IBPluginDependency + -3.ImportedFromIB2 + 10.IBPluginDependency + 10.ImportedFromIB2 + 21.IBShouldRemoveOnLegacySave + 22.IBShouldRemoveOnLegacySave + 23.IBShouldRemoveOnLegacySave + 24.IBShouldRemoveOnLegacySave + 25.IBShouldRemoveOnLegacySave + 5.IBPluginDependency + 5.ImportedFromIB2 + 5.NSWindowTemplate.visibleAtLaunch + 6.IBPluginDependency + 6.ImportedFromIB2 + 7.IBPluginDependency + 7.ImportedFromIB2 + 8.IBPluginDependency + 8.ImportedFromIB2 + 9.IBPluginDependency + 9.ImportedFromIB2 + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + + + + + com.apple.InterfaceBuilder.CocoaPlugin + + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + + + YES + + + YES + + + + + YES + + + YES + + + + 25 + + + + YES + + ArrayTableView + NSObject + + tableView + id + + + tableView + + tableView + id + + + + IBUserSource + + + + + FirstResponder + + IBUserSource + + + + + + 0 + IBCocoaFramework + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + + 3 + + diff --git a/FScriptFramework/FSAttributedStringInspector.xib b/FScriptFramework/FSAttributedStringInspector.xib new file mode 100644 index 0000000..2c9202a --- /dev/null +++ b/FScriptFramework/FSAttributedStringInspector.xib @@ -0,0 +1,711 @@ + + + + 1060 + 14A379a + 941 + 1343.13 + 755.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 941 + + + YES + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + PluginDependencyRecalculationVersion + + + + YES + + FSAttributedStringInspector + + + FirstResponder + + + NSApplication + + + 15 + 2 + {{721, 310}, {610, 302}} + 813170688 + + NSWindow + + + A0BE7FD8-A5F5-4118-889F-13CF410CA36E + + + YES + NO + YES + YES + 2 + 1 + + 3B5643D3-DE2E-46CD-BDFE-2EEBA19BFFA3 + + + 3B5643D3-DE2E-46CD-BDFE-2EEBA19BFFA3 + + Refresh + Refresh + + + + 268 + {{0, 14}, {80, 25}} + YES + + -2080374784 + 134217728 + Refresh + + .HelveticaNeueDeskInterface-Regular + 13 + 1040 + + + -2038153216 + 163 + + + 400 + 75 + + NO + + + + + {80, 25} + {80, 25} + YES + YES + 0 + YES + 0 + + + + YES + + + + YES + + + + YES + + + + {1.7976931348623157e+308, 1.7976931348623157e+308} + {213, 107} + + + 256 + + YES + + + 274 + + YES + + + 274 + + YES + + + 2304 + + YES + + + 2322 + {{0, 2}, {608, 109}} + + + + + + + + + + + YES + + + 38 + + + + 608 + 1 + + + 100674413 + 0 + + + 3 + MQA + + + YES + + YES + NSBackgroundColor + NSColor + + + YES + + 6 + System + selectedTextBackgroundColor + + 3 + MC42NjY2NjY2NjY3AA + + + + 6 + System + selectedTextColor + + 3 + MAA + + + + + + 6 + System + controlTextColor + + + + YES + + YES + NSColor + NSUnderline + + + YES + + 1 + MCAwIDEAA + + + + + + + 1 + + 6 + {608, 10000000} + + + + {{1, 1}, {608, 109}} + + + + + + {4, 5} + + 12582912 + + YES + + YES + + + + TU0AKgAAAHCAFUqgBVKsAAAAwdVQUqwaEQeIRGJRGFlYqwWLQ+JxuOQpVRmEx2RROKwOQyOUQSPyaUym +SxqWyKXyeYxyZzWbSuJTScRCbz2Nz+gRKhUOfTqeUai0OSxiWTiBQSHSGFquGwekxyAgAAAOAQAAAwAA +AAEAEAAAAQEAAwAAAAEAEAAAAQIAAwAAAAIACAAIAQMAAwAAAAEABQAAAQYAAwAAAAEAAQAAAREABAAA +AAEAAAAIARIAAwAAAAEAAQAAARUAAwAAAAEAAgAAARYAAwAAAAEAEAAAARcABAAAAAEAAABnARwAAwAA +AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA + + + + + + 3 + MCAwAA + + + + 4 + YES + + + + -2147483392 + {{-30, 1}, {15, 68}} + + NO + _doScroller: + + + _doScroller: + 1 + + + + -2147483392 + {{-100, -100}, {87, 18}} + + NO + _doScroller: + + 1 + + _doScroller: + 1 + 0.94565220000000005 + + + {610, 111} + + + 133650 + + + + 0.25 + 4 + 1 + + + + 274 + + YES + + + 2304 + + YES + + + 2322 + {{0, 56}, {608, 181}} + + + + + + + + + + + YES + + + 38 + + + + 608 + 1 + + + 100674413 + 0 + + + + YES + + YES + NSBackgroundColor + NSColor + + + YES + + + + + + + YES + + YES + NSColor + NSUnderline + + + YES + + + + + + + 1 + + 6 + {608, 10000000} + + + + {{1, 1}, {608, 181}} + + + + + + 4 + YES + + + + -2147483392 + {{-30, 1}, {15, 68}} + + NO + _doScroller: + + + _doScroller: + 1 + + + + -2147483392 + {{-100, -100}, {87, 18}} + + NO + _doScroller: + + 1 + + _doScroller: + 1 + 0.94565220000000005 + + + {{0, 120}, {610, 183}} + + + 133650 + + + + 0.25 + 4 + 1 + + + {{0, -1}, {610, 303}} + + + + {610, 302} + + {{0, 0}, {1440, 878}} + {213, 161} + {1.7976931348623157e+308, 1.7976931348623157e+308} + YES + + + + + YES + + + delegate + + + + 34 + + + + window + + + + 43 + + + + attributedStringView + + + + 75 + + + + printStringView + + + + 76 + + + + updateAction: + + + + 98 + + + + + YES + + 0 + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 5 + + + YES + + + + + Window + + + 6 + + + YES + + + + + + 78 + + + YES + + + + + + + 71 + + + YES + + + + + + + + 70 + + + + + 73 + + + YES + + + + + + + + 72 + + + + + 81 + + + + + 82 + + + + + 83 + + + + + 84 + + + + + 85 + + + YES + + + + + + 97 + + + YES + + + + + + 95 + + + YES + + + + + + 96 + + + + + + + YES + + YES + -1.IBPluginDependency + -2.IBPluginDependency + -3.IBPluginDependency + 5.IBPluginDependency + 5.IBWindowTemplateEditedContentRect + 5.windowTemplate.hasMinSize + 5.windowTemplate.minSize + 6.IBPluginDependency + 70.IBPluginDependency + 71.IBPluginDependency + 72.IBPluginDependency + 73.IBPluginDependency + 78.IBPluginDependency + 81.IBPluginDependency + 81.IBShouldRemoveOnLegacySave + 82.IBPluginDependency + 82.IBShouldRemoveOnLegacySave + 83.IBPluginDependency + 83.IBShouldRemoveOnLegacySave + 84.IBPluginDependency + 84.IBShouldRemoveOnLegacySave + 85.IBPluginDependency + 95.IBPluginDependency + 96.IBPluginDependency + 97.IBPluginDependency + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{121, 125}, {610, 302}} + + {213, 107} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + YES + + + YES + + + + + YES + + + YES + + + + 98 + + + 0 + IBCocoaFramework + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + + 3 + + diff --git a/FScriptFramework/FSAttributedStringInspector_alternate.xib b/FScriptFramework/FSAttributedStringInspector_alternate.xib new file mode 100644 index 0000000..033101e --- /dev/null +++ b/FScriptFramework/FSAttributedStringInspector_alternate.xib @@ -0,0 +1,839 @@ + + + + 1060 + 14A379a + 941 + 1343.13 + 755.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 941 + + + YES + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + PluginDependencyRecalculationVersion + + + + YES + + FSAttributedStringInspector + + + FirstResponder + + + NSApplication + + + 15 + 2 + {{202, 343}, {518, 301}} + 813170688 + + NSWindow + + View + + + {1.7976931348623157e+308, 1.7976931348623157e+308} + {313, 107} + + + 256 + + YES + + + 268 + {{14, 266}, {88, 32}} + + YES + + 67108864 + 137887744 + Refresh + + .HelveticaNeueDeskInterface-Regular + 13 + 1040 + + + -2038284288 + 1 + + Helvetica + 13 + 16 + + + + + + + + 200 + 25 + + NO + + + + 274 + {{-29, -70}, {577, 340}} + + + YES + + + + 256 + + YES + + + 274 + + YES + + + 2304 + + YES + + + 2322 + + YES + + YES + Apple HTML pasteboard type + Apple PDF pasteboard type + Apple PICT pasteboard type + CorePasteboardFlavorType 0x6D6F6F76 + NSColor pasteboard type + NSFilenamesPboardType + NSStringPboardType + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT RTFD pasteboard type + NeXT Rich Text Format v1.0 pasteboard type + NeXT TIFF v4.0 pasteboard type + + + {523, 236} + + + + + + + + + + + YES + + + 38 + + + + 523 + 1 + + + 100674541 + 0 + + + 3 + MQA + + + YES + + YES + NSBackgroundColor + NSColor + + + YES + + 6 + System + selectedTextBackgroundColor + + 3 + MC42NjY2NjY2NjY3AA + + + + 6 + System + selectedTextColor + + 3 + MAA + + + + + + 6 + System + controlTextColor + + + + YES + + YES + NSColor + NSCursor + NSUnderline + + + YES + + 1 + MCAwIDEAA + + + {8, -8} + 13 + + + + + + + 1 + + 6 + {610, 10000000} + + + + {523, 236} + + + + + + {4, -5} + 1 + + 4 + YES + + + + -2147483392 + {{-30, 1}, {15, 68}} + + NO + _doScroller: + + + _doScroller: + 1 + + + + -2147483392 + {{-100, -100}, {87, 18}} + + NO + _doScroller: + + 1 + + _doScroller: + 1 + 0.94565218687057495 + + + {{14, 58}, {523, 236}} + + + 133648 + + + + 0.25 + 4 + 1 + + + {{10, 33}, {557, 294}} + + + Preview + + 6 + System + controlColor + + + + + + + + 256 + + YES + + + 274 + + YES + + + 2304 + + YES + + + 2322 + + YES + + YES + Apple HTML pasteboard type + Apple PDF pasteboard type + Apple PICT pasteboard type + CorePasteboardFlavorType 0x6D6F6F76 + NSColor pasteboard type + NSFilenamesPboardType + NSStringPboardType + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT RTFD pasteboard type + NeXT Rich Text Format v1.0 pasteboard type + NeXT TIFF v4.0 pasteboard type + + + {517, 236} + + + + + + + + + + + YES + + + 38 + + + + 517 + 1 + + + 100674541 + 0 + + + + YES + + YES + NSBackgroundColor + NSColor + + + YES + + + + + + + YES + + YES + NSColor + NSCursor + NSUnderline + + + YES + + + + + + + + 1 + + 6 + {619, 10000000} + + + + {517, 236} + + + + + + 4 + YES + + + + -2147483392 + {{-30, 1}, {15, 68}} + + NO + _doScroller: + + + _doScroller: + 1 + + + + -2147483392 + {{-100, -100}, {87, 18}} + + NO + _doScroller: + + 1 + + _doScroller: + 1 + 0.94565218687057495 + + + {{20, 58}, {517, 236}} + + + 133648 + + + + 0.25 + 4 + 1 + + + {{10, 33}, {557, 294}} + + Description + + + + + + + 0 + YES + YES + + YES + + + + + {{1, 9}, {518, 301}} + + {{0, 0}, {1440, 878}} + {313, 129} + {1.7976931348623157e+308, 1.7976931348623157e+308} + YES + + + + + YES + + + delegate + + + + 34 + + + + window + + + + 43 + + + + updateAction: + + + + 44 + + + + attributedStringView + + + + 75 + + + + printStringView + + + + 86 + + + + + YES + + 0 + + YES + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + 5 + + + YES + + + + Window + + + 6 + + + YES + + + + + + + 35 + + + YES + + + + + + 79 + + + YES + + + + + + + 80 + + + YES + + + + + + 82 + + + YES + + + + + + 71 + + + YES + + + + + + + + 70 + + + + + 81 + + + YES + + + + + + 83 + + + YES + + + + + + 84 + + + YES + + + + + + + + 85 + + + + + 88 + + + + + 89 + + + + + 90 + + + + + 91 + + + + + 92 + + + + + -3 + + + Application + + + + + YES + + YES + 35.IBPluginDependency + 35.ImportedFromIB2 + 5.IBPluginDependency + 5.ImportedFromIB2 + 5.windowTemplate.hasMinSize + 5.windowTemplate.minSize + 6.IBPluginDependency + 6.ImportedFromIB2 + 70.IBPluginDependency + 70.ImportedFromIB2 + 71.IBPluginDependency + 71.ImportedFromIB2 + 79.IBPluginDependency + 79.ImportedFromIB2 + 80.IBPluginDependency + 80.ImportedFromIB2 + 81.IBPluginDependency + 81.ImportedFromIB2 + 82.IBPluginDependency + 82.ImportedFromIB2 + 83.IBPluginDependency + 83.ImportedFromIB2 + 84.IBPluginDependency + 84.ImportedFromIB2 + 85.IBPluginDependency + 85.ImportedFromIB2 + 89.IBShouldRemoveOnLegacySave + 90.IBShouldRemoveOnLegacySave + 91.IBShouldRemoveOnLegacySave + 92.IBShouldRemoveOnLegacySave + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + {313, 107} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + + + + + + + YES + + + YES + + + + + YES + + + YES + + + + 92 + + + + YES + + FSAttributedStringInspector + NSObject + + updateAction: + id + + + updateAction: + + updateAction: + id + + + + YES + + YES + attributedStringView + printStringView + window + + + YES + NSTextView + NSTextView + NSWindow + + + + YES + + YES + attributedStringView + printStringView + window + + + YES + + attributedStringView + NSTextView + + + printStringView + NSTextView + + + window + NSWindow + + + + + IBUserSource + + + + + FirstResponder + + IBUserSource + + + + + + 0 + IBCocoaFramework + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + + 3 + + diff --git a/FScriptFramework/FSCollectionInspector.xib b/FScriptFramework/FSCollectionInspector.xib new file mode 100644 index 0000000..221ee35 --- /dev/null +++ b/FScriptFramework/FSCollectionInspector.xib @@ -0,0 +1,419 @@ + + + + 1050 + 14A379a + 941 + 1343.13 + 755.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 941 + + + YES + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + PluginDependencyRecalculationVersion + + + + YES + + FSCollectionInspector + + + FirstResponder + + + NSApplication + + + 271 + 2 + {{465, 530}, {897, 309}} + 813170688 + Collection Inspector + NSWindow + View + + {1.7976931348623157e+308, 1.7976931348623157e+308} + {800, 130} + + + 256 + + YES + + + 274 + {897, 309} + + FSCollectionInspectorView + NSView + + + {897, 309} + + {{0, 0}, {1680, 1028}} + {800, 152} + {1.7976931348623157e+308, 1.7976931348623157e+308} + YES + + + + + YES + + + collectionInspectorView + + + + 49 + + + + delegate + + + + 50 + + + + + YES + + 0 + + YES + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 5 + + + YES + + + + Window + + + 6 + + + YES + + + + + + 48 + + + + + + + YES + + YES + -3.IBPluginDependency + -3.ImportedFromIB2 + 48.IBPluginDependency + 48.ImportedFromIB2 + 5.IBPluginDependency + 5.ImportedFromIB2 + 5.windowTemplate.hasMinSize + 5.windowTemplate.minSize + 6.IBPluginDependency + 6.ImportedFromIB2 + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + {800, 130} + com.apple.InterfaceBuilder.CocoaPlugin + + + + + YES + + + YES + + + + + YES + + + YES + + + + 51 + + + + YES + + FSCollectionInspector + NSObject + + collectionInspectorView + FSCollectionInspectorView + + + collectionInspectorView + + collectionInspectorView + FSCollectionInspectorView + + + + IBUserSource + + + + + FSCollectionInspectorView + NSView + + YES + + YES + add: + browse: + filter: + inspect: + modify: + narrow: + refresh: + remove: + sort: + + + YES + id + id + id + id + id + id + id + id + id + + + + YES + + YES + add: + browse: + filter: + inspect: + modify: + narrow: + refresh: + remove: + sort: + + + YES + + add: + id + + + browse: + id + + + filter: + id + + + inspect: + id + + + modify: + id + + + narrow: + id + + + refresh: + id + + + remove: + id + + + sort: + id + + + + + YES + + YES + browseButton + contentView + inspectButton + model + modifyButton + narrowButton + removeButton + searchField + sortButton + tableView + + + YES + NSButton + NSView + NSButton + id + NSButton + NSButton + NSButton + id + NSButton + NSTableView + + + + YES + + YES + browseButton + contentView + inspectButton + model + modifyButton + narrowButton + removeButton + searchField + sortButton + tableView + + + YES + + browseButton + NSButton + + + contentView + NSView + + + inspectButton + NSButton + + + model + id + + + modifyButton + NSButton + + + narrowButton + NSButton + + + removeButton + NSButton + + + searchField + id + + + sortButton + NSButton + + + tableView + NSTableView + + + + + IBUserSource + + + + + FirstResponder + + IBUserSource + + + + + NSObject + + IBUserSource + + + + + + 0 + IBCocoaFramework + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + ../FScript.xcodeproj + 3 + + diff --git a/FScriptFramework/FSCollectionInspectorView.xib b/FScriptFramework/FSCollectionInspectorView.xib new file mode 100644 index 0000000..00b4bf6 --- /dev/null +++ b/FScriptFramework/FSCollectionInspectorView.xib @@ -0,0 +1,1131 @@ + + + + 1050 + 14A379a + 941 + 1343.13 + 755.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 941 + + + YES + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + PluginDependencyRecalculationVersion + + + + YES + + FSCollectionInspectorView + + + FirstResponder + + + NSApplication + + + + 274 + + YES + + + 268 + {{661, 345}, {80, 25}} + + YES + + 67108864 + 134217728 + Refresh + + .HelveticaNeueDeskInterface-Regular + 13 + 1040 + + + -2038284288 + 32 + + + + + + 200 + 25 + + NO + + + + 268 + {{194, 345}, {80, 25}} + + YES + + 603979776 + 134217728 + Remove + + + -2038284288 + 32 + + + + + + 200 + 25 + + NO + + + + 268 + {{9, 345}, {80, 25}} + + YES + + 67108864 + 134217728 + Add + + + -2038284288 + 32 + + LucidaGrande + 13 + 16 + + + + + + 200 + 25 + + NO + + + + 268 + {{102, 345}, {80, 25}} + + YES + + 603979776 + 134217728 + Modify + + + -2038284288 + 32 + + + + + + 200 + 25 + + NO + + + + 268 + {{287, 345}, {80, 25}} + + YES + + 603979776 + 134217728 + Sort + + + -2038284288 + 32 + + + + + + 200 + 25 + + NO + + + + 268 + {{381, 345}, {80, 25}} + + YES + + 603979776 + 134217728 + Inspect + + + -2038284288 + 32 + + + + + + 200 + 25 + + NO + + + + 268 + {{475, 345}, {80, 25}} + + YES + + 603979776 + 134217728 + Browse + + + -2038284288 + 32 + + + + + + 200 + 25 + + NO + + + + 266 + {{753, 347}, {129, 22}} + + YES + + 342884416 + 1024 + + + + YES + 1 + + 6 + System + textBackgroundColor + + 3 + MQA + + + + 6 + System + controlTextColor + + 3 + MAA + + + + 0 + 0 + search + + _searchFieldSearch: + + 138690560 + 0 + + 400 + 75 + + + 0 + 0 + clear + + YES + + YES + + YES + AXDescription + NSAccessibilityEncodedAttributesValueType + + + YES + cancel + + + + + _searchFieldCancel: + + 138428416 + 0 + + 400 + 75 + + 255 + BgAAAA + + NO + 1 + + + + 268 + {{568, 345}, {80, 25}} + + YES + + 603979776 + 134217728 + Narrow + + + -2038284288 + 32 + + + + + + 200 + 25 + + NO + + + + 274 + + YES + + + 2304 + + YES + + + 256 + {907, 322} + + YES + NO + YES + + + 256 + {907, 17} + + + + + + -2147483392 + {{-26, 0}, {16, 17}} + + + + YES + + 3 + 2 + + + 6 + System + gridColor + + 3 + MC41AA + + + 16 + -559906816 + + + 1 + 15 + 0 + YES + 0 + 1 + + + {{0, 17}, {907, 322}} + + + + + 6 + System + controlBackgroundColor + + 3 + MC42NjY2NjY2NjY3AA + + + 4 + YES + + + + -2147483392 + {{886, 17}, {15, 307}} + + NO + _doScroller: + + + _doScroller: + 0.99378883838653564 + + + + -2147483392 + {{1, 323}, {880, 15}} + + NO + _doScroller: + + 1 + + _doScroller: + 0.98331481218338013 + + + + 2304 + + YES + + + {907, 17} + + + + YES + + + + {907, 339} + + + 133680 + + + + + QSAAAEEgAABBkAAAQZAAAA + 0.25 + 4 + 1 + + + {907, 378} + + NSView + + NSResponder + + + + + YES + + + browseButton + + + + 60 + + + + contentView + + + + 61 + + + + inspectButton + + + + 62 + + + + modifyButton + + + + 63 + + + + narrowButton + + + + 64 + + + + removeButton + + + + 65 + + + + sortButton + + + + 66 + + + + searchField + + + + 67 + + + + tableView + + + + 68 + + + + add: + + + + 69 + + + + sort: + + + + 72 + + + + inspect: + + + + 73 + + + + browse: + + + + 74 + + + + narrow: + + + + 75 + + + + refresh: + + + + 76 + + + + filter: + + + + 77 + + + + delegate + + + + 78 + + + + dataSource + + + + 79 + + + + remove: + + + + 80 + + + + modify: + + + + 81 + + + + + YES + + 0 + + YES + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 48 + + + YES + + + + + + + + + + + + + View + + + 49 + + + YES + + + + + + + + + 50 + + + + + 51 + + + YES + + + + + + 52 + + + YES + + + + + + 53 + + + YES + + + + + + 54 + + + YES + + + + + + 55 + + + YES + + + + + + 56 + + + YES + + + + + + 57 + + + YES + + + + + + 58 + + + YES + + + + + + 59 + + + YES + + + + + + 83 + + + + + 84 + + + + + 85 + + + + + 86 + + + + + 87 + + + + + 88 + + + + + 89 + + + + + 90 + + + + + 91 + + + + + 92 + + + + + 93 + + + + + 94 + + + + + + + YES + + YES + -3.IBPluginDependency + -3.ImportedFromIB2 + 48.IBPluginDependency + 48.ImportedFromIB2 + 49.IBPluginDependency + 49.ImportedFromIB2 + 50.CustomClassName + 50.IBPluginDependency + 50.ImportedFromIB2 + 51.IBPluginDependency + 51.ImportedFromIB2 + 52.IBPluginDependency + 52.ImportedFromIB2 + 53.IBPluginDependency + 53.ImportedFromIB2 + 54.IBPluginDependency + 54.ImportedFromIB2 + 55.IBPluginDependency + 55.ImportedFromIB2 + 56.IBPluginDependency + 56.ImportedFromIB2 + 57.IBPluginDependency + 57.ImportedFromIB2 + 58.IBPluginDependency + 58.ImportedFromIB2 + 59.IBPluginDependency + 59.ImportedFromIB2 + 92.IBShouldRemoveOnLegacySave + 93.IBShouldRemoveOnLegacySave + 94.IBShouldRemoveOnLegacySave + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + FSCollectionInspectorTableView + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + + + + + + YES + + + YES + + + + + YES + + + YES + + + + 94 + + + + YES + + FSCollectionInspectorTableView + NSTableView + + IBUserSource + + + + + FSCollectionInspectorView + NSView + + YES + + YES + add: + browse: + filter: + inspect: + modify: + narrow: + refresh: + remove: + sort: + + + YES + id + id + id + id + id + id + id + id + id + + + + YES + + YES + add: + browse: + filter: + inspect: + modify: + narrow: + refresh: + remove: + sort: + + + YES + + add: + id + + + browse: + id + + + filter: + id + + + inspect: + id + + + modify: + id + + + narrow: + id + + + refresh: + id + + + remove: + id + + + sort: + id + + + + + YES + + YES + browseButton + contentView + inspectButton + model + modifyButton + narrowButton + removeButton + searchField + sortButton + tableView + + + YES + NSButton + NSView + NSButton + id + NSButton + NSButton + NSButton + id + NSButton + NSTableView + + + + YES + + YES + browseButton + contentView + inspectButton + model + modifyButton + narrowButton + removeButton + searchField + sortButton + tableView + + + YES + + browseButton + NSButton + + + contentView + NSView + + + inspectButton + NSButton + + + model + id + + + modifyButton + NSButton + + + narrowButton + NSButton + + + removeButton + NSButton + + + searchField + id + + + sortButton + NSButton + + + tableView + NSTableView + + + + + IBUserSource + + + + + FirstResponder + + IBUserSource + + + + + NSObject + + IBUserSource + + + + + + 0 + IBCocoaFramework + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + ../FScript.xcodeproj + 3 + + diff --git a/FScriptFramework/FSConsole.xib b/FScriptFramework/FSConsole.xib new file mode 100644 index 0000000..811a1e1 --- /dev/null +++ b/FScriptFramework/FSConsole.xib @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/FScriptFramework/FSImageInspector.xib b/FScriptFramework/FSImageInspector.xib new file mode 100644 index 0000000..ad64d93 --- /dev/null +++ b/FScriptFramework/FSImageInspector.xib @@ -0,0 +1,360 @@ + + + + 1060 + 14A379a + 941 + 1343.13 + 755.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 941 + + + YES + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + PluginDependencyRecalculationVersion + + + + YES + + FSImageInspector + + + FirstResponder + + + NSApplication + + + 15 + 2 + {{525, 117}, {498, 392}} + 813170688 + Image Inspector + NSWindow + + View + + + {1.7976931348623157e+308, 1.7976931348623157e+308} + {120.1300048828125, 5} + + + 256 + + YES + + + 274 + + YES + + + 2304 + + YES + + + 301 + + YES + + {480, 281} + + NSImageView + NSControl + + + {483, 377} + + + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2NjY3AA + + + 4 + YES + + + + 256 + {{483, 0}, {15, 377}} + + NO + _doScroller: + + + _doScroller: + 0.96441280841827393 + + + + 256 + {{0, 377}, {483, 15}} + + NO + _doScroller: + + 1 + + _doScroller: + 0.25 + 0.99166667461395264 + + + {498, 392} + + + 1050672 + + + + 0.25 + 4 + 1 + {0, 0, 0, 0} + + + {{1, 9}, {498, 392}} + + {{0, 0}, {1440, 878}} + {120.1300048828125, 27} + {1.7976931348623157e+308, 1.7976931348623157e+308} + YES + + + + + YES + + + window + + + + 11 + + + + imageView + + + + 20 + + + + delegate + + + + 21 + + + + + YES + + 0 + + YES + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + 5 + + + YES + + + + Window + + + 6 + + + YES + + + + + + 19 + + + YES + + + + + + + + 18 + + + + + 24 + + + + + 25 + + + + + -3 + + + Application + + + + + YES + + YES + 18.IBPluginDependency + 18.ImportedFromIB2 + 19.IBPluginDependency + 19.ImportedFromIB2 + 24.IBShouldRemoveOnLegacySave + 25.IBShouldRemoveOnLegacySave + 5.IBPluginDependency + 5.ImportedFromIB2 + 5.windowTemplate.hasMinSize + 5.windowTemplate.minSize + 6.IBPluginDependency + 6.ImportedFromIB2 + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + + com.apple.InterfaceBuilder.CocoaPlugin + + + {120.1300048828125, 5} + com.apple.InterfaceBuilder.CocoaPlugin + + + + + YES + + + YES + + + + + YES + + + YES + + + + 25 + + + + YES + + FSImageInspector + NSObject + + YES + + YES + imageView + window + + + YES + NSImageView + NSWindow + + + + YES + + YES + imageView + window + + + YES + + imageView + NSImageView + + + window + NSWindow + + + + + IBUserSource + + + + + FirstResponder + + IBUserSource + + + + + + 0 + IBCocoaFramework + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + + 3 + + diff --git a/FScriptFramework/FSManagedObjectContextInspector.xib b/FScriptFramework/FSManagedObjectContextInspector.xib new file mode 100644 index 0000000..11bb528 --- /dev/null +++ b/FScriptFramework/FSManagedObjectContextInspector.xib @@ -0,0 +1,1042 @@ + + + + 1060 + 14A379a + 941 + 1343.13 + 755.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 941 + + + + com.apple.InterfaceBuilder.CocoaPlugin + + + PluginDependencyRecalculationVersion + + + + + FSManagedObjectContextInspector + + + FirstResponder + + + NSApplication + + + 271 + 2 + {{191, 138}, {896, 395}} + 813170688 + Managed Object Context Inspector + + NSWindow + + + View + + + {1.7976931348623157e+308, 1.7976931348623157e+308} + {854, 282} + + + 256 + + + + 274 + {{0, 100}, {896, 294}} + + + + collection + + + 256 + + + + 274 + {896, 294} + + FSCollectionInspectorView + NSView + + + {896, 294} + + + collection + + 6 + System + controlColor + + 3 + MC42NjY2NjY2NjY3AA + + + + + + message + + + 256 + + + + 274 + + + + 2304 + + + + 2322 + {{0, 62}, {898, 294}} + + + + + + + CgkJCQkJCQkJCQkJCQoJCQkKCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCk5vIG9iamVjdCBmZXRjaGVk +IHlldA + + + + + Helvetica + 12 + 16 + + + 4 + + + + + + Helvetica + 14 + 16 + + + 2 + + + 28 + + + 56 + + + 84 + + + 112 + + + 140 + + + 168 + + + 196 + + + 224 + + + 252 + + + 280 + + + 308 + + + 336 + + + + + + + KwAVAQ + + + + + + + 38 + + + + 898 + 1 + + + 100674405 + 0 + + + 3 + MQA + + + + 6 + System + selectedTextBackgroundColor + + + + 6 + System + selectedTextColor + + 3 + MAA + + + + + 6 + System + controlTextColor + + + + + 1 + MCAwIDEAA + + + + + + 1 + + 6 + {898, 10000000} + {896, 294} + + + + {896, 294} + + + + + + {4, 5} + + 12582912 + + + + + + TU0AKgAAAHCAFUqgBVKsAAAAwdVQUqwaEQeIRGJRGFlYqwWLQ+JxuOQpVRmEx2RROKwOQyOUQSPyaUym +SxqWyKXyeYxyZzWbSuJTScRCbz2Nz+gRKhUOfTqeUai0OSxiWTiBQSHSGFquGwekxyAgAAAOAQAAAwAA +AAEAEAAAAQEAAwAAAAEAEAAAAQIAAwAAAAIACAAIAQMAAwAAAAEABQAAAQYAAwAAAAEAAQAAAREABAAA +AAEAAAAIARIAAwAAAAEAAQAAARUAAwAAAAEAAgAAARYAAwAAAAEAEAAAARcABAAAAAEAAABnARwAAwAA +AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA + + + + + + 3 + MCAwAA + + + + 4 + YES + + + + -2147483392 + {{-30, 1}, {15, 292}} + + + NO + _doScroller: + + + _doScroller: + 1 + + + + -2147483392 + {{-100, -100}, {87, 18}} + + + YES + NO + _doScroller: + + 1 + + _doScroller: + 1 + 0.94565218687057495 + + + {896, 294} + + + 133776 + + + + 0.25 + 4 + 1 + + + {896, 294} + + + + message + + + + + + + .HelveticaNeueDeskInterface-Regular + 13 + 1040 + + 6 + YES + + + + + + + 258 + {{0, 97}, {896, 5}} + + + {0, 0} + + 67108864 + 0 + Box + + + 6 + System + textBackgroundColor + + + + 6 + System + labelColor + + + + 3 + 2 + 0 + NO + + + + 294 + + + + 274 + + + + 289 + {{563, 35}, {145, 18}} + + + YES + + 67108864 + 0 + Fetch automatically + + + 1211912448 + 2 + + NSImage + NSSwitch + + + NSSwitch + + + + 200 + 25 + + NO + + + + 289 + {{708, 26}, {130, 32}} + + YES + + 67108864 + 134217728 + New Inspector + + + -2038284288 + 1 + + + + + + 200 + 25 + + NO + + + + 289 + {{481, 26}, {82, 32}} + + + YES + + 67108864 + 134217728 + Fetch + + + -2038284288 + 1 + + + + + + 200 + 25 + + NO + + + + 289 + {{484, 70}, {225, 26}} + + + YES + + -2076180416 + 1024 + + + 109199360 + 1 + + LucidaGrande + 13 + 16 + + + + + + 400 + 75 + + + Item3 + + 1048576 + 2147483647 + 1 + + NSImage + NSMenuCheckmark + + + NSImage + NSMenuMixedState + + _popUpItemAction: + + + YES + + + OtherViews + + + + + + 3 + YES + YES + 1 + + NO + + + + 258 + + + + 2048 + + + + 274 + {457, 69} + + + FSPredicateTextView + NSTextView + + + {{1, 1}, {456, 69}} + + + + + 4 + YES + + + + -2147483392 + {{-30, 1}, {15, 69}} + + + NO + _doScroller: + + + _doScroller: + 0.73913043737411499 + + + + -2147483392 + {{-100, -100}, {343, 15}} + + + YES + NO + _doScroller: + + 1 + + _doScroller: + 0.42565599083900452 + + + {{18, 23}, {458, 71}} + + + 133778 + + + + 0.25 + 4 + 1 + + + {{1, 1}, {896, 104}} + + + + + {{0, -6}, {898, 106}} + + + {0, 0} + + 67108864 + 0 + Box + + .HelveticaNeueDeskInterface-Regular + 11 + 3088 + + + + + + 1 + 4 + 0 + NO + + 2 + MC45MDk4MDM5OSAwLjkwOTgwMzk5IDAuOTA5ODAzOTkAA + + + + {896, 395} + + + {{0, 0}, {1440, 878}} + {854, 304} + {1.7976931348623157e+308, 1.7976931348623157e+308} + YES + + + + stalenessInterval + + NSManagedObjectContext + YES + + + + + 256 + {125, 1} + + + + + + + collectionInspectorView + + + + 10 + + + + entityList + + + + 20 + + + + executeRequest: + + + + 22 + + + + tabView + + + + 35 + + + + messageTextView + + + + 36 + + + + changeEntity: + + + + 39 + + + + newInspector: + + + + 44 + + + + predicateTextView + + + + 49 + + + + delegate + + + + 50 + + + + controller + + + + 58 + + + + delegate + + + + 63 + + + + fetchAutomaticallyButton + + + + 70 + + + + changeFetchAutomatically: + + + + 72 + + + + initialFirstResponder + + + + 73 + + + + + + 0 + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 5 + + + + + + Window + + + 6 + + + + + + + + + + 23 + + + + + + + + + 24 + + + + + + + + 26 + + + + + + + + 7 + + + + + 25 + + + + + + + + 27 + + + + + + + + 32 + + + + + + + + + + 33 + + + + + 40 + + + + + + 87 + + + + + + + + + + + + 57 + + + Controller + + + 95 + + + + + 96 + + + + + 37 + + + + + + + + 93 + + + + + 43 + + + + + + + + 94 + + + + + 21 + + + + + + + + 92 + + + + + 15 + + + + + + + + 91 + + + + + + + + 16 + + + + + + + + 17 + + + + + 47 + + + + + + + + + + 98 + + + + + 97 + + + + + 46 + + + + + 41 + + + + + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + {854, 282} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + + + 98 + + + 0 + IBCocoaFramework + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + YES + + 3 + + {12, 12} + {10, 2} + {15, 15} + + + diff --git a/FScriptFramework/FSObjectBrowserButtonsInspector.xib b/FScriptFramework/FSObjectBrowserButtonsInspector.xib new file mode 100644 index 0000000..ce7895c --- /dev/null +++ b/FScriptFramework/FSObjectBrowserButtonsInspector.xib @@ -0,0 +1,1495 @@ + + + + 1050 + 14A379a + 941 + 1343.13 + 755.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 941 + + + YES + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + PluginDependencyRecalculationVersion + + + + YES + + FSObjectBrowserButtonsInspector + + + FirstResponder + + + NSApplication + + + 7 + 2 + {{765, 373}, {247, 332}} + 1886912512 + Custom Buttons + NSWindow + + View + + + {1.7976931348623157e+308, 1.7976931348623157e+308} + {213, 107} + + + 256 + + YES + + + 256 + {{20, 290}, {112, 22}} + + 1 + YES + + -1804599231 + 4195328 + + + .HelveticaNeueDeskInterface-Regular + 13 + 1040 + + + 1 + YES + + 6 + System + textBackgroundColor + + 3 + MQA + + + + 6 + System + textColor + + 3 + MAA + + + + NO + 1 + + + + 256 + {{147, 282}, {86, 32}} + + 1 + YES + + 67108864 + 137887744 + Block... + + + 1 + -2038284288 + 1 + + Helvetica + 13 + 16 + + + + + + 200 + 25 + + NO + + + + 256 + {{20, 260}, {112, 22}} + + 2 + YES + + -1804599231 + 4195328 + + + + 2 + YES + + + + NO + 1 + + + + 256 + {{147, 252}, {86, 32}} + + 2 + YES + + 67108864 + 137887744 + Block... + + + 2 + -2038284288 + 1 + + + + + + 200 + 25 + + NO + + + + 256 + {{20, 230}, {112, 22}} + + 3 + YES + + -1804599231 + 4195328 + + + + 3 + YES + + + + NO + 1 + + + + 256 + {{147, 222}, {86, 32}} + + 3 + YES + + 67108864 + 137887744 + Block... + + + 3 + -2038284288 + 1 + + + + + + 200 + 25 + + NO + + + + 256 + {{20, 200}, {112, 22}} + + 4 + YES + + -1804599231 + 4195328 + + + + 4 + YES + + + + NO + 1 + + + + 256 + {{147, 192}, {86, 32}} + + 4 + YES + + 67108864 + 137887744 + Block... + + + 4 + -2038284288 + 1 + + + + + + 200 + 25 + + NO + + + + 256 + {{20, 170}, {112, 22}} + + 5 + YES + + -1804599231 + 4195328 + + + + 5 + YES + + + + NO + 1 + + + + 256 + {{147, 162}, {86, 32}} + + 5 + YES + + 67108864 + 137887744 + Block... + + + 5 + -2038284288 + 1 + + + + + + 200 + 25 + + NO + + + + 256 + {{20, 140}, {112, 22}} + + 6 + YES + + -1804599231 + 4195328 + + + + 6 + YES + + + + NO + 1 + + + + 256 + {{147, 132}, {86, 32}} + + 6 + YES + + 67108864 + 137887744 + Block... + + + 6 + -2038284288 + 1 + + + + + + 200 + 25 + + NO + + + + 256 + {{20, 110}, {112, 22}} + + 7 + YES + + -1804599231 + 4195328 + + + + 7 + YES + + + + NO + 1 + + + + 256 + {{147, 102}, {86, 32}} + + 7 + YES + + 67108864 + 137887744 + Block... + + + 7 + -2038284288 + 1 + + + + + + 200 + 25 + + NO + + + + 256 + {{20, 80}, {112, 22}} + + 8 + YES + + -1804599231 + 4195328 + + + + 8 + YES + + + + NO + 1 + + + + 256 + {{147, 72}, {86, 32}} + + 8 + YES + + 67108864 + 137887744 + Block... + + + 8 + -2038284288 + 1 + + + + + + 200 + 25 + + NO + + + + 256 + {{20, 50}, {112, 22}} + + 9 + YES + + -1804599231 + 4195328 + + + + 9 + YES + + + + NO + 1 + + + + 256 + {{147, 42}, {86, 32}} + + 9 + YES + + 67108864 + 137887744 + Block... + + + 9 + -2038284288 + 1 + + + + + + 200 + 25 + + NO + + + + 256 + {{20, 20}, {112, 22}} + + 10 + YES + + -1804599231 + 4195328 + + + + 10 + YES + + + + NO + 1 + + + + 256 + {{147, 12}, {86, 32}} + + 10 + YES + + 67108864 + 137887744 + Block... + + + 10 + -2038284288 + 1 + + + + + + 200 + 25 + + NO + + + {{1, 9}, {247, 332}} + + {{0, 0}, {1024, 746}} + {213, 129} + {1.7976931348623157e+308, 1.7976931348623157e+308} + YES + + + + + YES + + + initialFirstResponder + + + + 29 + + + + t1 + + + + 39 + + + + t2 + + + + 40 + + + + t3 + + + + 41 + + + + t4 + + + + 42 + + + + t6 + + + + 44 + + + + t7 + + + + 45 + + + + t8 + + + + 46 + + + + t9 + + + + 47 + + + + t10 + + + + 48 + + + + window + + + + 49 + + + + b1 + + + + 50 + + + + b2 + + + + 51 + + + + b3 + + + + 52 + + + + b4 + + + + 53 + + + + b5 + + + + 54 + + + + b6 + + + + 55 + + + + b7 + + + + 56 + + + + b8 + + + + 57 + + + + b9 + + + + 58 + + + + b10 + + + + 59 + + + + t5 + + + + 60 + + + + nextKeyView + + + + 62 + + + + nextKeyView + + + + 63 + + + + nextKeyView + + + + 64 + + + + nextKeyView + + + + 65 + + + + nextKeyView + + + + 66 + + + + nextKeyView + + + + 67 + + + + nextKeyView + + + + 69 + + + + nextKeyView + + + + 70 + + + + delegate + + + + 72 + + + + nextKeyView + + + + 99 + + + + nextKeyView + + + + 100 + + + + + YES + + 0 + + YES + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 5 + + + YES + + + + Window + + + 6 + + + YES + + + + + + + + + + + + + + + + + + + + + + + + + 7 + + + YES + + + + + + 9 + + + YES + + + + + + 11 + + + YES + + + + + + 12 + + + YES + + + + + + 13 + + + YES + + + + + + 14 + + + YES + + + + + + 15 + + + YES + + + + + + 16 + + + YES + + + + + + 17 + + + YES + + + + + + 18 + + + YES + + + + + + 19 + + + YES + + + + + + 20 + + + YES + + + + + + 21 + + + YES + + + + + + 22 + + + YES + + + + + + 23 + + + YES + + + + + + 24 + + + YES + + + + + + 25 + + + YES + + + + + + 26 + + + YES + + + + + + 27 + + + YES + + + + + + 28 + + + YES + + + + + + 102 + + + + + 103 + + + + + 104 + + + + + 105 + + + + + 106 + + + + + 107 + + + + + 108 + + + + + 109 + + + + + 110 + + + + + 111 + + + + + 112 + + + + + 113 + + + + + 114 + + + + + 115 + + + + + 116 + + + + + 117 + + + + + 118 + + + + + 119 + + + + + 120 + + + + + 121 + + + + + + + YES + + YES + -3.IBPluginDependency + -3.ImportedFromIB2 + 11.IBPluginDependency + 11.ImportedFromIB2 + 12.IBPluginDependency + 12.ImportedFromIB2 + 13.IBPluginDependency + 13.ImportedFromIB2 + 14.IBPluginDependency + 14.ImportedFromIB2 + 15.IBPluginDependency + 15.ImportedFromIB2 + 16.IBPluginDependency + 16.ImportedFromIB2 + 17.IBPluginDependency + 17.ImportedFromIB2 + 18.IBPluginDependency + 18.ImportedFromIB2 + 19.IBPluginDependency + 19.ImportedFromIB2 + 20.IBPluginDependency + 20.ImportedFromIB2 + 21.IBPluginDependency + 21.ImportedFromIB2 + 22.IBPluginDependency + 22.ImportedFromIB2 + 23.IBPluginDependency + 23.ImportedFromIB2 + 24.IBPluginDependency + 24.ImportedFromIB2 + 25.IBPluginDependency + 25.ImportedFromIB2 + 26.IBPluginDependency + 26.ImportedFromIB2 + 27.IBPluginDependency + 27.ImportedFromIB2 + 28.IBPluginDependency + 28.ImportedFromIB2 + 5.IBPluginDependency + 5.ImportedFromIB2 + 5.windowTemplate.hasMinSize + 5.windowTemplate.minSize + 6.IBPluginDependency + 6.ImportedFromIB2 + 7.IBPluginDependency + 7.ImportedFromIB2 + 9.IBPluginDependency + 9.ImportedFromIB2 + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + {213, 107} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + + + YES + + + YES + + + + + YES + + + YES + + + + 121 + + + + YES + + FSObjectBrowserButtonsInspector + NSObject + + YES + + YES + b1 + b10 + b2 + b3 + b4 + b5 + b6 + b7 + b8 + b9 + t1 + t10 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + window + + + YES + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSTextField + NSTextField + NSTextField + NSTextField + NSTextField + NSTextField + NSTextField + NSTextField + NSTextField + NSTextField + NSWindow + + + + YES + + YES + b1 + b10 + b2 + b3 + b4 + b5 + b6 + b7 + b8 + b9 + t1 + t10 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + window + + + YES + + b1 + NSButton + + + b10 + NSButton + + + b2 + NSButton + + + b3 + NSButton + + + b4 + NSButton + + + b5 + NSButton + + + b6 + NSButton + + + b7 + NSButton + + + b8 + NSButton + + + b9 + NSButton + + + t1 + NSTextField + + + t10 + NSTextField + + + t2 + NSTextField + + + t3 + NSTextField + + + t4 + NSTextField + + + t5 + NSTextField + + + t6 + NSTextField + + + t7 + NSTextField + + + t8 + NSTextField + + + t9 + NSTextField + + + window + NSWindow + + + + + IBUserSource + + + + + FirstResponder + + IBUserSource + + + + + + 0 + IBCocoaFramework + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + + 3 + + diff --git a/FScriptFramework/FScriptPreferences.xib b/FScriptFramework/FScriptPreferences.xib new file mode 100644 index 0000000..8e58737 --- /dev/null +++ b/FScriptFramework/FScriptPreferences.xib @@ -0,0 +1,679 @@ + + + + 1050 + 14A379a + 941 + 1343.13 + 755.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 941 + + + YES + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + PluginDependencyRecalculationVersion + + + + YES + + FScriptMenuItem + + + FirstResponder + + + NSApplication + + + 3 + 2 + {{296, 611}, {443, 82}} + -260571136 + F-Script Preferences + NSPanel + + View + + + {1.7976931348623157e+308, 1.7976931348623157e+308} + {209.31399999999999, 58} + + + 256 + + YES + + + 256 + {{98, 40}, {50, 22}} + + YES + + -1804599232 + -2147482624 + + + .HelveticaNeueDeskInterface-Regular + 13 + 1040 + + + + YES + + YES + allowsFloats + attributedStringForNil + attributedStringForNotANumber + attributedStringForZero + decimalSeparator + formatterBehavior + groupingSeparator + locale + minimum + negativeFormat + positiveFormat + usesGroupingSeparator + + + YES + + + + + + NaN + + YES + + YES + + + YES + + + + + 0.00 + + + . + + , + + + + + 0 + 0 + NO + NO + 1 + AAAAAAAAAAAAAAAAAAAAAA + + -0.00 + 0.00 + + + + 0.00 + -0.00 + + + + + + + + 0 + 0 + YES + NO + 1 + AAAAAAAAAAAAAAAAAAAAAA + + + . + , + NO + NO + YES + + + YES + + 6 + System + textBackgroundColor + + 3 + MQA + + + + 6 + System + textColor + + 3 + MAA + + + + NO + 1 + + + + 256 + {{17, 42}, {76, 17}} + + YES + + 67108864 + 134217728 + Font size + + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2NjY3AA + + + + 6 + System + controlTextColor + + + + NO + 1 + + + + 256 + {{18, 18}, {407, 18}} + + YES + + 67108864 + 0 + Object browser automatically introspects declared properties + + + -935575296 + 0 + + NSImage + NSSwitch + + + NSSwitch + + + + 200 + 25 + + NO + + + {443, 82} + + {{0, 0}, {1680, 1028}} + {209.31399999999999, 80} + {1.7976931348623157e+308, 1.7976931348623157e+308} + YES + + + + + YES + + + initialFirstResponder + + + + 39 + + + + fontSizeUI + + + + 48 + + + + updatePreference: + + + + 49 + + + + updatePreference: + + + + 55 + + + + automaticallyIntrospectDeclaredPropertiesUI + + + + 56 + + + + preferencePanel + + + + 61 + + + + + YES + + 0 + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 24 + + + YES + + + + Panel1 + + + 25 + + + YES + + + + + + + + 26 + + + YES + + + + + + 29 + + + YES + + + + + + 53 + + + YES + + + + + + 63 + + + YES + + + + + + 64 + + + + + 65 + + + + + 27 + + + + + + + YES + + YES + -3.IBPluginDependency + -3.ImportedFromIB2 + 24.IBPluginDependency + 24.ImportedFromIB2 + 24.windowTemplate.hasMinSize + 24.windowTemplate.minSize + 25.IBPluginDependency + 25.ImportedFromIB2 + 26.IBPluginDependency + 26.ImportedFromIB2 + 27.IBPluginDependency + 27.ImportedFromIB2 + 29.IBPluginDependency + 29.ImportedFromIB2 + 53.IBPluginDependency + 53.ImportedFromIB2 + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + {209.31399999999999, 58} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + + + YES + + + YES + + + + + YES + + + YES + + + + 65 + + + + YES + + FSInterpreterView + + YES + + YES + object1 + object2 + object3 + object4 + object5 + object6 + object7 + object8 + object9 + + + YES + id + id + id + id + id + id + id + id + id + + + + YES + + YES + object1 + object2 + object3 + object4 + object5 + object6 + object7 + object8 + object9 + + + YES + + object1 + id + + + object2 + id + + + object3 + id + + + object4 + id + + + object5 + id + + + object6 + id + + + object7 + id + + + object8 + id + + + object9 + id + + + + + IBUserSource + + + + + FScriptMenuItem + NSMenuItem + + YES + + YES + openObjectBrowser: + showConsole: + showPreferencePanel: + updatePreference: + + + YES + id + id + id + id + + + + YES + + YES + openObjectBrowser: + showConsole: + showPreferencePanel: + updatePreference: + + + YES + + openObjectBrowser: + id + + + showConsole: + id + + + showPreferencePanel: + id + + + updatePreference: + id + + + + + YES + + YES + automaticallyIntrospectDeclaredPropertiesUI + fontSizeUI + interpreterView + preferencePanel + + + YES + NSButton + NSTextField + FSInterpreterView + NSPanel + + + + YES + + YES + automaticallyIntrospectDeclaredPropertiesUI + fontSizeUI + interpreterView + preferencePanel + + + YES + + automaticallyIntrospectDeclaredPropertiesUI + NSButton + + + fontSizeUI + NSTextField + + + interpreterView + FSInterpreterView + + + preferencePanel + NSPanel + + + + + IBUserSource + + + + + FirstResponder + + IBUserSource + + + + + NSObject + + IBUserSource + + + + + + 0 + IBCocoaFramework + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + ../FScript.xcodeproj + 3 + + NSSwitch + {15, 15} + + + diff --git a/FScriptFramework/blockInspector.xib b/FScriptFramework/blockInspector.xib new file mode 100644 index 0000000..7b847d2 --- /dev/null +++ b/FScriptFramework/blockInspector.xib @@ -0,0 +1,927 @@ + + + + 1060 + 14A379a + 941 + 1343.13 + 755.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 941 + + + YES + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + PluginDependencyRecalculationVersion + + + + YES + + BlockInspector + + + FirstResponder + + + NSApplication + + + 4111 + 2 + {{516, 482}, {356, 286}} + 544735232 + Block Inspector + NSWindow + + + 99025BCD-28BD-4E10-A236-49C3770B7CF0 + + + YES + NO + YES + YES + 2 + 1 + + YES + + YES + 771145F7-3AD6-4F13-BC83-CA31D4D6D0AD + C119E078-D0E8-4EEB-B2C1-BB21CC86A3CA + NSToolbarFlexibleSpaceItem + NSToolbarSpaceItem + + + YES + + + 771145F7-3AD6-4F13-BC83-CA31D4D6D0AD + + run + run + + + + NSImage + run + + + + {0, 0} + {0, 0} + YES + YES + -1 + YES + 0 + + + + C119E078-D0E8-4EEB-B2C1-BB21CC86A3CA + + build + build + + + + NSImage + build + + + + {0, 0} + {0, 0} + YES + YES + -1 + YES + 0 + + + NSToolbarFlexibleSpaceItem + + Flexible Space + + + + + + {1, 5} + {20000, 32} + YES + YES + -1 + YES + 0 + + YES + YES + + + 1048576 + 2147483647 + + NSImage + NSMenuCheckmark + + + NSImage + NSMenuMixedState + + + + + NSToolbarSpaceItem + + Space + + + + + + {32, 5} + {32, 10000} + YES + YES + -1 + YES + 0 + + YES + YES + + + 1048576 + 2147483647 + + + + + + + + YES + + + + + + + YES + + + + + YES + + + + {1.7976931348623157e+308, 1.7976931348623157e+308} + {290, 158} + + + 256 + + YES + + + 266 + + YES + + + 274 + {{2, 2}, {429, 0}} + + + + {{-7, 245}, {433, 2}} + + {0, 0} + + 67108864 + 0 + + + Helvetica + 12 + 16 + + + 6 + System + textBackgroundColor + + 3 + MQA + + + + 6 + System + labelColor + + 3 + MAA + + + + + 3 + 0 + 0 + NO + + + + 274 + + YES + + + 256 + + YES + + + 2304 + + YES + + + 274 + {339, 197} + + FScriptTextView + NSTextView + + + {{1, 1}, {339, 222}} + + + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2NjY3AA + + + 4 + YES + + + + 256 + {{340, 1}, {15, 222}} + + NO + _doScroller: + + + _doScroller: + 1 + 0.98327759999999997 + + + + -2147483392 + {{-100, -100}, {356, 15}} + + NO + _doScroller: + + 1 + + _doScroller: + 0.22752810000000001 + + + {356, 224} + + + 133138 + + + + 0.25 + 4 + 1 + + + + 256 + + YES + + + 2304 + + YES + + + 2322 + + YES + + YES + Apple HTML pasteboard type + Apple PDF pasteboard type + Apple PICT pasteboard type + CorePasteboardFlavorType 0x6D6F6F76 + NSColor pasteboard type + NSFilenamesPboardType + NSStringPboardType + NSTypedFilenamesPboardType:'.SGI' + NSTypedFilenamesPboardType:'8BPS' + NSTypedFilenamesPboardType:'BMPf' + NSTypedFilenamesPboardType:'EPSF' + NSTypedFilenamesPboardType:'FPix' + NSTypedFilenamesPboardType:'GIFf' + NSTypedFilenamesPboardType:'ICO ' + NSTypedFilenamesPboardType:'JPEG' + NSTypedFilenamesPboardType:'PDF ' + NSTypedFilenamesPboardType:'PICT' + NSTypedFilenamesPboardType:'PNGf' + NSTypedFilenamesPboardType:'PNTG' + NSTypedFilenamesPboardType:'TIFF' + NSTypedFilenamesPboardType:'TPIC' + NSTypedFilenamesPboardType:'qtif' + NSTypedFilenamesPboardType:BMP + NSTypedFilenamesPboardType:CUR + NSTypedFilenamesPboardType:FAX + NSTypedFilenamesPboardType:FPIX + NSTypedFilenamesPboardType:FPX + NSTypedFilenamesPboardType:GIF + NSTypedFilenamesPboardType:ICNS + NSTypedFilenamesPboardType:ICO + NSTypedFilenamesPboardType:JPEG + NSTypedFilenamesPboardType:JPG + NSTypedFilenamesPboardType:MAC + NSTypedFilenamesPboardType:PCT + NSTypedFilenamesPboardType:PDF + NSTypedFilenamesPboardType:PICT + NSTypedFilenamesPboardType:PNG + NSTypedFilenamesPboardType:PNT + NSTypedFilenamesPboardType:PNTG + NSTypedFilenamesPboardType:PSD + NSTypedFilenamesPboardType:QTI + NSTypedFilenamesPboardType:QTIF + NSTypedFilenamesPboardType:RGB + NSTypedFilenamesPboardType:SGI + NSTypedFilenamesPboardType:TARGA + NSTypedFilenamesPboardType:TGA + NSTypedFilenamesPboardType:TIF + NSTypedFilenamesPboardType:TIFF + NSTypedFilenamesPboardType:bmp + NSTypedFilenamesPboardType:cur + NSTypedFilenamesPboardType:eps + NSTypedFilenamesPboardType:fax + NSTypedFilenamesPboardType:fpix + NSTypedFilenamesPboardType:fpx + NSTypedFilenamesPboardType:gif + NSTypedFilenamesPboardType:icns + NSTypedFilenamesPboardType:ico + NSTypedFilenamesPboardType:jpeg + NSTypedFilenamesPboardType:jpg + NSTypedFilenamesPboardType:mac + NSTypedFilenamesPboardType:pct + NSTypedFilenamesPboardType:pdf + NSTypedFilenamesPboardType:pict + NSTypedFilenamesPboardType:png + NSTypedFilenamesPboardType:pnt + NSTypedFilenamesPboardType:pntg + NSTypedFilenamesPboardType:psd + NSTypedFilenamesPboardType:qti + NSTypedFilenamesPboardType:qtif + NSTypedFilenamesPboardType:rgb + NSTypedFilenamesPboardType:sgi + NSTypedFilenamesPboardType:targa + NSTypedFilenamesPboardType:tga + NSTypedFilenamesPboardType:tif + NSTypedFilenamesPboardType:tiff + NXTypedFilenamePboardType:eps + NXTypedFilenamePboardType:tif + NXTypedFilenamePboardType:tiff + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT RTFD pasteboard type + NeXT Rich Text Format v1.0 pasteboard type + NeXT TIFF v4.0 pasteboard type + + + {338, 51} + + + + + + + + + + + YES + + + 38 + + + + 338 + 1 + + + 100666213 + 0 + + + 2 + MC45NDUwOTgxIDAuOTQ1MDk4MSAwLjk0NTA5ODEAA + + + YES + + YES + NSBackgroundColor + NSColor + + + YES + + 6 + System + selectedTextBackgroundColor + + + + 6 + System + selectedTextColor + + + + + + 6 + System + controlTextColor + + + + YES + + YES + NSColor + NSCursor + NSUnderline + + + YES + + 1 + MCAwIDEAA + + + {8, -8} + 13 + + + + + + + + + 0 + + 6 + {694, 10000000} + + + + {{1, 1}, {339, 51}} + + + + + 2 + MC45NDUwOTgxIDAuOTQ1MDk4MSAwLjk0NTA5ODEAA + + + {4, 5} + + 12582912 + + YES + + YES + + + + TU0AKgAAAHCAFUqgBVKsAAAAwdVQUqwaEQeIRGJRGFlYqwWLQ+JxuOQpVRmEx2RROKwOQyOUQSPyaUym +SxqWyKXyeYxyZzWbSuJTScRCbz2Nz+gRKhUOfTqeUai0OSxiWTiBQSHSGFquGwekxyAgAAAOAQAAAwAA +AAEAEAAAAQEAAwAAAAEAEAAAAQIAAwAAAAIACAAIAQMAAwAAAAEABQAAAQYAAwAAAAEAAQAAAREABAAA +AAEAAAAIARIAAwAAAAEAAQAAARUAAwAAAAEAAgAAARYAAwAAAAEAEAAAARcABAAAAAEAAABnARwAAwAA +AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA + + + + + + 3 + MCAwAA + + + + 4 + YES + + + + 256 + {{340, 1}, {15, 51}} + + NO + _doScroller: + + + _doScroller: + 1 + + + + -2147483392 + {{-100, -100}, {87, 18}} + + NO + _doScroller: + + 1 + + _doScroller: + 1 + 0.94565220000000005 + + + {{0, 233}, {356, 53}} + + + 133138 + + + + 0.25 + 4 + 1 + + + {356, 286} + + + + {356, 286} + + {{0, 0}, {1440, 878}} + {290, 219} + {1.7976931348623157e+308, 1.7976931348623157e+308} + YES + + + + + YES + + + delegate + + + + 17 + + + + sourceView + + + + 55 + + + + messageView + + + + 56 + + + + splitView + + + + 58 + + + + initialFirstResponder + + + + 59 + + + + compil: + + + + 100 + + + + run: + + + + 101 + + + + + YES + + 0 + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 8 + + + YES + + + + + Window1 + + + 6 + + + YES + + + + + + + 4 + + + YES + + + + + 57 + + + YES + + + + + + + 51 + + + YES + + + + + + + + 50 + + + + + 52 + + + YES + + + + + + + + 53 + + + + + 76 + + + + + 77 + + + + + 78 + + + + + 79 + + + + + 90 + + + YES + + + + + + + + + 99 + + + + + 98 + + + + + 112 + + + + + 113 + + + + + + + YES + + YES + -1.IBPluginDependency + -2.IBPluginDependency + -3.IBPluginDependency + 112.IBPluginDependency + 113.IBPluginDependency + 4.IBPluginDependency + 50.IBPluginDependency + 51.IBPluginDependency + 52.IBPluginDependency + 53.IBPluginDependency + 57.IBPluginDependency + 6.IBPluginDependency + 76.IBPluginDependency + 76.IBShouldRemoveOnLegacySave + 77.IBPluginDependency + 77.IBShouldRemoveOnLegacySave + 78.IBPluginDependency + 78.IBShouldRemoveOnLegacySave + 79.IBPluginDependency + 79.IBShouldRemoveOnLegacySave + 8.IBPluginDependency + 8.IBWindowTemplateEditedContentRect + 8.NSWindowTemplate.visibleAtLaunch + 8.windowTemplate.hasMinSize + 8.windowTemplate.minSize + 90.IBPluginDependency + 98.IBPluginDependency + 99.IBPluginDependency + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + {{328, 129}, {356, 286}} + + + {290, 158} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + YES + + + YES + + + + + YES + + + YES + + + + 113 + + + 0 + IBCocoaFramework + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + + 3 + + YES + + YES + NSMenuCheckmark + NSMenuMixedState + build + run + + + YES + {12, 12} + {10, 2} + {32, 32} + {32, 32} + + + + diff --git a/FScriptFramework/genObjInspector.xib b/FScriptFramework/genObjInspector.xib new file mode 100644 index 0000000..42b7144 --- /dev/null +++ b/FScriptFramework/genObjInspector.xib @@ -0,0 +1,549 @@ + + + + 1060 + 14A379a + 941 + 1343.13 + 755.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 941 + + + YES + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + PluginDependencyRecalculationVersion + + + + YES + + FSGenericObjectInspector + + + FirstResponder + + + NSApplication + + + 4111 + 2 + {{366, 532}, {544, 191}} + 813170688 + + NSWindow + + + 802241AF-3006-41E3-868B-F9E247469442 + + + YES + YES + YES + YES + 2 + 1 + + 8EDF667F-1A07-4315-8190-D1193D7EC7C5 + + + 8EDF667F-1A07-4315-8190-D1193D7EC7C5 + + Refresh + Refresh + + + + 268 + {{0, 14}, {80, 25}} + YES + + 67108864 + 134217728 + Refresh + + .HelveticaNeueDeskInterface-Regular + 13 + 1040 + + + -2034876416 + 32 + + + + + + + + 200 + 25 + + NO + + + + + {80, 25} + {80, 25} + YES + YES + 0 + YES + 0 + + + + YES + + + + YES + + + + YES + + + + {1.7976931348623157e+308, 1.7976931348623157e+308} + {213, 107} + + + 256 + + YES + + + 274 + + YES + + + 2304 + + YES + + + 2322 + + YES + + YES + Apple HTML pasteboard type + Apple PDF pasteboard type + Apple PICT pasteboard type + CorePasteboardFlavorType 0x6D6F6F76 + NSColor pasteboard type + NSFilenamesPboardType + NSStringPboardType + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT RTFD pasteboard type + NeXT Rich Text Format v1.0 pasteboard type + NeXT TIFF v4.0 pasteboard type + + + {544, 191} + + + + + + + + + + + YES + + + 38 + + + + 544 + 1 + + + 100674405 + 0 + + + 3 + MQA + + + YES + + YES + NSBackgroundColor + NSColor + + + YES + + 6 + System + selectedTextBackgroundColor + + 3 + MC42NjY2NjY2NjY3AA + + + + 6 + System + selectedTextColor + + 3 + MAA + + + + + + 6 + System + controlTextColor + + + + YES + + YES + NSColor + NSCursor + NSUnderline + + + YES + + 1 + MCAwIDEAA + + + {8, -8} + 13 + + + + + + + 1 + + 6 + {1086, 10000000} + + + + {{1, 1}, {544, 191}} + + + + + + {4, 5} + + 12582912 + + YES + + YES + + + + TU0AKgAAAHCAFUqgBVKsAAAAwdVQUqwaEQeIRGJRGFlYqwWLQ+JxuOQpVRmEx2RROKwOQyOUQSPyaUym +SxqWyKXyeYxyZzWbSuJTScRCbz2Nz+gRKhUOfTqeUai0OSxiWTiBQSHSGFquGwekxyAgAAAOAQAAAwAA +AAEAEAAAAQEAAwAAAAEAEAAAAQIAAwAAAAIACAAIAQMAAwAAAAEABQAAAQYAAwAAAAEAAQAAAREABAAA +AAEAAAAIARIAAwAAAAEAAQAAARUAAwAAAAEAAgAAARYAAwAAAAEAEAAAARcABAAAAAEAAABnARwAAwAA +AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA + + + + + + 3 + MCAwAA + + + + 4 + YES + + + + -2147483392 + {{-30, 1}, {15, 152}} + + NO + _doScroller: + + + _doScroller: + 1 + + + + -2147483392 + {{-100, -100}, {87, 18}} + + NO + _doScroller: + + 1 + + _doScroller: + 1 + 0.94565220000000005 + + + {{-1, -1}, {546, 193}} + + + 133650 + + + + 0.25 + 4 + 1 + + + {544, 191} + + {{0, 0}, {1440, 878}} + {213, 162} + {1.7976931348623157e+308, 1.7976931348623157e+308} + YES + + + + + YES + + + printStringView + + + + 31 + + + + window + + + + 33 + + + + delegate + + + + 34 + + + + updateAction: + + + + 57 + + + + + YES + + 0 + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 5 + + + YES + + + + + Window + + + 6 + + + YES + + + + + + 18 + + + YES + + + + + + + + 19 + + + + + 44 + + + + + 45 + + + + + 46 + + + YES + + + + + + 56 + + + YES + + + + + + 54 + + + YES + + + + + + 55 + + + + + + + YES + + YES + -1.IBPluginDependency + -2.IBPluginDependency + -3.IBPluginDependency + 18.IBPluginDependency + 19.IBPluginDependency + 44.IBPluginDependency + 44.IBShouldRemoveOnLegacySave + 45.IBPluginDependency + 45.IBShouldRemoveOnLegacySave + 46.IBPluginDependency + 5.IBPluginDependency + 5.IBWindowTemplateEditedContentRect + 5.windowTemplate.hasMinSize + 5.windowTemplate.minSize + 54.IBPluginDependency + 55.IBPluginDependency + 56.IBPluginDependency + 6.IBPluginDependency + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{215, 425}, {544, 191}} + + {213, 107} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + YES + + + YES + + + + + YES + + + YES + + + + 57 + + + 0 + IBCocoaFramework + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + + 3 + + diff --git a/FScriptIBPlugin/English.lproj/FScriptIBPluginInspector.xib b/FScriptIBPlugin/English.lproj/FScriptIBPluginInspector.xib new file mode 100644 index 0000000..d4f4891 --- /dev/null +++ b/FScriptIBPlugin/English.lproj/FScriptIBPluginInspector.xib @@ -0,0 +1,1048 @@ + + + + 1060 + 14A379a + 941 + 1343.13 + 755.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 941 + + + YES + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + PluginDependencyRecalculationVersion + + + + YES + + IBInspector + + + FirstResponder + + + NSApplication + + + + 256 + + YES + + + 268 + {{157, 179}, {15, 22}} + + YES + + 67895328 + 131072 + + .HelveticaNeueDeskInterface-Regular + 11 + 3088 + + + 22 + 10000 + 1 + YES + YES + + NO + + + + 268 + {{84, 273}, {180, 19}} + + YES + + -1804599231 + -1874721792 + + + + YES + + 6 + System + textBackgroundColor + + 3 + MQA + + + + 6 + System + textColor + + 3 + MAA + + + + NO + 1 + + + + 268 + {{81, 206}, {120, 18}} + + YES + + 67108864 + 131072 + Switch Long Name + + + 1211912448 + 2 + + NSImage + NSSwitch + + + NSSwitch + + + + 200 + 25 + + NO + + + + 268 + {{84, 165}, {67, 14}} + + YES + + 67108864 + 138412032 + Minimum + + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2NjY3AA + + + + 6 + System + controlTextColor + + + + NO + 1 + + + + 268 + {{175, 226}, {57, 18}} + + YES + + 67108864 + 131072 + Switch + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{81, 246}, {186, 22}} + + YES + + -2076180416 + 133120 + + + 109199360 + 1 + + LucidaGrande + 11 + 16 + + + + 400 + 75 + + + Item1 + + 1048576 + 2147483647 + 1 + + NSImage + NSMenuCheckmark + + + NSImage + NSMenuMixedState + + _popUpItemAction: + + + YES + + OtherViews + + YES + + + + Item2 + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + Item3 + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + 3 + YES + YES + 1 + + NO + + + + 268 + {{8, 183}, {70, 14}} + + YES + + 67108928 + 4326400 + Numbers + + .HelveticaNeueDeskInterface-Bold + 11 + 3344 + + + + + + NO + 1 + + + + 268 + {{178, 165}, {67, 14}} + + YES + + 67108864 + 138412032 + Maximum + + + + + + NO + 1 + + + + 268 + {{81, 226}, {57, 18}} + + YES + + 67108864 + 131072 + Switch + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{84, 181}, {67, 19}} + + YES + + -1804599231 + -2143288320 + + + + + YES + + YES + allowsFloats + attributedStringForZero + formatterBehavior + groupingSeparator + locale + maximum + minimum + negativeFormat + positiveFormat + usesGroupingSeparator + + + YES + + + 0 + + YES + + YES + + + YES + + + + + , + + + + + + -0 + 0 + + + + 0 + -0 + + + + + + + + NaN + + + + + + . + , + NO + NO + YES + + + YES + + + + NO + 1 + + + + 268 + {{178, 181}, {67, 19}} + + YES + + -1804599231 + -2143288320 + + + + + YES + + YES + allowsFloats + attributedStringForZero + formatterBehavior + groupingSeparator + locale + maximum + minimum + negativeFormat + positiveFormat + usesGroupingSeparator + + + YES + + + 0 + + + + , + + + + -0 + 0 + + + + 0 + -0 + + + + + + + + NaN + + + + + + . + , + NO + NO + YES + + + YES + + + + NO + 1 + + + + 268 + {{8, 275}, {70, 14}} + + YES + + 67108928 + 4326400 + Label + + + + + + NO + 1 + + + + 268 + + YES + + YES + NSColor pasteboard type + + + {{84, 130}, {86, 27}} + + YES + NO + YES + + 1 + MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA + + + + + 268 + {{251, 179}, {15, 22}} + + YES + + 67895328 + 131072 + + + 22 + 10000 + 1 + YES + YES + + NO + + + {272, 296} + NSView + NSResponder + + + + + YES + + + inspectorView + + + + 36 + + + + + YES + + 0 + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 21 + + + YES + + + + + + + + + + + + + + + + + Inspector View + + + 51 + + + YES + + + + Stepper-2 + + + 52 + + + YES + + + + + + 53 + + + YES + + + + + + 54 + + + YES + + + + NSTextField1 + + + 55 + + + YES + + + + + + 56 + + + YES + + + + + + 57 + + + YES + + + + + + 58 + + + YES + + + + NSTextField11 + + + 59 + + + YES + + + + + + 60 + + + YES + + + + NSTextField + + + 61 + + + YES + + + + NSTextField2 + + + 62 + + + YES + + + + + + 63 + + + + + 64 + + + YES + + + + Stepper-3 + + + 65 + + + Stepper Cell-3 + + + 66 + + + + + 67 + + + YES + + + + Text Field Cell-5 + + + 68 + + + + + 69 + + + YES + + + + Text Field Cell-1 + + + 70 + + + + + 71 + + + + + 72 + + + Text Field Cell-3 + + + 73 + + + + + 74 + + + YES + + + + + + 75 + + + YES + + + + + + + + 76 + + + + + 77 + + + + + 78 + + + + + 79 + + + + + 80 + + + Text Field Cell-6 + + + 81 + + + + + 82 + + + + + 83 + + + Stepper Cell-2 + + + + + YES + + YES + -3.IBPluginDependency + -3.ImportedFromIB2 + 21.GUserGuides + 21.IBPluginDependency + 21.IBUserGuides + 21.ImportedFromIB2 + 21.WindowOrigin + 21.editorWindowContentRectSynchronizationRect + 51.IBPluginDependency + 51.Palette + 52.IBPluginDependency + 53.IBPluginDependency + 54.IBPluginDependency + 54.ImportedFromIB2 + 55.IBPluginDependency + 56.IBPluginDependency + 57.IBPluginDependency + 58.IBPluginDependency + 58.ImportedFromIB2 + 59.IBPluginDependency + 60.IBPluginDependency + 60.ImportedFromIB2 + 61.IBPluginDependency + 61.ImportedFromIB2 + 62.IBPluginDependency + 63.IBPluginDependency + 64.IBPluginDependency + 64.Palette + 65.IBPluginDependency + 66.IBPluginDependency + 67.IBPluginDependency + 68.IBPluginDependency + 69.IBPluginDependency + 70.IBPluginDependency + 71.IBPluginDependency + 72.IBPluginDependency + 73.IBPluginDependency + 74.IBPluginDependency + 75.IBPluginDependency + 75.editorWindowContentRectSynchronizationRect + 76.IBPluginDependency + 77.IBPluginDependency + 78.IBPluginDependency + 79.IBPluginDependency + 80.IBPluginDependency + 81.IBPluginDependency + 82.IBPluginDependency + 83.IBPluginDependency + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + YES + + + 90 + 0 + + + + 227 + 0 + + + com.apple.InterfaceBuilder.CocoaPlugin + + YES + + + 84 + 0 + + + + 264 + 0 + + + + 178 + 0 + + + + 4 + 3 + + + + 8 + 0 + + + + 4 + 1 + + + + 170 + 0 + + + + {155, 478} + {{474, 671}, {272, 296}} + com.apple.InterfaceBuilder.CocoaPlugin + com.yourcompany.AppKitPalettes + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.yourcompany.AppKitPalettes + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{117, 885}, {186, 54}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + YES + + + YES + + + + + YES + + + YES + + + + 83 + + + 0 + IBCocoaFramework + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + + 3 + + YES + + YES + NSMenuCheckmark + NSMenuMixedState + NSSwitch + + + YES + {12, 12} + {10, 2} + {15, 15} + + + + diff --git a/FScriptIBPlugin/English.lproj/FScriptIBPluginLibrary.xib b/FScriptIBPlugin/English.lproj/FScriptIBPluginLibrary.xib new file mode 100644 index 0000000..5f06c33 --- /dev/null +++ b/FScriptIBPlugin/English.lproj/FScriptIBPluginLibrary.xib @@ -0,0 +1,896 @@ + + + + 1050 + 14A379a + 941 + 1343.13 + 755.00 + + YES + + YES + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.IBSDKPlugin + org.fscript.FScriptIBPluginFramework + + + YES + 941 + 941 + 2.1 + + + + YES + + + YES + com.apple.InterfaceBuilder.IBSDKPlugin + com.apple.InterfaceBuilder.CocoaPlugin + org.fscript.FScriptIBPluginFramework + + + PluginDependencyRecalculationVersion + + + + YES + + FScriptIBPlugin + + + FirstResponder + + + NSApplication + + + + 268 + + YES + + + 301 + + YES + + + 274 + + YES + + + 274 + + YES + + {88, 66} + + NO + + + + {{2, 14}, {88, 66}} + + + + + NO + + + + YES + + 0 + + sys + + + NO + + + + + + {{20, 198}, {90, 80}} + + 53C781D8-3B5C-4138-B642-034072DEADC0 + FSInterpreter View + 53C781D8-3B5C-4138-B642-034072DEADC0 + Gives access to an F-Script environment through a command line interface. + + The FSInterpreterView class is a view object that contains and provides access to a complete F-Script environment through a command line interface similar to the one found in the F-Script application. + + YES + + YES + NSFont + NSParagraphStyle + + + YES + + LucidaGrande + 12 + 16 + + + 3 + 36 + + YES + + 1 + + + + + + + + + + + 0 + NO + + + + 274 + + YES + + + 274 + + YES + + {233, 141} + + NO + + + + {{136, 137}, {233, 141}} + + + + + NO + + + + YES + + 0 + + sys + + + NO + + + + + + + 256 + + YES + + YES + Apple PDF pasteboard type + Apple PICT pasteboard type + Apple PNG pasteboard type + NSFilenamesPboardType + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT TIFF v4.0 pasteboard type + + + {{196, 93}, {112, 30}} + + YES + + 536870912 + 33554432 + + NSImage + FScriptMenuItem + + 0 + 0 + 1 + NO + + NO + YES + + + + 268 + + YES + + + 274 + + YES + + YES + Apple PDF pasteboard type + Apple PICT pasteboard type + Apple PNG pasteboard type + NSFilenamesPboardType + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT TIFF v4.0 pasteboard type + + + {{2, 32}, {109, 30}} + + YES + + 603979776 + 33554432 + + + .HelveticaNeueDeskInterface-Regular + 13 + 1040 + + 0 + 0 + 1 + NO + + NO + YES + + + {{20, 26}, {113, 94}} + + F3DD5E3B-B08A-4E12-924A-1A8E17497AC6 + F-Script Menu Item + F3DD5E3B-B08A-4E12-924A-1A8E17497AC6 + Defines an F-Script menu item and its complete self-contained F-Script environment. + + FScriptMenuItem, a subclass of NSMenuItem, lets you easily embed F-Script into an application. An F-Script menu item contains and gives access to a complete F-Script environment. + + + + + + + + + 2 + NO + + + {379, 305} + NSView + + + F-Script + + 1048576 + 2147483647 + + NSImage + NSMenuCheckmark + + + NSImage + NSMenuMixedState + + submenuAction: + + + F-Script + + YES + + + Show Console + + 2147483647 + + + + + + Open Object Browser + + 2147483647 + + + + + + Preferences... + + 2147483647 + + + + + + + + + + YES + + + draggedView + + + + 35 + + + + openObjectBrowser: + + + + 42 + + + + showConsole: + + + + 43 + + + + showPreferencePanel: + + + + 44 + + + + draggedView + + + + 50 + + + + representedObject + + + + 53 + + + + fsMenuItemView + + + + 54 + + + + + YES + + 0 + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 7 + + + YES + + + + + + + Library Objects + + + 18 + + + YES + + + + + + 32 + + + + + 34 + + + + + 45 + + + YES + + + + + + 46 + + + + + 47 + + + YES + + + + + + 48 + + + YES + + + + + + 49 + + + + + 37 + + + YES + + + + F-Script Menu Item (F-Script) + + + 38 + + + YES + + + + + + + + 41 + + + + + 40 + + + + + 39 + + + + + + + YES + + YES + -3.IBPluginDependency + 18.IBPluginDependency + 18.notes + 18.showNotes + 32.IBPluginDependency + 34.IBPluginDependency + 37.CustomClassName + 37.IBEditorWindowLastContentRect + 37.IBPluginDependency + 37.ImportedFromIB2 + 37.editorWindowContentRectSynchronizationRect + 38.IBEditorWindowLastContentRect + 38.IBPluginDependency + 38.ImportedFromIB2 + 38.editorWindowContentRectSynchronizationRect + 39.IBPluginDependency + 39.ImportedFromIB2 + 40.IBPluginDependency + 40.ImportedFromIB2 + 41.IBPluginDependency + 41.ImportedFromIB2 + 45.IBPluginDependency + 45.ImportedFromIB2 + 46.IBPluginDependency + 47.IBPluginDependency + 48.IBPluginDependency + 48.ImportedFromIB2 + 49.IBPluginDependency + 7.IBEditorWindowLastContentRect + 7.IBPluginDependency + 7.WindowOrigin + 7.editorWindowContentRectSynchronizationRect + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.IBSDKPlugin + + SWYgeW91IHdvdWxkIGxpa2UgeW91ciB2aWV3IHRvIGFuaW1hdGUgZnJvbSBhIHNtYWxsLCBpY29uaWMg +cmVwcmVzZW50YXRpb24sIHRvIGEgZmluYWwgcmVwcmVzZW50YXRpb24sIGNvbm5lY3QgdGhpcyB2aWV3 +J3MgJ2RyYWdnZWRWaWV3JyBvdXRsZXQgYnkgY29udHJvbCBjbGlja2luZyBvbiBpdC4KCklmIHRoZSBv +YmplY3QgeW91IHdvdWxkIGxpa2UgZGVwb3NpdGVkIGFmdGVyIHRoZSBkcmFnLCBpcyBzb21ldGhpbmcg +b3RoZXIgdGhhbiB0aGlzIHZpZXcncyBzdWJ2aWV3LCBvciBkcmFnZ2VkVmlldywgdGhlbiB5b3Ugc2hv +dWxkIGNvbm5lY3QgdGhlIHJlcHJlc2VudGVkT2JqZWN0IG91dGxldCBvZiB0aGlzIHZpZXcgdG8gYW4g +b2JqZWN0IHRvIGRlcG9zaXQuA + + YES + + + YES + + + + + org.fscript.FScriptIBPluginFramework + org.fscript.FScriptIBPluginFramework + FScriptMenuItem + {{139, 652}, {128, 128}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{0, 856}, {128, 128}} + {{0, 921}, {198, 63}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{63, 885}, {198, 63}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.IBSDKPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + {{252, 573}, {379, 305}} + com.apple.InterfaceBuilder.CocoaPlugin + {763, 261} + {{523, 283}, {379, 305}} + + + + YES + + + YES + + + + + YES + + + YES + + + + 54 + + + + YES + + FSInterpreterView + NSView + + IBProjectSource + FScriptFramework/FSInterpreterView.h + + + + FSInterpreterView + NSView + + YES + + YES + object1 + object2 + object3 + object4 + object5 + object6 + object7 + object8 + object9 + + + YES + id + id + id + id + id + id + id + id + id + + + + YES + + YES + object1 + object2 + object3 + object4 + object5 + object6 + object7 + object8 + object9 + + + YES + + object1 + id + + + object2 + id + + + object3 + id + + + object4 + id + + + object5 + id + + + object6 + id + + + object7 + id + + + object8 + id + + + object9 + id + + + + + IBProjectSource + FScriptFramework/FSInterpreterViewIBHeader.h + + + + FSInterpreterView + + IBProjectSource + FScriptFramework/FSInterpreterViewPrivate.h + + + + FScriptIBPlugin + IBPlugin + + IBProjectSource + FScriptIBPlugin/FScriptIBPlugin.h + + + + FScriptMenuItem + NSMenuItem + + YES + + YES + openObjectBrowser: + showConsole: + showPreferencePanel: + updatePreference: + + + YES + id + id + id + id + + + + YES + + YES + openObjectBrowser: + showConsole: + showPreferencePanel: + updatePreference: + + + YES + + openObjectBrowser: + id + + + showConsole: + id + + + showPreferencePanel: + id + + + updatePreference: + id + + + + + YES + + YES + fontSizeUI + interpreterView + + + YES + NSTextField + FSInterpreterView + + + + YES + + YES + fontSizeUI + interpreterView + + + YES + + fontSizeUI + NSTextField + + + interpreterView + FSInterpreterView + + + + + IBProjectSource + FScriptFramework/FScriptMenuItem.h + + + + FScriptMenuItem + NSMenuItem + + IBUserSource + + + + + NSObject + + IBProjectSource + FScriptFramework/FSNSNumber.h + + + + NSObject + + IBProjectSource + FScriptFramework/FSNSObject.h + + + + NSObject + + IBProjectSource + FScriptFramework/FSNSObjectPrivate.h + + + + NSObject + + IBProjectSource + JGAdditions/FSKVCoding.h + + + + NSObject + + IBProjectSource + JGAdditions/JGType.h + + + + + 0 + IBCocoaFramework + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + ../../FScript.xcodeproj + 3 + + YES + + YES + FScriptMenuItem + NSMenuCheckmark + NSMenuMixedState + + + YES + {128, 128} + {12, 12} + {10, 2} + + + + From 563d6547e0d1ff6ecf333ede1cdb18dd229813f1 Mon Sep 17 00:00:00 2001 From: Ant Date: Sun, 16 Nov 2014 07:20:43 +0000 Subject: [PATCH 07/33] Migrated a few more nibs --- FScript.xcodeproj/project.pbxproj | 36 +- .../FSCollectionInspectorView.nib/classes.nib | 85 -- .../designable.nib | 1055 +++++++++++++++++ .../FSCollectionInspectorView.nib/info.nib | 20 - .../keyedobjects.nib | Bin 9888 -> 10181 bytes .../designable.nib | 135 ++- .../keyedobjects.nib | Bin 14178 -> 14643 bytes FScriptFramework/blockInspector.xib | 815 ++++++------- 8 files changed, 1523 insertions(+), 623 deletions(-) delete mode 100644 FScriptFramework/FSCollectionInspectorView.nib/classes.nib create mode 100644 FScriptFramework/FSCollectionInspectorView.nib/designable.nib delete mode 100644 FScriptFramework/FSCollectionInspectorView.nib/info.nib diff --git a/FScript.xcodeproj/project.pbxproj b/FScript.xcodeproj/project.pbxproj index e5a4f6c..26bc210 100644 --- a/FScript.xcodeproj/project.pbxproj +++ b/FScript.xcodeproj/project.pbxproj @@ -121,7 +121,6 @@ 8F0CBC660BDB9519002B0AD7 /* license.txt in Resources */ = {isa = PBXBuildFile; fileRef = 0CD4E37E00D7DFE17BE9C1BD /* license.txt */; }; 8F0CBC670BDB9519002B0AD7 /* fs.scriptSuite in Resources */ = {isa = PBXBuildFile; fileRef = F538EF6E0279FD3C01345511 /* fs.scriptSuite */; }; 8F0CBC680BDB9519002B0AD7 /* fs.scriptTerminology in Resources */ = {isa = PBXBuildFile; fileRef = F538EF6F0279FD3C01345511 /* fs.scriptTerminology */; }; - 8F0CBC6A0BDB9519002B0AD7 /* FSObjectBrowserButtonsInspector.nib in Resources */ = {isa = PBXBuildFile; fileRef = F5F9569002B272A30121B3BA /* FSObjectBrowserButtonsInspector.nib */; }; 8F0CBC6B0BDB9519002B0AD7 /* FSImageInspector.nib in Resources */ = {isa = PBXBuildFile; fileRef = F54B55C3036B48690140C608 /* FSImageInspector.nib */; }; 8F0CBC6C0BDB9519002B0AD7 /* ReadMe.txt in Resources */ = {isa = PBXBuildFile; fileRef = F58090EB0375648201AED2EF /* ReadMe.txt */; }; 8F0CBC6D0BDB9519002B0AD7 /* ArrayTableView.nib in Resources */ = {isa = PBXBuildFile; fileRef = F58090FC03756D2401AED2EF /* ArrayTableView.nib */; }; @@ -404,7 +403,6 @@ 8F6DA657055FC6980050409A /* genObjInspector.nib in Resources */ = {isa = PBXBuildFile; fileRef = 0CD4E37900D7DFE17BE9C1BD /* genObjInspector.nib */; }; 8F6DA658055FC6980050409A /* fs.scriptSuite in Resources */ = {isa = PBXBuildFile; fileRef = F538EF6E0279FD3C01345511 /* fs.scriptSuite */; }; 8F6DA659055FC6980050409A /* fs.scriptTerminology in Resources */ = {isa = PBXBuildFile; fileRef = F538EF6F0279FD3C01345511 /* fs.scriptTerminology */; }; - 8F6DA65B055FC6980050409A /* FSObjectBrowserButtonsInspector.nib in Resources */ = {isa = PBXBuildFile; fileRef = F5F9569002B272A30121B3BA /* FSObjectBrowserButtonsInspector.nib */; }; 8F6DA65D055FC6980050409A /* FSImageInspector.nib in Resources */ = {isa = PBXBuildFile; fileRef = F54B55C3036B48690140C608 /* FSImageInspector.nib */; }; 8F6DA65F055FC6980050409A /* ArrayTableView.nib in Resources */ = {isa = PBXBuildFile; fileRef = F58090FC03756D2401AED2EF /* ArrayTableView.nib */; }; 8F6DA661055FC6980050409A /* DOCustom.m in Sources */ = {isa = PBXBuildFile; fileRef = F5F1AAB8022E9E90011160FE /* DOCustom.m */; }; @@ -597,7 +595,6 @@ 8F6DA870055FC70C0050409A /* fs.nib in Resources */ = {isa = PBXBuildFile; fileRef = F598CDB7025CF7E5011B2E41 /* fs.nib */; }; 8F6DA871055FC70C0050409A /* fs.scriptSuite in Resources */ = {isa = PBXBuildFile; fileRef = F538EF6E0279FD3C01345511 /* fs.scriptSuite */; }; 8F6DA872055FC70C0050409A /* fs.scriptTerminology in Resources */ = {isa = PBXBuildFile; fileRef = F538EF6F0279FD3C01345511 /* fs.scriptTerminology */; }; - 8F6DA874055FC70C0050409A /* FSObjectBrowserButtonsInspector.nib in Resources */ = {isa = PBXBuildFile; fileRef = F5F9569002B272A30121B3BA /* FSObjectBrowserButtonsInspector.nib */; }; 8F6DA876055FC70C0050409A /* FSImageInspector.nib in Resources */ = {isa = PBXBuildFile; fileRef = F54B55C3036B48690140C608 /* FSImageInspector.nib */; }; 8F6DA878055FC70C0050409A /* ArrayTableView.nib in Resources */ = {isa = PBXBuildFile; fileRef = F58090FC03756D2401AED2EF /* ArrayTableView.nib */; }; 8F6DA879055FC70C0050409A /* constantsDictionary in Resources */ = {isa = PBXBuildFile; fileRef = 8F92F0380463F2A400F4C61F /* constantsDictionary */; }; @@ -777,7 +774,6 @@ 8F6DA96B055FC71F0050409A /* license.txt in Resources */ = {isa = PBXBuildFile; fileRef = 0CD4E37E00D7DFE17BE9C1BD /* license.txt */; }; 8F6DA96D055FC71F0050409A /* fs.scriptSuite in Resources */ = {isa = PBXBuildFile; fileRef = F538EF6E0279FD3C01345511 /* fs.scriptSuite */; }; 8F6DA96E055FC71F0050409A /* fs.scriptTerminology in Resources */ = {isa = PBXBuildFile; fileRef = F538EF6F0279FD3C01345511 /* fs.scriptTerminology */; }; - 8F6DA970055FC71F0050409A /* FSObjectBrowserButtonsInspector.nib in Resources */ = {isa = PBXBuildFile; fileRef = F5F9569002B272A30121B3BA /* FSObjectBrowserButtonsInspector.nib */; }; 8F6DA972055FC71F0050409A /* FSImageInspector.nib in Resources */ = {isa = PBXBuildFile; fileRef = F54B55C3036B48690140C608 /* FSImageInspector.nib */; }; 8F6DA973055FC71F0050409A /* ReadMe.txt in Resources */ = {isa = PBXBuildFile; fileRef = F58090EB0375648201AED2EF /* ReadMe.txt */; }; 8F6DA974055FC71F0050409A /* ArrayTableView.nib in Resources */ = {isa = PBXBuildFile; fileRef = F58090FC03756D2401AED2EF /* ArrayTableView.nib */; }; @@ -1413,7 +1409,6 @@ BA223254189FA403002C5B6A /* fs.nib in Resources */ = {isa = PBXBuildFile; fileRef = F598CDB7025CF7E5011B2E41 /* fs.nib */; }; BA223255189FA403002C5B6A /* fs.scriptSuite in Resources */ = {isa = PBXBuildFile; fileRef = F538EF6E0279FD3C01345511 /* fs.scriptSuite */; }; BA223256189FA403002C5B6A /* fs.scriptTerminology in Resources */ = {isa = PBXBuildFile; fileRef = F538EF6F0279FD3C01345511 /* fs.scriptTerminology */; }; - BA223257189FA403002C5B6A /* FSObjectBrowserButtonsInspector.nib in Resources */ = {isa = PBXBuildFile; fileRef = F5F9569002B272A30121B3BA /* FSObjectBrowserButtonsInspector.nib */; }; BA223258189FA403002C5B6A /* FSImageInspector.nib in Resources */ = {isa = PBXBuildFile; fileRef = F54B55C3036B48690140C608 /* FSImageInspector.nib */; }; BA223259189FA403002C5B6A /* ArrayTableView.nib in Resources */ = {isa = PBXBuildFile; fileRef = F58090FC03756D2401AED2EF /* ArrayTableView.nib */; }; BA22325A189FA403002C5B6A /* constantsDictionary in Resources */ = {isa = PBXBuildFile; fileRef = 8F92F0380463F2A400F4C61F /* constantsDictionary */; }; @@ -1836,7 +1831,6 @@ BA223414189FA412002C5B6A /* fs.nib in Resources */ = {isa = PBXBuildFile; fileRef = F598CDB7025CF7E5011B2E41 /* fs.nib */; }; BA223415189FA412002C5B6A /* fs.scriptSuite in Resources */ = {isa = PBXBuildFile; fileRef = F538EF6E0279FD3C01345511 /* fs.scriptSuite */; }; BA223416189FA412002C5B6A /* fs.scriptTerminology in Resources */ = {isa = PBXBuildFile; fileRef = F538EF6F0279FD3C01345511 /* fs.scriptTerminology */; }; - BA223417189FA412002C5B6A /* FSObjectBrowserButtonsInspector.nib in Resources */ = {isa = PBXBuildFile; fileRef = F5F9569002B272A30121B3BA /* FSObjectBrowserButtonsInspector.nib */; }; BA223418189FA412002C5B6A /* FSImageInspector.nib in Resources */ = {isa = PBXBuildFile; fileRef = F54B55C3036B48690140C608 /* FSImageInspector.nib */; }; BA223419189FA412002C5B6A /* ArrayTableView.nib in Resources */ = {isa = PBXBuildFile; fileRef = F58090FC03756D2401AED2EF /* ArrayTableView.nib */; }; BA22341A189FA412002C5B6A /* constantsDictionary in Resources */ = {isa = PBXBuildFile; fileRef = 8F92F0380463F2A400F4C61F /* constantsDictionary */; }; @@ -2254,7 +2248,6 @@ BA2235C7189FA429002C5B6A /* license.txt in Resources */ = {isa = PBXBuildFile; fileRef = 0CD4E37E00D7DFE17BE9C1BD /* license.txt */; }; BA2235C8189FA429002C5B6A /* fs.scriptSuite in Resources */ = {isa = PBXBuildFile; fileRef = F538EF6E0279FD3C01345511 /* fs.scriptSuite */; }; BA2235C9189FA429002C5B6A /* fs.scriptTerminology in Resources */ = {isa = PBXBuildFile; fileRef = F538EF6F0279FD3C01345511 /* fs.scriptTerminology */; }; - BA2235CA189FA429002C5B6A /* FSObjectBrowserButtonsInspector.nib in Resources */ = {isa = PBXBuildFile; fileRef = F5F9569002B272A30121B3BA /* FSObjectBrowserButtonsInspector.nib */; }; BA2235CB189FA429002C5B6A /* FSImageInspector.nib in Resources */ = {isa = PBXBuildFile; fileRef = F54B55C3036B48690140C608 /* FSImageInspector.nib */; }; BA2235CC189FA429002C5B6A /* ReadMe.txt in Resources */ = {isa = PBXBuildFile; fileRef = F58090EB0375648201AED2EF /* ReadMe.txt */; }; BA2235CD189FA429002C5B6A /* ArrayTableView.nib in Resources */ = {isa = PBXBuildFile; fileRef = F58090FC03756D2401AED2EF /* ArrayTableView.nib */; }; @@ -2569,7 +2562,6 @@ BA22370F189FA431002C5B6A /* license.txt in Resources */ = {isa = PBXBuildFile; fileRef = 0CD4E37E00D7DFE17BE9C1BD /* license.txt */; }; BA223710189FA431002C5B6A /* fs.scriptSuite in Resources */ = {isa = PBXBuildFile; fileRef = F538EF6E0279FD3C01345511 /* fs.scriptSuite */; }; BA223711189FA431002C5B6A /* fs.scriptTerminology in Resources */ = {isa = PBXBuildFile; fileRef = F538EF6F0279FD3C01345511 /* fs.scriptTerminology */; }; - BA223712189FA431002C5B6A /* FSObjectBrowserButtonsInspector.nib in Resources */ = {isa = PBXBuildFile; fileRef = F5F9569002B272A30121B3BA /* FSObjectBrowserButtonsInspector.nib */; }; BA223713189FA431002C5B6A /* FSImageInspector.nib in Resources */ = {isa = PBXBuildFile; fileRef = F54B55C3036B48690140C608 /* FSImageInspector.nib */; }; BA223714189FA431002C5B6A /* ReadMe.txt in Resources */ = {isa = PBXBuildFile; fileRef = F58090EB0375648201AED2EF /* ReadMe.txt */; }; BA223715189FA431002C5B6A /* ArrayTableView.nib in Resources */ = {isa = PBXBuildFile; fileRef = F58090FC03756D2401AED2EF /* ArrayTableView.nib */; }; @@ -2738,6 +2730,14 @@ EDE508E019DD4FDC0012F16A /* FScriptPreferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDE508DA19DD4FDC0012F16A /* FScriptPreferences.xib */; }; EDE508E119DD4FDC0012F16A /* FScriptPreferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDE508DA19DD4FDC0012F16A /* FScriptPreferences.xib */; }; EDE508E219DD4FDC0012F16A /* FScriptPreferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDE508DA19DD4FDC0012F16A /* FScriptPreferences.xib */; }; + EDFB2FF31A17E345002C8DD7 /* FSObjectBrowserButtonsInspector.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDFB2FF21A17E345002C8DD7 /* FSObjectBrowserButtonsInspector.xib */; }; + EDFB2FF41A17E345002C8DD7 /* FSObjectBrowserButtonsInspector.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDFB2FF21A17E345002C8DD7 /* FSObjectBrowserButtonsInspector.xib */; }; + EDFB2FF51A17E345002C8DD7 /* FSObjectBrowserButtonsInspector.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDFB2FF21A17E345002C8DD7 /* FSObjectBrowserButtonsInspector.xib */; }; + EDFB2FF61A17E345002C8DD7 /* FSObjectBrowserButtonsInspector.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDFB2FF21A17E345002C8DD7 /* FSObjectBrowserButtonsInspector.xib */; }; + EDFB2FF71A17E345002C8DD7 /* FSObjectBrowserButtonsInspector.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDFB2FF21A17E345002C8DD7 /* FSObjectBrowserButtonsInspector.xib */; }; + EDFB2FF81A17E345002C8DD7 /* FSObjectBrowserButtonsInspector.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDFB2FF21A17E345002C8DD7 /* FSObjectBrowserButtonsInspector.xib */; }; + EDFB2FF91A17E345002C8DD7 /* FSObjectBrowserButtonsInspector.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDFB2FF21A17E345002C8DD7 /* FSObjectBrowserButtonsInspector.xib */; }; + EDFB2FFA1A17E345002C8DD7 /* FSObjectBrowserButtonsInspector.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDFB2FF21A17E345002C8DD7 /* FSObjectBrowserButtonsInspector.xib */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -3235,6 +3235,7 @@ E2DBA32D161CA7180035A675 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; EDE508D119DD4D310012F16A /* FSConsole.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = FSConsole.xib; sourceTree = ""; }; EDE508DA19DD4FDC0012F16A /* FScriptPreferences.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = FScriptPreferences.xib; sourceTree = ""; }; + EDFB2FF21A17E345002C8DD7 /* FSObjectBrowserButtonsInspector.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = FSObjectBrowserButtonsInspector.xib; sourceTree = ""; }; F501AF7B021497C401A75EC5 /* FScriptTextView.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = FScriptTextView.m; sourceTree = ""; }; F505647F02DF417501FE0326 /* Pointer.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = Pointer.m; sourceTree = ""; }; F505648002DF417501FE0326 /* Pointer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Pointer.h; sourceTree = ""; }; @@ -3301,7 +3302,6 @@ F5F1AAB9022E9E90011160FE /* main.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; F5F1AABA022E9E90011160FE /* MainMenu.nib */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; path = MainMenu.nib; sourceTree = ""; }; F5F856C002EB281C01F7E6F0 /* PointerPrivate.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PointerPrivate.h; sourceTree = ""; }; - F5F9569002B272A30121B3BA /* FSObjectBrowserButtonsInspector.nib */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; path = FSObjectBrowserButtonsInspector.nib; sourceTree = ""; }; F5F9569502B272FB0121B3BA /* FSObjectBrowserButtonsInspector.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = FSObjectBrowserButtonsInspector.m; sourceTree = ""; }; F5F9569602B272FB0121B3BA /* FSObjectBrowserButtonsInspector.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FSObjectBrowserButtonsInspector.h; sourceTree = ""; }; F5FA8A6C0215D44C01AFEEFD /* FSObjectBrowserArgumentPanel.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FSObjectBrowserArgumentPanel.h; sourceTree = ""; }; @@ -3955,7 +3955,7 @@ F5F0261E02C243D20155CB83 /* FSObjectBrowserButtonCtxBlock.m */, F5F9569602B272FB0121B3BA /* FSObjectBrowserButtonsInspector.h */, F5F9569502B272FB0121B3BA /* FSObjectBrowserButtonsInspector.m */, - F5F9569002B272A30121B3BA /* FSObjectBrowserButtonsInspector.nib */, + EDFB2FF21A17E345002C8DD7 /* FSObjectBrowserButtonsInspector.xib */, 0CD4E32200D7DFE17BE9C1BD /* FSObjectBrowserCell.h */, 0CD4E32300D7DFE17BE9C1BD /* FSObjectBrowserCell.m */, 8FB505FF05D53C8600153B33 /* FSObjectBrowserMatrix.h */, @@ -5669,7 +5669,6 @@ 8F0CBC660BDB9519002B0AD7 /* license.txt in Resources */, 8F0CBC670BDB9519002B0AD7 /* fs.scriptSuite in Resources */, 8F0CBC680BDB9519002B0AD7 /* fs.scriptTerminology in Resources */, - 8F0CBC6A0BDB9519002B0AD7 /* FSObjectBrowserButtonsInspector.nib in Resources */, 8F0CBC6B0BDB9519002B0AD7 /* FSImageInspector.nib in Resources */, 8F0CBC6C0BDB9519002B0AD7 /* ReadMe.txt in Resources */, 8F0CBC6D0BDB9519002B0AD7 /* ArrayTableView.nib in Resources */, @@ -5688,6 +5687,7 @@ EDE508D919DD4D310012F16A /* FSConsole.xib in Resources */, 8F6597B60C37F061006CDCA0 /* FScriptMenuItem.png in Resources */, 8F6631D20C4A270000FA798A /* FSMovieInspector.nib in Resources */, + EDFB2FFA1A17E345002C8DD7 /* FSObjectBrowserButtonsInspector.xib in Resources */, 8FE3DC9B0D26C0FD00A1D767 /* FSTestClasses.txt in Resources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -5702,10 +5702,10 @@ 8F6DA653055FC6980050409A /* FlightTutorial.txt in Resources */, 8F6DA655055FC6980050409A /* KTest.txt in Resources */, 8F6DA656055FC6980050409A /* license.txt in Resources */, + EDFB2FF91A17E345002C8DD7 /* FSObjectBrowserButtonsInspector.xib in Resources */, 8F6DA657055FC6980050409A /* genObjInspector.nib in Resources */, 8F6DA658055FC6980050409A /* fs.scriptSuite in Resources */, 8F6DA659055FC6980050409A /* fs.scriptTerminology in Resources */, - 8F6DA65B055FC6980050409A /* FSObjectBrowserButtonsInspector.nib in Resources */, EDE508D819DD4D310012F16A /* FSConsole.xib in Resources */, 8F6DA65D055FC6980050409A /* FSImageInspector.nib in Resources */, EDE508E119DD4FDC0012F16A /* FScriptPreferences.xib in Resources */, @@ -5734,6 +5734,7 @@ files = ( 8FCFCF19094F712400FF7406 /* FSTest2.app in Resources */, 8FCFCF08094F711900FF7406 /* FSTest1.app in Resources */, + EDFB2FF31A17E345002C8DD7 /* FSObjectBrowserButtonsInspector.xib in Resources */, 8F6DA865055FC70C0050409A /* FSCollectionInspector.nib in Resources */, 8F6DA866055FC70C0050409A /* blockInspector.nib in Resources */, 8F6DA869055FC70C0050409A /* FlightTutorial.txt in Resources */, @@ -5746,7 +5747,6 @@ 8F6DA870055FC70C0050409A /* fs.nib in Resources */, 8F6DA871055FC70C0050409A /* fs.scriptSuite in Resources */, 8F6DA872055FC70C0050409A /* fs.scriptTerminology in Resources */, - 8F6DA874055FC70C0050409A /* FSObjectBrowserButtonsInspector.nib in Resources */, 8F6DA876055FC70C0050409A /* FSImageInspector.nib in Resources */, 8F6DA878055FC70C0050409A /* ArrayTableView.nib in Resources */, 8F6DA879055FC70C0050409A /* constantsDictionary in Resources */, @@ -5776,7 +5776,6 @@ 8F6DA96B055FC71F0050409A /* license.txt in Resources */, 8F6DA96D055FC71F0050409A /* fs.scriptSuite in Resources */, 8F6DA96E055FC71F0050409A /* fs.scriptTerminology in Resources */, - 8F6DA970055FC71F0050409A /* FSObjectBrowserButtonsInspector.nib in Resources */, 8F6DA972055FC71F0050409A /* FSImageInspector.nib in Resources */, 8F6DA973055FC71F0050409A /* ReadMe.txt in Resources */, 8F6DA974055FC71F0050409A /* ArrayTableView.nib in Resources */, @@ -5784,6 +5783,7 @@ 8FDCCD7B05C0A0A000747C0A /* FSAttributedStringInspector.nib in Resources */, 8F2D067005CED9B9007EA81B /* run.tiff in Resources */, 8F56036905CF22660044FA65 /* build.tiff in Resources */, + EDFB2FF41A17E345002C8DD7 /* FSObjectBrowserButtonsInspector.xib in Resources */, 8FA8EF9F07739FD4001BEC7B /* FSCollectionInspectorView.nib in Resources */, 8F936BEF082E8D9F00A04EBF /* FSManagedObjectContextInspector.nib in Resources */, 8F6631D50C4A270200FA798A /* FSMovieInspector.nib in Resources */, @@ -5797,6 +5797,7 @@ files = ( BA22324A189FA403002C5B6A /* FSTest2.app in Resources */, BA22324B189FA403002C5B6A /* FSTest1.app in Resources */, + EDFB2FF51A17E345002C8DD7 /* FSObjectBrowserButtonsInspector.xib in Resources */, BA22324C189FA403002C5B6A /* FSCollectionInspector.nib in Resources */, BA22324D189FA403002C5B6A /* blockInspector.nib in Resources */, BA22324E189FA403002C5B6A /* FlightTutorial.txt in Resources */, @@ -5809,7 +5810,6 @@ BA223254189FA403002C5B6A /* fs.nib in Resources */, BA223255189FA403002C5B6A /* fs.scriptSuite in Resources */, BA223256189FA403002C5B6A /* fs.scriptTerminology in Resources */, - BA223257189FA403002C5B6A /* FSObjectBrowserButtonsInspector.nib in Resources */, BA223258189FA403002C5B6A /* FSImageInspector.nib in Resources */, BA223259189FA403002C5B6A /* ArrayTableView.nib in Resources */, BA22325A189FA403002C5B6A /* constantsDictionary in Resources */, @@ -5831,6 +5831,7 @@ files = ( BA22340A189FA412002C5B6A /* FSTest2.app in Resources */, BA22340B189FA412002C5B6A /* FSTest1.app in Resources */, + EDFB2FF71A17E345002C8DD7 /* FSObjectBrowserButtonsInspector.xib in Resources */, BA22340C189FA412002C5B6A /* FSCollectionInspector.nib in Resources */, BA22340D189FA412002C5B6A /* blockInspector.nib in Resources */, BA22340E189FA412002C5B6A /* FlightTutorial.txt in Resources */, @@ -5843,7 +5844,6 @@ BA223414189FA412002C5B6A /* fs.nib in Resources */, BA223415189FA412002C5B6A /* fs.scriptSuite in Resources */, BA223416189FA412002C5B6A /* fs.scriptTerminology in Resources */, - BA223417189FA412002C5B6A /* FSObjectBrowserButtonsInspector.nib in Resources */, BA223418189FA412002C5B6A /* FSImageInspector.nib in Resources */, BA223419189FA412002C5B6A /* ArrayTableView.nib in Resources */, BA22341A189FA412002C5B6A /* constantsDictionary in Resources */, @@ -5873,7 +5873,6 @@ BA2235C7189FA429002C5B6A /* license.txt in Resources */, BA2235C8189FA429002C5B6A /* fs.scriptSuite in Resources */, BA2235C9189FA429002C5B6A /* fs.scriptTerminology in Resources */, - BA2235CA189FA429002C5B6A /* FSObjectBrowserButtonsInspector.nib in Resources */, BA2235CB189FA429002C5B6A /* FSImageInspector.nib in Resources */, BA2235CC189FA429002C5B6A /* ReadMe.txt in Resources */, BA2235CD189FA429002C5B6A /* ArrayTableView.nib in Resources */, @@ -5881,6 +5880,7 @@ BA2235CF189FA429002C5B6A /* FSAttributedStringInspector.nib in Resources */, BA2235D2189FA429002C5B6A /* run.tiff in Resources */, BA2235D3189FA429002C5B6A /* build.tiff in Resources */, + EDFB2FF61A17E345002C8DD7 /* FSObjectBrowserButtonsInspector.xib in Resources */, BA2235D4189FA429002C5B6A /* FSCollectionInspectorView.nib in Resources */, BA2235D5189FA429002C5B6A /* FSManagedObjectContextInspector.nib in Resources */, BA2235D6189FA429002C5B6A /* FSMovieInspector.nib in Resources */, @@ -5902,7 +5902,6 @@ BA22370F189FA431002C5B6A /* license.txt in Resources */, BA223710189FA431002C5B6A /* fs.scriptSuite in Resources */, BA223711189FA431002C5B6A /* fs.scriptTerminology in Resources */, - BA223712189FA431002C5B6A /* FSObjectBrowserButtonsInspector.nib in Resources */, BA223713189FA431002C5B6A /* FSImageInspector.nib in Resources */, BA223714189FA431002C5B6A /* ReadMe.txt in Resources */, BA223715189FA431002C5B6A /* ArrayTableView.nib in Resources */, @@ -5910,6 +5909,7 @@ BA223717189FA431002C5B6A /* FSAttributedStringInspector.nib in Resources */, BA22371A189FA431002C5B6A /* run.tiff in Resources */, BA22371B189FA431002C5B6A /* build.tiff in Resources */, + EDFB2FF81A17E345002C8DD7 /* FSObjectBrowserButtonsInspector.xib in Resources */, BA22371C189FA431002C5B6A /* FSCollectionInspectorView.nib in Resources */, BA22371D189FA431002C5B6A /* FSManagedObjectContextInspector.nib in Resources */, BA22371E189FA431002C5B6A /* FSMovieInspector.nib in Resources */, diff --git a/FScriptFramework/FSCollectionInspectorView.nib/classes.nib b/FScriptFramework/FSCollectionInspectorView.nib/classes.nib deleted file mode 100644 index e38155e..0000000 --- a/FScriptFramework/FSCollectionInspectorView.nib/classes.nib +++ /dev/null @@ -1,85 +0,0 @@ - - - - - IBClasses - - - CLASS - NSObject - LANGUAGE - ObjC - - - CLASS - FirstResponder - LANGUAGE - ObjC - SUPERCLASS - NSObject - - - CLASS - FSCollectionInspectorTableView - LANGUAGE - ObjC - SUPERCLASS - NSTableView - - - ACTIONS - - add - id - browse - id - filter - id - inspect - id - modify - id - narrow - id - refresh - id - remove - id - sort - id - - CLASS - FSCollectionInspectorView - LANGUAGE - ObjC - OUTLETS - - browseButton - NSButton - contentView - NSView - inspectButton - NSButton - model - id - modifyButton - NSButton - narrowButton - NSButton - removeButton - NSButton - searchField - id - sortButton - NSButton - tableView - NSTableView - - SUPERCLASS - NSView - - - IBVersion - 1 - - diff --git a/FScriptFramework/FSCollectionInspectorView.nib/designable.nib b/FScriptFramework/FSCollectionInspectorView.nib/designable.nib new file mode 100644 index 0000000..d155e37 --- /dev/null +++ b/FScriptFramework/FSCollectionInspectorView.nib/designable.nib @@ -0,0 +1,1055 @@ + + + + 1050 + 14B23 + 6254 + 1343.16 + 755.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 6254 + + + NSButton + NSButtonCell + NSCustomObject + NSCustomView + NSScrollView + NSScroller + NSSearchField + NSSearchFieldCell + NSTableHeaderView + NSTableView + + + com.apple.InterfaceBuilder.CocoaPlugin + + + + + FSCollectionInspectorView + + + FirstResponder + + + NSApplication + + + + 274 + + + + 268 + {{661, 345}, {80, 25}} + + + + YES + + 67108864 + 134217728 + Refresh + + YES + 13 + 1044 + + + -2038284288 + 32 + + + + + + 200 + 25 + + NO + + + + 268 + {{194, 345}, {80, 25}} + + + + YES + + 603979776 + 134217728 + Remove + + + -2038284288 + 32 + + + + + + 200 + 25 + + NO + + + + 268 + {{9, 345}, {80, 25}} + + + + YES + + 67108864 + 134217728 + Add + + + -2038284288 + 32 + + LucidaGrande + 13 + 16 + + + + + + 200 + 25 + + NO + + + + 268 + {{102, 345}, {80, 25}} + + + + YES + + 603979776 + 134217728 + Modify + + + -2038284288 + 32 + + + + + + 200 + 25 + + NO + + + + 268 + {{287, 345}, {80, 25}} + + + + YES + + 603979776 + 134217728 + Sort + + + -2038284288 + 32 + + + + + + 200 + 25 + + NO + + + + 268 + {{381, 345}, {80, 25}} + + + + YES + + 603979776 + 134217728 + Inspect + + + -2038284288 + 32 + + + + + + 200 + 25 + + NO + + + + 268 + {{475, 345}, {80, 25}} + + + + YES + + 603979776 + 134217728 + Browse + + + -2038284288 + 32 + + + + + + 200 + 25 + + NO + + + + 266 + {{753, 347}, {129, 22}} + + + + YES + YES + + 342884416 + 1024 + + + + YES + 1 + + 6 + System + textBackgroundColor + + 3 + MQA + + + + 6 + System + controlTextColor + + 3 + MAA + + + + 0 + 0 + search + + _searchFieldSearch: + + 138690560 + 0 + + 400 + 75 + + + 0 + 0 + clear + + + cancel + + + + + _searchFieldCancel: + + 138690560 + 0 + + 400 + 75 + + 255 + BgAAAA + + NO + 1 + + + + 268 + {{568, 345}, {80, 25}} + + + + YES + + 603979776 + 134217728 + Narrow + + + -2038284288 + 32 + + + + + + 200 + 25 + + NO + + + + 274 + + + + 2322 + + + + 256 + {907, 322} + + + + YES + NO + YES + + + 256 + {907, 17} + + + + + + + + -2147483392 + {{-26, 0}, {16, 17}} + + + 3 + 2 + + + 6 + System + gridColor + + 3 + MC41AA + + + 16 + -559906816 + + + 1 + 15 + 0 + YES + 0 + 1 + + + {{0, 17}, {907, 322}} + + + + + + 6 + System + controlBackgroundColor + + 3 + MC42NjY2NjY2NjY3AA + + + 4 + YES + + + + -2147483392 + {{886, 17}, {15, 307}} + + + + NO + _doScroller: + + + _doScroller: + 0.99378883838653564 + + + + -2147483392 + {{1, 323}, {880, 15}} + + + + NO + _doScroller: + + 1 + + _doScroller: + 0.98331481218338013 + + + + 2338 + + + + {907, 17} + + + + + YES + + + {907, 339} + + + + 133680 + + + + + QSAAAEEgAABBkAAAQZAAAA + 0.25 + 4 + 1 + + + {907, 378} + + + + + NSView + + NSResponder + + + + + + + browse: + + + + 74 + + + + filter: + + + + 77 + + + + contentView + + + + 61 + + + + tableView + + + + 68 + + + + searchField + + + + 67 + + + + add: + + + + 69 + + + + modifyButton + + + + 63 + + + + browseButton + + + + 60 + + + + refresh: + + + + 76 + + + + sortButton + + + + 66 + + + + remove: + + + + 80 + + + + removeButton + + + + 65 + + + + inspect: + + + + 73 + + + + inspectButton + + + + 62 + + + + narrow: + + + + 75 + + + + modify: + + + + 81 + + + + sort: + + + + 72 + + + + narrowButton + + + + 64 + + + + delegate + + + + 78 + + + + dataSource + + + + 79 + + + + + + 0 + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 48 + + + + + + + + + + + + + + + View + + + 49 + + + + + + + + + + + 50 + + + + + 51 + + + + + + + + 52 + + + + + + + + 53 + + + + + + + + 54 + + + + + + + + 55 + + + + + + + + 56 + + + + + + + + 57 + + + + + + + + 58 + + + + + + + + 59 + + + + + + + + 83 + + + + + 84 + + + + + 85 + + + + + 86 + + + + + 87 + + + + + 88 + + + + + 89 + + + + + 90 + + + + + 91 + + + + + 92 + + + + + 93 + + + + + 94 + + + + + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + FSCollectionInspectorTableView + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + + + 94 + + + + + FSCollectionInspectorTableView + NSTableView + + IBProjectSource + ../FScriptFramework/FSCollectionInspectorTableView.h + + + + FSCollectionInspectorView + NSView + + id + id + id + id + id + id + id + id + id + + + + add: + id + + + browse: + id + + + filter: + id + + + inspect: + id + + + modify: + id + + + narrow: + id + + + refresh: + id + + + remove: + id + + + sort: + id + + + + NSButton + NSView + NSButton + NSButton + NSButton + NSButton + id + NSButton + NSTableView + + + + browseButton + NSButton + + + contentView + NSView + + + inspectButton + NSButton + + + modifyButton + NSButton + + + narrowButton + NSButton + + + removeButton + NSButton + + + searchField + id + + + sortButton + NSButton + + + tableView + NSTableView + + + + IBProjectSource + ../FScriptFramework/FSCollectionInspectorView.h + + + + FSCollectionInspectorView + + id + id + id + id + id + id + id + id + id + + + + add: + id + + + browse: + id + + + filter: + id + + + inspect: + id + + + modify: + id + + + narrow: + id + + + refresh: + id + + + remove: + id + + + sort: + id + + + + IBProjectSource + ../FScriptFramework/FSCollectionInspectorView.m + + + + + 0 + IBCocoaFramework + YES + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + 3 + + diff --git a/FScriptFramework/FSCollectionInspectorView.nib/info.nib b/FScriptFramework/FSCollectionInspectorView.nib/info.nib deleted file mode 100644 index b72ea1f..0000000 --- a/FScriptFramework/FSCollectionInspectorView.nib/info.nib +++ /dev/null @@ -1,20 +0,0 @@ - - - - - IBFramework Version - 677 - IBLastKnownRelativeProjectPath - ../FScript.xcodeproj - IBOldestOS - 5 - IBOpenObjects - - 48 - - IBSystem Version - 9G55 - targetFramework - IBCocoaFramework - - diff --git a/FScriptFramework/FSCollectionInspectorView.nib/keyedobjects.nib b/FScriptFramework/FSCollectionInspectorView.nib/keyedobjects.nib index 12bd0dee4a8ef7d4ae539dc5548800b467b29038..98034719ab41b816f800c85ebf0260615b2acc44 100644 GIT binary patch literal 10181 zcmbVR349aP*1t=dW@|D@n>{lDTGT3HDU?;D8=F8yQrdz*NzxxZ;j)ZK#RM@BkB!LiM+4)7@VGc59;vY)Jg0Fz zcN!%l4f3LNl!2~C9Z@zKh;By#6hSqp9xX(VpvCBE)QFa%73f*C4sAj&p;yowXdgO) z-bbIJZ_zn)0sV@8!xZbW0h_P`J8?UFJ-z{F;ZC><&cVI$EjSP7<3ZSmi*YF~!(*`@ zS7H%Q!;j);a3fxdSK?>!I=mil#9Q$;ydA%d_u+T(F?<}I!5`ui_+$Jj{tSPO&*KaD z7yK*!gHV!6?4*DclD?!L8A{5?2r`;fkN~M76G(*ApkxvwlSmzzLZ%W%W|4=;!(<_O zj5LvDWEELWo+WF^^XNsgfxJjIkyps8WGmT5c9FNpKC+*@M-Gt>$T9K}IYmAtpOLfV zYjU1kAU~2{$#3K@if9s5Q$00MGqq4Vbx@uPG@WM9Tv|X2X+K&)7t)<{7k!KFrhDjK z`ZnE1_tOLP9r`XkNZ+G}=wW(5n4 zE3zRwav&#i!R0|b5=x4E!y=LR=ptW1Bpim=fG~-TD)QYHtc;cTL$zY8oHM~+C2o`_ zK-~O)kXR4zokhO9KtPPef)&9~Fkat!ELY?!3BrqzSQ-phM(TjveiiboPt+_@BpNHp z2!#Bx*hob%iJB3X%+|5BY&AQ@lHmG?eaxOegxY|vZBe^BKp|;Fk-u7Gl&L_W+G#o~ReP8TCfDpgt%U<)M63fC^Dx)DQJ%8s=oP*laeJ&1VbPee41D5L?I|WskEb z*8z@ecK z_;zrlDj4vG2K(zHweiAWRI#-jKtm&Dg@Gm2R<4gGcy-43rn?V;0ZH9SQ(j> znYcY%o09w}#E5tVJ&GPfi@+j}qbJal=qZRN$tB?Wak6UgU&`9_-0NWq_?T5`jAQ0< zF1_ObF*HexLyQ%PwIamvMA=Z|`~mUCVPaKn$RAZwZwYz^X6XltHK8RabLb)9)`XU! z<)Br^SUegGSFtpBD&_r3v`W@6k*M<9W$<{loajFJze2hOJqPwwRF|x}9IZiX(eo%1 zp61D=Q+nE*AIgyRXagvw3|WEJqZiOd^diaxITB`<3Zz&Eo^DBxQ5CYGltIcgo6(kX zE)5J5thlW<9ung)TB_EO=rXh!y^J!!CGf80Y3l+o2EB%cLWb+uOy*GP&Q>&F4XQ)i zAzyZ&ooE*X;%-Rpz0A$pvTIo;OJ`lcbv!e$-pqHk6xfdrw4}gpIRymfNu&U;mD8zf z*G^ZY(}`9U=4eZe`2Zb5$6>w`P-80K+KW!Z@0oJWs#s@W3~CC1m8d8Vh{PZw+ZXwY zp=$ICilNH9P_Qao4Y5893<8B+jK@k8yu)r`H)~i4(`iBZ-e#=Ra`-0*M6{cErHC#aCXS1WvGIw}Iu8MLHA7uQ-?tcQr);PU)-GYFbj47e zdUUzMP*QDy^ZR$KO#2yRf@urtR`fS?s37Ol|**O0u_b23mmI zqY%Efl}a612Z-YvB$a%5m6a_u2Y0|X;*RL4mg2&3>_%oDHMlkqtn~Mf`eAuWDBl^B zm*cooR`wOT{O2%|Ydr2I+j{n9jON5*GWQ{3qlqNyyi^`;}?^cg!(T zX0{8DZpEw@Fzdp4O3X@|Fm7MAoO!SImQ zJmhtLh=1~B57YZxke52dMp+QiWwB9gDvPs<+c++-4MOtuApF7wl}yK`ushh~^gaib zLFu`ia&rn#M-7;v>3D_&I`B+93t)!@-;HPEIe0Ffhv(ya@B*my^YQ%{fCqjERp5pA z5m~4Le>fn9F0F2|s#2BB7w-~7zIc5IupVgS6Q#|gTzZ?KNXx@ZgTW5cP(a)fu$dW9 zXVhO8%l8K+Rz)MV;YxXOFhj7qwi@cT0$zaZ5`{dJ-D*jzLAg+GRH#r5TEd!SVf|Sl z#LaLm_ZRE)KIr!tUW6aVPv9rlf+rV5fTED?tL`?6C}9fkNZQBD(MwK zScOXg%j486m*toE>SJ-S8qif-QoKc6nd~rb!hl=wGQ1o=31dsg2jgOXC&W=!ATQH+ z6<(c~vk9+4nU@RqoGje)tbp|eUj4uX0R?)sSSrC`gTx^}3$cQe_{C;4IUUgC47>@D z%uESM;+ODdyam6Ew*Z>l4eRFv_;vgS-U2bKKoPhp_D8G4I2*_f;*dpCm@6$|JS>V< zHo%M@EQ!gE1YOIOJK3d*cYA(x1z!onN_^kMJ1*ypcLQ(WjQ0XWleo9u3POt^8mz1o z!+CK4QWdpvF~*9U#TW#F3?3c`ffzC@!TZsGrT73F!hDDEL1}A+-@`}n2Vl~U6Jg8O zgb(4vtccy#gx|+U*-&;n8&=L`{u|4_;XtHPth~fe-n16i*NCI@$^bJ4qQM#|*-HX) zyep17i9eDNbu$Po49aNEAFW@8PvTQDz`OKJ8FCtb0-&pTKwdQJ2inv449Wy?<-h-C zSS7uBDuX}AU&vX}DwibaxB`EPzrtrFNO`r_a>bH@MfQ|5;4#4GVR z{9OWgUjC{%OXcb0r7ovy_bb+(zf;@4muvf2{LfakeI(?lfsK%Adr6T$3Ya!g+JA@A zu6X=kXuxu)&~d29wNUipY%;50z7r5?KBAI$c(4s6NvMpdNixw8EzuD@z{9=72w#qv zQ3XKhK+B%7FcOeTGCa%gFXyZhlC`jZhYAmS(@=e0|J5R}9SPkkSA9#~z5Xeh zA9RM~;#yQu&b5(hl)OPx_Sk(V*ZAd~ZE++LDh}2t{TI-+wmO^#dIBa5-Ua)c=6daw zD{obm^h9m|4DrV%_Jhh82@j5dJ!Jb7OB-#;ZcwCU(pD`3c^=po!p2Xmf~_V*oU;5$ z^yQqR$S3c?VC4u&6&Cmm5QA0Y0i(kP^|ojbIQv5_tr!TnVUaq80-RK=IIf)Y{4Zk4 zGRhS^8W!bd4g4vD3a%&v)Afh)((Gybm9mruE92uKO=S%gBZ0v{=oXdx!*WyuGF@8V z6gx`=!v{JC;>>TxNUMSH%;yjbvuYMd&s7#&#KxxQW-0gb_V-jHL!60?1ELAq^jv8Z z3?CR8WaX>^fU$7ZE>w#&QbH!2F|wgYmV^WW?i`1NklG#1$$-Ym$uK}pgw7B}Lr4*- zfFQn04&VR_n6>R#gZ2X$mT2URBe#=b0E22Fylx;R#Mqh@6Cv#?K+H-uW`x4FQ@5#d zJs~5>9da#_<+|kh)>Al#VUwL_aM z8P&lJ@M~sRNyO3RQq(70zMPCxSY7^DNzd_UKqK>Aw$PH0w9t|;EVL70p$(0wO2kO> z`bzGU*4M(UjybTxDq6-#Erf|2r@lIW4K$~kNL;GI)`kY?1c7vbK3n`T^>TjoGQS4k zcPH=zykl!#*sl&C$TW%lkgSef6Q6D^a?Btzr6x=>v|LVRD4Ih>BzH@#IWk-JXc^vw zUnFzLTr!W$hg|?vM5u{=xaN@u^%DgYK=MILN5WmKj!j~<8aZ;L@;52H z&-nvFE`+VTB6RPrI7b5CQgY>XlU6$zGYNExQM(qVkshN~+!DU73n!_cF&Ftsr1) zv38R8WukO;KXZ(XMWXR5CW3|dgiJGrJ;)p*;)(jzG7T}JH1Y|Mi~%z|4AWG$6!6Pw zzHFv>ggMG8o7bBb3g}m*k#pobXuuHm7+X{pRT?nO0eF#oFSm=7E|}ENgbZkIk&%n! zhyTzb+YS@|3=_A7iJxGLN)?0kyu>*K1pfkpYk}Y?wy4-&S=s9C4wObIyv>BSPs4D< zcdZC^0)Z9?(t+R^wrIFy#a6F(!D|z|?gFouf?mxb(u$%8D6BxC1&U?BLFo^+BG?TC zZXn=+U^#pe+y>fM696D3JrE1CUMI(?07tC%r~$yb&XAAf0g>ti2!l zgBPK%!l5151zp15(Jov7ox+jwc4I8MlRXPtQ3)?ihJ1^IUj#5=23YBOutgTAn*%!a z0I5^tU59~{vFGFi8k&dNu{BHuU^K4=PA!$)w*p_!(7sI)idIDHFN+4J7-@1>P%d+D zR|nU2xI%F4fNLjQyWlE_xVTy~H-NE$n6X3VW6PgT2OHXK%2rY#ZCo-ef!2PPU7^ z#dfnjY%hD8?PL4d0rn1immOs9u|w=IJHp;)N7)DL7(32BWGC23_8eEvjph7Y1sC8d zIguO3RdM6FAUA=V$c4CSF3d%^8tzUm%Eh=iSIbS}>bS{VJ$Dz^z)j(%a?`l!9OGti zGr3vZ-P~+$4mX#Z$Ia*N;TCZBDt`V!#tq8-Pqa^?m zK~B^TA}t3_`uY$8dzu__Gr5(Nk{}#UFC;7B*!d(JGJglh%iqHR^H1a#IAZ>T{0WE5 zgsNx?by7DRFZZDNbOBAq~EbPAnI=h1uMkhu{Y`aHPp6F4yb91e@m!a?ylI3&JE ze}E(6pFzLhLGZs+SVdJys$`W`rB``W?Nyysy;QwbeN=g>0@Zj`L{+DHT(w5ES+!Gj zK=py@xax%Jr0SIFwCarNGu4->uadM$)}%H`9g;dGWhG@NbxG=))IF(JQtzaaq=uxa zNz;>9(#)j0ljbDNOPZhbM$+M=kCV=+soJV;r_NCqsEgEP>Iv$4b%UCz=c^Z}?^8dl zenkD4`f>G>>c#3M>PGb{^~>t5>OJar)yLE))E}uoPEJZTCR>wT$?oKgbC67uLlcUKE$@7vQNPawdY4Y0S&B?DP?@d0M{BiP6$^X(AG`z;EX{$-swAXah z6lnTt`fCPi25E+9ZqwYZ@o9!@N;M-i(=<#oQ!`65TQgTPU$a1SuV#hjkmhTxMVqFz zY3*94)~)qu1#KH`x;8_5jrI=hSZ#&2QaesNUOPb>(uTE@w9~aSv@^AyGHPdc8hHZ_=Cfsd}s4 zu6OG@=yUYl^gZ;w^aJ#_>wWrSeYL(xzg)jkzgoXWzgE9azd^r6zfJ$9euw^~0UM|x z$)Gl93_63sU^JKvg@%5H0ft)*gAGN7p@w0GQo~q7g&|;=VtB#uqTwaO7Q-use;8gj zY&GmQ95fs<95$Rw$x6vj8I&?2MNFBTGCSp=l$9y}NZFb4R?5DV11ayOyq9t~<%^WB zQoc_4Hs!mN3n{{| zUNnAh{L%Q6NpG^7GECW~o~D~kx0rHG`KChCAd}w|Hcc|sn;J}0O><25n--c@o7R}t zn%0>%n0A;Bnhu-Z=hU2ub8s%s!wFnE*PgqU%j9n0ZsfAKZrl(k3#+*`+*)oOw}IQp zZQ?d_uW`HJi1KZ2KX;t_g!_W~iu;;7&t2qx;QncDYre_c)!fHC+&s!0G)K)d%=63- znpc|Fn|GMsF`qI2Xu%ep#bIf0>1^p^DYM*XdBF0JWufI!%OcAYmZvODmgg+bTh>{& zShiW-wCuFJW!YnS+wyZNPSvMcQ+uWMPVJMLms*h8H?@E2z|=vhMX5tmZ%-YWIy$vH z)t`DK_2;zIw4Ag%(#EC5((X@Np0*+F)wJVjU!?tz_LtRZz0O)-Ewhfaj<$}mmRtSS zfK{|sS%cPz*0^<&b-Hz)^&acJ*88mwS|74LX$0W_AGmjy_-GPew)469v+#` z$Z^DR)N#!5q2p7>=Z-HOe>pWyy)(sWayp$E&KsRQodwP!XQ^|9bF4GyoaCJDT;N>n zT;gnWHaV9&H#&DXcR6=E_d54Ek2%jezj2;(o_Ah!{^>Hg%&t_I)n#{OxN=U9 zT)kZbT_atiTw`2gT@|is*EAP%&2-)En&W!VwbZrDwZgT^^{i`?YnN-cYp-jc>wxR1 z>r2;J*Eg4|x2J$0UXPlIQwXS!#GXO?HSXRc?yXMyKF&jX%^JPSRKdKP(} z@I2*t+VhNOsb`sIg=d{-gJ+{>n`f`*9nS~6fj9CTZ{gE;8}Hy_@|*b0{LB2S{A>Ih{5Jkg zekcDHzlVRD-_O6pALI}5NBE=sG5$mTB!7xO&7a{vy za)@{!$_*-r2*{xV%CUGW-X~soE4u2g>w5g>_xq)#b#?c@n|_-7j(IcRH*aR%%)HvB zNVqwkk?}GRpuj){YDfYd=&QQU48@wm(Z=$w@o3Y8uEAK{)G$7(>Kd)RI#d^LwgI_u z!;7E+ZFTYR-pa%JU_8i4jbJGaj0(*O)#oM#?G`=(0~nzX^oId31g?NwD1gaO4{^8- z-&_xO!Ft#V+u&Zf4|c&G*bk4uqi_sP!gKIEd<0*^dH4o?fWO1f@CyNACKe(P5AhO_ zbR*qK4>(IMCA~=|=}QKZ!DI-@C8eZ-RFbPmkkpZBBtqh(h0G%J2`7um60)4EAh(g* z$p*5KY$o@Uon#-`PY#fy8CcQX%52QRoXpL-vurk!jbfu&2`gn|*jP4>m9YRTXX9A~t7KJdGP{Z`WcRWA z*-o~LJ-~Le2iYF>5ZlZ4vHk2}c7PpZhuC5E2z!)0#*VO~>=;R6kFzJ(adv{8WT)6) z*lG48dx|~FUSKbc@7mZBiJTQ|U;;B(KmaS)AQ|l704KP>4Ic1<4^qGnBBVkZTm9n2Fjw*ctzK`NU*uNx->9Gu`)EHX4#(dr01dL zieRKAgik!Bf!w;fP;+y*HXI4Z=Zp#0C*I-Myl7)1nkX7?^Q6*1X>fX|S>l7&g)zLD z6^%`ks1%OUn~5k78AzA-LLTsEf)c!=F^RG;+88ehHU=9)u^K@r4OD~?Pb5?sZmf^a zQgA2c(Z7%6Hshub{tVmR! z8Grl?u0SUAg?>0cc}^03uHp=}REWBWL=;^VH#RrnRWw!+4$V3P10f5tVNjK#@lf+b z<)RS>Z-PNE_)6r~(j1RYS7uPvwj?;w;^BGGx@fRnnG%AbFbr}~kBLao%rzSn8N(rO zGvq-&491z2w8Vp`pg<@-zBGW}%E&?(!83OYb|`{k7zv|bG?YLojDfK*4$2?^HG%z|?8;Wob>RZps1zNZi+V6hhoS=RtMT~UMLbl)-wwu!3Jqv3mT;<*W)9_E^wIw zElr`=Ok4(T;4W_DW-Br3xQQFykR`XE+?gmh6K0|87|emW&SOQC78QcWR;bvF?D`6F^hFf3_+zM;)yB6+%J7Jw@ns@$2dTEM z*0D$@uSw zop3Kst9Nre7H(|d4u$jq*u5Ec!-Ftbo?4sR$TX7K$`=ahL$G%X?1g=3t&)c+6P4zU zH@R{Ulx`H-hvC3hH~fPu9fvLNa64p9N7#<;HU)5 zfhq{sCPw0q6mz37Tw>*^a@*MlkHZPs$$WgkA351y;50l5Pbp4@zR{njaKDx4W#6a~ zT&=AG`}dU$c%Wp!eKNDrf-~DJ_yu?|VY|!W47>y{!z=JAyauns8}KGt@ftV|@4{JR z{yuyFAIkQb7i_ExMK0*9MzEq%f_2jxV$qhydJLXXC9;>Jvkwo=4MhU+IT18cB+HKl zXEk4-mH7oiQl8Y2AMOez!P(*IEz`?Fb&_A8ZY5?iYny$>uQ|LQ@4-c$j7I3Qsz4w* zeu?lK@A3+o$2s^IK7mi+Gx!|7fG^=Ij5G2`$-X6Ufu>-cL>V$r}K+>SDuRQT&Fl?`wTmB{*9*(&w#fHkpqqtZlqu%hZ;gL*gQ#8 zu#zMZ4Xh$MI8F>iLyW|PW?CMMHH6}Lp%^sxWAZ8aurNvhR9rVy99hY`+qC)Ux6Sez z;6!VbtHN+7Qm-t`piaVx6~$wm`xoI3;*^EEh`UDU^7|bdli*mmzCP5L8%H;+ZHb4P zxnGJW{4#zi?`zZMENl(&Ca#jq{i71jEmZL&2CI!h0H_DL9NycW9LHfx1e_}vxEEb%DaOL0M=~Zzc zB{-0Nr2kgZpA1lfk?bUj-sL5b!jK%zB;#m*qKM5R+1p4q8Ppb<(26^ZOt_3ZrgBPH z+Gz&0#}#q~?#`(shu??+gYt!KO3&k&_mO;3KnlqSQbdYz=Q>VClM$#6t@#;T{MbpVRQr5QN%lq^oJ~$DGa3>uwpwEA^lai_nJ1Ln=s$mVuS9VgHDzP1* z|6jp};CFUqS!hZu)I7C)gW!%oMmU8ubV4|c=UhP8C%fN&gRtXXPnyUKL|C98lx|3 z4Fos36S&EI5`wF$C=JFiUFv}CtYCo650JUa*ljVK7k1NjC@YM zAYYQN$k*gNw32TCYYg%o`JQ}_p|2=VhiPsETQ8-7W;xfCH~&~;NUr4M9J(kJ#3Cdw z5^j>xH+-**$(=6e8x?IFFsw>d3l^LbnUpFh$+~ohA#N_8Z>1SL%%|`x#|T1h8i4%2 z5`XcZUn`X;d?v5qHPQ@+LLvE)XKqED-{Bm-B46U0naE`d55J|9P~6TDNRa8xrsD^4GM)mkai}`0=d%2V!t&`y3v*9D;tcF+f7Cu8z@vE#l;6cO?!$-jc z0&2m{m1=qLtl)$YwSk!?Q#*CQi_}Rzpf2jB9$Dd1A(u(L)CbdO3iTss4NawK^dg#$ z$<++|lM@Q>| z5ky_(mIq? z8Lp2{m75)?iI(Y&xhi*YJMWJxR)Hqts2+UJt71jtTe=-3XJ*MpC zQjMwzkuub>=q!Z`u4t2761}?tdk%Fx#4pnEaF-mZRKib}9Qg;pN`Ti(?p4dD3l5`M7ysHt!KWszDA|-uD+q)!Qx}MmYogoD@OzU5hO-QMPr_sLTD>@JtCktYDr9~T? z${SGL6dsgqO|dkX`8!)v(_v_7Ik?7(t)bPb<}Gf@mFG(i#BXW%?J7okP8cnd97 zN+dalk-=S9zE>5~Mx(;c0GjV;T0%<^RSB}5#;=yO#j%}={HtpO-0XT~4(OSdAy+JT zfpQXp0ybjrBtMEHVEk~8ioZ{(>H8rqh)L!wQu;_3Mr zz56SvJFTU4n`oWV(2-hRfmy*OY(HTA*4m0K0K|i}RJ+#ab(YtF@}|o2;=EbP@STYa z|IaH3I-RGF%IG~n`D7+L7Z&$Y^@J*}=5zQg)a`6u-DTMMXGO^Z<=#eCmZDv$GL*U;8K~&VHTBW9;HM<1 z^jbQ9E1ln#XiB}5M0kC(4GMYxU%)KD(9i~FaRNkZJBV3hH^?ARq0*L@*;j6_Nd1*Q z*k5T|%$uY@mCi$LCf+wYVFxSesx5StqMG*5-O(8aX30#XUcsS6hk&l7w{4-fwGUES zb+R`}3xukYt`&p6ldjuL*C{o-U9Qf@w8SGJEI|_`d&gWlm1^k*%%v$t+Qn7%7@Hcf zsndZ1!*(j&h7>`hSvn!!=D8h6u+UDWJCVePBsWd!P=>V=NgX*-NFS2B0eSr9@?d>^ z$DAHBrc`$s6~CjBCFN74?~u*cRK=9! zx|6gb| zRs4QTRdSo~sH#qG+{$LnTm&m;EL7VBc~KBD?(j!SuIM}@>u~ZWFuG+E9MXKJ^UfQ zm+#~I`NRAGKgbX9!~7BcD1QvIjKGYRU@Vj-704~IP<@)B$+YfDq0r;sP$)$iQuzOj zhm_Fc`?NoMpQt(ioe(9t?J>D990_%6P8%}|Q_z2dNok<|JDG`8UXqEqN8+3!E%7uO zOOtorG%1pmOJ9?foAokgZM(1KJ9i7|l6k;*QiKN)6S00DN6`E+1{FhT!c?S#i?MiIaU72^Dxe4|VFI(@ z5ym7^h{qaZAds;5b!hV&@rWWD4=yCv(c^)}@`OoAhZ?K!D8q+G9P9C@;~qTBxDSsv zwxd@p!o!Z+6yK1{ZIO(MEoMvDQnrlU#Fn$0*$TFjT*6kfTi63(wv}yT+u06wFMom`=O_3{ev1EvpXN{Ur+5Z`nm@yz<goG?b{D~uKf z3)w=6P#|OpnL>t;FXRbBgj`{eaD^~b7%3FVnG$x}e-VZYIYNJ-R2U|V75d03heGxY zCO>WJf1dAbzdj>hV^fm7%wE~VUXe4K;^E3MRX#>3(BkQ1I-WB2!E>x(c=A++D>4PM z$1CV!JcwOOx6p_2aP>X~_BQ)bMO1o~L*-TVP-UtLRHdp3s!6KJs*oz8nxmSp zTC7^C+OImGI;46;^_c3Y>T%U^)k)P~R8Oj&Rz0hFUiG5tCDkjc*Hmw)-cr4z`dam~ zTCFyzEo!SeS?y2{P#3Aksw>r3sjpTytLLk)Q{SLos9vOAs$QmEu3n+ur#`BFTK$^( z4fR{F1)s)=h_HP>hsYF21g zY3|f))a=zfsyV57PV<)LQ_Z)UpS5bOMeEe2YcJLI)eh2@X@lCBHm;qiovod#U8h~I zy+^xIyIH$UyIp&)_I~Y2?N2(3u8VGfZltb87t>vWx^=n-bq94Pbua49>fYCVs5__oME9BQ8-0>KS?|;P^{M)F{bl+LeSv<2zF0p> zU!uQCKV2Wy$Ml=^JN5hZ2lS8XkLZu-pU|JspVFV!KdpaOe@6d?{=6a0P-rMJj5Lfk zlp4kw$_$l;YQq%6RKqmGbi-W3^@at8C5B~&<%ZRUHHNi@Eru5iuNmGmd}8>;s5d4X zy~ZBKKE@HovBpWpsPQ`EQsZsLt;RjZL&m3!&lsOGzF<6Ke9QQb@vp}3jej%#X#C0e zv+-9Gn5ao*N-}jb^)Ov#>Semzlwry=^)r>2t~V_*Eio-KEjO(&tuozWy4AGaw9T}` z^rY!&)3c`MO)r|xm|ix$YC3Q3YQDtW-F&IJr@6N|!<=c(HV-%Fn?vRXbJ#r1Jl))A zZZgNrOUy^i$IMTdPnb`cPn(}IKVyEu{J!}^^EvY;=5Ne@wIo{{7MI0i@mW$Vq9x6e zZE3VLSz?yBWu|4eWv=BK%MF&BEH_(rTlQG?TJ~EGSPohaTOPH%BIpI9U={?yCfEh1 z;1>MCB|>-f`BCWSW6uKw4%dlnI`q>89vTV7wJX@)4tgXyeZmY0W*%sPX*zT}xwr#a-x7};I z-?q#4pzR^sKHI~#gSNxAEd2{m7yCFEA3MHq{N%JbyE%I}FLU;CUhXV%j(1i% z>zom1i<3LII(IwwIQKgDI}bPyIUjL8<~-#*>-^IBg9}^+S3lPPSC(s#Ylv&8E5|k5 zHOf`zintnGGhEHCYh8<6D_!edJ6wBQdtHyZPP)#x-gSNA`r55_JKb)#*PY@P-QC<- z?m_M$?xF4+_el37ceT659dy^Zqi*iL-o3zmqkFM?x%+PS2KOfS7WX#yUiS(2Dfemj zQ|@QnZ@52qf9d|({f+yt?tglW9FMVg;K}mjc*c1Gp7EYa&jimD z&n(XzPpfC1XTE2#=MK+0&w9^2o{gT}o@1UTJSRM-Jf}S`c;5GX=sD;4#PgZwTQBvh zyh&cISML?P7kRsQFZOox_VD)e7I;T^i@l?~CEkhNI&a9!z1MpecyIJB_Ad3_L6IiEo*2m+yJs`4n49zm(jRx|ADJcBJe|Ih=AT<(wbqu3 1060 - 11C74 - 1938 - 1138.23 - 567.00 + 14B23 + 6254 + 1343.16 + 755.00 com.apple.InterfaceBuilder.CocoaPlugin - 1938 + 6254 - NSObjectController - NSPopUpButtonCell - NSScroller - NSPopUpButton + NSBox NSButton - NSMenu - NSScrollView NSButtonCell + NSCustomObject + NSCustomView + NSMenu NSMenuItem - NSBox + NSObjectController + NSPopUpButton + NSPopUpButtonCell + NSScrollView + NSScroller NSTabView - NSCustomView NSTabViewItem + NSTextView NSView NSWindowTemplate - NSTextView - NSCustomObject com.apple.InterfaceBuilder.CocoaPlugin @@ -61,7 +61,7 @@ {854, 282} - + 256 @@ -69,7 +69,6 @@ 274 {{0, 100}, {896, 294}} - collection @@ -105,7 +104,7 @@ message - 256 + 274 @@ -113,14 +112,14 @@ - 2304 + 2322 2322 - {{0, 62}, {898, 132}} + {{0, 62}, {898, 294}} - + @@ -197,7 +196,7 @@ IHlldA - 6 + 38 @@ -229,7 +228,12 @@ IHlldA - + + 6 + System + controlTextColor + + 1 @@ -243,11 +247,12 @@ IHlldA 6 {898, 10000000} - {799, 132} + {896, 294} {896, 294} + {{0, 62}, {896, 294}} @@ -277,6 +282,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 4 + YES @@ -284,6 +290,9 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA {{-30, 1}, {15, 292}} + NO + _doScroller: + _doScroller: 1 @@ -295,6 +304,9 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA YES + NO + _doScroller: + 1 _doScroller: @@ -304,11 +316,14 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA {896, 294} - + 133776 + 0.25 + 4 + 1 {896, 294} @@ -322,7 +337,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA - LucidaGrande + YES 13 1044 @@ -340,7 +355,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA {0, 0} - 67239424 + 67108864 0 Box @@ -350,9 +365,11 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA textBackgroundColor - - 3 - MCAwLjgwMDAwMDAxAA + + 6 + System + labelColor + 3 @@ -376,12 +393,12 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA YES - 67239424 + 67108864 0 Fetch automatically - 1211912703 + 1211912448 2 NSImage @@ -395,21 +412,21 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 200 25 + NO 289 {{708, 26}, {130, 32}} - YES - 67239424 + 67108864 134217728 New Inspector - -2038284033 + -2038284288 1 @@ -419,6 +436,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 200 25 + NO @@ -428,12 +446,12 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA YES - 67239424 + 67108864 134217728 Fetch - -2038284033 + -2038284288 1 @@ -443,6 +461,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 200 25 + NO @@ -452,11 +471,11 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA YES - -2076049856 + -2076180416 1024 - 109199615 + 109199360 1 LucidaGrande @@ -501,6 +520,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA YES 1 + NO @@ -508,14 +528,14 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA - 2048 + 2066 274 {457, 69} - + FSPredicateTextView NSTextView @@ -526,6 +546,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 4 + YES @@ -533,6 +554,9 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA {{-30, 1}, {15, 69}} + NO + _doScroller: + _doScroller: 0.73913043737411499 @@ -544,6 +568,9 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA YES + NO + _doScroller: + 1 _doScroller: @@ -552,11 +579,14 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA {{18, 23}, {458, 71}} - + 133778 + 0.25 + 4 + 1 {{1, 1}, {896, 104}} @@ -569,19 +599,16 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA {0, 0} - 67239424 + 67108864 0 Box - LucidaGrande + YES 11 3100 - - 3 - MCAwLjgwMDAwMDAxAA - + 1 @@ -595,7 +622,6 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA {896, 395} - {{0, 0}, {1440, 878}} @@ -618,7 +644,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA - + collectionInspectorView @@ -1016,15 +1042,20 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 0 IBCocoaFramework + NO com.apple.InterfaceBuilder.CocoaPlugin.macosx + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + YES 3 - {9, 8} - {7, 2} + {12, 12} + {10, 2} {15, 15} diff --git a/FScriptFramework/FSManagedObjectContextInspector.nib/keyedobjects.nib b/FScriptFramework/FSManagedObjectContextInspector.nib/keyedobjects.nib index a8186869d5570425037a538ac5abf06fa5d67fd1..256705aa03ed7a9c8d66c8d61a2a91ca8f969d71 100644 GIT binary patch literal 14643 zcmbt)33OA%_y5ei_u4dVlb5Y&(}bjLx@5zavhS2d3Y4u-R>jhW5(rI6QYh5I1QAg{ zkuQrZ0+vNY#0A_y6a>W$7eE9Nkwp{~#a+KD{_nh(bWzXu{LlF%r)e^8=FXivclq2q zGr7j^3x)IZPa=#6;t-Dn6er9R=8v_{@&-e`K=oLAVDdC?ML0ChULLHN>VxJ{_Hdv^ zi}0e&Pik;S6ps|hin5R$IZ<2G4)sNY(O6WDCZh^eiKZeSnt_7oPDD`z-HjHZ#b_yd z5UoIK&^ELSJ%OG>pPrg76b zKNsL?xF8qe>bM2mUEDp~Vs06CKevKg%dO)c<~DL$xL3G?+#&7=ca(dBdzbr^JI`I` zzTtl2e&&AX{@^iB_&7d+Pv#AL3UA{xcsrlXd-%3|0pE-7&lmH9_%ePBKb9ZIkLM@w z<@^-h$4}#@^L~B?U&GJjXYsT7JNXE|fM3Kf;g|9c@+Y%I-s-Py z!^pAnS8wQcAXgg-2WH4)8=;?LY)l%*kqahuBM)%dHXsXZGmVo8-h%Q$swK7Iau7wS zH@pSif(nph^w3iHA&)FXMY~aZ)B$xwols}g1$9N;PsD`G~u5=(> zLjOY#((mXG^hf#&{f+)k4JT1Q)E^B14)kasDn^5VuhKwmu)+)5)z2FW`>M;?=8hR! zI;4EE*AMbbplT|91S5ukxJuAaGz<+#BhW}xiblb^42=Qt^{)$itC^>h^k686YNR(* z6R58A2H|OGZH+fL%jca9v&|adFRuzgTppce3~skP-+1W*kc1hUpr6BR#1ArwZnXcmZIHmXB&&|Fjx za-9U4A?xJuV4!Xekn86KeGhsoWxLSCRIEvtL1O(YeUdU!Bh}HA1ezvmQ3EP^1kIy* zYM3NyLg8}1w;C+77?eCXtK2UyXaTwl=7=g|pJ1?j&K9%)Ekq7b4(aD4F{O#6R%Y@6 zaDER>mC4+T?)xY6jc5sS{Igjeu?*cmNz^v2223x=1Rvaj9ze_4uzz{R_OGeq_=={l zEv38?t&*f{rd_Cb20et(K`EFxrSVq0R7aL|f2Y(2~AhzaJJXY3n4h z4J_U72M0AIQ01#A_YWzb6Q~XM^95xU8wUcfX0}^NZM2PocBU41TQxW%fmzU6Q0&-j zx1&eV4)hqjA4g@NyI1Ik^euRQ3R11FZ{NAS+tw++!ELK=*RBJobH|2;f8%&JdJ;H( zTH<&wr#Bxu`ZA4pd9sC1Rk? z{b$ztKoOzCBoTr`)2QMZ;FDoUbg!AQvYn63)^3t$YMzjpF6>Jmzptu#29Sc?WW2y8 zfkUbZ1c5dLt=M|{dHv;cq!o@1c|(lh0l~lwHUQ?67zmYyfpKXN=zn1L@Ic7NoF!OE zizT!Z2aBBUFL*8Nje1iD&C$j!=#6MDwNtZ(M+wwPGcJG zQh%U7(M|LhMi`@$n8Q34a2)8}2AqJ-U?m8j{ zTuG~ms-$L8O`v9U4P#E0O;?$87Phyrz($;f9MSE>xioM5u<%rGkQq@(3Jci5!ooYC zvj%y%2e*wHO(XWOp|IyT9|I4tEyLN2vf?uX+zt=g;X>RVcaUOTOmOTO$iBHF{E&HM zPk=o8CsXc(JHz(3pt~J+!d-AzIT*vv%0yt_qxL@@tQw%?5JcAH|93+K*??Pq}^j~vqysDf;)69blVC$Fc)0V9$aui=Z1#Ut%3%G3_Jvv#3)I0 zKBA|hbP_%V*ZU$k-TmNp4>HG#N8!<60L<~efy?k1JQmdc7@mM9qP_TbJPF@{KE#u8 z1;}7%AULDkAJgrauN2d?Jh%Yu!0sau=xdIMXc6s3d(&RDKg|%|5DEC$0p4)MR9ks1 z;7@>Z5TpEaT58c$NsIb`FiU6qpyzQs9aPzmXMh?@^GSN!m-cJ!A?TrA)UWo6;i|{>oF}@eyhnJuU@OeLe092)m?z+vfB2A}$shs&YksIpkZf>7YC0#^?rDDhP@hDj4x#tbL7D_D zK+ZvQFkSo!eh{xfKz8yb`cK}~I(OI++?*jhV`ziQ) z2JgW;@Uy^8s5vS}O-^>Mz%s8=F2Q$cqFXYiJSB84Ie zU7OYGo1!=F09~d}&|O)*Zb*R*wEubh0)7$i1Mc>tvmm_#_+{{(V|b(?vI-^`nhtlAO_#i%nU&V)k- zQV@nsSVJi!d;mMd9N6_5I*iWz5Wj`r#_!-mK=c@X7rzIDKVbGEg*%C-K4JJixi;)A zuAUNLwh;RrqQmJ7Is!-qVxIUU&6_0lRwlG~u^+7(T0Bco4h`7k%+V%Ukhjt{Cz>AO zQ>dsBe}qrdk#syYoWN&Ux`{u*=kY}lWZUVG6F1^>_)}U+M>XQl@C7=Wj-lhE#Sbrs zWd_S@rj~~1_`OlUZ~|We0$;!iui|U4wWG=>gFI?j2G<0vU@>JPFB|#S`1-#PYsB9$ z;0{o(^(0M51m8f{@OKP}FH)fhb8LNg~NaMbt#3x6w)T z4q8qp(+XNiy>tq#qEo4lPJ>+|I-(~A5C$L=DP5+wXZ7wb^DS{oj3kxmD<}`htC1L` zuqzEqXMKmn`pTr*u(r{y+cH?&#MW(g)>clX#uyv9tj*iHpOdvsZQakq+Wf8i<+HXx z>wbl-ZD#AXj;t-zTN)gjw+m~lm6{+`U|4V=>DI{7Ls&lqzLvH%_Mp@fN0k*<-LmZK@ z6&Xvw>cDrl@?MQ(yp$LJtyyMpBDqZ((aK3RlG~#rS~Z^~caU;28DvsHDv6g&Ays55 z@j*Rh0`Zd>q#Ca#HDo3ULdzK`>nQ;|>aA?zot5_(#Q{)|^9Dhx(MSL$Jj7Q$y}6%+ z1&hinrdI_6wbhkUY?BHhr4U6c!YxTkyUIdWkflx0o{$tuoHI-esl}){HLRKliqX$I zrM%W3{<~tBz=y=L&1MEAmj!+Z0YY+l=_0y-hUqLy0V1Ijq?SN2h0I28kvdq(n5n+7 z7nUb6P+9}oQc(e-wX%@sl6vSOJ!&L#o7@X&AQapSnMdZ+*|e^aM92a;DjDTSR7&d&pu^NA4p_$WpS5ZMB z8=FW(WD;V9TxF4Vk1Z_fiOCkSor!8b*+%Q=U5(^XvV$(9chhkofzeEx`~bgBkX_QI zJOKs&Iw)|CytQaRzAfL@yc186rzJgN^jWNL25XJv8K(14Z2RXkun-vl739mWh87h; zd5fPT&$B=lCA*EhKwgwHj25ln8CVCPHUkP{5dCA_TVPXifV?bW)1`C;6;DHfR2wak zvU1XJatMtehshCmzmCetQTiZMI+xRB@P2^ae-=8g1?(8D2myi|23T?xUPs=-YslMB z6?z=#A0Y3O51^{^7`;G0qo2ZiDP5{jXz7ay)y`J^6wBNPdKJ@?7#u6nd}- zDkEe_t09guC14pYxQ7&mKA;XaDp*_1*sGMP)$qUoC@f|%%_C?A-9z`%m+5M{impna zFa52^O#VxLN4JwJ=nilpN9k8kk6S5w?Z3clbBL~?23EjpF5eADw{twXLayNTsEkv< zfQRTxc(0{TO9MG2bNB1vx8YNUzd04sa%xTl{9S^EaT=B*a9U1>@8b;cXXH}xP7clv zftZ=IaBc8n&c>XCTqTpCE`%0HM@q`8s(n+~rhpFxiz+LvkjtY{FJAZe4g;GzK)7l3 zln&A&qFhb~(WkO{y&sLHJ7KkJvU}Mb8D~ZD?V1CpZs0YRlci<#Pq#>ZIHe_I6+(Tv`(d(@k^--B?x+1up6ow+XHrltN;^Z~sX>8%OTN41bpBf6Pxm#6KjzZ(a|2|LQ9NJ(5D9uiki5v?Z7bb2OoQ8$l)%|5LN(MdXtOYK7koYR;qZ~W zOq%$`{U(n{9XIxIVM*VMGhevu7@fB8Xyu5`yHtI%R`$vI-Zy0XVAJY1wtYWmX|Srp z`au^^(3j`Ybmo;rSadi>U-HXA}JjM$DtLIkpg zYFP7kc8ZMPELnjRSkemUBS4?HXdf7eHHeqSBIu)S(Qb%-C(tJ)`km1?HubN<<`(^X zwCF#wMSH3Aoxsd68E;oW38B>c!ZbTG7a-+D>P3dqWH!9XVh8qh+`}%z~%qX^UV`SI;3HZSAazQ_q z`!b5OUktC!^CD+%>BrwXh8-AaOIeYS43; zh`g#9(SX!^m?iZ@72M1%@*}B6#W;-8jvab6$R-hnJdmp;ztCstOVn_RECv&pg9dPO zxq9*e*MLTG^T`!%K3Ei+ka=3!TQYmAWL32(K5vk|NcY3J+;ia9o`W-$*g={+!$L4R zG!TvlTiSXn)WJo851@{H4Ae}F0tN|g$SZ$h}CRC8OoZQOP| zk9(Bc!9B+91hGBN?c$!`c5_d1PjOG93EUoTFZq#s4$b9W;9lhR5yI`~Ug8dLFN5sl z*N0C+1AqQ?Oqy-VMx$CyA`Tkx+8^yAfF!S8_ugKTtR81}b3r1g-SO?koxEKeBk zXZHx2O`hj?xL?6U41@;wy#7ii$*s^V{CnA$kLMMT9{_7x`FPooB?rVagoQT4@@4SB zt5DH4D5MXBquZ6}aj1*;pjK)IR10U^aHQHPpH)RWN)Da5_Cj#z=l)TmAI)SIE70>s zbc|2qO;DH|$Xn#{JUT0tF&8c9%}VfRvtR?8=bPRNoBYYv> zo*dzfd?&~Z;INzfnD54S=X;RX=`scgSJ2NPNofHIFM^aUO^~n&4AS%T0eLTaGkZKj zK4KK;MaXZWdolp_h#Y{V1@-{!fw>5_0qr}0gMiGX;eUi}U=xm3@Sa%80!hmbel&#b zW%LpY+bmyUZwT98Z2$2y*apCNe-GPi4yf1sJrWnThqIjm$v;7)FJOvMDDwqhI~A}o zKq|(qbfKgmzddV)?w~s!NsXjBdqF-N&Hsz7@wdfn4eaZxY+p^)PJS|9!H#;fdglP& z@X{oiDV*s>lVZM#5K=cx%*b!sCBIAO{K76>Z2$TdAXF4gFmD@!1oE|k4jqBfg7yWS zB*4MkXCW*B9CCduGnVsX=oHPAqxrHFLiuVwAmKULA&>ITsPRLd)yP-F!ER;re57R{ zUCD=~Kx(GnQxW6@=O$raxqpB!7;3%?)HHw`h(_L}a^!7#0H&+w=kpW{m(ZW+&$m@f zEw8Tf_Lt82WX#3i#V>>jVz+77{ePJxCI{G{XeeSGy?T|fw~o_|4M%bN93*Z zRzR74q<1FVVheX|W@ImPeE_<4gRcK&UDIS%Bx7rJG}Al?oR6Mg1%rCPpg(~7YRFh) zcgBEw$dUN9MDwI*<=1hWARb-eYT*vmK=KQR0G`5G4CH+f)WD4u;emJvxU$_KkqvMW z;~l66ybcC-00sCL=uLnut043}3-AomS;*MdLe|AHF%}HF(VoD;N3hDXAV(WqIBo7^a|soEeQVqB+~zRr;hwz1^&M-<;lws zjM6fMR3S|;3F(4aun27gt6&o{giIkzunXBjj*u(l2@b(2xCFQ05!wp32>C*R&`u~6 z+6x_ojzTA)v(QE8Ds&UN3q6FMLNB4W&_^f|`U?Go{t+xha9jk#jYvfVCq%F^f)gV+ zDT0$DSQWwQ2o@t)6TzS(x(L=supxp|BG?$gsS%tO!KMgKk6?2ITOznk1Y0B67Qq=2 zoEgDc5p0j(>(z9oY5Be)=f+tF!ag;*(i#VKNy zI92qC)5PhbUz{OUivh7loGAvykQf$g#aZHPu}+*L&K2v$JH-ZZo;Y8mVnkdZ-X$&+ z?-mz{_lS$dd&T?2CE`+XnRvhWfVf;z3t<*2+8hl-!W^R6%+v*rDTF(P1}G;L7s+^( zmH!)sJEJ9ZxI_Z=>gWya;{p{T=!~!cE)^9QwGBxXS$2nJbPXIZc+2Fg-M7Ib`7jO| z%PEGOJq=}oVs?O=nZ4jH^RsYs`6}22&!up7s7jPVx_2+PoLdjKjyG|QkZwH6?SvHL zN$wf$Sx6}kamN56egHV_4}d-*Z-slt9=;>rhcDv$@g;D#xSX$o`^3w@J3Yw%2i(mX zel5SAf0*CIKf-U}xABkikMWQ5FY&MOC-}4cIsQC zH!Q9)ZdTmgackqY#%+(=5w|n$@wg}Ao{M`iZhzc?xDVn!j=LInBktFDO?*mxYJ5g~ zVSMNKLGh*WQ{w~i3*#S*-w^*q{FCud$M1=MHvZ%I3-MPKN`+pLqDWPwDbf`dg;kNE zuq(0^MT&lk0g8c&L5d-Yp^7TSQpNp><%$Ot|52<`tWm60tW#W7+)NM?%n7*(JrV{d z+?G(2FfUR%(S*A%45p+lpiQRRi0OVsr+8~ zqw*)^%|tQLm}pBZNt}=vNUTd-khm;yb>hav?TLF5Ur5}S_)6lT#KVcNB_2(DGx6=j zV~HOpUP=5i@mk{7iQgywm6VudN-`(4NwOv7C3Q{en^cxGA!%yTv?PC0by6g0Rno?! z$C7p@J)iVq(vhTNN$)2ePdb@&F6na8)uiu}nkLq6464fKB-KwWlmQ4yayN9ao)Hol>1w zeW|*s=F~}QgE~{~Qg>93P)}A@s;8)@s;8;ftGB72S07Qot3IQ?sJ^VeqW)5SP5rg{ z8}$wK59*)Pzo>sx|1P@4j$&_dkXQ2c9Hf0?Mm%x?L*pi+DEld zYWHfN)4rfRpnXMqNPAd&N_$RwP5YA$>o}dDi`R*|EM1)Yz{^|@7LGr=jo~bUi}LFO8vw7 z?fM=1r}g{vFX>;?zpH;=e@1^%e_4NB|FiyA12!lPYD21_ouP}N)G);`+dvHq3=0j* z466+53>ysF40{aw42KMF8BQB67`{zOOtGanQrszRQ}R=~qzq0Oo-#RQdP+mef|Qjh zhf+?ZTuS*W<)%?HyfWYK5Kl{_?q#k z@qOcI<2mCsrX(!Xprd?0FX+kDq;!Sa;T$97(GI>n5 zmACW#beRBHD^!w5q)3>H?Pv4QgGksV3?)0b9pHAPC z{!aS4>F=i>Pd}M{D*b%=#q`VRSInGQFvpt{%!%e?v)Y_$PB&Z3R`Xc%6mz}#9`gqC z4)Z?qOXfr7!{*n_@0#B?A2**gpEI8~Uoc-Xe{KHB{D=9b1zCuNw>u%EpsgOmW7skEcaTLSXNrrTGm@0wrsNOu)Jb9WI5dC z^ETgDu~lJBx8_(2t(~o1t$nS7t;4P3tdp%()*5TQb)ofH>+{wZt^2JnSzopuw7zOR zVtw8EhV=vMRqM~zzidjI0S@N6+4|W=*v8wuwrX3g?S9)D+XmZ4+h$v%ZNKeR+dH;1 zwzIZ#w)3_NwoA6pZ8vPc+5WKI%s?558Mchf40}dSMqWmTjGh@oGDc)f%Bahjn{j8x zybPMLAY)<1(u`FZn=*D}Je6@M<8a1n8AmhT%v59=GCO4U%^aRNK67T~yv#M3k7e%3 zJd}AX^FrpO%+E8w$h?~QRp#}~Z!&LWexLbc=5Lw5Xa1RmveL79X5E@qoHa6QLe_0r zle1=I&B|)Xnx7TPx-0AMtmm>0X1$yBS=RNe-|U>7x5wEPcBMVZuC{CJI=jK{vQM+m zw%6I`+V8Z_vs3#5`$GFY_IvG1?91#A*jL;4*k7?9vLCj;W7veUCI*?HLo*?qHzWRJ_9oIN#rX7=3dhV1#-k?i}jS7oosUYor>`{C?O z*^gxJ%l@pJGD-| zGsT(eG&%E}173`J&IQhe&PC3}&ikB8o%cJJJ6AYYI#)X%a;|f3 zaBg&Nb~ZYs!}%t{+@Kxqfl|=K9_Br|T~_c5`mQ9q&$XC%Ti} zYPZI%a~s@7cbYrhZE;)OnQpr~$DQYPy4~)!?tFJUcYAk7cV~B3cXxMBcW-yGdx!gR z_ip#o?!E5k-TT}J+y~u<-LJdfbid<%&wbqeq5HJ^tou{<1@~q57w&8B>+T!wAKX8? ze{=ug{>wu=f=A&=^r$=Db&6DNH@i;tg&n=#Ip7x%Op3a`Gp6;HWp5C4! zPe0E9&p^*0&k)a0&v4I3&nQosXRK$uXQJnJ&mEr0o=VRY&s5JekKa@6sqq9oVb3g2 zooBA+PR~3K^(^o#^epl$_T1-L>bc*u+_ToR&a=U@&9mLJ!}GM~pyxHuN1o3-f3{7O Ts~S*xm0rSK^8eUp+vNWTU+;Wo literal 14178 zcmbt*33yXQ*Z<7id($>;lbfV%nxspbq)QgCEoCXPFO>piE4x4mZ77kpDM<>{0!|Qd zVG)F)0IuMSZ{j^MAf#+MBsEXU;iumfxHi zCsbE>1HtU<&k;rhafn9(QV8ROl99Hl9)G~=s~TzZO}Nif8VroGx&5V+ywE(<7W7qX z5uUqdy9T#K5hxO+A}g{X2WpLSQBTwljYMuV0hOXMGzoc8CGw*gh@udB2+c*0p!sMq zdICL(8qsrTGunZ^Lf@h9(U0gf`W5|-{=gA92FGG8*5Np;$0nSFld&0FaVB=)9NZ4K z$DMF5+#46+akvDR;xar5dvOJ>#(o^Y)A2mK0$HSTq85BDE#KX-sT z%zepy%^l~y=T32F;qC9-749l`gS*Kq_y}If$MYsWl{fQt-ofYbZTWV5d%gqTh40B1 z@P&L|z8~M8FX9LBgZbh72!0Ij<|ptI`N@0*KZW=6)A;H9a{d{972m)&@*nb-g-jt! zunP{sDY%4ILTlkJAzR21a)mZRp3qikC$twj2>C)s;clUm&{^mrbQQV@-Gv@PPobC4 zTPP6j5&8&)LSLbu&|fGL1_%R%LBe2Rh)^sH6^02Tg?oqDs%k1Kj-n`}MA0Y)#Ud3_ zBN1tk7U@tNibn}Zj}nmq8IcJkp=6X?B8mfwhkFCw2^F3Z-l{U+w7}Q_#RFxF?&qlu z3?EQD#ODi+fktmxV7R-Y#uFHBE3I$`0;A;LwS&BUnwbJT4fs6ek%62e>v=Y=q#5h092I5&jbz<&op zbTdjrmV1FO#_9lfrHAsAD-lx*ii_M;?s89=EF|y|^h^&HRt2hod!PRxN=F$e6J?E- zg{*>+Bjra=U>uOE2?TwW^4JFGXCE0Bl}+kIF4PM2(z+=oP{kUV;9V#iR9I9Kbc3Rc zJ;6qF7s^5QVFQZci#)Oo%A@hyP+QavwMQLLKI(|>Mx9V+)CF}#-B5SbgGN#fHPL)} z4}F9_PT!>G=mq)*y-fe2S3if@d!gQ_0NsQ7phA=|VnA_!_XJM`EKM&@An2`fv$X+k zi+wfzQV$iWnnqFbCF&0&i_id2*g!N04MsyyF&c`7!S4~EzTVS=o+=jS;JLV_+T)+< z^-KdQQwu8G1o0R0W|1gd>iWgb6tEAWHPioN%HXe?Dxr3Pzh3{}$T!)O#tH9(qX zG_W`ZjYZ>72^tS9G8(Yt!+|)cuefFcn!zciQ ztEi9-u6gm;a4=Z*M^?KBO$4>eYsOmFArA!Ia%2ZKn^^_}Ed6&{GLiexkR8kd-Zi(jTnZnmMhT#6Bh^y!1qz@bssSZTMbpr9REzFMbtR%E zY(dSY3Iuz3z{mWaGUf-Mk=|uq$#lTAO2Cd}3m)Y6O|PX1R2M}JR3EmYSu}nvdVt0O z;Xu$`;i&?rD+D9=Pjy$w0?kGb!VFEu*xm1U*EXWrXb!T2%}8HM#DwNa?r@U>!282A zQ6}>!dhDO|fro^=s}py0rPRrIweX zdP&P2Xc8qy&{JS&Pow3MRmXz4)uNT?8MF$mMr+Vow0ab%vx@m)8OSRcE7(j=Penx( zO{FQ+Op`S@jkc%BUrKaj?-+IhT3lC%zxu$E82#(OT4^*R!7l}^h9OUtPeP!O#umwo5d63^T(c=f}>Rndu0aswcOa2U=*rO&G^i@gUnCioCa!W)V zSVsle5kwLXTM|!IP!0fKqrIopc)`A)Ny;eA{R%4~)XLd`tu^yOu;wC9RZU^gQ&}P! zZ+~I_2>#r?!dqTd34~x#SU*@Th&$CjKTw9W5|*czr@~z;NjNOv2{2*>eqSXU0JBNc z2a1Ehs5A(S+Ba>GFW_Y%5KO;?jJaYzk<;CRpE=!ccGD_mce|zG5lyEV)CSg+6-Dhd zO@kLjMTwZU6EQQpuhCKT4LXLtMaR(zV3TDR_`^aTM8=7d?x>Yotlb<)`qA)lWBS*W zdduAR_}vgCWpDTaorF;ZpveaG1G3*q`DgUY9VA3?5OeS|=r?p0RMI*S^n0tyX(qI? zgmn&`mn02m80l>zG+&T1RI&8^D7uI)q03-Rf1rfVO7rJ#3F#~~aEEMCV^Sc#*-M#DA} zpn0?{Z8MB5d7DEh7ORjMtFeeRu&`i5Qg&l2LR-^T)CChs6Uy2F^XNIrQ#!fQ?Vl_u z4#(pJ$ztUk5gy-wwQTB=x-w2ANtz5yQ&R1#9#+j5k~P**CY^#)TiAL7 zPC@pjCBzn*IeK7llE=>+BG44MaXO3K`)HOtJPX^KT%ZAGv7xZe*olD$NEn0IjItRs z7u^6aTH)6CE}Si;qp-5rJJ9>>j_^h1k-Y)(?2k-27q@}+YC(4c&c%7KeUb7dEU!!i zR=g=3j|LwFAlD!EM=fG8&PQ9NSX=;+?cZWC?t;7GZnxuKCwe#SEXO}7jJ9pp#$|5P zmW9!rJP4yX9sV_p;(Kr(TzH$zA$pL0E|d8df@pIH#RKp_2%@{dmRJb=5D&tG@eo`L zfpae&jz^%acoZIu4&pI*EXY5==dW~ENEQQY7mjkGLCfQtNZY5=;9DXK4(YTj?E(UJ zr@d&JxJM)q9Sc0c(n)4_4ZuTyTBYuairU*2G;^CoDSl;EA{#Y+IU7 zve}-rM~fb8#qYy_J|OhU>X&-T2(AI&7q*JlxN;q=eiim1`+r~IJUnIn?G-H%6DKl` zySHRmo}}e+*5Ikqaz0G^Q1T6~#rNYnGz!mv1S=&*JQEGXv+x6$0{othAH;L;LwGKJ z7>$G9kAbxmxu>(hDEZ$|KzU53Zf}*x4~!O1Vi2d7JLravLx)R&6Vwi|-BS*+8#Gbm ztztlO4((6 z{WM+*}&y=61QvG&|&X0Ml%fJ9FkY_!+$FHc-H;K_6@ITHJse@jA2-Z@?SzCj2bg4ZkU;y=LZPQUdifW5i*>%z)Ylw$vhTF44gPI;0Xpq z5(xn0Bf5_+*1#@kF<9q+=$L4DA_K zI$Im25eS$gyk)^jw1`fjeXQN)LwJUtFYv4QH6S??zm9joGQR-}{1y`ch84rU3DP`} z>t7_1lfvX3iyfc?Xf>>v?+g46P2bA8&AK(x1M`#?g*&w8-2{l1afZ4y4t|W$= z+Y75E`sg59MF-Lf3P4B7h4^EdSt52*Mz#21U+!pV@h(a^z-N~CW@gFyJ!R(F<_#GB zl*TvU&+tAvn2ut;djL7{L3{`w2Box~3`m@gY`~x6FX#|j+beuz|#65{0$H}2AVpKPk>zybx#0QRR>@xn^6wvWSGdyA^3az!@m$~z$Y0r zhJE^-leEAK_$Msmg%Q?nS<-T$QGGlWQ#~vW$+UmPXF$unyi!Vc`)eEUuX2WyW&9mq zxI?x-@I^YBPHvI_U&eppMtU#3PfAtz3cgCcTkth}9pAt=@hyS~CWLT=CjwE>F?1X) zq2sBWPN1c1Z}^W51lm9+UIsy#R`znDcq}v1jdTZhZ<>jP z>_*a!^gs-wuy1mwUZnS(F<~7kAoq|y$bM(DRM}~w)$HMAVYi1};NKf1yF+bAKY&P> z(*E*v1IWOCMzsbqNZNt2`bUdkCyy9HisjJSG7~kBp-m(1h*?L;a5937Bv7>=qshHw z3>iztkrFZTSleFF6TQ#|vbJ!cf()997bk|e_|7B^QYT@y- z4T+SJq^(f%zKrov0OdH3Uy3KNAW~cf55E0I!ht>9rIXA3zM87CCMtjwBq12eg$)AB zCBO(&FNz_lmIgg#E%^gQ7XcD(*+?INh%}2nsO6E<1CIe(Lt#@HOYS3+Nd?+XDuD@U zuHtHUsRuY4G07YB&|r@o2+9Chpa5JAtx}f;0)V7BkdgqI3PFYhNe!J!r!|miWICNr zXZ)KWUywSOa|X;hlguI&1WJ8mHrP;4FtrL_Im1d2MWspDb9h2pOM~=&fC+WOi)#bY z4$~B95}c{!Z|Z6(*TXbel-;^r_@_PkI}7uGg$dFGGwCegxg}kRk(SgJfkLvG-sBuY zmXKvk^cqr6r%~EKo+MAv5SVrv|c?SuiZ~Ki`49H^G%``DfEXZ15m4kf)b?raQ7Byk!&F{_+LmLW#GTRRPk#rE|TY=P%(t;Ktst+vV*)#7r+i% zMIWQ{;WO{+W-QkPEdk4oCa;pMWGh}mcHyOH9eE2r@6eZl`lIw)0BA=wkq8Pg$41rV zwQUdBEFVgPx`JZxBPe+Qf(-N6LJnBD>c78kDZ*~DM*_TW&_w`v$zJja19#-pa5ag1 zM)m<;`^f=vkQ{=I!zK{tFo3%UQ7!ojP~vS@gAB%&iERvFZ`$G;tEw}Az*1Ydkea|i zL4|MHP=8GoW4%nO-UjGv^aZ+vK2Ou=V!Deij-pSnvXq3qWv~nUjv>d;SaOUUCntdG z?eqiqcba|}4w^qe&?E=xlD`ea^)PS`4BSIblV1VlZim5(=r+1EJn$@ww)M3BC>ll1 zlMC{!~=ra0T6AK)s@r^LYRdNY>Y`EPX!C0G0`?RPEAL61pIP~CR zITfb{)%NiPi>rM>hz-)Ni7uxr=(^!`P^D`-6IPtlayl}Ti{s+C1WpetGQ?9IfZ!%| zmIR=Ubfp%yjfggc*)hVjoQXaoeaBb06zXl@QaLkSMOQ-`XW^`zO?Je>f&!rE_XI!z z64s$>>6(EWoKjQ-2Z0Dx)A+t?gdtnt@!c;54cTJUL_E@K!r;VFBR324dVW9U)syyN zhB>>-26xz^>Se?vdxvOViB)Xw*pw_VZq`{Ke6diXjo*!Q!>5wDuran;~W zJM&!=Ms)~vPdk`6dYdU?-EOlPAr(}1IG6^rQVYf{p4pKmf`iRS6p6W}b^-b*nx0`G z)*xOQi=dCTMSFbHGl4z{P0x(JzPW!nPHNG=bBq2%TC^8S&jh%G*^rz>xJ)if%BVfO z!Af_vv?QR+M$XPTSfB$ieCHc*@NlOVVVG-0gS{YvHW9sx%MKeu19w*w%HndlHqCp# z1};ykm&rRpDL8WNxb{H3XN9+#nejTVog5m!f?^sgGqXY(i*N(Ee6Ay&%XPx_To?Fs zgHI1Ou*NT)fzeH1z#GBKo~89ty^(^vwBFkF9FrO$X@A+O4eT&;q}m6oAm_vWa!g5? zFYGIFVTmi??g7H##`Ro5xJvU4@C3zga-Q+U6-sV@OAp~h^8znlYNMrdt0(~+{3cUZa0kx%H&%lGHxD9;1m6TpPW2orJ^&kK%GMT~vlwDZ~ z0ghy3v+;PU*hJDXl-#E&ku(p6lK}YzLv(<1f$)f-;jGg%gdO~{tON5(CuiZ=x>l*&qUE*=~?=|HhVf4|GV@(4OT;utgbF6KZk*(4szWGjv(9Qx19+< z!`yTXXO@r1%o2~&gXZSrNM=`1u;;eXOo%Y@%;B~dXy#DH8Q5A|$Vj;za+?kPB}jQ> z51x%Sg0=Rey8+Tjm8bmn%^bk|u%dG1iQ5J6cYo_ZIgyTFq)u z-1~^Zl+E0S+(&pTD7wH~A)9V)Bot16p+CZJsg9HZ+SpG|(LKXi!7F>_mrzc970Rfw z+{fr0G6o8$#oS)*6Yf)VklP0uW++SY0s1lhjD8AGWiKmn{oQvyhvWK1lJ9&%VNaq9 z!m$4i$hof=AU9{X?jWPqCJ@XW<-P$7Dov~>xp-%_y|9g%XtTsUshMzUa=P7j0LzJR%)qC9qh zXWBo_=sKMCNLeDU0~n;tLx0U@{5z z-8L=>_>CqP`Di|dj|Bk#7Z}#Fyaui2b$m4aj^Vf`=nsJ9w}K@dhtD_kyC$XbdS=u+ zcnx%X4Bj=jCxi0IR{E%9=!~WY)*%3D^d( zGuflou0L(Kcmh-kC=3$T9SN0@WQSnQIkIK$MztWy5x#W`(rs8)JWjvAP5Wr)3u`3W zhQBAnHhFMvks}2LC=}-~D`_Lk0*~!;Sik^&!V*eX8FI4oShHMLZY9~2TvyJ9qvQYL zbo||XCvKnQXg|}R=w24_o6jTp?tBmV)Gz~>gda^zQVTf5_x`&}HSalbBj1Mx2a0Lg zt@E?~07Jrx3%XS$~ps@y|7Q{W<1uwzR`s-Wvu=z0aZ zc7zI<%!=fdcO25(F(`->$nAY6CkDW zaI>cn_OA!wRAegKSg}k4@va-hrb38$+ac<$g1ZF!z_+4#4eaQv`KRd(`W9q`MF75( zGzvDQOK3eDlfZ_IWhjV|ogs344uRwdtcMwnbF;u_z60NR6fVBpVw{*!8o!eA^d`WE z?$vOuQZ4{91;|%|r0YQZTG)l65Jn^Ga@Zw`962k36ze4^Kt+IR!g9dQRhFY3WZ48e zagYO!T)M#DmGF_}*a-JF*gqHvIsz=zEXSfIIbeqiZHpy2c7q(dL5|%`a_nX?1^&Uv zus(M)PFkac|C>ht*Na}{|EBN%?V?y%ioYZ&_$&NX{u+Oszro++ZwW}i0ueZY7X(2e zL56f}ZX&LJf zkP*Us2n!*s2w}LL7a77)A*>AH=n#$x;n)yXg|Iq=#Sqqnur`EsAsiRN@gbZL!uk+S z3}HhE8$;L>!bu^V9KtCfoEpOB5KaqWO9)#-*cQU+Aq*2`hHzF0+e6q9!p;zOg>b77 zZXLpRg>ZHV=ZK|ZndlKGisj-Y(JS63P8KV~O0i1xiPhp1(JuzXpjabL6{m^Q#ai)x zu}+*J&J<^f4~SF@iL=EA#W~_b;#~1z@e%P+@iB3pIA2^KE)*XZ7fJd=ZG;gteod2Z zh0)Xt&k)vxF~V3V{S@|)AtEc3Hwa^zip_9M0xGXfcZLrL;|2HF!X8aG2c_~mhJCpK zS>RS-Teu9^6)Isn$O-ZXhq*{7S|q_Hxh;1OSIW%<2)}}RhFi@waO(lCKgVt5o`=h> zFLQ4LPWzPG$DQY{@&d2olX(m8gv+d5S*CystRwjn-osb%)%*hfaegtsgs`(iM4%-imt^g^GTPBEiRXM#Zy=&5E6hmldxmb}9BLjwpUooK;+oP)Ec?Bt)b}rFk9TA^Ld>e5p;j8?`f)k=-h zqO>csmHEoMm7SFZ%0lIEWr=d4al8}ttw8Hph{F3RY|H8 zm04v`*;E;-EL9g(KUI-xplYycw5n9)Q%z9?R5Mf$saB}gsGe25sCrxVk!qjnYt<#S zLLI4As$6`Jy-pR`Z4u<^+NR`^%Lr)>SgMu)hpD`s8_2$Q6E;H zP@h)+p}wU4Q+-8!O?^XsOC%yMD#S=pDO$v0aV&WGbnw+>;u^6*Y!ugv8^veE&Ehuk zdGSSYr}(nCS3D;EBwi4&ir2-P8l;KRq-b24cA7#>KTVNlpk}aUq9&l3p;@R|qDuW!=sM~;>AL8;>3ZmT=?ZjxbbWRGb;ESybza?MT~Iem_n>ZpZkcYiZmsS)-45ML zy0>(@b^p;F)E(6w)1A`&t~;;08pp*6ajH0doFUE<=ZtF=*DkJWT=%%Xam8`N;>N|5 z$9d!Yans^x-14}!al7I^i#s0oUEB|GXW}l!-H5vt&&S8co8m3;_W0cRZt;cjBjN+` zkHjyIUlPA8{;Bx2@jK#QjsH0QQ2dYar{k|D*b_P>3{UVT%uQIBup(i5!iNdpB%Dw9 zBjHlQp9xnIZt9Vq=y|@&$z(&xN))Z3FA`Z3&tJBmyE9%Uo-A9zG?i( zxW~BH_^I)<@r?1T@tpC3@uKmv@sYPNjOQ7 z6q%$+(j_G%B_^dMS(CDo97(REwn_by1|$ti_9xdRFHEja-juu}`JLqVl6NQXPd<`- zEcsOO@5vXFZ=@(vG%3cEt|@&}`lk#?8I&?4WoXLql#%6%!bQyx!wDy1=HTgvg2 zUs8TeIg@fWsrRKmm^wdoVd|39`qU>= zpHF=~_1)CZQun7GO#M9daO#oNuTy_aJ)3$i^^ep`W@L^x>&*tU$((FN2T0~l0nkB7A+Q76?Y1L^n z)0U-eN_#QwowQHVPNaRGb~5c$+RtgH)6S&*miBwv`LsXM{z|)=c0KKu#c1hlDX{dh z47QB6jIp>a6_y&yG|Matwam86u`IWIWjST}$?}WkSIcjf-!11Ye^@SC{<2)PT({h` z3Ra7?wKdzCYt6H^vv#m{vJSQuTZdUkSVviX)*04W*7??Y>qhJI);FymSU(V!*Z%ThIeM|bb^ykxGOy8A$F#T2r&LA0lh9V;} zLzxkip~}!_w8`j~F(Kprj3+am&RCK0OvdVrwHYsF?96yM(7NCTm(&ZB~8OhOA9l&t+}N+LrZ3)`wZU z?U8n+J;tuGi*~I&&YoaTv>WY7_7uC>Zn4|!8TKr@!|t-TwrAUO?RoZg_73)r_D=RL z_HOnb_Fnb^`#}3(d$HYZ_uGT^srFj?Z2LU>0{dt7{q}?Q&+UipN9>RyPaK~)_B#$bjyjGxJ2|^LdpLVL`#AeK z2RH{ihdM_%M?1$l$2&`%6P;dXh12KsJ8PWNopsJx&X9AC^I_*>&IQgz&Lz%e&ZnI# zovWP<&h^es&dttk&KI0Jov%1wcfRR-$N9eVBj+CH$IefjpE>tC4>~`09(Epae(n6m z`K|MW^Lyt>=PBpU&eP5_&a=*Q&I`_q&dbifoL8OKoi|;`MO?f~;fi!AT`?||OLS>n zajpbcqRZ$?a;3P;E{n_QYUOI}YVXQ-b#(P~4RMWdd0kbm8LSKeM@&TiD@>68hJU+e F{SR?i - + 1060 - 14A379a - 941 - 1343.13 + 14B23 + 6254 + 1343.16 755.00 com.apple.InterfaceBuilder.CocoaPlugin - 941 + 6254 - - YES - - - YES + + NSBox + NSCustomObject + NSCustomView + NSScrollView + NSScroller + NSSplitView + NSTextView + NSToolbar + NSToolbarFlexibleSpaceItem + NSToolbarItem + NSToolbarSpaceItem + NSView + NSWindowTemplate + + com.apple.InterfaceBuilder.CocoaPlugin - + PluginDependencyRecalculationVersion - - YES + BlockInspector @@ -50,161 +60,147 @@ YES 2 1 - - YES - - YES - 771145F7-3AD6-4F13-BC83-CA31D4D6D0AD - C119E078-D0E8-4EEB-B2C1-BB21CC86A3CA - NSToolbarFlexibleSpaceItem - NSToolbarSpaceItem + + + + 771145F7-3AD6-4F13-BC83-CA31D4D6D0AD + + run + run + + + + NSImage + run + + + + {0, 0} + {0, 0} + YES + YES + -1 + YES + 0 - - YES - - - 771145F7-3AD6-4F13-BC83-CA31D4D6D0AD - - run - run - - - - NSImage - run - - - - {0, 0} - {0, 0} - YES - YES - -1 - YES - 0 + + + C119E078-D0E8-4EEB-B2C1-BB21CC86A3CA - - - C119E078-D0E8-4EEB-B2C1-BB21CC86A3CA - - build - build - - - + build + build + + + + NSImage + build + + + + {0, 0} + {0, 0} + YES + YES + -1 + YES + 0 + + + NSToolbarFlexibleSpaceItem + + Flexible Space + + + + + + {1, 5} + {20000, 32} + YES + YES + -1 + YES + 0 + + YES + YES + + + 1048576 + 2147483647 + NSImage - build + NSMenuCheckmark - - - {0, 0} - {0, 0} - YES - YES - -1 - YES - 0 - - - NSToolbarFlexibleSpaceItem - - Flexible Space - - - - - - {1, 5} - {20000, 32} - YES - YES - -1 - YES - 0 - - YES - YES - - - 1048576 - 2147483647 - - NSImage - NSMenuCheckmark - - - NSImage - NSMenuMixedState - + + NSImage + NSMenuMixedState - - NSToolbarSpaceItem - - Space - - - - - - {32, 5} - {32, 10000} - YES - YES - -1 - YES - 0 - - YES - YES - - - 1048576 - 2147483647 - - - + + + NSToolbarSpaceItem + + Space + + + + + + {32, 5} + {32, 10000} + YES + YES + -1 + YES + 0 + + YES + YES + + + 1048576 + 2147483647 + + - - - YES + + - - - YES + + - - - YES - + + - {1.7976931348623157e+308, 1.7976931348623157e+308} {290, 158} - + 256 - - YES + 266 - - YES + 274 - {{2, 2}, {429, 0}} + {{2, 2}, {429, 2}} + + - - {{-7, 245}, {433, 2}} + + {{-7, 243}, {433, 6}} + + {0, 0} 67108864 @@ -243,29 +239,29 @@ 274 - - YES + 256 - - YES + - 2304 - - YES + 2322 + 274 - {339, 197} + {354, 197} + + FScriptTextView NSTextView - - {{1, 1}, {339, 222}} + + {{1, 1}, {354, 222}} + @@ -283,8 +279,10 @@ 256 - {{340, 1}, {15, 222}} + {{339, 1}, {16, 222}} + + NO _doScroller: @@ -298,6 +296,8 @@ -2147483392 {{-100, -100}, {356, 15}} + + NO _doScroller: @@ -306,10 +306,12 @@ _doScroller: 0.22752810000000001 - + {356, 224} - + + + YES 133138 @@ -321,106 +323,102 @@ 256 - - YES + - 2304 - - YES + 2322 + 2322 - - YES - - YES - Apple HTML pasteboard type - Apple PDF pasteboard type - Apple PICT pasteboard type - CorePasteboardFlavorType 0x6D6F6F76 - NSColor pasteboard type - NSFilenamesPboardType - NSStringPboardType - NSTypedFilenamesPboardType:'.SGI' - NSTypedFilenamesPboardType:'8BPS' - NSTypedFilenamesPboardType:'BMPf' - NSTypedFilenamesPboardType:'EPSF' - NSTypedFilenamesPboardType:'FPix' - NSTypedFilenamesPboardType:'GIFf' - NSTypedFilenamesPboardType:'ICO ' - NSTypedFilenamesPboardType:'JPEG' - NSTypedFilenamesPboardType:'PDF ' - NSTypedFilenamesPboardType:'PICT' - NSTypedFilenamesPboardType:'PNGf' - NSTypedFilenamesPboardType:'PNTG' - NSTypedFilenamesPboardType:'TIFF' - NSTypedFilenamesPboardType:'TPIC' - NSTypedFilenamesPboardType:'qtif' - NSTypedFilenamesPboardType:BMP - NSTypedFilenamesPboardType:CUR - NSTypedFilenamesPboardType:FAX - NSTypedFilenamesPboardType:FPIX - NSTypedFilenamesPboardType:FPX - NSTypedFilenamesPboardType:GIF - NSTypedFilenamesPboardType:ICNS - NSTypedFilenamesPboardType:ICO - NSTypedFilenamesPboardType:JPEG - NSTypedFilenamesPboardType:JPG - NSTypedFilenamesPboardType:MAC - NSTypedFilenamesPboardType:PCT - NSTypedFilenamesPboardType:PDF - NSTypedFilenamesPboardType:PICT - NSTypedFilenamesPboardType:PNG - NSTypedFilenamesPboardType:PNT - NSTypedFilenamesPboardType:PNTG - NSTypedFilenamesPboardType:PSD - NSTypedFilenamesPboardType:QTI - NSTypedFilenamesPboardType:QTIF - NSTypedFilenamesPboardType:RGB - NSTypedFilenamesPboardType:SGI - NSTypedFilenamesPboardType:TARGA - NSTypedFilenamesPboardType:TGA - NSTypedFilenamesPboardType:TIF - NSTypedFilenamesPboardType:TIFF - NSTypedFilenamesPboardType:bmp - NSTypedFilenamesPboardType:cur - NSTypedFilenamesPboardType:eps - NSTypedFilenamesPboardType:fax - NSTypedFilenamesPboardType:fpix - NSTypedFilenamesPboardType:fpx - NSTypedFilenamesPboardType:gif - NSTypedFilenamesPboardType:icns - NSTypedFilenamesPboardType:ico - NSTypedFilenamesPboardType:jpeg - NSTypedFilenamesPboardType:jpg - NSTypedFilenamesPboardType:mac - NSTypedFilenamesPboardType:pct - NSTypedFilenamesPboardType:pdf - NSTypedFilenamesPboardType:pict - NSTypedFilenamesPboardType:png - NSTypedFilenamesPboardType:pnt - NSTypedFilenamesPboardType:pntg - NSTypedFilenamesPboardType:psd - NSTypedFilenamesPboardType:qti - NSTypedFilenamesPboardType:qtif - NSTypedFilenamesPboardType:rgb - NSTypedFilenamesPboardType:sgi - NSTypedFilenamesPboardType:targa - NSTypedFilenamesPboardType:tga - NSTypedFilenamesPboardType:tif - NSTypedFilenamesPboardType:tiff - NXTypedFilenamePboardType:eps - NXTypedFilenamePboardType:tif - NXTypedFilenamePboardType:tiff - NeXT Encapsulated PostScript v1.2 pasteboard type - NeXT RTFD pasteboard type - NeXT Rich Text Format v1.0 pasteboard type - NeXT TIFF v4.0 pasteboard type - - - {338, 51} + + Apple HTML pasteboard type + Apple PDF pasteboard type + Apple PICT pasteboard type + CorePasteboardFlavorType 0x6D6F6F76 + NSColor pasteboard type + NSFilenamesPboardType + NSStringPboardType + NSTypedFilenamesPboardType:'.SGI' + NSTypedFilenamesPboardType:'8BPS' + NSTypedFilenamesPboardType:'BMPf' + NSTypedFilenamesPboardType:'EPSF' + NSTypedFilenamesPboardType:'FPix' + NSTypedFilenamesPboardType:'GIFf' + NSTypedFilenamesPboardType:'ICO ' + NSTypedFilenamesPboardType:'JPEG' + NSTypedFilenamesPboardType:'PDF ' + NSTypedFilenamesPboardType:'PICT' + NSTypedFilenamesPboardType:'PNGf' + NSTypedFilenamesPboardType:'PNTG' + NSTypedFilenamesPboardType:'TIFF' + NSTypedFilenamesPboardType:'TPIC' + NSTypedFilenamesPboardType:'qtif' + NSTypedFilenamesPboardType:BMP + NSTypedFilenamesPboardType:CUR + NSTypedFilenamesPboardType:FAX + NSTypedFilenamesPboardType:FPIX + NSTypedFilenamesPboardType:FPX + NSTypedFilenamesPboardType:GIF + NSTypedFilenamesPboardType:ICNS + NSTypedFilenamesPboardType:ICO + NSTypedFilenamesPboardType:JPEG + NSTypedFilenamesPboardType:JPG + NSTypedFilenamesPboardType:MAC + NSTypedFilenamesPboardType:PCT + NSTypedFilenamesPboardType:PDF + NSTypedFilenamesPboardType:PICT + NSTypedFilenamesPboardType:PNG + NSTypedFilenamesPboardType:PNT + NSTypedFilenamesPboardType:PNTG + NSTypedFilenamesPboardType:PSD + NSTypedFilenamesPboardType:QTI + NSTypedFilenamesPboardType:QTIF + NSTypedFilenamesPboardType:RGB + NSTypedFilenamesPboardType:SGI + NSTypedFilenamesPboardType:TARGA + NSTypedFilenamesPboardType:TGA + NSTypedFilenamesPboardType:TIF + NSTypedFilenamesPboardType:TIFF + NSTypedFilenamesPboardType:bmp + NSTypedFilenamesPboardType:cur + NSTypedFilenamesPboardType:eps + NSTypedFilenamesPboardType:fax + NSTypedFilenamesPboardType:fpix + NSTypedFilenamesPboardType:fpx + NSTypedFilenamesPboardType:gif + NSTypedFilenamesPboardType:icns + NSTypedFilenamesPboardType:ico + NSTypedFilenamesPboardType:jpeg + NSTypedFilenamesPboardType:jpg + NSTypedFilenamesPboardType:mac + NSTypedFilenamesPboardType:pct + NSTypedFilenamesPboardType:pdf + NSTypedFilenamesPboardType:pict + NSTypedFilenamesPboardType:png + NSTypedFilenamesPboardType:pnt + NSTypedFilenamesPboardType:pntg + NSTypedFilenamesPboardType:psd + NSTypedFilenamesPboardType:qti + NSTypedFilenamesPboardType:qtif + NSTypedFilenamesPboardType:rgb + NSTypedFilenamesPboardType:sgi + NSTypedFilenamesPboardType:targa + NSTypedFilenamesPboardType:tga + NSTypedFilenamesPboardType:tif + NSTypedFilenamesPboardType:tiff + NXTypedFilenamePboardType:eps + NXTypedFilenamePboardType:tif + NXTypedFilenamePboardType:tiff + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT RTFD pasteboard type + NeXT Rich Text Format v1.0 pasteboard type + NeXT TIFF v4.0 pasteboard type + + {353, 51} + + @@ -429,75 +427,55 @@ - - YES + - + 38 - 338 + 353 1 - 100666213 + 67111781 0 2 MC45NDUwOTgxIDAuOTQ1MDk4MSAwLjk0NTA5ODEAA - - YES - - YES - NSBackgroundColor - NSColor + + + 6 + System + selectedTextBackgroundColor + - - YES - - 6 - System - selectedTextBackgroundColor - - - - 6 - System - selectedTextColor - - + + 6 + System + selectedTextColor + - + 6 System controlTextColor - - YES - - YES - NSColor - NSCursor - NSUnderline + + + 1 + MCAwIDEAA - - YES - - 1 - MCAwIDEAA - - - {8, -8} - 13 - - + + {8, -8} + 13 - + + @@ -506,11 +484,13 @@ 6 {694, 10000000} + {354, 51} - - {{1, 1}, {339, 51}} + + {{1, 1}, {354, 51}} + @@ -521,10 +501,8 @@ {4, 5} 12582912 - - YES - - YES + + @@ -535,8 +513,8 @@ AAEAAAAIARIAAwAAAAEAAQAAARUAAwAAAAEAAgAAARYAAwAAAAEAEAAAARcABAAAAAEAAABnARwAAwAA AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA - - + + 3 MCAwAA @@ -549,8 +527,10 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 256 - {{340, 1}, {15, 51}} + {{339, 1}, {16, 51}} + + NO _doScroller: @@ -563,6 +543,8 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA -2147483392 {{-100, -100}, {87, 18}} + + NO _doScroller: @@ -572,10 +554,12 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 1 0.94565220000000005 - + {{0, 233}, {356, 53}} - + + + YES 133138 @@ -584,30 +568,26 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 4 1 - + {356, 286} + + - + {356, 286} + + + {{0, 0}, {1440, 878}} {290, 219} - {1.7976931348623157e+308, 1.7976931348623157e+308} + {10000000000000, 10000000000000} YES - + - - YES - - - delegate - - - - 17 - + sourceView @@ -632,14 +612,6 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 58 - - - initialFirstResponder - - - - 59 - compil: @@ -656,10 +628,25 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 101 - + + + delegate + + + + 17 + + + + initialFirstResponder + + + + 59 + + - - YES + 0 @@ -687,51 +674,45 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 8 - - YES + - + Window1 6 - - YES + - + 4 - - YES - + 57 - - YES + - + 51 - - YES + - + @@ -742,12 +723,11 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 52 - - YES + - + @@ -778,13 +758,12 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 90 - - YES + - + @@ -807,121 +786,61 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA - - - - YES - - YES - -1.IBPluginDependency - -2.IBPluginDependency - -3.IBPluginDependency - 112.IBPluginDependency - 113.IBPluginDependency - 4.IBPluginDependency - 50.IBPluginDependency - 51.IBPluginDependency - 52.IBPluginDependency - 53.IBPluginDependency - 57.IBPluginDependency - 6.IBPluginDependency - 76.IBPluginDependency - 76.IBShouldRemoveOnLegacySave - 77.IBPluginDependency - 77.IBShouldRemoveOnLegacySave - 78.IBPluginDependency - 78.IBShouldRemoveOnLegacySave - 79.IBPluginDependency - 79.IBShouldRemoveOnLegacySave - 8.IBPluginDependency - 8.IBWindowTemplateEditedContentRect - 8.NSWindowTemplate.visibleAtLaunch - 8.windowTemplate.hasMinSize - 8.windowTemplate.minSize - 90.IBPluginDependency - 98.IBPluginDependency - 99.IBPluginDependency - - - YES - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - {{328, 129}, {356, 286}} - - - {290, 158} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - - YES - - - YES - + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + {{328, 129}, {356, 286}} + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + - - YES - - - YES - - + 113 0 IBCocoaFramework + NO com.apple.InterfaceBuilder.CocoaPlugin.macosx com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 - + YES - 3 - - YES - - YES - NSMenuCheckmark - NSMenuMixedState - build - run - - - YES - {12, 12} - {10, 2} - {32, 32} - {32, 32} - - + + {12, 12} + {10, 2} + {32, 32} + {32, 32} + From 9492f743b70e1ff9254eeebbe40d3ad67c25949b Mon Sep 17 00:00:00 2001 From: Ant Date: Sun, 16 Nov 2014 13:10:37 +0000 Subject: [PATCH 08/33] Started to enhance readability and configurability of FSObjectBrowserViewObjectInfo --- FScript.xcodeproj/project.pbxproj | 118 ++ FScriptFramework/CHBidirectionalDictionary.h | 131 ++ FScriptFramework/CHBidirectionalDictionary.m | 94 + FScriptFramework/CHMutableDictionary.h | 45 + FScriptFramework/CHMutableDictionary.m | 172 ++ .../designable.nib | 6 +- .../FSObjectBrowserViewObjectInfo.m | 1671 +++++++---------- FScriptFramework/Util.h | 219 +++ FScriptFramework/Util.m | 131 ++ FScriptFramework/metamacros.h | 772 ++++++++ 10 files changed, 2376 insertions(+), 983 deletions(-) create mode 100644 FScriptFramework/CHBidirectionalDictionary.h create mode 100644 FScriptFramework/CHBidirectionalDictionary.m create mode 100644 FScriptFramework/CHMutableDictionary.h create mode 100644 FScriptFramework/CHMutableDictionary.m create mode 100644 FScriptFramework/Util.h create mode 100644 FScriptFramework/Util.m create mode 100644 FScriptFramework/metamacros.h diff --git a/FScript.xcodeproj/project.pbxproj b/FScript.xcodeproj/project.pbxproj index 26bc210..b8eeda0 100644 --- a/FScript.xcodeproj/project.pbxproj +++ b/FScript.xcodeproj/project.pbxproj @@ -2738,6 +2738,58 @@ EDFB2FF81A17E345002C8DD7 /* FSObjectBrowserButtonsInspector.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDFB2FF21A17E345002C8DD7 /* FSObjectBrowserButtonsInspector.xib */; }; EDFB2FF91A17E345002C8DD7 /* FSObjectBrowserButtonsInspector.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDFB2FF21A17E345002C8DD7 /* FSObjectBrowserButtonsInspector.xib */; }; EDFB2FFA1A17E345002C8DD7 /* FSObjectBrowserButtonsInspector.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDFB2FF21A17E345002C8DD7 /* FSObjectBrowserButtonsInspector.xib */; }; + EDFB30011A188B4E002C8DD7 /* CHBidirectionalDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = EDFB2FFB1A188B4E002C8DD7 /* CHBidirectionalDictionary.h */; }; + EDFB30021A188B4E002C8DD7 /* CHBidirectionalDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = EDFB2FFB1A188B4E002C8DD7 /* CHBidirectionalDictionary.h */; }; + EDFB30031A188B4E002C8DD7 /* CHBidirectionalDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = EDFB2FFB1A188B4E002C8DD7 /* CHBidirectionalDictionary.h */; }; + EDFB30041A188B4E002C8DD7 /* CHBidirectionalDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = EDFB2FFB1A188B4E002C8DD7 /* CHBidirectionalDictionary.h */; }; + EDFB30051A188B4E002C8DD7 /* CHBidirectionalDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = EDFB2FFB1A188B4E002C8DD7 /* CHBidirectionalDictionary.h */; }; + EDFB30061A188B4E002C8DD7 /* CHBidirectionalDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = EDFB2FFB1A188B4E002C8DD7 /* CHBidirectionalDictionary.h */; }; + EDFB30071A188B4E002C8DD7 /* CHBidirectionalDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = EDFB2FFB1A188B4E002C8DD7 /* CHBidirectionalDictionary.h */; }; + EDFB30081A188B4E002C8DD7 /* CHBidirectionalDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = EDFB2FFC1A188B4E002C8DD7 /* CHBidirectionalDictionary.m */; }; + EDFB30091A188B4E002C8DD7 /* CHBidirectionalDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = EDFB2FFC1A188B4E002C8DD7 /* CHBidirectionalDictionary.m */; }; + EDFB300A1A188B4E002C8DD7 /* CHBidirectionalDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = EDFB2FFC1A188B4E002C8DD7 /* CHBidirectionalDictionary.m */; }; + EDFB300B1A188B4E002C8DD7 /* CHBidirectionalDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = EDFB2FFC1A188B4E002C8DD7 /* CHBidirectionalDictionary.m */; }; + EDFB300C1A188B4E002C8DD7 /* CHBidirectionalDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = EDFB2FFC1A188B4E002C8DD7 /* CHBidirectionalDictionary.m */; }; + EDFB300D1A188B4E002C8DD7 /* CHBidirectionalDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = EDFB2FFC1A188B4E002C8DD7 /* CHBidirectionalDictionary.m */; }; + EDFB300E1A188B4E002C8DD7 /* CHBidirectionalDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = EDFB2FFC1A188B4E002C8DD7 /* CHBidirectionalDictionary.m */; }; + EDFB300F1A188B4E002C8DD7 /* CHBidirectionalDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = EDFB2FFC1A188B4E002C8DD7 /* CHBidirectionalDictionary.m */; }; + EDFB30101A188B4E002C8DD7 /* CHMutableDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = EDFB2FFD1A188B4E002C8DD7 /* CHMutableDictionary.h */; }; + EDFB30111A188B4E002C8DD7 /* CHMutableDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = EDFB2FFD1A188B4E002C8DD7 /* CHMutableDictionary.h */; }; + EDFB30121A188B4E002C8DD7 /* CHMutableDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = EDFB2FFD1A188B4E002C8DD7 /* CHMutableDictionary.h */; }; + EDFB30131A188B4E002C8DD7 /* CHMutableDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = EDFB2FFD1A188B4E002C8DD7 /* CHMutableDictionary.h */; }; + EDFB30141A188B4E002C8DD7 /* CHMutableDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = EDFB2FFD1A188B4E002C8DD7 /* CHMutableDictionary.h */; }; + EDFB30151A188B4E002C8DD7 /* CHMutableDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = EDFB2FFD1A188B4E002C8DD7 /* CHMutableDictionary.h */; }; + EDFB30161A188B4E002C8DD7 /* CHMutableDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = EDFB2FFD1A188B4E002C8DD7 /* CHMutableDictionary.h */; }; + EDFB30171A188B4E002C8DD7 /* CHMutableDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = EDFB2FFE1A188B4E002C8DD7 /* CHMutableDictionary.m */; }; + EDFB30181A188B4E002C8DD7 /* CHMutableDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = EDFB2FFE1A188B4E002C8DD7 /* CHMutableDictionary.m */; }; + EDFB30191A188B4E002C8DD7 /* CHMutableDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = EDFB2FFE1A188B4E002C8DD7 /* CHMutableDictionary.m */; }; + EDFB301A1A188B4E002C8DD7 /* CHMutableDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = EDFB2FFE1A188B4E002C8DD7 /* CHMutableDictionary.m */; }; + EDFB301B1A188B4E002C8DD7 /* CHMutableDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = EDFB2FFE1A188B4E002C8DD7 /* CHMutableDictionary.m */; }; + EDFB301C1A188B4E002C8DD7 /* CHMutableDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = EDFB2FFE1A188B4E002C8DD7 /* CHMutableDictionary.m */; }; + EDFB301D1A188B4E002C8DD7 /* CHMutableDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = EDFB2FFE1A188B4E002C8DD7 /* CHMutableDictionary.m */; }; + EDFB301E1A188B4E002C8DD7 /* CHMutableDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = EDFB2FFE1A188B4E002C8DD7 /* CHMutableDictionary.m */; }; + EDFB301F1A188B4E002C8DD7 /* Util.h in Headers */ = {isa = PBXBuildFile; fileRef = EDFB2FFF1A188B4E002C8DD7 /* Util.h */; }; + EDFB30201A188B4E002C8DD7 /* Util.h in Headers */ = {isa = PBXBuildFile; fileRef = EDFB2FFF1A188B4E002C8DD7 /* Util.h */; }; + EDFB30211A188B4E002C8DD7 /* Util.h in Headers */ = {isa = PBXBuildFile; fileRef = EDFB2FFF1A188B4E002C8DD7 /* Util.h */; }; + EDFB30221A188B4E002C8DD7 /* Util.h in Headers */ = {isa = PBXBuildFile; fileRef = EDFB2FFF1A188B4E002C8DD7 /* Util.h */; }; + EDFB30231A188B4E002C8DD7 /* Util.h in Headers */ = {isa = PBXBuildFile; fileRef = EDFB2FFF1A188B4E002C8DD7 /* Util.h */; }; + EDFB30241A188B4E002C8DD7 /* Util.h in Headers */ = {isa = PBXBuildFile; fileRef = EDFB2FFF1A188B4E002C8DD7 /* Util.h */; }; + EDFB30251A188B4E002C8DD7 /* Util.h in Headers */ = {isa = PBXBuildFile; fileRef = EDFB2FFF1A188B4E002C8DD7 /* Util.h */; }; + EDFB30261A188B4E002C8DD7 /* Util.m in Sources */ = {isa = PBXBuildFile; fileRef = EDFB30001A188B4E002C8DD7 /* Util.m */; }; + EDFB30271A188B4E002C8DD7 /* Util.m in Sources */ = {isa = PBXBuildFile; fileRef = EDFB30001A188B4E002C8DD7 /* Util.m */; }; + EDFB30281A188B4E002C8DD7 /* Util.m in Sources */ = {isa = PBXBuildFile; fileRef = EDFB30001A188B4E002C8DD7 /* Util.m */; }; + EDFB30291A188B4E002C8DD7 /* Util.m in Sources */ = {isa = PBXBuildFile; fileRef = EDFB30001A188B4E002C8DD7 /* Util.m */; }; + EDFB302A1A188B4E002C8DD7 /* Util.m in Sources */ = {isa = PBXBuildFile; fileRef = EDFB30001A188B4E002C8DD7 /* Util.m */; }; + EDFB302B1A188B4E002C8DD7 /* Util.m in Sources */ = {isa = PBXBuildFile; fileRef = EDFB30001A188B4E002C8DD7 /* Util.m */; }; + EDFB302C1A188B4E002C8DD7 /* Util.m in Sources */ = {isa = PBXBuildFile; fileRef = EDFB30001A188B4E002C8DD7 /* Util.m */; }; + EDFB302D1A188B4E002C8DD7 /* Util.m in Sources */ = {isa = PBXBuildFile; fileRef = EDFB30001A188B4E002C8DD7 /* Util.m */; }; + EDFB302F1A18CA26002C8DD7 /* metamacros.h in Headers */ = {isa = PBXBuildFile; fileRef = EDFB302E1A18CA26002C8DD7 /* metamacros.h */; }; + EDFB30301A18CA26002C8DD7 /* metamacros.h in Headers */ = {isa = PBXBuildFile; fileRef = EDFB302E1A18CA26002C8DD7 /* metamacros.h */; }; + EDFB30311A18CA26002C8DD7 /* metamacros.h in Headers */ = {isa = PBXBuildFile; fileRef = EDFB302E1A18CA26002C8DD7 /* metamacros.h */; }; + EDFB30321A18CA26002C8DD7 /* metamacros.h in Headers */ = {isa = PBXBuildFile; fileRef = EDFB302E1A18CA26002C8DD7 /* metamacros.h */; }; + EDFB30331A18CA26002C8DD7 /* metamacros.h in Headers */ = {isa = PBXBuildFile; fileRef = EDFB302E1A18CA26002C8DD7 /* metamacros.h */; }; + EDFB30341A18CA26002C8DD7 /* metamacros.h in Headers */ = {isa = PBXBuildFile; fileRef = EDFB302E1A18CA26002C8DD7 /* metamacros.h */; }; + EDFB30351A18CA26002C8DD7 /* metamacros.h in Headers */ = {isa = PBXBuildFile; fileRef = EDFB302E1A18CA26002C8DD7 /* metamacros.h */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -3236,6 +3288,13 @@ EDE508D119DD4D310012F16A /* FSConsole.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = FSConsole.xib; sourceTree = ""; }; EDE508DA19DD4FDC0012F16A /* FScriptPreferences.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = FScriptPreferences.xib; sourceTree = ""; }; EDFB2FF21A17E345002C8DD7 /* FSObjectBrowserButtonsInspector.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = FSObjectBrowserButtonsInspector.xib; sourceTree = ""; }; + EDFB2FFB1A188B4E002C8DD7 /* CHBidirectionalDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CHBidirectionalDictionary.h; sourceTree = ""; }; + EDFB2FFC1A188B4E002C8DD7 /* CHBidirectionalDictionary.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CHBidirectionalDictionary.m; sourceTree = ""; }; + EDFB2FFD1A188B4E002C8DD7 /* CHMutableDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CHMutableDictionary.h; sourceTree = ""; }; + EDFB2FFE1A188B4E002C8DD7 /* CHMutableDictionary.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CHMutableDictionary.m; sourceTree = ""; }; + EDFB2FFF1A188B4E002C8DD7 /* Util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Util.h; sourceTree = ""; }; + EDFB30001A188B4E002C8DD7 /* Util.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Util.m; sourceTree = ""; }; + EDFB302E1A18CA26002C8DD7 /* metamacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = metamacros.h; sourceTree = ""; }; F501AF7B021497C401A75EC5 /* FScriptTextView.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = FScriptTextView.m; sourceTree = ""; }; F505647F02DF417501FE0326 /* Pointer.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = Pointer.m; sourceTree = ""; }; F505648002DF417501FE0326 /* Pointer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Pointer.h; sourceTree = ""; }; @@ -3718,6 +3777,13 @@ 0CD4E30D00D7DFE17BE9C1BD /* FScriptFramework */ = { isa = PBXGroup; children = ( + EDFB302E1A18CA26002C8DD7 /* metamacros.h */, + EDFB2FFB1A188B4E002C8DD7 /* CHBidirectionalDictionary.h */, + EDFB2FFC1A188B4E002C8DD7 /* CHBidirectionalDictionary.m */, + EDFB2FFD1A188B4E002C8DD7 /* CHMutableDictionary.h */, + EDFB2FFE1A188B4E002C8DD7 /* CHMutableDictionary.m */, + EDFB2FFF1A188B4E002C8DD7 /* Util.h */, + EDFB30001A188B4E002C8DD7 /* Util.m */, 8F31A4C00EC74A2E00D1B8E8 /* Array_fscript.h */, 8F31A4C10EC74A2E00D1B8E8 /* Array.m */, 0CD4E31300D7DFE17BE9C1BD /* ArrayPrivate.h */, @@ -4286,6 +4352,7 @@ 8F6DA5EA055FC6980050409A /* FSObjectBrowserArgumentPanel.h in Headers */, 8F6DA5EB055FC6980050409A /* FSObjectBrowserCell.h in Headers */, 8F6DA5EC055FC6980050409A /* FSObjectBrowserView.h in Headers */, + EDFB30351A18CA26002C8DD7 /* metamacros.h in Headers */, 8F6DA5ED055FC6980050409A /* FSBlock.h in Headers */, 8F6DA5EE055FC6980050409A /* BlockInspector.h in Headers */, 8F6DA5EF055FC6980050409A /* BlockPrivate.h in Headers */, @@ -4295,6 +4362,7 @@ 8F6DA5F3055FC6980050409A /* CLIView.h in Headers */, 8F6DA5F4055FC6980050409A /* build_config.h in Headers */, 8F6DA5F5055FC6980050409A /* FSCompilationResult.h in Headers */, + EDFB30161A188B4E002C8DD7 /* CHMutableDictionary.h in Headers */, 8F6DA5F6055FC6980050409A /* CompiledCodeNode.h in Headers */, 8F6DA5F7055FC6980050409A /* FSCompiler.h in Headers */, 8F6DA5F8055FC6980050409A /* FSConstantsInitialization.h in Headers */, @@ -4329,6 +4397,7 @@ 8F6DA618055FC6980050409A /* FSVoidPrivate.h in Headers */, 8F6DA619055FC6980050409A /* FSGenericObjectInspector.h in Headers */, 8F6DA61A055FC6980050409A /* KTestManager.h in Headers */, + EDFB30071A188B4E002C8DD7 /* CHBidirectionalDictionary.h in Headers */, 8F6DA61B055FC6980050409A /* MessagePatternCodeNode.h in Headers */, 8F6DA61C055FC6980050409A /* FSMiscTools.h in Headers */, 8F6DA61D055FC6980050409A /* FSMsgContext.h in Headers */, @@ -4384,6 +4453,7 @@ 8F8EA7F5077F719800AC1C96 /* FSPointerPrivate.h in Headers */, 8F8EA85B077F79A000AC1C96 /* FSGenericPointerPrivate.h in Headers */, 8FE9AE2C078071CC005B2CC4 /* FSObjectPointer.h in Headers */, + EDFB30251A188B4E002C8DD7 /* Util.h in Headers */, 8FE9AE8F07807269005B2CC4 /* FSObjectPointerPrivate.h in Headers */, 8F86923A07F19BA8000D20A4 /* FSObjectBrowserNamedObjectWrapper.h in Headers */, 8F95E3C908034A670030B65C /* FSPredicateTextView.h in Headers */, @@ -4486,11 +4556,13 @@ 8F6DA81A055FC70C0050409A /* FSNSArray.h in Headers */, 8F6DA81B055FC70C0050409A /* FSNSArrayPrivate.h in Headers */, 8F6DA81C055FC70C0050409A /* FSNSDate.h in Headers */, + EDFB30101A188B4E002C8DD7 /* CHMutableDictionary.h in Headers */, 8F6DA81D055FC70C0050409A /* FSNSDictionary.h in Headers */, 8F6DA81E055FC70C0050409A /* FSNSDistantObject.h in Headers */, 8F6DA81F055FC70C0050409A /* FSNSMutableString.h in Headers */, 8F6DA820055FC70C0050409A /* FSNSNumber.h in Headers */, 8F6DA821055FC70C0050409A /* FSNSObject.h in Headers */, + EDFB301F1A188B4E002C8DD7 /* Util.h in Headers */, 8F6DA822055FC70C0050409A /* FSNSProxy.h in Headers */, 8F6DA825055FC70C0050409A /* FSPattern.h in Headers */, 8F6DA828055FC70C0050409A /* FSUnarchiver.h in Headers */, @@ -4522,6 +4594,7 @@ 8F6DA84C055FC70C0050409A /* DOCustom.h in Headers */, 8F6DA84E055FC70C0050409A /* Pointer.h in Headers */, 8F6DA84F055FC70C0050409A /* PointerPrivate.h in Headers */, + EDFB302F1A18CA26002C8DD7 /* metamacros.h in Headers */, 8F6DA850055FC70C0050409A /* FSInterpreterPrivate.h in Headers */, 8F6DA851055FC70C0050409A /* FSIdentifierFormatter.h in Headers */, 8F6DA852055FC70C0050409A /* FSObjectFormatter.h in Headers */, @@ -4549,6 +4622,7 @@ 8F658B2D05C9694F0040FB24 /* FSNSFont.h in Headers */, 8FB5060505D53C8600153B33 /* FSObjectBrowserMatrix.h in Headers */, 8F130131064EC77F00A90302 /* FSNSString.h in Headers */, + EDFB30011A188B4E002C8DD7 /* CHBidirectionalDictionary.h in Headers */, 8F130140064EC78400A90302 /* FSNSStringPrivate.h in Headers */, 8F17C08106B1309C00F07862 /* FSSymbolTable.h in Headers */, 8F6937F206B6E03D00AEAC6A /* TestFS.h in Headers */, @@ -4672,6 +4746,7 @@ 8F6DA930055FC71F0050409A /* FSPilot.h in Headers */, 8F6DA931055FC71F0050409A /* Pointer.h in Headers */, 8F6DA933055FC71F0050409A /* FSReplacementForCoderForClass.h in Headers */, + EDFB30301A18CA26002C8DD7 /* metamacros.h in Headers */, 8F6DA934055FC71F0050409A /* ShellView.h in Headers */, 8F6DA935055FC71F0050409A /* Space.h in Headers */, 8F6DA936055FC71F0050409A /* FSCommandHistory.h in Headers */, @@ -4704,13 +4779,16 @@ 8F6DA95C055FC71F0050409A /* ArrayRepBoolean.h in Headers */, 8F6DA95D055FC71F0050409A /* FSNSObjectPrivate.h in Headers */, 8F6DA95E055FC71F0050409A /* FSArrayEnumerator.h in Headers */, + EDFB30201A188B4E002C8DD7 /* Util.h in Headers */, 8F6DA95F055FC71F0050409A /* TestFS.h in Headers */, 8F6DA960055FC71F0050409A /* FSNSMutableArray.h in Headers */, 8F553BF90585222700A92293 /* FSNSValue.h in Headers */, 8F7D7DBF058E32CD00F1B8A8 /* FSReplacementForCoderForNilInArray.h in Headers */, 8F0E3B82059F3DBB003F6CE9 /* FSNamedNumber.h in Headers */, + EDFB30111A188B4E002C8DD7 /* CHMutableDictionary.h in Headers */, 8F60217205A25CDC0004EFF1 /* FSCollectionInspectorTableView.h in Headers */, 8F60F24B05A9FE8B00985FEC /* FSNSSet.h in Headers */, + EDFB30021A188B4E002C8DD7 /* CHBidirectionalDictionary.h in Headers */, 8FDCCD5205C09F8200747C0A /* FSAttributedStringInspector.h in Headers */, 8FDCCDC305C0A23000747C0A /* FSNSAttributedString.h in Headers */, 8F71F72405C43A7D00C34794 /* FSInterpreterViewPrivate.h in Headers */, @@ -4818,11 +4896,13 @@ BA2231CD189FA403002C5B6A /* FSNSArray.h in Headers */, BA2231CE189FA403002C5B6A /* FSNSArrayPrivate.h in Headers */, BA2231CF189FA403002C5B6A /* FSNSDate.h in Headers */, + EDFB30121A188B4E002C8DD7 /* CHMutableDictionary.h in Headers */, BA2231D0189FA403002C5B6A /* FSNSDictionary.h in Headers */, BA2231D1189FA403002C5B6A /* FSNSDistantObject.h in Headers */, BA2231D2189FA403002C5B6A /* FSNSMutableString.h in Headers */, BA2231D3189FA403002C5B6A /* FSNSNumber.h in Headers */, BA2231D4189FA403002C5B6A /* FSNSObject.h in Headers */, + EDFB30211A188B4E002C8DD7 /* Util.h in Headers */, BA2231D5189FA403002C5B6A /* FSNSProxy.h in Headers */, BA2231D6189FA403002C5B6A /* FSPattern.h in Headers */, BA2231D7189FA403002C5B6A /* FSUnarchiver.h in Headers */, @@ -4854,6 +4934,7 @@ BA2231F1189FA403002C5B6A /* DOCustom.h in Headers */, BA2231F2189FA403002C5B6A /* Pointer.h in Headers */, BA2231F3189FA403002C5B6A /* PointerPrivate.h in Headers */, + EDFB30311A18CA26002C8DD7 /* metamacros.h in Headers */, BA2231F4189FA403002C5B6A /* FSInterpreterPrivate.h in Headers */, BA2231F5189FA403002C5B6A /* FSIdentifierFormatter.h in Headers */, BA2231F6189FA403002C5B6A /* FSObjectFormatter.h in Headers */, @@ -4881,6 +4962,7 @@ BA22320C189FA403002C5B6A /* FSNSFont.h in Headers */, BA22320D189FA403002C5B6A /* FSObjectBrowserMatrix.h in Headers */, BA22320E189FA403002C5B6A /* FSNSString.h in Headers */, + EDFB30031A188B4E002C8DD7 /* CHBidirectionalDictionary.h in Headers */, BA22320F189FA403002C5B6A /* FSNSStringPrivate.h in Headers */, BA223210189FA403002C5B6A /* FSSymbolTable.h in Headers */, BA223211189FA403002C5B6A /* TestFS.h in Headers */, @@ -4986,11 +5068,13 @@ BA22338D189FA412002C5B6A /* FSNSArray.h in Headers */, BA22338E189FA412002C5B6A /* FSNSArrayPrivate.h in Headers */, BA22338F189FA412002C5B6A /* FSNSDate.h in Headers */, + EDFB30141A188B4E002C8DD7 /* CHMutableDictionary.h in Headers */, BA223390189FA412002C5B6A /* FSNSDictionary.h in Headers */, BA223391189FA412002C5B6A /* FSNSDistantObject.h in Headers */, BA223392189FA412002C5B6A /* FSNSMutableString.h in Headers */, BA223393189FA412002C5B6A /* FSNSNumber.h in Headers */, BA223394189FA412002C5B6A /* FSNSObject.h in Headers */, + EDFB30231A188B4E002C8DD7 /* Util.h in Headers */, BA223395189FA412002C5B6A /* FSNSProxy.h in Headers */, BA223396189FA412002C5B6A /* FSPattern.h in Headers */, BA223397189FA412002C5B6A /* FSUnarchiver.h in Headers */, @@ -5022,6 +5106,7 @@ BA2233B1189FA412002C5B6A /* DOCustom.h in Headers */, BA2233B2189FA412002C5B6A /* Pointer.h in Headers */, BA2233B3189FA412002C5B6A /* PointerPrivate.h in Headers */, + EDFB30331A18CA26002C8DD7 /* metamacros.h in Headers */, BA2233B4189FA412002C5B6A /* FSInterpreterPrivate.h in Headers */, BA2233B5189FA412002C5B6A /* FSIdentifierFormatter.h in Headers */, BA2233B6189FA412002C5B6A /* FSObjectFormatter.h in Headers */, @@ -5049,6 +5134,7 @@ BA2233CC189FA412002C5B6A /* FSNSFont.h in Headers */, BA2233CD189FA412002C5B6A /* FSObjectBrowserMatrix.h in Headers */, BA2233CE189FA412002C5B6A /* FSNSString.h in Headers */, + EDFB30051A188B4E002C8DD7 /* CHBidirectionalDictionary.h in Headers */, BA2233CF189FA412002C5B6A /* FSNSStringPrivate.h in Headers */, BA2233D0189FA412002C5B6A /* FSSymbolTable.h in Headers */, BA2233D1189FA412002C5B6A /* TestFS.h in Headers */, @@ -5172,6 +5258,7 @@ BA22355B189FA429002C5B6A /* FSPilot.h in Headers */, BA22355C189FA429002C5B6A /* Pointer.h in Headers */, BA22355D189FA429002C5B6A /* FSReplacementForCoderForClass.h in Headers */, + EDFB30321A18CA26002C8DD7 /* metamacros.h in Headers */, BA22355E189FA429002C5B6A /* ShellView.h in Headers */, BA22355F189FA429002C5B6A /* Space.h in Headers */, BA223560189FA429002C5B6A /* FSCommandHistory.h in Headers */, @@ -5204,13 +5291,16 @@ BA22357B189FA429002C5B6A /* ArrayRepBoolean.h in Headers */, BA22357C189FA429002C5B6A /* FSNSObjectPrivate.h in Headers */, BA22357D189FA429002C5B6A /* FSArrayEnumerator.h in Headers */, + EDFB30221A188B4E002C8DD7 /* Util.h in Headers */, BA22357E189FA429002C5B6A /* TestFS.h in Headers */, BA22357F189FA429002C5B6A /* FSNSMutableArray.h in Headers */, BA223580189FA429002C5B6A /* FSNSValue.h in Headers */, BA223581189FA429002C5B6A /* FSReplacementForCoderForNilInArray.h in Headers */, BA223582189FA429002C5B6A /* FSNamedNumber.h in Headers */, + EDFB30131A188B4E002C8DD7 /* CHMutableDictionary.h in Headers */, BA223583189FA429002C5B6A /* FSCollectionInspectorTableView.h in Headers */, BA223584189FA429002C5B6A /* FSNSSet.h in Headers */, + EDFB30041A188B4E002C8DD7 /* CHBidirectionalDictionary.h in Headers */, BA223585189FA429002C5B6A /* FSAttributedStringInspector.h in Headers */, BA223586189FA429002C5B6A /* FSNSAttributedString.h in Headers */, BA223587189FA429002C5B6A /* FSInterpreterViewPrivate.h in Headers */, @@ -5336,6 +5426,7 @@ BA2236A3189FA431002C5B6A /* FSPilot.h in Headers */, BA2236A4189FA431002C5B6A /* Pointer.h in Headers */, BA2236A5189FA431002C5B6A /* FSReplacementForCoderForClass.h in Headers */, + EDFB30341A18CA26002C8DD7 /* metamacros.h in Headers */, BA2236A6189FA431002C5B6A /* ShellView.h in Headers */, BA2236A7189FA431002C5B6A /* Space.h in Headers */, BA2236A8189FA431002C5B6A /* FSCommandHistory.h in Headers */, @@ -5368,13 +5459,16 @@ BA2236C3189FA431002C5B6A /* ArrayRepBoolean.h in Headers */, BA2236C4189FA431002C5B6A /* FSNSObjectPrivate.h in Headers */, BA2236C5189FA431002C5B6A /* FSArrayEnumerator.h in Headers */, + EDFB30241A188B4E002C8DD7 /* Util.h in Headers */, BA2236C6189FA431002C5B6A /* TestFS.h in Headers */, BA2236C7189FA431002C5B6A /* FSNSMutableArray.h in Headers */, BA2236C8189FA431002C5B6A /* FSNSValue.h in Headers */, BA2236C9189FA431002C5B6A /* FSReplacementForCoderForNilInArray.h in Headers */, BA2236CA189FA431002C5B6A /* FSNamedNumber.h in Headers */, + EDFB30151A188B4E002C8DD7 /* CHMutableDictionary.h in Headers */, BA2236CB189FA431002C5B6A /* FSCollectionInspectorTableView.h in Headers */, BA2236CC189FA431002C5B6A /* FSNSSet.h in Headers */, + EDFB30061A188B4E002C8DD7 /* CHBidirectionalDictionary.h in Headers */, BA2236CD189FA431002C5B6A /* FSAttributedStringInspector.h in Headers */, BA2236CE189FA431002C5B6A /* FSNSAttributedString.h in Headers */, BA2236CF189FA431002C5B6A /* FSInterpreterViewPrivate.h in Headers */, @@ -6006,6 +6100,7 @@ 8F0CBBFC0BDB94AD002B0AD7 /* FSBoolean.m in Sources */, 8F0CBBFD0BDB94AD002B0AD7 /* FScriptFunctions.m in Sources */, 8F0CBBFE0BDB94AD002B0AD7 /* FSInterpreter.m in Sources */, + EDFB301E1A188B4E002C8DD7 /* CHMutableDictionary.m in Sources */, 8F0CBBFF0BDB94AD002B0AD7 /* FSInterpreterResult.m in Sources */, 8F0CBC000BDB94AD002B0AD7 /* FSInterpreterView.m in Sources */, 8F0CBC010BDB94AD002B0AD7 /* FSNSArray.m in Sources */, @@ -6055,6 +6150,7 @@ 8F0CBC350BDB94AD002B0AD7 /* FSNSImage.m in Sources */, 8F0CBC360BDB94AD002B0AD7 /* FSObjectBrowserToolbarItem.m in Sources */, 8F0CBC370BDB94AD002B0AD7 /* ArrayRepBoolean.m in Sources */, + EDFB300F1A188B4E002C8DD7 /* CHBidirectionalDictionary.m in Sources */, 8F0CBC380BDB94AD002B0AD7 /* FSArrayEnumerator.m in Sources */, 8F0CBC390BDB94AD002B0AD7 /* FSNSMutableArray.m in Sources */, 8F0CBC3C0BDB94AD002B0AD7 /* FSNSValue.m in Sources */, @@ -6070,6 +6166,7 @@ 8F0CBC460BDB94AD002B0AD7 /* FSSymbolTable.m in Sources */, 8F0CBC480BDB94AD002B0AD7 /* FSObjectBrowserViewObjectInfo.m in Sources */, 8F0CBC490BDB94AD002B0AD7 /* FSCollectionInspectorView.m in Sources */, + EDFB302D1A188B4E002C8DD7 /* Util.m in Sources */, 8F0CBC4A0BDB94AD002B0AD7 /* ArrayRepFetchRequest.m in Sources */, 8F0CBC4B0BDB94AD002B0AD7 /* FSPointer.m in Sources */, 8F0CBC4C0BDB94AD002B0AD7 /* FSGenericPointer.m in Sources */, @@ -6192,6 +6289,7 @@ 8F6DA6AD055FC6980050409A /* FSTask.m in Sources */, 8F6DA6AE055FC6980050409A /* FSObjectBrowserToolbarButton.m in Sources */, 8F6DA6B0055FC6980050409A /* FSObjectBrowserButtonCtxBlock.m in Sources */, + EDFB300E1A188B4E002C8DD7 /* CHBidirectionalDictionary.m in Sources */, 8F6DA6B1055FC6980050409A /* FSObjectBrowserButtonsInspector.m in Sources */, 8F6DA6B2055FC6980050409A /* Pointer.m in Sources */, 8F6DA6B3055FC6980050409A /* FSIdentifierFormatter.m in Sources */, @@ -6202,6 +6300,7 @@ 8F6DA6BA055FC6980050409A /* FSImageInspector.m in Sources */, 8F6DA6BB055FC6980050409A /* FSNSImage.m in Sources */, 8F6DA6BC055FC6980050409A /* FSObjectBrowserToolbarItem.m in Sources */, + EDFB302C1A188B4E002C8DD7 /* Util.m in Sources */, 8F6DA6BD055FC6980050409A /* ArrayRepBoolean.m in Sources */, 8F6DA6BE055FC6980050409A /* FSArrayEnumerator.m in Sources */, 8F6DA6BF055FC6980050409A /* FSNSMutableArray.m in Sources */, @@ -6246,6 +6345,7 @@ 8F2E34410D8DBFE700912543 /* FSCNKeywordMessage.m in Sources */, 8F5900160D9468FC003A8B17 /* FSCNCascade.m in Sources */, 8F8F58690D9FE6AA00ED0FED /* FSCNStatementList.m in Sources */, + EDFB301D1A188B4E002C8DD7 /* CHMutableDictionary.m in Sources */, 8F747DAC0DA03AE200148342 /* FSCNPrecomputedObject.m in Sources */, 8F747DBB0DA0467100148342 /* FSCNArray.m in Sources */, 8FAE79B00DA0ED5D00CB6E14 /* FSCNBlock.m in Sources */, @@ -6304,6 +6404,7 @@ 8F6DA88E055FC70C0050409A /* FSExecEngine.m in Sources */, 8F6DA88F055FC70C0050409A /* FSExecutor.m in Sources */, 8F6DA890055FC70C0050409A /* FSFlight.m in Sources */, + EDFB30261A188B4E002C8DD7 /* Util.m in Sources */, 8F6DA891055FC70C0050409A /* FSArchiver.m in Sources */, 8F6DA892055FC70C0050409A /* FSBoolean.m in Sources */, 8F6DA894055FC70C0050409A /* FScriptFunctions.m in Sources */, @@ -6316,6 +6417,7 @@ 8F6DA89B055FC70C0050409A /* FSNSDictionary.m in Sources */, 8F6DA89C055FC70C0050409A /* FSNSDistantObject.m in Sources */, 8F6DA89D055FC70C0050409A /* FSNSMutableString.m in Sources */, + EDFB30171A188B4E002C8DD7 /* CHMutableDictionary.m in Sources */, 8F6DA89E055FC70C0050409A /* FSNSNumber.m in Sources */, 8F6DA89F055FC70C0050409A /* FSNSObject.m in Sources */, 8F6DA8A0055FC70C0050409A /* FSNSProxy.m in Sources */, @@ -6395,6 +6497,7 @@ 8FE639810D09C0F400255EBA /* FSCNBase.m in Sources */, 8FE639910D09DCB600255EBA /* FSCNIdentifier.m in Sources */, 8FE3DD260D26D49900A1D767 /* FSTestObjCClass1.m in Sources */, + EDFB30081A188B4E002C8DD7 /* CHBidirectionalDictionary.m in Sources */, 8F48220A0D2C317700754A4E /* FSTestObjCClass2.m in Sources */, 8F8112F70D85E58200CB3407 /* FSCNCategory.m in Sources */, 8F59CA760D86DD0800D67A78 /* FSCNMessage.m in Sources */, @@ -6449,6 +6552,7 @@ 8F6DA985055FC71F0050409A /* CompiledCodeNode.m in Sources */, 8F6DA986055FC71F0050409A /* FSCompiler.m in Sources */, 8F6DA987055FC71F0050409A /* FSConstantsInitialization.m in Sources */, + EDFB30271A188B4E002C8DD7 /* Util.m in Sources */, 8F6DA988055FC71F0050409A /* FSExecEngine.m in Sources */, 8F6DA989055FC71F0050409A /* FSExecutor.m in Sources */, 8F6DA98A055FC71F0050409A /* FSFlight.m in Sources */, @@ -6461,6 +6565,7 @@ 8F6DA992055FC71F0050409A /* FSNSArray.m in Sources */, 8F6DA993055FC71F0050409A /* FSNSDate.m in Sources */, 8F6DA994055FC71F0050409A /* FSNSDictionary.m in Sources */, + EDFB30091A188B4E002C8DD7 /* CHBidirectionalDictionary.m in Sources */, 8F6DA995055FC71F0050409A /* FSNSMutableString.m in Sources */, 8F6DA996055FC71F0050409A /* FSNSNumber.m in Sources */, 8F6DA997055FC71F0050409A /* FSNSObject.m in Sources */, @@ -6521,6 +6626,7 @@ 8F4E294F075B8E5600F8DCDB /* FSObjectBrowserViewObjectInfo.m in Sources */, 8FA8EDEC07735B3B001BEC7B /* FSCollectionInspectorView.m in Sources */, 8FBC289F077B7D5200F9B4A2 /* ArrayRepFetchRequest.m in Sources */, + EDFB30181A188B4E002C8DD7 /* CHMutableDictionary.m in Sources */, 8F8EA731077F6A5200AC1C96 /* FSPointer.m in Sources */, 8F8EA7A1077F6C9300AC1C96 /* FSGenericPointer.m in Sources */, 8FE9AE3A078071CC005B2CC4 /* FSObjectPointer.m in Sources */, @@ -6597,6 +6703,7 @@ BA223278189FA403002C5B6A /* FSExecEngine.m in Sources */, BA223279189FA403002C5B6A /* FSExecutor.m in Sources */, BA22327A189FA403002C5B6A /* FSFlight.m in Sources */, + EDFB30281A188B4E002C8DD7 /* Util.m in Sources */, BA22327B189FA403002C5B6A /* FSArchiver.m in Sources */, BA22327C189FA403002C5B6A /* FSBoolean.m in Sources */, BA22327D189FA403002C5B6A /* FScriptFunctions.m in Sources */, @@ -6609,6 +6716,7 @@ BA223284189FA403002C5B6A /* FSNSDictionary.m in Sources */, BA223285189FA403002C5B6A /* FSNSDistantObject.m in Sources */, BA223286189FA403002C5B6A /* FSNSMutableString.m in Sources */, + EDFB30191A188B4E002C8DD7 /* CHMutableDictionary.m in Sources */, BA223287189FA403002C5B6A /* FSNSNumber.m in Sources */, BA223288189FA403002C5B6A /* FSNSObject.m in Sources */, BA223289189FA403002C5B6A /* FSNSProxy.m in Sources */, @@ -6688,6 +6796,7 @@ BA2232D3189FA403002C5B6A /* FSCNBase.m in Sources */, BA2232D4189FA403002C5B6A /* FSCNIdentifier.m in Sources */, BA2232D5189FA403002C5B6A /* FSTestObjCClass1.m in Sources */, + EDFB300A1A188B4E002C8DD7 /* CHBidirectionalDictionary.m in Sources */, BA2232D6189FA403002C5B6A /* FSTestObjCClass2.m in Sources */, BA2232D7189FA403002C5B6A /* FSCNCategory.m in Sources */, BA2232D8189FA403002C5B6A /* FSCNMessage.m in Sources */, @@ -6747,6 +6856,7 @@ BA223438189FA412002C5B6A /* FSExecEngine.m in Sources */, BA223439189FA412002C5B6A /* FSExecutor.m in Sources */, BA22343A189FA412002C5B6A /* FSFlight.m in Sources */, + EDFB302A1A188B4E002C8DD7 /* Util.m in Sources */, BA22343B189FA412002C5B6A /* FSArchiver.m in Sources */, BA22343C189FA412002C5B6A /* FSBoolean.m in Sources */, BA22343D189FA412002C5B6A /* FScriptFunctions.m in Sources */, @@ -6759,6 +6869,7 @@ BA223444189FA412002C5B6A /* FSNSDictionary.m in Sources */, BA223445189FA412002C5B6A /* FSNSDistantObject.m in Sources */, BA223446189FA412002C5B6A /* FSNSMutableString.m in Sources */, + EDFB301B1A188B4E002C8DD7 /* CHMutableDictionary.m in Sources */, BA223447189FA412002C5B6A /* FSNSNumber.m in Sources */, BA223448189FA412002C5B6A /* FSNSObject.m in Sources */, BA223449189FA412002C5B6A /* FSNSProxy.m in Sources */, @@ -6838,6 +6949,7 @@ BA223493189FA412002C5B6A /* FSCNBase.m in Sources */, BA223494189FA412002C5B6A /* FSCNIdentifier.m in Sources */, BA223495189FA412002C5B6A /* FSTestObjCClass1.m in Sources */, + EDFB300C1A188B4E002C8DD7 /* CHBidirectionalDictionary.m in Sources */, BA223496189FA412002C5B6A /* FSTestObjCClass2.m in Sources */, BA223497189FA412002C5B6A /* FSCNCategory.m in Sources */, BA223498189FA412002C5B6A /* FSCNMessage.m in Sources */, @@ -6892,6 +7004,7 @@ BA2235E6189FA429002C5B6A /* CompiledCodeNode.m in Sources */, BA2235E7189FA429002C5B6A /* FSCompiler.m in Sources */, BA2235E8189FA429002C5B6A /* FSConstantsInitialization.m in Sources */, + EDFB30291A188B4E002C8DD7 /* Util.m in Sources */, BA2235E9189FA429002C5B6A /* FSExecEngine.m in Sources */, BA2235EA189FA429002C5B6A /* FSExecutor.m in Sources */, BA2235EB189FA429002C5B6A /* FSFlight.m in Sources */, @@ -6904,6 +7017,7 @@ BA2235F2189FA429002C5B6A /* FSNSArray.m in Sources */, BA2235F3189FA429002C5B6A /* FSNSDate.m in Sources */, BA2235F4189FA429002C5B6A /* FSNSDictionary.m in Sources */, + EDFB300B1A188B4E002C8DD7 /* CHBidirectionalDictionary.m in Sources */, BA2235F5189FA429002C5B6A /* FSNSMutableString.m in Sources */, BA2235F6189FA429002C5B6A /* FSNSNumber.m in Sources */, BA2235F7189FA429002C5B6A /* FSNSObject.m in Sources */, @@ -6964,6 +7078,7 @@ BA22362E189FA429002C5B6A /* FSObjectBrowserViewObjectInfo.m in Sources */, BA22362F189FA429002C5B6A /* FSCollectionInspectorView.m in Sources */, BA223630189FA429002C5B6A /* ArrayRepFetchRequest.m in Sources */, + EDFB301A1A188B4E002C8DD7 /* CHMutableDictionary.m in Sources */, BA223631189FA429002C5B6A /* FSPointer.m in Sources */, BA223632189FA429002C5B6A /* FSGenericPointer.m in Sources */, BA223633189FA429002C5B6A /* FSObjectPointer.m in Sources */, @@ -7035,6 +7150,7 @@ BA22372E189FA431002C5B6A /* CompiledCodeNode.m in Sources */, BA22372F189FA431002C5B6A /* FSCompiler.m in Sources */, BA223730189FA431002C5B6A /* FSConstantsInitialization.m in Sources */, + EDFB302B1A188B4E002C8DD7 /* Util.m in Sources */, BA223731189FA431002C5B6A /* FSExecEngine.m in Sources */, BA223732189FA431002C5B6A /* FSExecutor.m in Sources */, BA223733189FA431002C5B6A /* FSFlight.m in Sources */, @@ -7047,6 +7163,7 @@ BA22373A189FA431002C5B6A /* FSNSArray.m in Sources */, BA22373B189FA431002C5B6A /* FSNSDate.m in Sources */, BA22373C189FA431002C5B6A /* FSNSDictionary.m in Sources */, + EDFB300D1A188B4E002C8DD7 /* CHBidirectionalDictionary.m in Sources */, BA22373D189FA431002C5B6A /* FSNSMutableString.m in Sources */, BA22373E189FA431002C5B6A /* FSNSNumber.m in Sources */, BA22373F189FA431002C5B6A /* FSNSObject.m in Sources */, @@ -7107,6 +7224,7 @@ BA223776189FA431002C5B6A /* FSObjectBrowserViewObjectInfo.m in Sources */, BA223777189FA431002C5B6A /* FSCollectionInspectorView.m in Sources */, BA223778189FA431002C5B6A /* ArrayRepFetchRequest.m in Sources */, + EDFB301C1A188B4E002C8DD7 /* CHMutableDictionary.m in Sources */, BA223779189FA432002C5B6A /* FSPointer.m in Sources */, BA22377A189FA432002C5B6A /* FSGenericPointer.m in Sources */, BA22377B189FA432002C5B6A /* FSObjectPointer.m in Sources */, diff --git a/FScriptFramework/CHBidirectionalDictionary.h b/FScriptFramework/CHBidirectionalDictionary.h new file mode 100644 index 0000000..d04cf8e --- /dev/null +++ b/FScriptFramework/CHBidirectionalDictionary.h @@ -0,0 +1,131 @@ +/* + CHDataStructures.framework -- CHBidirectionalDictionary.h + + Copyright (c) 2010, Quinn Taylor + + This source code is released under the ISC License. + + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. + + The software is provided "as is", without warranty of any kind, including all implied warranties of merchantability and fitness. 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. + */ + +#import "CHMutableDictionary.h" + +/** + A dictionary that allows bidirectional lookup by keys and values with equal ease. This is possible because a bidirectional dictionary enforces the restriction that there is a 1-to-1 relation between keys and values, meaning that multiple keys cannot map to the same value. This is accomplished using a second internal dictionary which stores value-to-key mappings so values can be checked for uniqueness upon insertion. (Since values become the keys in this secondary dictionary, values must also be unique.) See \link #setObject:forKey: -setObject:forKey:\endlink below for details. + + The main purpose of this constraint is to make it trivial to do bidirectional lookups of one-to-one relationships. A trivial example might be to store husband-wife pairs and look up by either, rather than choosing only one. + + There are two simple ways (equivalent in performance) to look up a key by it's value: + - Call \link #keyForObject: -keyForObject:\endlink on a bidirectional dictionary. + - Acquire the inverse dictionary via \link #inverseDictionary -inverseDictionary\endlink, then call \link #setObject:forKey: -objectForKey:\endlink on that. + + @attention Since values are used as keys in the inverse dictionary, both keys and values must conform to the NSCopying protocol. (NSDictionary requires that keys conform to NSCopying, but not values.) If they don't, a crash will result when this collection attempts to copy them. + + @warning If a dictionary is passed to \link NSDictionary#initWithDictionary: -initWithDictionary:\endlink which maps the same value to multiple keys, the value will be mapped to whichever key mapped to that value is enumerated last. Depending on the specifics of the dictionary, this ordering may be arbitrary. + + Implementations of bidirectional dictionaries (aka "maps") in other languages include the following: + + - BiMap / BidiMap (Java) + - Boost.Bimap / bimap (C++) + - BiDirHashtable (C#) + */ +@interface CHBidirectionalDictionary : CHMutableDictionary { + CFMutableDictionaryRef objectsToKeys; // Used for reverse mapping. + CHBidirectionalDictionary* inverse; // Pointer to inverse dictionary. +} + +#pragma mark Querying Contents +/** @name Querying Contents */ +// @{ + +/** + Returns the key associated with a given value. + + @param anObject The value for which to return the corresponding key. + @return The key associated with @a value, or @c nil if no such key exists. + + @see \link NSDictionary#allKeys -allKeys\endlink + @see \link NSDictionary#objectForKey: -objectForKey:\endlink + @see removeKeyForObject: + */ +- (id) keyForObject:(id)anObject; + +/** + Returns the inverse view of the receiver, which maps each value to its associated key. The receiver and its inverse are backed by the same data; any changes to one will appear in the other. A reference to the inverse (if one exists) is stored internally, and vice versa, so the two instances are linked. If one is released, it will cut its ties to and from the other. + + @return The inverse view of the receiver, + + @attention There is no guaranteed correspondence between the order in which keys are enumerated for a dictionary and its inverse. + */ +- (CHBidirectionalDictionary*) inverseDictionary; + +// @} +#pragma mark Modifying Contents +/** @name Modifying Contents */ +// @{ + +/** + Adds the entries from another dictionary to the receiver. Keys and values are copied as described in #setObject:forKey: below. If a key or value already exists in the receiver, the existing key-value mapping is replaced. + + @param otherDictionary The dictionary from which to add entries. All its keys @b and values must conform to the NSCopying protocol. + + @attention If @a otherDictionary maps the same value to multiple keys, the value can only appear once in the receiver, and will be mapped to the key that is enumerated @b last, which may be arbitrary. However, if @a otherDictionary is also a CHBidirectionalDictionary, the results will always be deterministic. + + @see \link NSDictionary#initWithDictionary: -initWithDictionary:\endlink + @see setObject:forKey: + */ +- (void) addEntriesFromDictionary:(NSDictionary*)otherDictionary; + +/** + Removes the key for a given value (and its inverse key-value mapping) from the receiver. Does nothing if the specified value doesn't exist. + + @param anObject The value to remove. + + @throw NSInvalidArgumentException if @a anObject is @c nil. + + @see keyForObject: + @see removeObjectForKey: + */ +- (void) removeKeyForObject:(id)anObject; + +/** + Removes the value for a given key (and its inverse value-key mapping) from the receiver. Does nothing if the specified key doesn't exist. + + @param aKey The key to remove. + + @throw NSInvalidArgumentException if @a aKey is @c nil. + + @see \link NSDictionary#objectForKey: -objectForKey:\endlink + @see removeKeyForObject: + */ +- (void) removeObjectForKey:(id)aKey; + +/** + Adds a given key-value pair to the receiver, replacing any existing pair with the given key or value. + + @param anObject The value for @a aKey. The object is copied, so it @b must conform to the NSCopying protocol or a crash will result. + @param aKey The key for @a anObject. The key is copied, so it @b must conform to the NSCopying protocol or a crash will result. + + @throw NSInvalidArgumentException if @a aKey or @a anObject is @c nil. If you need to represent a nil value in the dictionary, use NSNull. + + @attention If @a aKey already exists in the receiver, the value previously associated with it is replaced by @a anObject, just as expected. However, if @a anObject already exists in the reciever with a different key, that mapping is removed to ensure that @a anObject only occurs once in the inverse dictionary. To check whether this will occur, call #keyForObject: first. + + @b Example: + @code + id dict = [[CHBidirectionalDictionary alloc] init]; + [dict setObject:@"B" forKey:@"A"]; // now contains A -> B + [dict setObject:@"C" forKey:@"A"]; // now contains A -> C + [dict setObject:@"C" forKey:@"B"]; // now contains B -> C + // Values must be unique just like keys, so A -> C is removed + [dict setObject:@"D" forKey:@"A"]; // now contains B -> C, A -> D + @endcode + + @see keyForObject: + @see \link NSDictionary#objectForKey: -objectForKey:\endlink + */ +- (void) setObject:(id)anObject forKey:(id)aKey; + +// @} +@end diff --git a/FScriptFramework/CHBidirectionalDictionary.m b/FScriptFramework/CHBidirectionalDictionary.m new file mode 100644 index 0000000..eea7d4e --- /dev/null +++ b/FScriptFramework/CHBidirectionalDictionary.m @@ -0,0 +1,94 @@ +/* + CHDataStructures.framework -- CHBidirectionalDictionary.m + + Copyright (c) 2010, Quinn Taylor + + This source code is released under the ISC License. + + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. + + The software is provided "as is", without warranty of any kind, including all implied warranties of merchantability and fitness. 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. + */ + +#import "CHBidirectionalDictionary.h" + +@implementation CHBidirectionalDictionary + +// This macro is used as an alias for the 'dictionary' ivar in the parent class. +#define keysToObjects dictionary + +- (void) dealloc { + if (inverse != nil) + inverse->inverse = nil; // Unlink from inverse dictionary if one exists. + CFRelease(objectsToKeys); // The dictionary can never be null at this point. + [super dealloc]; +} + +- (id) initWithCapacity:(NSUInteger)numItems { + if ((self = [super initWithCapacity:numItems]) == nil) return nil; + createCollectableCFMutableDictionary(&objectsToKeys, numItems); + return self; +} + +#pragma mark Querying Contents + +/** @todo Determine the proper ownership/lifetime of the inverse dictionary. */ +- (CHBidirectionalDictionary*) inverseDictionary { + if (inverse == nil) { + // Create a new instance of this class to represent the inverse mapping + inverse = [[CHBidirectionalDictionary alloc] init]; + // Release the CFMutableDictionary -init creates so we don't leak memory + if (kCHGarbageCollectionNotEnabled) + CFRelease(inverse->dictionary); + // Set its dictionary references to the reverse of what they are here + // (NOTE: CFMakeCollectable() works under GC, and is a no-op otherwise.) + CFMakeCollectable(CFRetain(inverse->keysToObjects = objectsToKeys)); + CFMakeCollectable(CFRetain(inverse->objectsToKeys = keysToObjects)); + // Set this instance as the mutual inverse of the newly-created instance + inverse->inverse = self; + } + return inverse; +} + +- (id) keyForObject:(id)anObject { + return (id)CFDictionaryGetValue(objectsToKeys, anObject); +} + +- (NSEnumerator*) objectEnumerator { + return [(id)objectsToKeys keyEnumerator]; +} + +#pragma mark Modifying Contents + +- (void) addEntriesFromDictionary:(NSDictionary*)otherDictionary { + [super addEntriesFromDictionary:otherDictionary]; +} + +- (void) removeAllObjects { + [super removeAllObjects]; + CFDictionaryRemoveAllValues(objectsToKeys); +} + +- (void) removeKeyForObject:(id)anObject { + [super removeObjectForKey:[self keyForObject:anObject]]; + CFDictionaryRemoveValue(objectsToKeys, anObject); +} + +- (void) removeObjectForKey:(id)aKey { + CFDictionaryRemoveValue(objectsToKeys, [self objectForKey:aKey]); + [super removeObjectForKey:aKey]; +} + +- (void) setObject:(id)anObject forKey:(id)aKey { + if (anObject == nil || aKey == nil) + CHNilArgumentException([self class], _cmd); + // Remove existing mappings for aKey and anObject if they currently exist. + CFDictionaryRemoveValue(keysToObjects, CFDictionaryGetValue(objectsToKeys, anObject)); + CFDictionaryRemoveValue(objectsToKeys, CFDictionaryGetValue(keysToObjects, aKey)); + aKey = [[aKey copy] autorelease]; + anObject = [[anObject copy] autorelease]; + CFDictionarySetValue(keysToObjects, aKey, anObject); // May replace key-value pair + CFDictionarySetValue(objectsToKeys, anObject, aKey); // May replace value-key pair +} + +@end diff --git a/FScriptFramework/CHMutableDictionary.h b/FScriptFramework/CHMutableDictionary.h new file mode 100644 index 0000000..4166c82 --- /dev/null +++ b/FScriptFramework/CHMutableDictionary.h @@ -0,0 +1,45 @@ +/* + CHDataStructures.framework -- CHMutableDictionary.h + + Copyright (c) 2009-2010, Quinn Taylor + + This source code is released under the ISC License. + + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. + + The software is provided "as is", without warranty of any kind, including all implied warranties of merchantability and fitness. 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. + */ + +#import "Util.h" + +HIDDEN void createCollectableCFMutableDictionary(CFMutableDictionaryRef* dictionary, NSUInteger initialCapacity); + +/** + @file CHMutableDictionary.h + + A mutable dictionary class. + */ + +/** + A mutable dictionary class. + + A CFMutableDictionaryRef is used internally to store the key-value pairs. Subclasses may choose to add other instance variables to enable a specific ordering of keys, override methods to modify behavior, and add methods to extend existing behaviors. However, all subclasses should behave like a standard Cocoa dictionary as much as possible, and document clearly when they do not. + + @note Any method inherited from NSDictionary or NSMutableDictionary is supported by this class and its children. Please see the documentation for those classes for details. + + @todo Implement @c -copy and @c -mutableCopy differently (so users can actually obtain an immutable copy) and make mutation methods aware of immutability? + */ +@interface CHMutableDictionary : NSMutableDictionary { + CFMutableDictionaryRef dictionary; // A Core Foundation dictionary. +} + +- (id) initWithCapacity:(NSUInteger)numItems; + +- (NSUInteger) count; +- (NSEnumerator*) keyEnumerator; +- (id) objectForKey:(id)aKey; +- (void) removeAllObjects; +- (void) removeObjectForKey:(id)aKey; +- (void) setObject:(id)anObject forKey:(id)aKey; + +@end diff --git a/FScriptFramework/CHMutableDictionary.m b/FScriptFramework/CHMutableDictionary.m new file mode 100644 index 0000000..c9716a9 --- /dev/null +++ b/FScriptFramework/CHMutableDictionary.m @@ -0,0 +1,172 @@ +/* + CHDataStructures.framework -- CHMutableDictionary.m + + Copyright (c) 2009-2010, Quinn Taylor + + This source code is released under the ISC License. + + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. + + The software is provided "as is", without warranty of any kind, including all implied warranties of merchantability and fitness. 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. + */ + +#import "CHMutableDictionary.h" + +#pragma mark CFDictionary callbacks + +const void* CHDictionaryRetain(CFAllocatorRef allocator, const void *value) { + return [(id)value retain]; +} + +void CHDictionaryRelease(CFAllocatorRef allocator, const void *value) { + [(id)value release]; +} + +CFStringRef CHDictionaryDescription(const void *value) CF_RETURNS_RETAINED; +CFStringRef CHDictionaryDescription(const void *value) { + return CFRetain([(id)value description]); +} + +Boolean CHDictionaryEqual(const void *value1, const void *value2) { + return [(id)value1 isEqual:(id)value2]; +} + +CFHashCode CHDictionaryHash(const void *value) { + return (CFHashCode)[(id)value hash]; +} + +static const CFDictionaryKeyCallBacks kCHDictionaryKeyCallBacks = { + 0, // default version + CHDictionaryRetain, + CHDictionaryRelease, + CHDictionaryDescription, + CHDictionaryEqual, + CHDictionaryHash +}; + +static const CFDictionaryValueCallBacks kCHDictionaryValueCallBacks = { + 0, // default version + CHDictionaryRetain, + CHDictionaryRelease, + CHDictionaryDescription, + CHDictionaryEqual +}; + +HIDDEN void createCollectableCFMutableDictionary(CFMutableDictionaryRef* dictionary, NSUInteger initialCapacity) +{ + // Create a CFMutableDictionaryRef with callback functions as defined above. + *dictionary = CFDictionaryCreateMutable(kCFAllocatorDefault, + initialCapacity, + &kCHDictionaryKeyCallBacks, + &kCHDictionaryValueCallBacks); + // Hand the reference off to GC if it's enabled, perform a no-op otherwise. + CFMakeCollectable(*dictionary); +} + +#pragma mark - + +@implementation CHMutableDictionary + +- (void) dealloc { + CFRelease(dictionary); // The dictionary will never be null at this point. + [super dealloc]; +} + +// Note: Defined here since -init is not implemented in NS(Mutable)Dictionary. +- (id) init { + return [self initWithCapacity:0]; // The 0 means we provide no capacity hint +} + +// Note: This is the designated initializer for NSMutableDictionary and this class. +// Subclasses may override this as necessary, but must call back here first. +- (id) initWithCapacity:(NSUInteger)numItems { + if ((self = [super init]) == nil) return nil; + createCollectableCFMutableDictionary(&dictionary, numItems); + return self; +} + +#pragma mark + +// Overridden from NSMutableDictionary to encode/decode as the proper class. +- (Class) classForKeyedArchiver { + return [self class]; +} + +- (id) initWithCoder:(NSCoder*)decoder { + return [self initWithDictionary:[decoder decodeObjectForKey:@"dictionary"]]; +} + +- (void) encodeWithCoder:(NSCoder*)encoder { + [encoder encodeObject:(NSDictionary*)dictionary forKey:@"dictionary"]; +} + +#pragma mark + +- (id) copyWithZone:(NSZone*) zone { + // We could use -initWithDictionary: here, but it would just use more memory. + // (It marshals key-value pairs into two id* arrays, then inits from those.) + CHMutableDictionary *copy = [[[self class] allocWithZone:zone] init]; + [copy addEntriesFromDictionary:self]; + return copy; +} + +#pragma mark + +- (NSUInteger) countByEnumeratingWithState:(NSFastEnumerationState*)state + objects:(id*)stackbuf + count:(NSUInteger)len +{ + return [super countByEnumeratingWithState:state objects:stackbuf count:len]; +} + +#pragma mark Querying Contents + +- (NSUInteger) count { + return CFDictionaryGetCount(dictionary); +} + +- (NSString*) debugDescription { + CFStringRef description = CFCopyDescription(dictionary); + CFRelease([(id)description retain]); + return [(id)description autorelease]; +} + +- (NSEnumerator*) keyEnumerator { + return [(id)dictionary keyEnumerator]; +} + +- (NSEnumerator*) objectEnumerator { + return [(id)dictionary objectEnumerator]; +} + +- (id) objectForKey:(id)aKey { + return (id)CFDictionaryGetValue(dictionary, aKey); +} + +-(id)objectForKeyedSubscript:(id)key +{ + return [self objectForKey:key]; +} + +-(void)setObject:(id)obj forKeyedSubscript:(id)key +{ + [self setObject:obj forKey:key]; +} + +#pragma mark Modifying Contents + +- (void) removeAllObjects { + CFDictionaryRemoveAllValues(dictionary); +} + +- (void) removeObjectForKey:(id)aKey { + CFDictionaryRemoveValue(dictionary, aKey); +} + +- (void) setObject:(id)anObject forKey:(id)aKey { + if (anObject == nil || aKey == nil) + CHNilArgumentException([self class], _cmd); + CFDictionarySetValue(dictionary, [[aKey copy] autorelease], anObject); +} + +@end diff --git a/FScriptFramework/FSManagedObjectContextInspector.nib/designable.nib b/FScriptFramework/FSManagedObjectContextInspector.nib/designable.nib index 93ea165..4c95ab2 100644 --- a/FScriptFramework/FSManagedObjectContextInspector.nib/designable.nib +++ b/FScriptFramework/FSManagedObjectContextInspector.nib/designable.nib @@ -365,7 +365,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA textBackgroundColor - + 6 System labelColor @@ -608,7 +608,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 3100 - + 1 @@ -624,7 +624,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA {896, 395} - {{0, 0}, {1440, 878}} + {{0, 0}, {2560, 1417}} {854, 304} {10000000000000, 10000000000000} YES diff --git a/FScriptFramework/FSObjectBrowserViewObjectInfo.m b/FScriptFramework/FSObjectBrowserViewObjectInfo.m index a1b0a93..1d11aad 100644 --- a/FScriptFramework/FSObjectBrowserViewObjectInfo.m +++ b/FScriptFramework/FSObjectBrowserViewObjectInfo.m @@ -34,6 +34,8 @@ #import "FSCNReturn.h" #import "FSCNDictionary.h" #import "FSAssociation.h" +#import "CHBidirectionalDictionary.h" +#import "metamacros.h" @interface FSObjectBrowserViewObjectHelper : NSObject { @@ -121,39 +123,54 @@ - (void)processNSControl:(id)object; - (void)processNSWindow:(id)object; @end -static id objectFromAnimationBlockingMode(NSAnimationBlockingMode animationBlockingMode) -{ - switch (animationBlockingMode) - { - case NSAnimationBlocking: return [FSNamedNumber namedNumberWithDouble:animationBlockingMode name:@"NSAnimationBlocking"]; - case NSAnimationNonblocking: return [FSNamedNumber namedNumberWithDouble:animationBlockingMode name:@"NSAnimationNonblocking"]; - case NSAnimationNonblockingThreaded: return [FSNamedNumber namedNumberWithDouble:animationBlockingMode name:@"NSAnimationNonblockingThreaded"]; - default: return [FSNumber numberWithDouble:animationBlockingMode]; - } -} -static id objectFromAnimationCurve(NSAnimationCurve animationCurve) -{ - switch (animationCurve) - { - case NSAnimationEaseInOut: return [FSNamedNumber namedNumberWithDouble:animationCurve name:@"NSAnimationEaseInOut"]; - case NSAnimationEaseIn: return [FSNamedNumber namedNumberWithDouble:animationCurve name:@"NSAnimationEaseIn"]; - case NSAnimationEaseOut: return [FSNamedNumber namedNumberWithDouble:animationCurve name:@"NSAnimationEaseOut"]; - case NSAnimationLinear: return [FSNamedNumber namedNumberWithDouble:animationCurve name:@"NSAnimationLinear"]; - default: return [FSNumber numberWithDouble:animationCurve]; - } -} +#define _BIDICT(_idx, _enum) \ + @(_enum): @#_enum, + +#define BIDICT(_name, ...) \ +static inline CHBidirectionalDictionary *_name ## Bimap() { \ +static CHBidirectionalDictionary *dict = nil; \ +if (!dict) { \ + dict = [CHBidirectionalDictionary new]; \ + [dict addEntriesFromDictionary:@{ \ +metamacro_foreach(_BIDICT, ,__VA_ARGS__) \ + }]; \ +} \ +return dict; \ +} + +#define ENUMTOOBJ(_name, ...) \ +BIDICT(_name, __VA_ARGS__) \ +static id objectFrom ## _name(NS ## _name _name) \ +{ \ + CHBidirectionalDictionary *dict = _name ## Bimap(); \ + id lookup = dict[@(_name)]; \ + return lookup ? [FSNamedNumber namedNumberWithDouble:(double)_name name:lookup] : [FSNumber numberWithDouble:_name]; \ +} + + +ENUMTOOBJ(AnimationBlockingMode, + NSAnimationBlocking, + NSAnimationNonblocking, + NSAnimationNonblockingThreaded + ); + + + +ENUMTOOBJ(AnimationCurve, + NSAnimationEaseInOut, + NSAnimationEaseIn, + NSAnimationEaseOut, + NSAnimationLinear + ); + + +ENUMTOOBJ(AlertStyle, + NSWarningAlertStyle, + NSInformationalAlertStyle, + NSCriticalAlertStyle + ); -static id objectFromAlertStyle(NSAlertStyle alertStyle) -{ - switch (alertStyle) - { - case NSWarningAlertStyle: return [FSNamedNumber namedNumberWithDouble:alertStyle name:@"NSWarningAlertStyle"]; - case NSInformationalAlertStyle: return [FSNamedNumber namedNumberWithDouble:alertStyle name:@"NSInformationalAlertStyle"]; - case NSCriticalAlertStyle: return [FSNamedNumber namedNumberWithDouble:alertStyle name:@"NSCriticalAlertStyle"]; - default: return [FSNumber numberWithDouble:alertStyle]; - } -} static id objectFromAutoresizingMask(NSUInteger mask) { @@ -174,79 +191,60 @@ static id objectFromAutoresizingMask(NSUInteger mask) } } -static id objectFromAttributeType(NSAttributeType attributeType) -{ - switch (attributeType) - { - case NSUndefinedAttributeType: return [FSNamedNumber namedNumberWithDouble:attributeType name:@"NSUndefinedAttributeType"]; - case NSInteger16AttributeType: return [FSNamedNumber namedNumberWithDouble:attributeType name:@"NSInteger16AttributeType"]; - case NSInteger32AttributeType: return [FSNamedNumber namedNumberWithDouble:attributeType name:@"NSInteger32AttributeType"]; - case NSInteger64AttributeType: return [FSNamedNumber namedNumberWithDouble:attributeType name:@"NSInteger64AttributeType"]; - case NSDecimalAttributeType: return [FSNamedNumber namedNumberWithDouble:attributeType name:@"NSDecimalAttributeType"]; - case NSDoubleAttributeType: return [FSNamedNumber namedNumberWithDouble:attributeType name:@"NSDoubleAttributeType"]; - case NSFloatAttributeType: return [FSNamedNumber namedNumberWithDouble:attributeType name:@"NSFloatAttributeType"]; - case NSStringAttributeType: return [FSNamedNumber namedNumberWithDouble:attributeType name:@"NSStringAttributeType"]; - case NSBooleanAttributeType: return [FSNamedNumber namedNumberWithDouble:attributeType name:@"NSBooleanAttributeType"]; - case NSDateAttributeType: return [FSNamedNumber namedNumberWithDouble:attributeType name:@"NSDateAttributeType"]; - case NSBinaryDataAttributeType: return [FSNamedNumber namedNumberWithDouble:attributeType name:@"NSBinaryDataAttributeType"]; - case NSTransformableAttributeType: return [FSNamedNumber namedNumberWithDouble:attributeType name:@"NSTransformableAttributeType"]; - default: return [FSNumber numberWithDouble:attributeType]; - } -} - -static id objectFromBackgroundStyle(NSBackgroundStyle backgroundStyle) -{ - switch (backgroundStyle) - { - case NSBackgroundStyleLight: return [FSNamedNumber namedNumberWithDouble:backgroundStyle name:@"NSBackgroundStyleLight"]; - case NSBackgroundStyleDark: return [FSNamedNumber namedNumberWithDouble:backgroundStyle name:@"NSBackgroundStyleDark"]; - case NSBackgroundStyleRaised: return [FSNamedNumber namedNumberWithDouble:backgroundStyle name:@"NSBackgroundStyleRaised"]; - case NSBackgroundStyleLowered: return [FSNamedNumber namedNumberWithDouble:backgroundStyle name:@"NSBackgroundStyleLowered"]; - default: return [FSNumber numberWithDouble:backgroundStyle]; - } -} +ENUMTOOBJ(AttributeType, + NSUndefinedAttributeType, + NSInteger16AttributeType, + NSInteger32AttributeType, + NSInteger64AttributeType, + NSDecimalAttributeType, + NSDoubleAttributeType, + NSFloatAttributeType, + NSStringAttributeType, + NSBooleanAttributeType, + NSDateAttributeType, + NSBinaryDataAttributeType, + NSTransformableAttributeType + ); + + +ENUMTOOBJ(BackgroundStyle, + NSBackgroundStyleLight, + NSBackgroundStyleDark, + NSBackgroundStyleRaised, + NSBackgroundStyleLowered + ); + + + +ENUMTOOBJ(BackingStoreType, + NSBackingStoreBuffered, + NSBackingStoreRetained, + NSBackingStoreNonretained + ); + + +ENUMTOOBJ(BorderType, + NSNoBorder, + NSLineBorder, + NSBezelBorder, + NSGrooveBorder + ); + +ENUMTOOBJ(BezelStyle, + NSRoundedBezelStyle, + NSRegularSquareBezelStyle, + NSThickSquareBezelStyle, + NSThickerSquareBezelStyle, + NSDisclosureBezelStyle, + NSShadowlessSquareBezelStyle, + NSCircularBezelStyle, + NSTexturedSquareBezelStyle, + NSHelpButtonBezelStyle, + NSSmallSquareBezelStyle, + NSTexturedRoundedBezelStyle + ); -static id objectFromBackingStoreType(NSBackingStoreType backingStoreType) -{ - switch (backingStoreType) - { - case NSBackingStoreBuffered: return [FSNamedNumber namedNumberWithDouble:backingStoreType name:@"NSBackingStoreBuffered"]; - case NSBackingStoreRetained: return [FSNamedNumber namedNumberWithDouble:backingStoreType name:@"NSBackingStoreRetained"]; - case NSBackingStoreNonretained: return [FSNamedNumber namedNumberWithDouble:backingStoreType name:@"NSBackingStoreNonretained"]; - default: return [FSNumber numberWithDouble:backingStoreType]; - } -} - -static id objectFromBorderType(NSBorderType borderType) -{ - switch (borderType) - { - case NSNoBorder: return [FSNamedNumber namedNumberWithDouble:borderType name:@"NSNoBorder"]; - case NSLineBorder: return [FSNamedNumber namedNumberWithDouble:borderType name:@"NSLineBorder"]; - case NSBezelBorder: return [FSNamedNumber namedNumberWithDouble:borderType name:@"NSBezelBorder"]; - case NSGrooveBorder: return [FSNamedNumber namedNumberWithDouble:borderType name:@"NSGrooveBorder"]; - default: return [FSNumber numberWithDouble:borderType]; - } -} -static id objectFromBezelStyle(NSBezelStyle bezelStyle) -{ - switch (bezelStyle) - { - case NSRoundedBezelStyle: return [FSNamedNumber namedNumberWithDouble:bezelStyle name:@"NSRoundedBezelStyle"]; - case NSRegularSquareBezelStyle: return [FSNamedNumber namedNumberWithDouble:bezelStyle name:@"NSRegularSquareBezelStyle"]; - case NSThickSquareBezelStyle: return [FSNamedNumber namedNumberWithDouble:bezelStyle name:@"NSThickSquareBezelStyle"]; - case NSThickerSquareBezelStyle: return [FSNamedNumber namedNumberWithDouble:bezelStyle name:@"NSThickerSquareBezelStyle"]; - case NSDisclosureBezelStyle: return [FSNamedNumber namedNumberWithDouble:bezelStyle name:@"NSDisclosureBezelStyle"]; - case NSShadowlessSquareBezelStyle: return [FSNamedNumber namedNumberWithDouble:bezelStyle name:@"NSShadowlessSquareBezelStyle"]; - case NSCircularBezelStyle: return [FSNamedNumber namedNumberWithDouble:bezelStyle name:@"NSCircularBezelStyle"]; - case NSTexturedSquareBezelStyle: return [FSNamedNumber namedNumberWithDouble:bezelStyle name:@"NSTexturedSquareBezelStyle"]; - case NSHelpButtonBezelStyle: return [FSNamedNumber namedNumberWithDouble:bezelStyle name:@"NSHelpButtonBezelStyle"]; - case NSSmallSquareBezelStyle: return [FSNamedNumber namedNumberWithDouble:bezelStyle name:@"NSSmallSquareBezelStyle"]; - case NSTexturedRoundedBezelStyle: return [FSNamedNumber namedNumberWithDouble:bezelStyle name:@"NSTexturedRoundedBezelStyle"]; - default: return [FSNumber numberWithDouble:bezelStyle]; - } -} static id objectFromBitmapFormat(NSBitmapFormat mask) { @@ -262,18 +260,15 @@ static id objectFromBitmapFormat(NSBitmapFormat mask) } } -static id objectFromBoxType(NSBoxType boxType) -{ - switch (boxType) - { - case NSBoxPrimary: return [FSNamedNumber namedNumberWithDouble:boxType name:@"NSBoxPrimary"]; - case NSBoxSecondary: return [FSNamedNumber namedNumberWithDouble:boxType name:@"NSBoxSecondary"]; - case NSBoxSeparator: return [FSNamedNumber namedNumberWithDouble:boxType name:@"NSBoxSeparator"]; - case NSBoxOldStyle: return [FSNamedNumber namedNumberWithDouble:boxType name:@"NSBoxOldStyle"]; - case NSBoxCustom: return [FSNamedNumber namedNumberWithDouble:boxType name:@"NSBoxCustom"]; - default: return [FSNumber numberWithDouble:boxType]; - } -} +ENUMTOOBJ(BoxType, + NSBoxPrimary, + NSBoxSecondary, + NSBoxSeparator, + NSBoxOldStyle, + NSBoxCustom + ); + + static id objectFromButtonMask(NSUInteger mask) { @@ -289,16 +284,13 @@ static id objectFromButtonMask(NSUInteger mask) } } -static id objectFromBrowserColumnResizingType(NSBrowserColumnResizingType browserColumnResizingType) -{ - switch (browserColumnResizingType) - { - case NSBrowserNoColumnResizing: return [FSNamedNumber namedNumberWithDouble:browserColumnResizingType name:@"NSBrowserNoColumnResizing"]; - case NSBrowserAutoColumnResizing: return [FSNamedNumber namedNumberWithDouble:browserColumnResizingType name:@"NSBrowserAutoColumnResizing"]; - case NSBrowserUserColumnResizing: return [FSNamedNumber namedNumberWithDouble:browserColumnResizingType name:@"NSBrowserUserColumnResizing"]; - default: return [FSNumber numberWithDouble:browserColumnResizingType]; - } -} + +ENUMTOOBJ(BrowserColumnResizingType, + NSBrowserNoColumnResizing, + NSBrowserAutoColumnResizing, + NSBrowserUserColumnResizing + ); + /*static id objectFromButtonType(NSButtonType buttonType) { @@ -316,20 +308,16 @@ static id objectFromBrowserColumnResizingType(NSBrowserColumnResizingType browse } }*/ -static id objectFromCellImagePosition(NSInteger cellImagePosition) -{ - switch (cellImagePosition) - { - case NSNoImage: return [FSNamedNumber namedNumberWithDouble:cellImagePosition name:@"NSNoImage"]; - case NSImageOnly: return [FSNamedNumber namedNumberWithDouble:cellImagePosition name:@"NSImageOnly"]; - case NSImageLeft: return [FSNamedNumber namedNumberWithDouble:cellImagePosition name:@"NSImageLeft"]; - case NSImageRight: return [FSNamedNumber namedNumberWithDouble:cellImagePosition name:@"NSImageRight"]; - case NSImageBelow: return [FSNamedNumber namedNumberWithDouble:cellImagePosition name:@"NSImageBelow"]; - case NSImageAbove: return [FSNamedNumber namedNumberWithDouble:cellImagePosition name:@"NSImageAbove"]; - case NSImageOverlaps: return [FSNamedNumber namedNumberWithDouble:cellImagePosition name:@"NSImageOverlaps"]; - default: return [FSNumber numberWithDouble:cellImagePosition]; - } -} +ENUMTOOBJ(CellImagePosition, + NSNoImage, + NSImageOnly, + NSImageLeft, + NSImageRight, + NSImageBelow, + NSImageAbove, + NSImageOverlaps + ); + static id objectFromCellMask(NSUInteger mask) { @@ -346,70 +334,50 @@ static id objectFromCellMask(NSUInteger mask) } } -static id objectFromCellStateValue(NSCellStateValue cellStateValue) -{ - switch (cellStateValue) - { - case NSMixedState: return [FSNamedNumber namedNumberWithDouble:cellStateValue name:@"NSMixedState"]; - case NSOffState: return [FSNamedNumber namedNumberWithDouble:cellStateValue name:@"NSOffState"]; - case NSOnState: return [FSNamedNumber namedNumberWithDouble:cellStateValue name:@"NSOnState"]; - default: return [FSNumber numberWithDouble:cellStateValue]; - } -} +ENUMTOOBJ(CellStateValue, + NSMixedState, + NSOffState, + NSOnState + ); -static id objectFromCellType(NSCellType cellType) -{ - switch (cellType) - { - case NSNullCellType: return [FSNamedNumber namedNumberWithDouble:cellType name:@"NSNullCellType"]; - case NSTextCellType: return [FSNamedNumber namedNumberWithDouble:cellType name:@"NSTextCellType"]; - case NSImageCellType: return [FSNamedNumber namedNumberWithDouble:cellType name:@"NSImageCellType"]; - default: return [FSNumber numberWithDouble:cellType]; - } -} -static id objectFromCharacterCollection(NSCharacterCollection characterCollection) -{ - switch (characterCollection) - { - case NSIdentityMappingCharacterCollection: return [FSNamedNumber namedNumberWithDouble:characterCollection name:@"NSIdentityMappingCharacterCollection"]; - case NSAdobeCNS1CharacterCollection: return [FSNamedNumber namedNumberWithDouble:characterCollection name:@"NSAdobeCNS1CharacterCollection"]; - case NSAdobeGB1CharacterCollection: return [FSNamedNumber namedNumberWithDouble:characterCollection name:@"NSAdobeGB1CharacterCollection"]; - case NSAdobeJapan1CharacterCollection: return [FSNamedNumber namedNumberWithDouble:characterCollection name:@"NSAdobeJapan1CharacterCollection"]; - case NSAdobeJapan2CharacterCollection: return [FSNamedNumber namedNumberWithDouble:characterCollection name:@"NSAdobeJapan2CharacterCollection"]; - case NSAdobeKorea1CharacterCollection: return [FSNamedNumber namedNumberWithDouble:characterCollection name:@"NSAdobeKorea1CharacterCollection"]; - default: return [FSNumber numberWithDouble:characterCollection]; - } -} +ENUMTOOBJ(CellType, + NSNullCellType, + NSTextCellType, + NSImageCellType + ); -static id objectFromColorPanelMode(NSInteger colorPanelMode) -{ - switch (colorPanelMode) - { - case NSGrayModeColorPanel: return [FSNamedNumber namedNumberWithDouble:colorPanelMode name:@"NSGrayModeColorPanel"]; - case NSRGBModeColorPanel: return [FSNamedNumber namedNumberWithDouble:colorPanelMode name:@"NSRGBModeColorPanel"]; - case NSCMYKModeColorPanel: return [FSNamedNumber namedNumberWithDouble:colorPanelMode name:@"NSCMYKModeColorPanel"]; - case NSHSBModeColorPanel: return [FSNamedNumber namedNumberWithDouble:colorPanelMode name:@"NSHSBModeColorPanel"]; - case NSCustomPaletteModeColorPanel: return [FSNamedNumber namedNumberWithDouble:colorPanelMode name:@"NSCustomPaletteModeColorPanel"]; - case NSColorListModeColorPanel: return [FSNamedNumber namedNumberWithDouble:colorPanelMode name:@"NSColorListModeColorPanel"]; - case NSWheelModeColorPanel: return [FSNamedNumber namedNumberWithDouble:colorPanelMode name:@"NSWheelModeColorPanel"]; - case NSCrayonModeColorPanel: return [FSNamedNumber namedNumberWithDouble:colorPanelMode name:@"NSCrayonModeColorPanel"]; - default: return [FSNumber numberWithDouble:colorPanelMode]; - } -} -static id objectFromColorRenderingIntent(NSColorRenderingIntent colorRenderingIntent) -{ - switch (colorRenderingIntent) - { - case NSColorRenderingIntentDefault: return [FSNamedNumber namedNumberWithDouble:colorRenderingIntent name:@"NSColorRenderingIntentDefault"]; - case NSColorRenderingIntentAbsoluteColorimetric: return [FSNamedNumber namedNumberWithDouble:colorRenderingIntent name:@"NSColorRenderingIntentAbsoluteColorimetric"]; - case NSColorRenderingIntentRelativeColorimetric: return [FSNamedNumber namedNumberWithDouble:colorRenderingIntent name:@"NSColorRenderingIntentRelativeColorimetric"]; - case NSColorRenderingIntentPerceptual: return [FSNamedNumber namedNumberWithDouble:colorRenderingIntent name:@"NSColorRenderingIntentPerceptual"]; - case NSColorRenderingIntentSaturation: return [FSNamedNumber namedNumberWithDouble:colorRenderingIntent name:@"NSColorRenderingIntentSaturation"]; - default: return [FSNumber numberWithDouble:colorRenderingIntent]; - } -} +ENUMTOOBJ(CharacterCollection, + NSIdentityMappingCharacterCollection, + NSAdobeCNS1CharacterCollection, + NSAdobeGB1CharacterCollection, + NSAdobeJapan1CharacterCollection, + NSAdobeJapan2CharacterCollection, + NSAdobeKorea1CharacterCollection + ); + + +ENUMTOOBJ(ColorPanelMode, + NSGrayModeColorPanel, + NSRGBModeColorPanel, + NSCMYKModeColorPanel, + NSHSBModeColorPanel, + NSCustomPaletteModeColorPanel, + NSColorListModeColorPanel, + NSWheelModeColorPanel, + NSCrayonModeColorPanel + ); + + +ENUMTOOBJ(ColorRenderingIntent, + NSColorRenderingIntentDefault, + NSColorRenderingIntentAbsoluteColorimetric, + NSColorRenderingIntentRelativeColorimetric, + NSColorRenderingIntentPerceptual, + NSColorRenderingIntentSaturation + ); + static id objectFromComparisonPredicateOptions(NSUInteger mask) { @@ -423,72 +391,53 @@ static id objectFromComparisonPredicateOptions(NSUInteger mask) } } -static id objectFromComparisonPredicateModifier(NSComparisonPredicateModifier comparisonPredicateModifier) -{ - switch (comparisonPredicateModifier) - { - case NSDirectPredicateModifier: return [FSNamedNumber namedNumberWithDouble:comparisonPredicateModifier name:@"NSDirectPredicateModifier"]; - case NSAllPredicateModifier: return [FSNamedNumber namedNumberWithDouble:comparisonPredicateModifier name:@"NSAllPredicateModifier"]; - case NSAnyPredicateModifier: return [FSNamedNumber namedNumberWithDouble:comparisonPredicateModifier name:@"NSAnyPredicateModifier"]; - default: return [FSNumber numberWithDouble:comparisonPredicateModifier]; - } -} +ENUMTOOBJ(ComparisonPredicateModifier, + NSDirectPredicateModifier, + NSAllPredicateModifier, + NSAnyPredicateModifier + ); -static id objectFromCompositingOperation(NSCompositingOperation compositingOperation) -{ - switch (compositingOperation) - { - case NSCompositeClear: return [FSNamedNumber namedNumberWithDouble:compositingOperation name:@"NSCompositeClear"]; - case NSCompositeCopy: return [FSNamedNumber namedNumberWithDouble:compositingOperation name:@"NSCompositeCopy"]; - case NSCompositeSourceOver: return [FSNamedNumber namedNumberWithDouble:compositingOperation name:@"NSCompositeSourceOver"]; - case NSCompositeSourceIn: return [FSNamedNumber namedNumberWithDouble:compositingOperation name:@"NSCompositeSourceIn"]; - case NSCompositeSourceOut: return [FSNamedNumber namedNumberWithDouble:compositingOperation name:@"NSCompositeSourceOut"]; - case NSCompositeSourceAtop: return [FSNamedNumber namedNumberWithDouble:compositingOperation name:@"NSCompositeSourceAtop"]; - case NSCompositeDestinationOver: return [FSNamedNumber namedNumberWithDouble:compositingOperation name:@"NSCompositeDestinationOver"]; - case NSCompositeDestinationIn: return [FSNamedNumber namedNumberWithDouble:compositingOperation name:@"NSCompositeDestinationIn"]; - case NSCompositeDestinationOut: return [FSNamedNumber namedNumberWithDouble:compositingOperation name:@"NSCompositeDestinationOut"]; - case NSCompositeDestinationAtop: return [FSNamedNumber namedNumberWithDouble:compositingOperation name:@"NSCompositeDestinationAtop"]; - case NSCompositeXOR: return [FSNamedNumber namedNumberWithDouble:compositingOperation name:@"NSCompositeXOR"]; - case NSCompositePlusDarker: return [FSNamedNumber namedNumberWithDouble:compositingOperation name:@"NSCompositePlusDarker"]; - case NSCompositeHighlight: return [FSNamedNumber namedNumberWithDouble:compositingOperation name:@"NSCompositeHighlight"]; - case NSCompositePlusLighter: return [FSNamedNumber namedNumberWithDouble:compositingOperation name:@"NSCompositePlusLighter"]; - default: return [FSNumber numberWithDouble:compositingOperation]; - } -} -static id objectFromCompoundPredicateType(NSCompoundPredicateType compoundPredicateType) -{ - switch (compoundPredicateType) - { - case NSNotPredicateType: return [FSNamedNumber namedNumberWithDouble:compoundPredicateType name:@"NSNotPredicateType"]; - case NSAndPredicateType: return [FSNamedNumber namedNumberWithDouble:compoundPredicateType name:@"NSAndPredicateType"]; - case NSOrPredicateType: return [FSNamedNumber namedNumberWithDouble:compoundPredicateType name:@"NSOrPredicateType"]; - default: return [FSNumber numberWithDouble:compoundPredicateType]; - } -} +ENUMTOOBJ(CompositingOperation, + NSCompositeClear, + NSCompositeCopy, + NSCompositeSourceOver, + NSCompositeSourceIn, + NSCompositeSourceOut, + NSCompositeSourceAtop, + NSCompositeDestinationOver, + NSCompositeDestinationIn, + NSCompositeDestinationOut, + NSCompositeDestinationAtop, + NSCompositeXOR, + NSCompositePlusDarker, + NSCompositeHighlight, + NSCompositePlusLighter + ); -static id objectFromControlSize(NSControlSize controlSize) -{ - switch (controlSize) - { - case NSRegularControlSize: return [FSNamedNumber namedNumberWithDouble:controlSize name:@"NSRegularControlSize"]; - case NSSmallControlSize: return [FSNamedNumber namedNumberWithDouble:controlSize name:@"NSSmallControlSize"]; - case NSMiniControlSize: return [FSNamedNumber namedNumberWithDouble:controlSize name:@"NSMiniControlSize"]; - default: return [FSNumber numberWithDouble:controlSize]; - } -} -static id objectFromControlTint(NSControlTint controlTint) -{ - switch (controlTint) - { - case NSDefaultControlTint: return [FSNamedNumber namedNumberWithDouble:controlTint name:@"NSDefaultControlTint"]; - case NSBlueControlTint: return [FSNamedNumber namedNumberWithDouble:controlTint name:@"NSBlueControlTint"]; - case NSGraphiteControlTint: return [FSNamedNumber namedNumberWithDouble:controlTint name:@"NSGraphiteControlTint"]; - case NSClearControlTint: return [FSNamedNumber namedNumberWithDouble:controlTint name:@"NSClearControlTint"]; - default: return [FSNumber numberWithDouble:controlTint]; - } -} + +ENUMTOOBJ(CompoundPredicateType, + NSNotPredicateType, + NSAndPredicateType, + NSOrPredicateType + ); + + +ENUMTOOBJ(ControlSize, + NSRegularControlSize, + NSSmallControlSize, + NSMiniControlSize + ); + + +ENUMTOOBJ(ControlTint, + NSDefaultControlTint, + NSBlueControlTint, + NSGraphiteControlTint, + NSClearControlTint + ); + static id objectFromDatePickerElementFlags(NSUInteger mask) { @@ -511,155 +460,113 @@ static id objectFromDatePickerElementFlags(NSUInteger mask) } } -static id objectFromDatePickerMode(NSDatePickerMode datePickerMode) -{ - switch (datePickerMode) - { - case NSSingleDateMode: return [FSNamedNumber namedNumberWithDouble:datePickerMode name:@"NSSingleDateMode"]; - case NSRangeDateMode: return [FSNamedNumber namedNumberWithDouble:datePickerMode name:@"NSRangeDateMode"]; - default: return [FSNumber numberWithDouble:datePickerMode]; - } -} - -static id objectFromDatePickerStyle(NSDatePickerStyle datePickerStyle) -{ - switch (datePickerStyle) - { - case NSTextFieldAndStepperDatePickerStyle: return [FSNamedNumber namedNumberWithDouble:datePickerStyle name:@"NSTextFieldAndStepperDatePickerStyle"]; - case NSClockAndCalendarDatePickerStyle: return [FSNamedNumber namedNumberWithDouble:datePickerStyle name:@"NSClockAndCalendarDatePickerStyle"]; - default: return [FSNumber numberWithDouble:datePickerStyle]; - } -} - -static id objectFromDeleteRule(NSDeleteRule deleteRule) -{ - switch (deleteRule) - { - case NSNoActionDeleteRule: return [FSNamedNumber namedNumberWithDouble:deleteRule name:@"NSNoActionDeleteRule"]; - case NSNullifyDeleteRule: return [FSNamedNumber namedNumberWithDouble:deleteRule name:@"NSNullifyDeleteRule"]; - case NSCascadeDeleteRule: return [FSNamedNumber namedNumberWithDouble:deleteRule name:@"NSCascadeDeleteRule"]; - case NSDenyDeleteRule: return [FSNamedNumber namedNumberWithDouble:deleteRule name:@"NSDenyDeleteRule"]; - default: return [FSNumber numberWithDouble:deleteRule]; - } -} - -static id objectFromDrawerState(NSDrawerState drawerState) -{ - switch (drawerState) - { - case NSDrawerClosedState: return [FSNamedNumber namedNumberWithDouble:drawerState name:@"NSDrawerClosedState"]; - case NSDrawerOpeningState: return [FSNamedNumber namedNumberWithDouble:drawerState name:@"NSDrawerOpeningState"]; - case NSDrawerOpenState: return [FSNamedNumber namedNumberWithDouble:drawerState name:@"NSDrawerOpenState"]; - case NSDrawerClosingState: return [FSNamedNumber namedNumberWithDouble:drawerState name:@"NSDrawerClosingState"]; - default: return [FSNumber numberWithDouble:drawerState]; - } -} - -static id objectFromEventType(NSEventType eventType) -{ - switch (eventType) - { - case NSLeftMouseDown: return [FSNamedNumber namedNumberWithDouble:eventType name:@"NSLeftMouseDown"]; - case NSLeftMouseUp: return [FSNamedNumber namedNumberWithDouble:eventType name:@"NSLeftMouseUp"]; - case NSRightMouseDown: return [FSNamedNumber namedNumberWithDouble:eventType name:@"NSRightMouseDown"]; - case NSRightMouseUp: return [FSNamedNumber namedNumberWithDouble:eventType name:@"NSRightMouseUp"]; - case NSOtherMouseDown: return [FSNamedNumber namedNumberWithDouble:eventType name:@"NSOtherMouseDown"]; - case NSOtherMouseUp: return [FSNamedNumber namedNumberWithDouble:eventType name:@"NSOtherMouseUp"]; - case NSMouseMoved: return [FSNamedNumber namedNumberWithDouble:eventType name:@"NSMouseMoved"]; - case NSLeftMouseDragged: return [FSNamedNumber namedNumberWithDouble:eventType name:@"NSLeftMouseDragged"]; - case NSRightMouseDragged: return [FSNamedNumber namedNumberWithDouble:eventType name:@"NSRightMouseDragged"]; - case NSOtherMouseDragged: return [FSNamedNumber namedNumberWithDouble:eventType name:@"NSOtherMouseDragged"]; - case NSMouseEntered: return [FSNamedNumber namedNumberWithDouble:eventType name:@"NSMouseEntered"]; - case NSMouseExited: return [FSNamedNumber namedNumberWithDouble:eventType name:@"NSMouseExited"]; - case NSCursorUpdate: return [FSNamedNumber namedNumberWithDouble:eventType name:@"NSCursorUpdate"]; - case NSKeyDown: return [FSNamedNumber namedNumberWithDouble:eventType name:@"NSKeyDown"]; - case NSKeyUp: return [FSNamedNumber namedNumberWithDouble:eventType name:@"NSKeyUp"]; - case NSFlagsChanged: return [FSNamedNumber namedNumberWithDouble:eventType name:@"NSFlagsChanged"]; - case NSAppKitDefined: return [FSNamedNumber namedNumberWithDouble:eventType name:@"NSAppKitDefined"]; - case NSSystemDefined: return [FSNamedNumber namedNumberWithDouble:eventType name:@"NSSystemDefined"]; - case NSApplicationDefined: return [FSNamedNumber namedNumberWithDouble:eventType name:@"NSApplicationDefined"]; - case NSPeriodic: return [FSNamedNumber namedNumberWithDouble:eventType name:@"NSPeriodic"]; - case NSScrollWheel: return [FSNamedNumber namedNumberWithDouble:eventType name:@"NSScrollWheel"]; - case NSTabletPoint: return [FSNamedNumber namedNumberWithDouble:eventType name:@"NSTabletPoint"]; - case NSTabletProximity: return [FSNamedNumber namedNumberWithDouble:eventType name:@"NSTabletProximity"]; - default: return [FSNumber numberWithDouble:eventType]; - } -} - -static id objectFromEventSubtype(short eventSubtype) -{ - switch (eventSubtype) - { - case NSMouseEventSubtype: return [FSNamedNumber namedNumberWithDouble:eventSubtype name:@"NSMouseEventSubtype"]; - case NSTabletPointEventSubtype: return [FSNamedNumber namedNumberWithDouble:eventSubtype name:@"NSTabletPointEventSubtype"]; - case NSTabletProximityEventSubtype: return [FSNamedNumber namedNumberWithDouble:eventSubtype name:@"NSTabletProximityEventSubtype"]; - default: return [FSNumber numberWithDouble:eventSubtype]; - } -} - -static id objectFromExpressionType(NSExpressionType expressionType) -{ - switch (expressionType) - { - case NSConstantValueExpressionType: return [FSNamedNumber namedNumberWithDouble:expressionType name:@"NSConstantValueExpressionType"]; - case NSEvaluatedObjectExpressionType: return [FSNamedNumber namedNumberWithDouble:expressionType name:@"NSEvaluatedObjectExpressionType"]; - case NSVariableExpressionType: return [FSNamedNumber namedNumberWithDouble:expressionType name:@"NSVariableExpressionType"]; - case NSKeyPathExpressionType: return [FSNamedNumber namedNumberWithDouble:expressionType name:@"NSKeyPathExpressionType"]; - case NSFunctionExpressionType: return [FSNamedNumber namedNumberWithDouble:expressionType name:@"NSFunctionExpressionType"]; - case NSUnionSetExpressionType: return [FSNamedNumber namedNumberWithDouble:expressionType name:@"NSUnionSetExpressionType"]; - case NSIntersectSetExpressionType: return [FSNamedNumber namedNumberWithDouble:expressionType name:@"NSIntersectSetExpressionType"]; - case NSMinusSetExpressionType: return [FSNamedNumber namedNumberWithDouble:expressionType name:@"NSMinusSetExpressionType"]; - case NSSubqueryExpressionType: return [FSNamedNumber namedNumberWithDouble:expressionType name:@"NSSubqueryExpressionType"]; - case NSAggregateExpressionType: return [FSNamedNumber namedNumberWithDouble:expressionType name:@"NSAggregateExpressionType"]; - default: return [FSNumber numberWithDouble:expressionType]; - } -} +ENUMTOOBJ(DatePickerMode, + NSSingleDateMode, + NSRangeDateMode + ); + + +ENUMTOOBJ(DatePickerStyle, + NSTextFieldAndStepperDatePickerStyle, + NSClockAndCalendarDatePickerStyle + ); + + +ENUMTOOBJ(DeleteRule, + NSNoActionDeleteRule, + NSNullifyDeleteRule, + NSCascadeDeleteRule, + NSDenyDeleteRule + ); + + +ENUMTOOBJ(DrawerState, + NSDrawerClosedState, + NSDrawerOpeningState, + NSDrawerOpenState, + NSDrawerClosingState + ); + + + +ENUMTOOBJ(EventType, + NSLeftMouseDown, + NSLeftMouseUp, + NSRightMouseDown, + NSRightMouseUp, + NSOtherMouseDown, + NSOtherMouseUp, + NSMouseMoved, + NSLeftMouseDragged, + NSRightMouseDragged, + NSOtherMouseDragged, + NSMouseEntered, + NSMouseExited, + NSCursorUpdate, + NSKeyDown, + NSKeyUp, + NSFlagsChanged, + NSAppKitDefined, + NSSystemDefined, + NSApplicationDefined, + NSPeriodic, + NSScrollWheel, + NSTabletPoint, + NSTabletProximity + ); + + +ENUMTOOBJ(EventSubtype, + NSMouseEventSubtype, + NSTabletPointEventSubtype, + NSTabletProximityEventSubtype + ); + + +ENUMTOOBJ(ExpressionType, + NSConstantValueExpressionType, + NSEvaluatedObjectExpressionType, + NSVariableExpressionType, + NSKeyPathExpressionType, + NSFunctionExpressionType, + NSUnionSetExpressionType, + NSIntersectSetExpressionType, + NSMinusSetExpressionType, + NSSubqueryExpressionType, + NSAggregateExpressionType + ); + + + +ENUMTOOBJ(FetchRequestResultType, + NSManagedObjectResultType, + NSManagedObjectIDResultType + ); + + +ENUMTOOBJ(FocusRingType, + NSFocusRingTypeDefault, + NSFocusRingTypeNone, + NSFocusRingTypeExterior + ); + + +ENUMTOOBJ(FontRenderingMode, + NSFontDefaultRenderingMode, + NSFontAntialiasedRenderingMode, + NSFontIntegerAdvancementsRenderingMode, + NSFontAntialiasedIntegerAdvancementsRenderingMode + ); + + +ENUMTOOBJ(GradientType, + NSGradientNone, + NSGradientConcaveWeak, + NSGradientConcaveStrong, + NSGradientConvexWeak, + NSGradientConvexStrong + ); -static id objectFromFetchRequestResultType(NSFetchRequestResultType fetchRequestResultType) -{ - switch (fetchRequestResultType) - { - case NSManagedObjectResultType: return [FSNamedNumber namedNumberWithDouble:fetchRequestResultType name:@"NSManagedObjectResultType"]; - case NSManagedObjectIDResultType: return [FSNamedNumber namedNumberWithDouble:fetchRequestResultType name:@"NSManagedObjectIDResultType"]; - default: return [FSNumber numberWithDouble:fetchRequestResultType]; - } -} - -static id objectFromFocusRingType(NSFocusRingType focusRingType) -{ - switch (focusRingType) - { - case NSFocusRingTypeDefault: return [FSNamedNumber namedNumberWithDouble:focusRingType name:@"NSFocusRingTypeDefault"]; - case NSFocusRingTypeNone: return [FSNamedNumber namedNumberWithDouble:focusRingType name:@"NSFocusRingTypeNone"]; - case NSFocusRingTypeExterior: return [FSNamedNumber namedNumberWithDouble:focusRingType name:@"NSFocusRingTypeExterior"]; - default: return [FSNumber numberWithDouble:focusRingType]; - } -} - -static id objectFromFontRenderingMode(NSFontRenderingMode fontRenderingMode) -{ - switch (fontRenderingMode) - { - case NSFontDefaultRenderingMode: return [FSNamedNumber namedNumberWithDouble:fontRenderingMode name:@"NSFontDefaultRenderingMode"]; - case NSFontAntialiasedRenderingMode: return [FSNamedNumber namedNumberWithDouble:fontRenderingMode name:@"NSFontAntialiasedRenderingMode"]; - case NSFontIntegerAdvancementsRenderingMode: return [FSNamedNumber namedNumberWithDouble:fontRenderingMode name:@"NSFontIntegerAdvancementsRenderingMode"]; - case NSFontAntialiasedIntegerAdvancementsRenderingMode: return [FSNamedNumber namedNumberWithDouble:fontRenderingMode name:@"NSFontAntialiasedIntegerAdvancementsRenderingMode"]; - default: return [FSNumber numberWithDouble:fontRenderingMode]; - } -} - -static id objectFromGradientType(NSGradientType gradientType) -{ - switch (gradientType) - { - case NSGradientNone: return [FSNamedNumber namedNumberWithDouble:gradientType name:@"NSGradientNone"]; - case NSGradientConcaveWeak: return [FSNamedNumber namedNumberWithDouble:gradientType name:@"NSGradientConcaveWeak"]; - case NSGradientConcaveStrong: return [FSNamedNumber namedNumberWithDouble:gradientType name:@"NSGradientConcaveStrong"]; - case NSGradientConvexWeak: return [FSNamedNumber namedNumberWithDouble:gradientType name:@"NSGradientConvexWeak"]; - case NSGradientConvexStrong: return [FSNamedNumber namedNumberWithDouble:gradientType name:@"NSGradientConvexStrong"]; - default: return [FSNumber numberWithDouble:gradientType]; - } -} static id objectFromGridStyleMask(NSUInteger mask) { @@ -674,71 +581,53 @@ static id objectFromGridStyleMask(NSUInteger mask) } } -static id objectFromImageAlignment(NSImageAlignment imageAlignment) -{ - switch (imageAlignment) - { - case NSImageAlignCenter: return [FSNamedNumber namedNumberWithDouble:imageAlignment name:@"NSImageAlignCenter"]; - case NSImageAlignTop: return [FSNamedNumber namedNumberWithDouble:imageAlignment name:@"NSImageAlignTop"]; - case NSImageAlignTopLeft: return [FSNamedNumber namedNumberWithDouble:imageAlignment name:@"NSImageAlignTopLeft"]; - case NSImageAlignTopRight: return [FSNamedNumber namedNumberWithDouble:imageAlignment name:@"NSImageAlignTopRight"]; - case NSImageAlignLeft: return [FSNamedNumber namedNumberWithDouble:imageAlignment name:@"NSImageAlignLeft"]; - case NSImageAlignBottom: return [FSNamedNumber namedNumberWithDouble:imageAlignment name:@"NSImageAlignBottom"]; - case NSImageAlignBottomLeft: return [FSNamedNumber namedNumberWithDouble:imageAlignment name:@"NSImageAlignBottomLeft"]; - case NSImageAlignBottomRight: return [FSNamedNumber namedNumberWithDouble:imageAlignment name:@"NSImageAlignBottomRight"]; - case NSImageAlignRight: return [FSNamedNumber namedNumberWithDouble:imageAlignment name:@"NSImageAlignRight"]; - default: return [FSNumber numberWithDouble:imageAlignment]; - } -} +ENUMTOOBJ(ImageAlignment, + NSImageAlignCenter, + NSImageAlignTop, + NSImageAlignTopLeft, + NSImageAlignTopRight, + NSImageAlignLeft, + NSImageAlignBottom, + NSImageAlignBottomLeft, + NSImageAlignBottomRight, + NSImageAlignRight + ); -static id objectFromImageCacheMode(NSImageCacheMode imageCacheMode) -{ - switch (imageCacheMode) - { - case NSImageCacheDefault: return [FSNamedNumber namedNumberWithDouble:imageCacheMode name:@"NSImageCacheDefault"]; - case NSImageCacheAlways: return [FSNamedNumber namedNumberWithDouble:imageCacheMode name:@"NSImageCacheAlways"]; - case NSImageCacheBySize: return [FSNamedNumber namedNumberWithDouble:imageCacheMode name:@"NSImageCacheBySize"]; - case NSImageCacheNever: return [FSNamedNumber namedNumberWithDouble:imageCacheMode name:@"NSImageCacheNever"]; - default: return [FSNumber numberWithDouble:imageCacheMode]; - } -} -static id objectFromImageFrameStyle(NSImageFrameStyle imageFrameStyle) -{ - switch (imageFrameStyle) - { - case NSImageFrameNone: return [FSNamedNumber namedNumberWithDouble:imageFrameStyle name:@"NSImageFrameNone"]; - case NSImageFramePhoto: return [FSNamedNumber namedNumberWithDouble:imageFrameStyle name:@"NSImageFramePhoto"]; - case NSImageFrameGrayBezel: return [FSNamedNumber namedNumberWithDouble:imageFrameStyle name:@"NSImageFrameGrayBezel"]; - case NSImageFrameGroove: return [FSNamedNumber namedNumberWithDouble:imageFrameStyle name:@"NSImageFrameGroove"]; - case NSImageFrameButton: return [FSNamedNumber namedNumberWithDouble:imageFrameStyle name:@"NSImageFrameButton"]; - default: return [FSNumber numberWithDouble:imageFrameStyle]; - } -} +ENUMTOOBJ(ImageCacheMode, + NSImageCacheDefault, + NSImageCacheAlways, + NSImageCacheBySize, + NSImageCacheNever + ); -static id objectFromImageInterpolation(NSImageInterpolation imageInterpolation) -{ - switch (imageInterpolation) - { - case NSImageInterpolationDefault: return [FSNamedNumber namedNumberWithDouble:imageInterpolation name:@"NSImageInterpolationDefault"]; - case NSImageInterpolationNone: return [FSNamedNumber namedNumberWithDouble:imageInterpolation name:@"NSImageInterpolationNone"]; - case NSImageInterpolationLow: return [FSNamedNumber namedNumberWithDouble:imageInterpolation name:@"NSImageInterpolationLow"]; - case NSImageInterpolationHigh: return [FSNamedNumber namedNumberWithDouble:imageInterpolation name:@"NSImageInterpolationHigh"]; - default: return [FSNumber numberWithDouble:imageInterpolation]; - } -} -static id objectFromImageScaling(NSImageScaling imageScaling) -{ - switch (imageScaling) - { - case NSImageScaleProportionallyDown: return [FSNamedNumber namedNumberWithDouble:imageScaling name:@"NSImageScaleProportionallyDown"]; - case NSImageScaleAxesIndependently: return [FSNamedNumber namedNumberWithDouble:imageScaling name:@"NSImageScaleAxesIndependently"]; - case NSImageScaleNone: return [FSNamedNumber namedNumberWithDouble:imageScaling name:@"NSImageScaleNone"]; - case NSImageScaleProportionallyUpOrDown: return [FSNamedNumber namedNumberWithDouble:imageScaling name:@"NSImageScaleProportionallyUpOrDown"]; - default: return [FSNumber numberWithDouble:imageScaling]; - } -} + +ENUMTOOBJ(ImageFrameStyle, + NSImageFrameNone, + NSImageFramePhoto, + NSImageFrameGrayBezel, + NSImageFrameGroove, + NSImageFrameButton + ); + + + +ENUMTOOBJ(ImageInterpolation, + NSImageInterpolationDefault, + NSImageInterpolationNone, + NSImageInterpolationLow, + NSImageInterpolationHigh + ); + + +ENUMTOOBJ(ImageScaling, + NSImageScaleProportionallyDown, + NSImageScaleAxesIndependently, + NSImageScaleNone, + NSImageScaleProportionallyUpOrDown + ); + static id objectFromKeyModifierMask(NSUInteger mask) { @@ -779,65 +668,45 @@ static id objectFromLayoutOptions(NSUInteger mask) } } -static id objectFromLevelIndicatorStyle(NSLevelIndicatorStyle levelIndicatorStyle) -{ - switch (levelIndicatorStyle) - { - case NSRelevancyLevelIndicatorStyle: return [FSNamedNumber namedNumberWithDouble:levelIndicatorStyle name:@"NSRelevancyLevelIndicatorStyle"]; - case NSContinuousCapacityLevelIndicatorStyle: return [FSNamedNumber namedNumberWithDouble:levelIndicatorStyle name:@"NSContinuousCapacityLevelIndicatorStyle"]; - case NSDiscreteCapacityLevelIndicatorStyle: return [FSNamedNumber namedNumberWithDouble:levelIndicatorStyle name:@"NSDiscreteCapacityLevelIndicatorStyle"]; - case NSRatingLevelIndicatorStyle: return [FSNamedNumber namedNumberWithDouble:levelIndicatorStyle name:@"NSRatingLevelIndicatorStyle"]; - default: return [FSNumber numberWithDouble:levelIndicatorStyle]; - } -} +ENUMTOOBJ(LevelIndicatorStyle, + NSRelevancyLevelIndicatorStyle, + NSContinuousCapacityLevelIndicatorStyle, + NSDiscreteCapacityLevelIndicatorStyle, + NSRatingLevelIndicatorStyle + ); -static id objectFromLineBreakMode(NSLineBreakMode lineBreakMode) -{ - switch (lineBreakMode) - { - case NSLineBreakByWordWrapping: return [FSNamedNumber namedNumberWithDouble:lineBreakMode name:@"NSLineBreakByWordWrapping"]; - case NSLineBreakByCharWrapping: return [FSNamedNumber namedNumberWithDouble:lineBreakMode name:@"NSLineBreakByCharWrapping"]; - case NSLineBreakByClipping: return [FSNamedNumber namedNumberWithDouble:lineBreakMode name:@"NSLineBreakByClipping"]; - case NSLineBreakByTruncatingHead: return [FSNamedNumber namedNumberWithDouble:lineBreakMode name:@"NSLineBreakByTruncatingHead"]; - case NSLineBreakByTruncatingTail: return [FSNamedNumber namedNumberWithDouble:lineBreakMode name:@"NSLineBreakByTruncatingTail"]; - case NSLineBreakByTruncatingMiddle: return [FSNamedNumber namedNumberWithDouble:lineBreakMode name:@"NSLineBreakByTruncatingMiddle"]; - default: return [FSNumber numberWithDouble:lineBreakMode]; - } -} -static id objectFromLineCapStyle(NSLineCapStyle lineCapStyle) -{ - switch (lineCapStyle) - { - case NSButtLineCapStyle: return [FSNamedNumber namedNumberWithDouble:lineCapStyle name:@"NSButtLineCapStyle"]; - case NSRoundLineCapStyle: return [FSNamedNumber namedNumberWithDouble:lineCapStyle name:@"NSRoundLineCapStyle"]; - case NSSquareLineCapStyle: return [FSNamedNumber namedNumberWithDouble:lineCapStyle name:@"NSSquareLineCapStyle"]; - default: return [FSNumber numberWithDouble:lineCapStyle]; - } -} +ENUMTOOBJ(LineBreakMode, + NSLineBreakByWordWrapping, + NSLineBreakByCharWrapping, + NSLineBreakByClipping, + NSLineBreakByTruncatingHead, + NSLineBreakByTruncatingTail, + NSLineBreakByTruncatingMiddle + ); -static id objectFromLineJoinStyle(NSLineJoinStyle lineJoinStyle) -{ - switch (lineJoinStyle) - { - case NSMiterLineJoinStyle: return [FSNamedNumber namedNumberWithDouble:lineJoinStyle name:@"NSMiterLineJoinStyle"]; - case NSRoundLineJoinStyle: return [FSNamedNumber namedNumberWithDouble:lineJoinStyle name:@"NSRoundLineJoinStyle"]; - case NSBevelLineJoinStyle: return [FSNamedNumber namedNumberWithDouble:lineJoinStyle name:@"NSBevelLineJoinStyle"]; - default: return [FSNumber numberWithDouble:lineJoinStyle]; - } -} -static id objectFromMatrixMode(NSMatrixMode matrixMode) -{ - switch (matrixMode) - { - case NSRadioModeMatrix: return [FSNamedNumber namedNumberWithDouble:matrixMode name:@"NSRadioModeMatrix"]; - case NSHighlightModeMatrix: return [FSNamedNumber namedNumberWithDouble:matrixMode name:@"NSHighlightModeMatrix"]; - case NSListModeMatrix: return [FSNamedNumber namedNumberWithDouble:matrixMode name:@"NSListModeMatrix"]; - case NSTrackModeMatrix : return [FSNamedNumber namedNumberWithDouble:matrixMode name:@"NSTrackModeMatrix"]; - default: return [FSNumber numberWithDouble:matrixMode]; - } -} +ENUMTOOBJ(LineCapStyle, + NSButtLineCapStyle, + NSRoundLineCapStyle, + NSSquareLineCapStyle + ); + + +ENUMTOOBJ(LineJoinStyle, + NSMiterLineJoinStyle, + NSRoundLineJoinStyle, + NSBevelLineJoinStyle + ); + + +ENUMTOOBJ(MatrixMode, + NSRadioModeMatrix, + NSHighlightModeMatrix, + NSListModeMatrix, + NSTrackModeMatrix + ); + static id objectFromMergePolicy(id mergePolicy) { @@ -853,225 +722,153 @@ static id objectFromMergePolicy(id mergePolicy) else return mergePolicy; } -static id objectFromNestingMode(NSRuleEditorNestingMode ruleEditorNestingMode) -{ - switch (ruleEditorNestingMode) - { - case NSRuleEditorNestingModeSingle: return [FSNamedNumber namedNumberWithDouble:ruleEditorNestingMode name:@"NSRuleEditorNestingModeSingle"]; - case NSRuleEditorNestingModeList: return [FSNamedNumber namedNumberWithDouble:ruleEditorNestingMode name:@"NSRuleEditorNestingModeList"]; - case NSRuleEditorNestingModeCompound: return [FSNamedNumber namedNumberWithDouble:ruleEditorNestingMode name:@"NSRuleEditorNestingModeCompound"]; - case NSRuleEditorNestingModeSimple: return [FSNamedNumber namedNumberWithDouble:ruleEditorNestingMode name:@"NSRuleEditorNestingModeSimple"]; - default: return [FSNumber numberWithDouble:ruleEditorNestingMode]; - } -} - -static id objectFromPathStyle(NSPathStyle pathStyle) -{ - switch (pathStyle) - { - case NSPathStyleStandard: return [FSNamedNumber namedNumberWithDouble:pathStyle name:@"NSPathStyleStandard"]; - case NSPathStyleNavigationBar: return [FSNamedNumber namedNumberWithDouble:pathStyle name:@"NSPathStyleNavigationBar"]; - case NSPathStylePopUp: return [FSNamedNumber namedNumberWithDouble:pathStyle name:@"NSPathStylePopUp"]; - default: return [FSNumber numberWithDouble:pathStyle]; - } -} +ENUMTOOBJ(RuleEditorNestingMode, + NSRuleEditorNestingModeSingle, + NSRuleEditorNestingModeList, + NSRuleEditorNestingModeCompound, + NSRuleEditorNestingModeSimple + ); -static id objectFromPointingDeviceType(NSPointingDeviceType pointingDeviceType) -{ - switch (pointingDeviceType) - { - case NSUnknownPointingDevice: return [FSNamedNumber namedNumberWithDouble:pointingDeviceType name:@"NSUnknownPointingDevice"]; - case NSPenPointingDevice: return [FSNamedNumber namedNumberWithDouble:pointingDeviceType name:@"NSPenPointingDevice"]; - case NSCursorPointingDevice: return [FSNamedNumber namedNumberWithDouble:pointingDeviceType name:@"NSCursorPointingDevice"]; - case NSEraserPointingDevice: return [FSNamedNumber namedNumberWithDouble:pointingDeviceType name:@"NSEraserPointingDevice"]; - default: return [FSNumber numberWithDouble:pointingDeviceType]; - } -} -static id objectFromPredicateOperatorType(NSPredicateOperatorType predicateOperatorType) -{ - switch (predicateOperatorType) - { - case NSLessThanPredicateOperatorType: return [FSNamedNumber namedNumberWithDouble:predicateOperatorType name:@"NSLessThanPredicateOperatorType"]; - case NSLessThanOrEqualToPredicateOperatorType: return [FSNamedNumber namedNumberWithDouble:predicateOperatorType name:@"NSLessThanOrEqualToPredicateOperatorType"]; - case NSGreaterThanPredicateOperatorType: return [FSNamedNumber namedNumberWithDouble:predicateOperatorType name:@"NSGreaterThanPredicateOperatorType"]; - case NSGreaterThanOrEqualToPredicateOperatorType: return [FSNamedNumber namedNumberWithDouble:predicateOperatorType name:@"NSGreaterThanOrEqualToPredicateOperatorType"]; - case NSEqualToPredicateOperatorType: return [FSNamedNumber namedNumberWithDouble:predicateOperatorType name:@"NSEqualToPredicateOperatorType"]; - case NSNotEqualToPredicateOperatorType: return [FSNamedNumber namedNumberWithDouble:predicateOperatorType name:@"NSNotEqualToPredicateOperatorType"]; - case NSMatchesPredicateOperatorType: return [FSNamedNumber namedNumberWithDouble:predicateOperatorType name:@"NSMatchesPredicateOperatorType"]; - case NSLikePredicateOperatorType : return [FSNamedNumber namedNumberWithDouble:predicateOperatorType name:@"NSLikePredicateOperatorType"]; - case NSBeginsWithPredicateOperatorType: return [FSNamedNumber namedNumberWithDouble:predicateOperatorType name:@"NSBeginsWithPredicateOperatorType"]; - case NSEndsWithPredicateOperatorType: return [FSNamedNumber namedNumberWithDouble:predicateOperatorType name:@"NSEndsWithPredicateOperatorType"]; - case NSInPredicateOperatorType: return [FSNamedNumber namedNumberWithDouble:predicateOperatorType name:@"NSInPredicateOperatorType"]; - case NSCustomSelectorPredicateOperatorType: return [FSNamedNumber namedNumberWithDouble:predicateOperatorType name:@"NSCustomSelectorPredicateOperatorType"]; - case NSContainsPredicateOperatorType: return [FSNamedNumber namedNumberWithDouble:predicateOperatorType name:@"NSContainsPredicateOperatorType"]; - case NSBetweenPredicateOperatorType: return [FSNamedNumber namedNumberWithDouble:predicateOperatorType name:@"NSBetweenPredicateOperatorType"]; - default: return [FSNumber numberWithDouble:predicateOperatorType]; - } -} +ENUMTOOBJ(PathStyle, + NSPathStyleStandard, + NSPathStyleNavigationBar, + NSPathStylePopUp + ); -static id objectFromProgressIndicatorStyle(NSProgressIndicatorStyle progressIndicatorStyle) -{ - switch (progressIndicatorStyle) - { - case NSProgressIndicatorBarStyle: return [FSNamedNumber namedNumberWithDouble:progressIndicatorStyle name:@"NSProgressIndicatorBarStyle"]; - case NSProgressIndicatorSpinningStyle: return [FSNamedNumber namedNumberWithDouble:progressIndicatorStyle name:@"NSProgressIndicatorSpinningStyle"]; - default: return [FSNumber numberWithDouble:progressIndicatorStyle]; - } -} -static id objectFromPopUpArrowPosition(NSPopUpArrowPosition popUpArrowPosition) -{ - switch (popUpArrowPosition) - { - case NSPopUpNoArrow: return [FSNamedNumber namedNumberWithDouble:popUpArrowPosition name:@"NSPopUpNoArrow"]; - case NSPopUpArrowAtCenter: return [FSNamedNumber namedNumberWithDouble:popUpArrowPosition name:@"NSPopUpArrowAtCenter"]; - case NSPopUpArrowAtBottom: return [FSNamedNumber namedNumberWithDouble:popUpArrowPosition name:@"NSPopUpArrowAtBottom"]; - default: return [FSNumber numberWithDouble:popUpArrowPosition]; - } -} +ENUMTOOBJ(PointingDeviceType, + NSUnknownPointingDevice, + NSPenPointingDevice, + NSCursorPointingDevice, + NSEraserPointingDevice + ); -static id objectFromRectEdge(NSRectEdge rectEdge) -{ - switch (rectEdge) - { - case NSMinXEdge: return [FSNamedNumber namedNumberWithDouble:rectEdge name:@"NSMinXEdge"]; - case NSMinYEdge: return [FSNamedNumber namedNumberWithDouble:rectEdge name:@"NSMinYEdge"]; - case NSMaxXEdge: return [FSNamedNumber namedNumberWithDouble:rectEdge name:@"NSMaxXEdge"]; - case NSMaxYEdge: return [FSNamedNumber namedNumberWithDouble:rectEdge name:@"NSMaxYEdge"]; - default: return [FSNumber numberWithDouble:rectEdge]; - } -} -static id objectFromRulerOrientation(NSRulerOrientation rulerOrientation) -{ - switch (rulerOrientation) - { - case NSHorizontalRuler: return [FSNamedNumber namedNumberWithDouble:rulerOrientation name:@"NSHorizontalRuler"]; - case NSVerticalRuler: return [FSNamedNumber namedNumberWithDouble:rulerOrientation name:@"NSVerticalRuler"]; - default: return [FSNumber numberWithDouble:rulerOrientation]; - } -} +ENUMTOOBJ(PredicateOperatorType, + NSLessThanPredicateOperatorType, + NSLessThanOrEqualToPredicateOperatorType, + NSGreaterThanPredicateOperatorType, + NSGreaterThanOrEqualToPredicateOperatorType, + NSEqualToPredicateOperatorType, + NSNotEqualToPredicateOperatorType, + NSMatchesPredicateOperatorType, + NSLikePredicateOperatorType, + NSBeginsWithPredicateOperatorType, + NSEndsWithPredicateOperatorType, + NSInPredicateOperatorType, + NSCustomSelectorPredicateOperatorType, + NSContainsPredicateOperatorType, + NSBetweenPredicateOperatorType + ); + + +ENUMTOOBJ(ProgressIndicatorStyle, + NSProgressIndicatorBarStyle, + NSProgressIndicatorSpinningStyle + ); + + +ENUMTOOBJ(PopUpArrowPosition, + NSPopUpNoArrow, + NSPopUpArrowAtCenter, + NSPopUpArrowAtBottom + ); + + +ENUMTOOBJ(RectEdge, + NSMinXEdge, + NSMinYEdge, + NSMaxXEdge, + NSMaxYEdge + ); + + +ENUMTOOBJ(RulerOrientation, + NSHorizontalRuler, + NSVerticalRuler + ); + + +ENUMTOOBJ(ScrollArrowPosition, + NSScrollerArrowsDefaultSetting, + NSScrollerArrowsNone + ); + + +ENUMTOOBJ(ScrollerPart, + NSScrollerNoPart, + NSScrollerDecrementPage, + NSScrollerKnob, + NSScrollerIncrementPage, + NSScrollerDecrementLine, + NSScrollerIncrementLine, + NSScrollerKnobSlot + ); + + +ENUMTOOBJ(SegmentSwitchTracking, + NSSegmentSwitchTrackingSelectOne, + NSSegmentSwitchTrackingSelectAny, + NSSegmentSwitchTrackingMomentary + ); + + +ENUMTOOBJ(SelectionAffinity, + NSSelectionAffinityUpstream, + NSSelectionAffinityDownstream + ); + + +ENUMTOOBJ(SelectionDirection, + NSDirectSelection, + NSSelectingNext, + NSSelectingPrevious + ); + + +ENUMTOOBJ(SelectionGranularity, + NSSelectByCharacter, + NSSelectByWord, + NSSelectByParagraph + ); + + +ENUMTOOBJ(TableViewSelectionHighlightStyle, + NSTableViewSelectionHighlightStyleRegular, + NSTableViewSelectionHighlightStyleSourceList + ); + + +ENUMTOOBJ(SliderType, + NSLinearSlider, + NSCircularSlider + ); + + +typedef CGFloat NSStatusItemLength; +ENUMTOOBJ(StatusItemLength, NSVariableStatusItemLength, NSSquareStatusItemLength); + +ENUMTOOBJ(StringEncoding, + NSASCIIStringEncoding, + NSNEXTSTEPStringEncoding, + NSJapaneseEUCStringEncoding, + NSUTF8StringEncoding, + NSISOLatin1StringEncoding, + NSSymbolStringEncoding, + NSNonLossyASCIIStringEncoding, + NSShiftJISStringEncoding, + NSISOLatin2StringEncoding, + NSUnicodeStringEncoding, + NSWindowsCP1251StringEncoding, + NSWindowsCP1252StringEncoding, + NSWindowsCP1253StringEncoding, + NSWindowsCP1254StringEncoding, + NSWindowsCP1250StringEncoding, + NSISO2022JPStringEncoding, + NSMacOSRomanStringEncoding + ); -static id objectFromScrollArrowPosition(NSScrollArrowPosition scrollArrowPosition) -{ - switch (scrollArrowPosition) - { - case NSScrollerArrowsDefaultSetting: return [FSNamedNumber namedNumberWithDouble:scrollArrowPosition name:@"NSScrollerArrowsDefaultSetting"]; - case NSScrollerArrowsNone: return [FSNamedNumber namedNumberWithDouble:scrollArrowPosition name:@"NSScrollerArrowsNone"]; - default: return [FSNumber numberWithDouble:scrollArrowPosition]; - } -} - -static id objectFromScrollerPart(NSScrollerPart scrollerPart) -{ - switch (scrollerPart) - { - case NSScrollerNoPart: return [FSNamedNumber namedNumberWithDouble:scrollerPart name:@"NSScrollerNoPart"]; - case NSScrollerDecrementPage: return [FSNamedNumber namedNumberWithDouble:scrollerPart name:@"NSScrollerDecrementPage"]; - case NSScrollerKnob: return [FSNamedNumber namedNumberWithDouble:scrollerPart name:@"NSScrollerKnob"]; - case NSScrollerIncrementPage: return [FSNamedNumber namedNumberWithDouble:scrollerPart name:@"NSScrollerIncrementPage"]; - case NSScrollerDecrementLine: return [FSNamedNumber namedNumberWithDouble:scrollerPart name:@"NSScrollerDecrementLine"]; - case NSScrollerIncrementLine: return [FSNamedNumber namedNumberWithDouble:scrollerPart name:@"NSScrollerIncrementLine"]; - case NSScrollerKnobSlot: return [FSNamedNumber namedNumberWithDouble:scrollerPart name:@"NSScrollerKnobSlot"]; - default: return [FSNumber numberWithDouble:scrollerPart]; - } -} - -static id objectFromSegmentSwitchTracking(NSSegmentSwitchTracking segmentSwitchTracking) -{ - switch (segmentSwitchTracking) - { - case NSSegmentSwitchTrackingSelectOne: return [FSNamedNumber namedNumberWithDouble:segmentSwitchTracking name:@"NSSegmentSwitchTrackingSelectOne"]; - case NSSegmentSwitchTrackingSelectAny: return [FSNamedNumber namedNumberWithDouble:segmentSwitchTracking name:@"NSSegmentSwitchTrackingSelectAny"]; - case NSSegmentSwitchTrackingMomentary: return [FSNamedNumber namedNumberWithDouble:segmentSwitchTracking name:@"NSSegmentSwitchTrackingMomentary"]; - default: return [FSNumber numberWithDouble:segmentSwitchTracking]; - } -} - -static id objectFromSelectionAffinity(NSSelectionAffinity selectionAffinity) -{ - switch (selectionAffinity) - { - case NSSelectionAffinityUpstream: return [FSNamedNumber namedNumberWithDouble:selectionAffinity name:@"NSSelectionAffinityUpstream"]; - case NSSelectionAffinityDownstream: return [FSNamedNumber namedNumberWithDouble:selectionAffinity name:@"NSSelectionAffinityDownstream"]; - default: return [FSNumber numberWithDouble:selectionAffinity]; - } -} - -static id objectFromSelectionDirection(NSSelectionDirection selectionDirection) -{ - switch (selectionDirection) - { - case NSDirectSelection: return [FSNamedNumber namedNumberWithDouble:selectionDirection name:@"NSDirectSelection"]; - case NSSelectingNext: return [FSNamedNumber namedNumberWithDouble:selectionDirection name:@"NSSelectingNext"]; - case NSSelectingPrevious: return [FSNamedNumber namedNumberWithDouble:selectionDirection name:@"NSSelectingPrevious"]; - default: return [FSNumber numberWithDouble:selectionDirection]; - } -} - -static id objectFromSelectionGranularity(NSSelectionGranularity selectionGranularity) -{ - switch (selectionGranularity) - { - case NSSelectByCharacter: return [FSNamedNumber namedNumberWithDouble:selectionGranularity name:@"NSSelectByCharacter"]; - case NSSelectByWord: return [FSNamedNumber namedNumberWithDouble:selectionGranularity name:@"NSSelectByWord"]; - case NSSelectByParagraph: return [FSNamedNumber namedNumberWithDouble:selectionGranularity name:@"NSSelectByParagraph"]; - default: return [FSNumber numberWithDouble:selectionGranularity]; - } -} - -static id objectFromTableViewSelectionHighlightStyle(NSTableViewSelectionHighlightStyle tableViewSelectionHighlightStyle) -{ - switch (tableViewSelectionHighlightStyle) - { - case NSTableViewSelectionHighlightStyleRegular: return [FSNamedNumber namedNumberWithDouble:tableViewSelectionHighlightStyle name:@"NSTableViewSelectionHighlightStyleRegular"]; - case NSTableViewSelectionHighlightStyleSourceList: return [FSNamedNumber namedNumberWithDouble:tableViewSelectionHighlightStyle name:@"NSTableViewSelectionHighlightStyleSourceList"]; - default: return [FSNumber numberWithDouble:tableViewSelectionHighlightStyle]; - } -} - -static id objectFromSliderType(NSSliderType sliderType) -{ - switch (sliderType) - { - case NSLinearSlider: return [FSNamedNumber namedNumberWithDouble:sliderType name:@"NSLinearSlider"]; - case NSCircularSlider: return [FSNamedNumber namedNumberWithDouble:sliderType name:@"NSCircularSlider"]; - default: return [FSNumber numberWithDouble:sliderType]; - } -} - -static id objectFromStatusItemLength(CGFloat statusItemLength) -{ - if (statusItemLength == NSVariableStatusItemLength) return [FSNamedNumber namedNumberWithDouble:statusItemLength name:@"NSVariableStatusItemLength"]; - else if (statusItemLength == NSSquareStatusItemLength) return [FSNamedNumber namedNumberWithDouble:statusItemLength name:@"NSSquareStatusItemLength"]; - else return [FSNumber numberWithDouble:statusItemLength]; -} - -static id objectFromStringEncoding(NSStringEncoding stringEncoding) -{ - switch (stringEncoding) - { - case NSASCIIStringEncoding: return [FSNamedNumber namedNumberWithDouble:stringEncoding name:@"NSASCIIStringEncoding"]; - case NSNEXTSTEPStringEncoding: return [FSNamedNumber namedNumberWithDouble:stringEncoding name:@"NSNEXTSTEPStringEncoding"]; - case NSJapaneseEUCStringEncoding: return [FSNamedNumber namedNumberWithDouble:stringEncoding name:@"NSJapaneseEUCStringEncoding"]; - case NSUTF8StringEncoding: return [FSNamedNumber namedNumberWithDouble:stringEncoding name:@"NSUTF8StringEncoding"]; - case NSISOLatin1StringEncoding: return [FSNamedNumber namedNumberWithDouble:stringEncoding name:@"NSISOLatin1StringEncoding"]; - case NSSymbolStringEncoding: return [FSNamedNumber namedNumberWithDouble:stringEncoding name:@"NSSymbolStringEncoding"]; - case NSNonLossyASCIIStringEncoding: return [FSNamedNumber namedNumberWithDouble:stringEncoding name:@"NSNonLossyASCIIStringEncoding"]; - case NSShiftJISStringEncoding: return [FSNamedNumber namedNumberWithDouble:stringEncoding name:@"NSShiftJISStringEncoding"]; - case NSISOLatin2StringEncoding: return [FSNamedNumber namedNumberWithDouble:stringEncoding name:@"NSISOLatin2StringEncoding"]; - case NSUnicodeStringEncoding: return [FSNamedNumber namedNumberWithDouble:stringEncoding name:@"NSUnicodeStringEncoding"]; - case NSWindowsCP1251StringEncoding: return [FSNamedNumber namedNumberWithDouble:stringEncoding name:@"NSWindowsCP1251StringEncoding"]; - case NSWindowsCP1252StringEncoding: return [FSNamedNumber namedNumberWithDouble:stringEncoding name:@"NSWindowsCP1252StringEncoding"]; - case NSWindowsCP1253StringEncoding: return [FSNamedNumber namedNumberWithDouble:stringEncoding name:@"NSWindowsCP1253StringEncoding"]; - case NSWindowsCP1254StringEncoding: return [FSNamedNumber namedNumberWithDouble:stringEncoding name:@"NSWindowsCP1254StringEncoding"]; - case NSWindowsCP1250StringEncoding: return [FSNamedNumber namedNumberWithDouble:stringEncoding name:@"NSWindowsCP1250StringEncoding"]; - case NSISO2022JPStringEncoding: return [FSNamedNumber namedNumberWithDouble:stringEncoding name:@"NSISO2022JPStringEncoding"]; - case NSMacOSRomanStringEncoding: return [FSNamedNumber namedNumberWithDouble:stringEncoding name:@"NSMacOSRomanStringEncoding"]; - default: return [FSNumber numberWithDouble:stringEncoding]; - } -} static id objectFromTableColumnResizingMask(NSUInteger mask) { @@ -1087,90 +884,63 @@ static id objectFromTableColumnResizingMask(NSUInteger mask) } } -static id objectFromTableViewColumnAutoresizingStyle(NSTableViewColumnAutoresizingStyle tableViewColumnAutoresizingStyle) -{ - switch (tableViewColumnAutoresizingStyle) - { - case NSTableViewNoColumnAutoresizing: return [FSNamedNumber namedNumberWithDouble:tableViewColumnAutoresizingStyle name:@"NSTableViewNoColumnAutoresizing"]; - case NSTableViewUniformColumnAutoresizingStyle: return [FSNamedNumber namedNumberWithDouble:tableViewColumnAutoresizingStyle name:@"NSTableViewUniformColumnAutoresizingStyle"]; - case NSTableViewSequentialColumnAutoresizingStyle: return [FSNamedNumber namedNumberWithDouble:tableViewColumnAutoresizingStyle name:@"NSTableViewSequentialColumnAutoresizingStyle"]; - case NSTableViewReverseSequentialColumnAutoresizingStyle: return [FSNamedNumber namedNumberWithDouble:tableViewColumnAutoresizingStyle name:@"NSTableViewReverseSequentialColumnAutoresizingStyle"]; - case NSTableViewLastColumnOnlyAutoresizingStyle: return [FSNamedNumber namedNumberWithDouble:tableViewColumnAutoresizingStyle name:@"NSTableViewLastColumnOnlyAutoresizingStyle"]; - case NSTableViewFirstColumnOnlyAutoresizingStyle: return [FSNamedNumber namedNumberWithDouble:tableViewColumnAutoresizingStyle name:@"NSTableViewFirstColumnOnlyAutoresizingStyle"]; - default: return [FSNumber numberWithDouble:tableViewColumnAutoresizingStyle]; - } -} +ENUMTOOBJ(TableViewColumnAutoresizingStyle, + NSTableViewNoColumnAutoresizing, + NSTableViewUniformColumnAutoresizingStyle, + NSTableViewSequentialColumnAutoresizingStyle, + NSTableViewReverseSequentialColumnAutoresizingStyle, + NSTableViewLastColumnOnlyAutoresizingStyle, + NSTableViewFirstColumnOnlyAutoresizingStyle + ); -static id objectFromTabState(NSTabState tabState) -{ - switch (tabState) - { - case NSBackgroundTab: return [FSNamedNumber namedNumberWithDouble:tabState name:@"NSBackgroundTab"]; - case NSPressedTab: return [FSNamedNumber namedNumberWithDouble:tabState name:@"NSPressedTab"]; - case NSSelectedTab: return [FSNamedNumber namedNumberWithDouble:tabState name:@"NSSelectedTab"]; - default: return [FSNumber numberWithDouble:tabState]; - } -} -static id objectFromTabViewType(NSTabViewType tabViewType) -{ - switch (tabViewType) - { - case NSTopTabsBezelBorder: return [FSNamedNumber namedNumberWithDouble:tabViewType name:@"NSTopTabsBezelBorder"]; - case NSLeftTabsBezelBorder: return [FSNamedNumber namedNumberWithDouble:tabViewType name:@"NSLeftTabsBezelBorder"]; - case NSBottomTabsBezelBorder: return [FSNamedNumber namedNumberWithDouble:tabViewType name:@"NSBottomTabsBezelBorder"]; - case NSRightTabsBezelBorder: return [FSNamedNumber namedNumberWithDouble:tabViewType name:@"NSRightTabsBezelBorder"]; - case NSNoTabsBezelBorder: return [FSNamedNumber namedNumberWithDouble:tabViewType name:@"NSNoTabsBezelBorder"]; - case NSNoTabsLineBorder: return [FSNamedNumber namedNumberWithDouble:tabViewType name:@"NSNoTabsLineBorder"]; - case NSNoTabsNoBorder: return [FSNamedNumber namedNumberWithDouble:tabViewType name:@"NSNoTabsNoBorder"]; - default: return [FSNumber numberWithDouble:tabViewType]; - } -} -static id objectFromTextAlignment(NSTextAlignment alignment) -{ - switch (alignment) - { - case NSLeftTextAlignment: return [FSNamedNumber namedNumberWithDouble:alignment name:@"NSLeftTextAlignment"]; - case NSRightTextAlignment: return [FSNamedNumber namedNumberWithDouble:alignment name:@"NSRightTextAlignment"]; - case NSCenterTextAlignment: return [FSNamedNumber namedNumberWithDouble:alignment name:@"NSCenterTextAlignment"]; - case NSJustifiedTextAlignment: return [FSNamedNumber namedNumberWithDouble:alignment name:@"NSJustifiedTextAlignment"]; - case NSNaturalTextAlignment: return [FSNamedNumber namedNumberWithDouble:alignment name:@"NSNaturalTextAlignment"]; - default: return [FSNumber numberWithDouble:alignment]; - } -} +ENUMTOOBJ(TabState, + NSBackgroundTab, + NSPressedTab, + NSSelectedTab + ); -static id objectFromTextBlockValueType(NSTextBlockValueType valueType) -{ - switch (valueType) - { - case NSTextBlockAbsoluteValueType: return [FSNamedNumber namedNumberWithDouble:valueType name:@"NSTextBlockAbsoluteValueType"]; - case NSTextBlockPercentageValueType: return [FSNamedNumber namedNumberWithDouble:valueType name:@"NSTextBlockPercentageValueType"]; - default: return [FSNumber numberWithDouble:valueType]; - } -} -static id objectFromTextBlockVerticalAlignment(NSTextBlockVerticalAlignment verticalAlignment) -{ - switch (verticalAlignment) - { - case NSTextBlockTopAlignment: return [FSNamedNumber namedNumberWithDouble:verticalAlignment name:@"NSTextBlockAbsoluteValueType"]; - case NSTextBlockMiddleAlignment: return [FSNamedNumber namedNumberWithDouble:verticalAlignment name:@"NSTextBlockPercentageValueType"]; - case NSTextBlockBottomAlignment: return [FSNamedNumber namedNumberWithDouble:verticalAlignment name:@"NSTextBlockAbsoluteValueType"]; - case NSTextBlockBaselineAlignment: return [FSNamedNumber namedNumberWithDouble:verticalAlignment name:@"NSTextBlockPercentageValueType"]; - default: return [FSNumber numberWithDouble:verticalAlignment]; - } -} +ENUMTOOBJ(TabViewType, + NSTopTabsBezelBorder, + NSLeftTabsBezelBorder, + NSBottomTabsBezelBorder, + NSRightTabsBezelBorder, + NSNoTabsBezelBorder, + NSNoTabsLineBorder, + NSNoTabsNoBorder + ); + + +ENUMTOOBJ(TextAlignment, + NSLeftTextAlignment, + NSRightTextAlignment, + NSCenterTextAlignment, + NSJustifiedTextAlignment, + NSNaturalTextAlignment + ); + + +ENUMTOOBJ(TextBlockValueType, + NSTextBlockAbsoluteValueType, + NSTextBlockPercentageValueType + ); + + +ENUMTOOBJ(TextBlockVerticalAlignment, + NSTextBlockTopAlignment, + NSTextBlockMiddleAlignment, + NSTextBlockBottomAlignment, + NSTextBlockBaselineAlignment + ); + + +ENUMTOOBJ(TextFieldBezelStyle, + NSTextFieldSquareBezel, + NSTextFieldRoundedBezel + ); -static id objectFromTextFieldBezelStyle(NSTextFieldBezelStyle textFielBezelStyle) -{ - switch (textFielBezelStyle) - { - case NSTextFieldSquareBezel: return [FSNamedNumber namedNumberWithDouble:textFielBezelStyle name:@"NSTextFieldSquareBezel"]; - case NSTextFieldRoundedBezel: return [FSNamedNumber namedNumberWithDouble:textFielBezelStyle name:@"NSTextFieldRoundedBezel"]; - default: return [FSNumber numberWithDouble:textFielBezelStyle]; - } -} static id objectFromTextListOptionsMask(NSUInteger mask) { @@ -1197,27 +967,19 @@ static id objectFromTextStorageEditedMask(NSUInteger mask) } } -static id objectFromTextTableLayoutAlgorithm(NSTextTableLayoutAlgorithm layoutAlgorithm) -{ - switch (layoutAlgorithm) - { - case NSTextTableAutomaticLayoutAlgorithm: return [FSNamedNumber namedNumberWithDouble:layoutAlgorithm name:@"NSTextTableAutomaticLayoutAlgorithm"]; - case NSTextTableFixedLayoutAlgorithm: return [FSNamedNumber namedNumberWithDouble:layoutAlgorithm name:@"NSTextTableFixedLayoutAlgorithm"]; - default: return [FSNumber numberWithDouble:layoutAlgorithm]; - } -} +ENUMTOOBJ(TextTableLayoutAlgorithm, + NSTextTableAutomaticLayoutAlgorithm, + NSTextTableFixedLayoutAlgorithm + ); + + +ENUMTOOBJ(TextTabType, + NSLeftTabStopType, + NSRightTabStopType, + NSCenterTabStopType, + NSDecimalTabStopType + ); -static id objectFromTextTabType(NSTextTabType textTabType) -{ - switch (textTabType) - { - case NSLeftTabStopType: return [FSNamedNumber namedNumberWithDouble:textTabType name:@"NSLeftTabStopType"]; - case NSRightTabStopType: return [FSNamedNumber namedNumberWithDouble:textTabType name:@"NSRightTabStopType"]; - case NSCenterTabStopType: return [FSNamedNumber namedNumberWithDouble:textTabType name:@"NSCenterTabStopType"]; - case NSDecimalTabStopType: return [FSNamedNumber namedNumberWithDouble:textTabType name:@"NSDecimalTabStopType"]; - default: return [FSNumber numberWithDouble:textTabType]; - } -} static id objectFromTickMarkPosition(NSTickMarkPosition tickMarkPosition, BOOL isVertical) { @@ -1231,82 +993,58 @@ static id objectFromTickMarkPosition(NSTickMarkPosition tickMarkPosition, BOOL i } } -static id objectFromTIFFCompression(NSTIFFCompression compression) -{ - switch (compression) - { - case NSTIFFCompressionNone: return [FSNamedNumber namedNumberWithDouble:compression name:@"NSTIFFCompressionNone"]; - case NSTIFFCompressionCCITTFAX3: return [FSNamedNumber namedNumberWithDouble:compression name:@"NSTIFFCompressionCCITTFAX3"]; - case NSTIFFCompressionCCITTFAX4: return [FSNamedNumber namedNumberWithDouble:compression name:@"NSTIFFCompressionCCITTFAX4"]; - case NSTIFFCompressionLZW: return [FSNamedNumber namedNumberWithDouble:compression name:@"NSTIFFCompressionLZW"]; - case NSTIFFCompressionJPEG: return [FSNamedNumber namedNumberWithDouble:compression name:@"NSTIFFCompressionJPEG"]; - case NSTIFFCompressionNEXT: return [FSNamedNumber namedNumberWithDouble:compression name:@"NSTIFFCompressionNEXT"]; - case NSTIFFCompressionPackBits: return [FSNamedNumber namedNumberWithDouble:compression name:@"NSTIFFCompressionPackBits"]; - case NSTIFFCompressionOldJPEG: return [FSNamedNumber namedNumberWithDouble:compression name:@"NSTIFFCompressionOldJPEG"]; - default: return [FSNumber numberWithDouble:compression]; - } -} +ENUMTOOBJ(TIFFCompression, + NSTIFFCompressionNone, + NSTIFFCompressionCCITTFAX3, + NSTIFFCompressionCCITTFAX4, + NSTIFFCompressionLZW, + NSTIFFCompressionJPEG, + NSTIFFCompressionNEXT, + NSTIFFCompressionPackBits, + NSTIFFCompressionOldJPEG + ); -static id objectFromTitlePosition(NSTitlePosition titlePosition) -{ - switch (titlePosition) - { - case NSNoTitle: return [FSNamedNumber namedNumberWithDouble:titlePosition name:@"NSNoTitle"]; - case NSAboveTop: return [FSNamedNumber namedNumberWithDouble:titlePosition name:@"NSAboveTop"]; - case NSAtTop: return [FSNamedNumber namedNumberWithDouble:titlePosition name:@"NSAtTop"]; - case NSBelowTop: return [FSNamedNumber namedNumberWithDouble:titlePosition name:@"NSBelowTop"]; - case NSAboveBottom: return [FSNamedNumber namedNumberWithDouble:titlePosition name:@"NSAboveBottom"]; - case NSAtBottom: return [FSNamedNumber namedNumberWithDouble:titlePosition name:@"NSAtBottom"]; - case NSBelowBottom: return [FSNamedNumber namedNumberWithDouble:titlePosition name:@"NSBelowBottom"]; - default: return [FSNumber numberWithDouble:titlePosition]; - } -} -static id objectFromTokenStyle(NSTokenStyle tokenStyle) -{ - switch (tokenStyle) - { - case NSDefaultTokenStyle: return [FSNamedNumber namedNumberWithDouble:tokenStyle name:@"NSDefaultTokenStyle"]; - case NSPlainTextTokenStyle: return [FSNamedNumber namedNumberWithDouble:tokenStyle name:@"NSPlainTextTokenStyle"]; - case NSRoundedTokenStyle: return [FSNamedNumber namedNumberWithDouble:tokenStyle name:@"NSRoundedTokenStyle"]; - default: return [FSNumber numberWithDouble:tokenStyle]; - } -} +ENUMTOOBJ(TitlePosition, + NSNoTitle, + NSAboveTop, + NSAtTop, + NSBelowTop, + NSAboveBottom, + NSAtBottom, + NSBelowBottom + ); -static id objectFromToolbarDisplayMode(NSToolbarDisplayMode toolbarDisplayMode) -{ - switch (toolbarDisplayMode) - { - case NSToolbarDisplayModeDefault: return [FSNamedNumber namedNumberWithDouble:toolbarDisplayMode name:@"NSToolbarDisplayModeDefault"]; - case NSToolbarDisplayModeIconAndLabel: return [FSNamedNumber namedNumberWithDouble:toolbarDisplayMode name:@"NSToolbarDisplayModeIconAndLabel"]; - case NSToolbarDisplayModeIconOnly: return [FSNamedNumber namedNumberWithDouble:toolbarDisplayMode name:@"NSToolbarDisplayModeIconOnly"]; - case NSToolbarDisplayModeLabelOnly: return [FSNamedNumber namedNumberWithDouble:toolbarDisplayMode name:@"NSToolbarDisplayModeLabelOnly"]; - default: return [FSNumber numberWithDouble:toolbarDisplayMode]; - } -} -static id objectFromToolbarItemVisibilityPriority(NSInteger priority) -{ - switch (priority) - { - case NSToolbarItemVisibilityPriorityStandard: return [FSNamedNumber namedNumberWithDouble:priority name:@"NSToolbarItemVisibilityPriorityStandard"]; - case NSToolbarItemVisibilityPriorityLow: return [FSNamedNumber namedNumberWithDouble:priority name:@"NSToolbarItemVisibilityPriorityLow"]; - case NSToolbarItemVisibilityPriorityHigh: return [FSNamedNumber namedNumberWithDouble:priority name:@"NSToolbarItemVisibilityPriorityHigh"]; - case NSToolbarItemVisibilityPriorityUser: return [FSNamedNumber namedNumberWithDouble:priority name:@"NSToolbarItemVisibilityPriorityUser"]; - default: return [FSNumber numberWithDouble:priority]; - } -} +ENUMTOOBJ(TokenStyle, + NSDefaultTokenStyle, + NSPlainTextTokenStyle, + NSRoundedTokenStyle + ); + + +ENUMTOOBJ(ToolbarDisplayMode, + NSToolbarDisplayModeDefault, + NSToolbarDisplayModeIconAndLabel, + NSToolbarDisplayModeIconOnly, + NSToolbarDisplayModeLabelOnly + ); + +typedef NSUInteger NSToolbarItemVisibilityPriority; +ENUMTOOBJ(ToolbarItemVisibilityPriority, + NSToolbarItemVisibilityPriorityStandard, + NSToolbarItemVisibilityPriorityLow, + NSToolbarItemVisibilityPriorityHigh, + NSToolbarItemVisibilityPriorityUser + ); + + +ENUMTOOBJ(ToolbarSizeMode, + NSToolbarSizeModeDefault, + NSToolbarSizeModeRegular, + NSToolbarSizeModeSmall + ); -static id objectFromToolbarSizeMode(NSToolbarSizeMode toolbarSizeMode) -{ - switch (toolbarSizeMode) - { - case NSToolbarSizeModeDefault: return [FSNamedNumber namedNumberWithDouble:toolbarSizeMode name:@"NSToolbarSizeModeDefault"]; - case NSToolbarSizeModeRegular: return [FSNamedNumber namedNumberWithDouble:toolbarSizeMode name:@"NSToolbarSizeModeRegular"]; - case NSToolbarSizeModeSmall: return [FSNamedNumber namedNumberWithDouble:toolbarSizeMode name:@"NSToolbarSizeModeSmall"]; - default: return [FSNumber numberWithDouble:toolbarSizeMode]; - } -} static id objectFromTrackingAreaOptions(NSTrackingAreaOptions mask) { @@ -1331,40 +1069,28 @@ static id objectFromTrackingAreaOptions(NSTrackingAreaOptions mask) } } -static id objectFromTypesetterBehavior(NSTypesetterBehavior typesetterBehavior) -{ - switch (typesetterBehavior) - { - case NSTypesetterLatestBehavior: return [FSNamedNumber namedNumberWithDouble:typesetterBehavior name:@"NSTypesetterLatestBehavior"]; - case NSTypesetterOriginalBehavior: return [FSNamedNumber namedNumberWithDouble:typesetterBehavior name:@"NSTypesetterOriginalBehavior"]; - case NSTypesetterBehavior_10_2_WithCompatibility: return [FSNamedNumber namedNumberWithDouble:typesetterBehavior name:@"NSTypesetterBehavior_10_2_WithCompatibility"]; - case NSTypesetterBehavior_10_2: return [FSNamedNumber namedNumberWithDouble:typesetterBehavior name:@"NSTypesetterBehavior_10_2"]; - case NSTypesetterBehavior_10_3: return [FSNamedNumber namedNumberWithDouble:typesetterBehavior name:@"NSTypesetterBehavior_10_3"]; - case NSTypesetterBehavior_10_4: return [FSNamedNumber namedNumberWithDouble:typesetterBehavior name:@"NSTypesetterBehavior_10_4"]; - default: return [FSNumber numberWithDouble:typesetterBehavior]; - } -} +ENUMTOOBJ(TypesetterBehavior, + NSTypesetterLatestBehavior, + NSTypesetterOriginalBehavior, + NSTypesetterBehavior_10_2_WithCompatibility, + NSTypesetterBehavior_10_2, + NSTypesetterBehavior_10_3, + NSTypesetterBehavior_10_4 + ); + + +ENUMTOOBJ(UsableScrollerParts, + NSNoScrollerParts, + NSOnlyScrollerArrows, + NSAllScrollerParts + ); + + +ENUMTOOBJ(WindingRule, + NSNonZeroWindingRule, + NSEvenOddWindingRule + ); -static id objectFromUsableScrollerParts(NSUsableScrollerParts usableScrollerParts) -{ - switch (usableScrollerParts) - { - case NSNoScrollerParts: return [FSNamedNumber namedNumberWithDouble:usableScrollerParts name:@"NSNoScrollerParts"]; - case NSOnlyScrollerArrows: return [FSNamedNumber namedNumberWithDouble:usableScrollerParts name:@"NSOnlyScrollerArrows"]; - case NSAllScrollerParts: return [FSNamedNumber namedNumberWithDouble:usableScrollerParts name:@"NSAllScrollerParts"]; - default: return [FSNumber numberWithDouble:usableScrollerParts]; - } -} - -static id objectFromWindingRule(NSWindingRule windingRule) -{ - switch (windingRule) - { - case NSNonZeroWindingRule: return [FSNamedNumber namedNumberWithDouble:windingRule name:@"NSNonZeroWindingRule"]; - case NSEvenOddWindingRule: return [FSNamedNumber namedNumberWithDouble:windingRule name:@"NSEvenOddWindingRule"]; - default: return [FSNumber numberWithDouble:windingRule]; - } -} static id objectFromWindowLevel(NSInteger windowLevel) { @@ -1400,38 +1126,26 @@ static id objectFromWindowMask(NSUInteger mask) } } -static id objectFromWindowBackingLocation(NSWindowBackingLocation windowBackingLocation) -{ - switch (windowBackingLocation) - { - case NSWindowBackingLocationDefault: return [FSNamedNumber namedNumberWithDouble:windowBackingLocation name:@"NSBackingStoreBuffered"]; - case NSWindowBackingLocationVideoMemory: return [FSNamedNumber namedNumberWithDouble:windowBackingLocation name:@"NSBackingStoreRetained"]; - case NSWindowBackingLocationMainMemory: return [FSNamedNumber namedNumberWithDouble:windowBackingLocation name:@"NSBackingStoreNonretained"]; - default: return [FSNumber numberWithDouble:windowBackingLocation]; - } -} +ENUMTOOBJ(WindowBackingLocation, + NSWindowBackingLocationDefault, + NSWindowBackingLocationVideoMemory, + NSWindowBackingLocationMainMemory + ); -static id objectFromWindowCollectionBehavior(NSWindowCollectionBehavior windowCollectionBehavior) -{ - switch (windowCollectionBehavior) - { - case NSWindowCollectionBehaviorDefault: return [FSNamedNumber namedNumberWithDouble:windowCollectionBehavior name:@"NSWindowCollectionBehaviorDefault"]; - case NSWindowCollectionBehaviorCanJoinAllSpaces: return [FSNamedNumber namedNumberWithDouble:windowCollectionBehavior name:@"NSWindowCollectionBehaviorCanJoinAllSpaces"]; - case NSWindowCollectionBehaviorMoveToActiveSpace: return [FSNamedNumber namedNumberWithDouble:windowCollectionBehavior name:@"NSWindowCollectionBehaviorMoveToActiveSpace"]; - default: return [FSNumber numberWithDouble:windowCollectionBehavior]; - } -} -static id objectFromWindowSharingType(NSWindowSharingType windowSharingType) -{ - switch (windowSharingType) - { - case NSWindowSharingNone: return [FSNamedNumber namedNumberWithDouble:windowSharingType name:@"NSWindowSharingNone"]; - case NSWindowSharingReadOnly: return [FSNamedNumber namedNumberWithDouble:windowSharingType name:@"NSWindowSharingReadOnly"]; - case NSWindowSharingReadWrite: return [FSNamedNumber namedNumberWithDouble:windowSharingType name:@"NSWindowSharingReadWrite"]; - default: return [FSNumber numberWithDouble:windowSharingType]; - } -} +ENUMTOOBJ(WindowCollectionBehavior, + NSWindowCollectionBehaviorDefault, + NSWindowCollectionBehaviorCanJoinAllSpaces, + NSWindowCollectionBehaviorMoveToActiveSpace + ); + + +ENUMTOOBJ(WindowSharingType, + NSWindowSharingNone, + NSWindowSharingReadOnly, + NSWindowSharingReadWrite + ); + /*static id objectFromWindowOrderingMode(NSWindowOrderingMode orderingMode) { @@ -1444,16 +1158,12 @@ static id objectFromWindowSharingType(NSWindowSharingType windowSharingType) } }*/ -static id objectFromWritingDirection(NSWritingDirection writingDirection) -{ - switch (writingDirection) - { - case NSWritingDirectionNatural: return [FSNamedNumber namedNumberWithDouble:writingDirection name:@"NSWritingDirectionNatural"]; - case NSWritingDirectionLeftToRight: return [FSNamedNumber namedNumberWithDouble:writingDirection name:@"NSWritingDirectionLeftToRight"]; - case NSWritingDirectionRightToLeft: return [FSNamedNumber namedNumberWithDouble:writingDirection name:@"NSWritingDirectionRightToLeft"]; - default: return [FSNumber numberWithDouble:writingDirection]; - } -} +ENUMTOOBJ(WritingDirection, + NSWritingDirectionNatural, + NSWritingDirectionLeftToRight, + NSWritingDirectionRightToLeft + ); + @implementation FSObjectBrowserView (FSObjectBrowserViewObjectInfo) @@ -4041,7 +3751,7 @@ - (void)processNSControl:(id)object ADD_DICTIONARY( [o formattingDictionary] ,@"Formatting dictionary") ADD_OBJECT_NOT_NIL([o formattingStringsFilename] ,@"Formatting strings filename") ADD_BOOL( [o isEditable] ,@"Is editable") - ADD_OBJECT(objectFromNestingMode([o nestingMode]) ,@"Nesting mode") + ADD_OBJECT(objectFromRuleEditorNestingMode([o nestingMode]) ,@"Nesting mode") ADD_NUMBER( [o numberOfRows] ,@"Number of rows") ADD_OBJECT( [o predicate] ,@"Predicate") ADD_OBJECT( [o rowClass] ,@"Row class") @@ -4213,6 +3923,7 @@ - (void)processNSControl:(id)object ADD_OBJECT( objectFromTextAlignment([o alignment]) ,@"Alignment") ADD_OBJECT(objectFromWritingDirection([o baseWritingDirection]) ,@"Base writing direction") ADD_OBJECT( [o cell] ,@"Cell") + ADD_OBJECT(objectFromControlSize([o controlSize]) ,@"Control size") ADD_OBJECT_NOT_NIL( [o currentEditor] ,@"Current editor") ADD_OBJECT( [o font] ,@"Font") ADD_OBJECT( [o formatter] ,@"Formatter") @@ -4370,4 +4081,4 @@ - (void)processNSWindow:(id)object ADD_BOOL( [o worksWhenModal] ,@"Works when modal") } } -@end \ No newline at end of file +@end diff --git a/FScriptFramework/Util.h b/FScriptFramework/Util.h new file mode 100644 index 0000000..4919880 --- /dev/null +++ b/FScriptFramework/Util.h @@ -0,0 +1,219 @@ +/* + CHDataStructures.framework -- Util.h + + Copyright (c) 2008-2010, Quinn Taylor + + This source code is released under the ISC License. + + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. + + The software is provided "as is", without warranty of any kind, including all implied warranties of merchantability and fitness. 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. + */ + +#import + +/** + @file Util.h + A group of utility C functions for simplifying common exceptions and logging. + */ + +/** Macro for reducing visibility of symbol names not indended to be exported. */ +#define HIDDEN __attribute__((visibility("hidden"))) + +/** Macro for designating symbols as being unused to suppress compile warnings. */ +#define UNUSED __attribute__((unused)) + +#pragma mark - + +// NSInteger/NSUInteger are new in Leopard; define if on an earlier OS version. +#ifndef NSINTEGER_DEFINED + #if __LP64__ || NS_BUILD_32_LIKE_64 + typedef long NSInteger; + typedef unsigned long NSUInteger; + #else + typedef int NSInteger; + typedef unsigned int NSUInteger; + #endif + + #define NSIntegerMax LONG_MAX + #define NSIntegerMin LONG_MIN + #define NSUIntegerMax ULONG_MAX + + #define NSINTEGER_DEFINED 1 +#endif + +#pragma mark - + +// For iOS, define enum and dummy functions used for Garbage Collection. +#if (TARGET_OS_IPHONE || TARGET_OS_EMBEDDED || !TARGET_OS_MAC) + +enum { + NSScannedOption = (1UL << 0), + NSCollectorDisabledOption = (1UL << 1), +}; + +void* NSAllocateCollectable(NSUInteger size, NSUInteger options); + +void* NSReallocateCollectable(void *ptr, NSUInteger size, NSUInteger options); + +#define objc_memmove_collectable memmove + +#else + +// This is declared in , but importing the header is overkill. +HIDDEN void* objc_memmove_collectable(void *dst, const void *src, size_t size); + +#endif + +#pragma mark - + +/** Global variable to simplify checking if garbage collection is enabled. */ +OBJC_EXPORT BOOL kCHGarbageCollectionNotEnabled; + +/** Global variable to store the size of a pointer only once. */ +OBJC_EXPORT size_t kCHPointerSize; + +/** + Simple function for checking object equality, to be used as a function pointer. + + @param o1 The first object to be compared. + @param o2 The second object to be compared. + @return [o1 isEqual:o2] + */ +HIDDEN BOOL objectsAreEqual(id o1, id o2); + +/** + Simple function for checking object identity, to be used as a function pointer. + + @param o1 The first object to be compared. + @param o2 The second object to be compared. + @return o1 == o2 + */ +HIDDEN BOOL objectsAreIdentical(id o1, id o2); + +/** + Determine whether two collections enumerate the equivalent objects in the same order. + + @param collection1 The first collection to be compared. + @param collection2 The second collection to be compared. + @return Whether the collections are equivalent. + + @throw NSInvalidArgumentException if one of both of the arguments do not respond to the @c -count or @c -objectEnumerator selectors. + */ +OBJC_EXPORT BOOL collectionsAreEqual(id collection1, id collection2); + +/** + Generate a hash for a collection based on the count and up to two objects. If objects are provided, the result of their -hash method will be used. + + @param count The number of objects in the collection. + @param o1 The first object to include in the hash. + @param o2 The second object to include in the hash. + @return An unsigned integer that can be used as a table address in a hash table structure. + */ +HIDDEN NSUInteger hashOfCountAndObjects(NSUInteger count, id o1, id o2); + +#pragma mark - + +/** + Convenience function for raising an exception for an invalid range (index). + + Currently, there is no support for calling this function from a C function. + + @param aClass The class object for the originator of the exception. Callers should pass the result of [self class] for this parameter. + @param method The method selector where the problem originated. Callers should pass @c _cmd for this parameter. + @param index The offending index passed to the receiver. + @param elements The number of elements present in the receiver. + + @throw NSRangeException + + @see \link NSException#raise:format: +[NSException raise:format:]\endlink + */ +OBJC_EXPORT void CHIndexOutOfRangeException(Class aClass, SEL method, + NSUInteger index, NSUInteger elements); + +/** + Convenience function for raising an exception on an invalid argument. + + Currently, there is no support for calling this function from a C function. + + @param aClass The class object for the originator of the exception. Callers should pass the result of [self class] for this parameter. + @param method The method selector where the problem originated. Callers should pass @c _cmd for this parameter. + @param str An NSString describing the offending invalid argument. + + @throw NSInvalidArgumentException + + @see \link NSException#raise:format: +[NSException raise:format:]\endlink + */ +OBJC_EXPORT void CHInvalidArgumentException(Class aClass, SEL method, NSString *str); + +/** + Convenience function for raising an exception on an invalid nil object argument. + + Currently, there is no support for calling this function from a C function. + + @param aClass The class object for the originator of the exception. Callers should pass the result of [self class] for this parameter. + @param method The method selector where the problem originated. Callers should pass @c _cmd for this parameter. + + @throw NSInvalidArgumentException + + @see CHInvalidArgumentException() + */ +OBJC_EXPORT void CHNilArgumentException(Class aClass, SEL method); + +/** + Convenience function for raising an exception when a collection is mutated. + + Currently, there is no support for calling this function from a C function. + + @param aClass The class object for the originator of the exception. Callers should pass the result of [self class] for this parameter. + @param method The method selector where the problem originated. Callers should pass @c _cmd for this parameter. + + @throw NSGenericException + + @see \link NSException#raise:format: +[NSException raise:format:]\endlink + */ +OBJC_EXPORT void CHMutatedCollectionException(Class aClass, SEL method); + +/** + Convenience function for raising an exception for un-implemented functionality. + + Currently, there is no support for calling this function from a C function. + + @param aClass The class object for the originator of the exception. Callers should pass the result of [self class] for this parameter. + @param method The method selector where the problem originated. Callers should pass @c _cmd for this parameter. + + @throw NSInternalInconsistencyException + + @see \link NSException#raise:format: +[NSException raise:format:]\endlink + */ +OBJC_EXPORT void CHUnsupportedOperationException(Class aClass, SEL method); + +/** + Provides a more terse alternative to NSLog() which accepts the same parameters. The output is made shorter by excluding the date stamp and process information which NSLog prints before the actual specified output. + + @param format A format string, which must not be nil. + @param ... A comma-separated list of arguments to substitute into @a format. + + Read Formatting String Objects and String Format Specifiers on this webpage for details about using format strings. Look for examples that use @c NSLog() since the parameters and syntax are idential. + */ +OBJC_EXPORT void CHQuietLog(NSString *format, ...); + +/** + A macro for including the source file and line number where a log occurred. + + @param format A format string, which must not be nil. + @param ... A comma-separated list of arguments to substitute into @a format. + + This is defined as a compiler macro so it can automatically fill in the file name and line number where the call was made. After printing these values in brackets, this macro calls #CHQuietLog with @a format and any other arguments supplied afterward. + + @see CHQuietLog + */ +#ifndef CHLocationLog +#define CHLocationLog(format,...) \ +{ \ + NSString *file = [[NSString alloc] initWithUTF8String:__FILE__]; \ + printf("[%s:%d] ", [[file lastPathComponent] UTF8String], __LINE__); \ + [file release]; \ + CHQuietLog((format),##__VA_ARGS__); \ +} +#endif diff --git a/FScriptFramework/Util.m b/FScriptFramework/Util.m new file mode 100644 index 0000000..6b79202 --- /dev/null +++ b/FScriptFramework/Util.m @@ -0,0 +1,131 @@ +/* + CHDataStructures.framework -- Util.m + + Copyright (c) 2008-2010, Quinn Taylor + + This source code is released under the ISC License. + + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. + + The software is provided "as is", without warranty of any kind, including all implied warranties of merchantability and fitness. 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. + */ + +#import "Util.h" +#import + +// For iOS, define enum and dummy functions used for Garbage Collection. +#if (TARGET_OS_IPHONE || TARGET_OS_EMBEDDED || !TARGET_OS_MAC) + +void* __strong NSAllocateCollectable(NSUInteger size, NSUInteger options) { + return malloc(size); +} + +void* __strong NSReallocateCollectable(void *ptr, NSUInteger size, NSUInteger options) { + return realloc(ptr, size); +} + +#endif + +#pragma mark - + +BOOL kCHGarbageCollectionNotEnabled; // A variable declared extern in Util.h +size_t kCHPointerSize = sizeof(void*); // A variable declared extern in Util.h + +/** + Determines GC status and sets @c kCHGarbageCollectionNotEnabled appropriately. + The 'constructor' attribute causes the function to be called automatically + before execution enters main(); in our case, when the shared library is loaded. + See http://stackoverflow.com/questions/2053029/ for GCC constructor details. + */ +__attribute__((constructor)) +void initializeGCStatus() { + // Discover whether garbage collection is enabled (if running on 10.5+). + // This bit of hackery avoids linking errors via indirect invocation. + // If NSGarbageCollector doesn't exist, NSClassFromString() returns nil. + // If it does exist, +defaultCollector will be non-nil if GC is enabled. + kCHGarbageCollectionNotEnabled = (objc_msgSend(NSClassFromString(@"NSGarbageCollector"), + @selector(defaultCollector)) == nil); +} + +BOOL objectsAreEqual(id o1, id o2) { + return [o1 isEqual:o2]; +} + +BOOL objectsAreIdentical(id o1, id o2) { + return (o1 == o2); +} + +BOOL collectionsAreEqual(id collection1, id collection2) { + if ((collection1 && ![collection1 respondsToSelector:@selector(count)]) || + (collection2 && ![collection2 respondsToSelector:@selector(count)])) + { + [NSException raise:NSInvalidArgumentException + format:@"Parameter does not respond to -count selector."]; + } + if (collection1 == collection2) + return YES; + if ([collection1 count] != [collection2 count]) + return NO; + NSEnumerator *otherObjects = [collection2 objectEnumerator]; + for (id anObject in collection1) { + if (![anObject isEqual:[otherObjects nextObject]]) + return NO; + } + return YES; +} + +NSUInteger hashOfCountAndObjects(NSUInteger count, id object1, id object2) { + NSUInteger hash = 17 * count ^ (count << 16); + return hash ^ (31*[object1 hash]) ^ ((31*[object2 hash]) << 4); +} + +#pragma mark - + +void CHIndexOutOfRangeException(Class aClass, SEL method, + NSUInteger index, NSUInteger count) { + [NSException raise:NSRangeException + format:@"[%@ %s] -- Index (%lu) beyond bounds for count (%lu)", + aClass, sel_getName(method), (unsigned long)index, (unsigned long)count]; +} + +void CHInvalidArgumentException(Class aClass, SEL method, NSString *string) { + [NSException raise:NSInvalidArgumentException + format:@"[%@ %s] -- %@", + aClass, sel_getName(method), string]; +} + +void CHNilArgumentException(Class aClass, SEL method) { + CHInvalidArgumentException(aClass, method, @"Invalid nil argument"); +} + +void CHMutatedCollectionException(Class aClass, SEL method) { + [NSException raise:NSGenericException + format:@"[%@ %s] -- Collection was mutated during enumeration", + aClass, sel_getName(method)]; +} + +void CHUnsupportedOperationException(Class aClass, SEL method) { + [NSException raise:NSInternalInconsistencyException + format:@"[%@ %s] -- Unsupported operation", + aClass, sel_getName(method)]; +} + +void CHQuietLog(NSString *format, ...) { + if (format == nil) { + printf("(null)\n"); + return; + } + // Get a reference to the arguments that follow the format parameter + va_list argList; + va_start(argList, format); + // Do format string argument substitution, reinstate %% escapes, then print + NSMutableString *string = [[NSMutableString alloc] initWithFormat:format + arguments:argList]; + va_end(argList); + NSRange range; + range.location = 0; + range.length = [string length]; + [string replaceOccurrencesOfString:@"%%" withString:@"%%%%" options:0 range:range]; + printf("%s\n", [string UTF8String]); + [string release]; +} diff --git a/FScriptFramework/metamacros.h b/FScriptFramework/metamacros.h new file mode 100644 index 0000000..b15ba67 --- /dev/null +++ b/FScriptFramework/metamacros.h @@ -0,0 +1,772 @@ +/** + * Macros for metaprogramming + * ExtendedC + * + * Copyright (C) 2012 Justin Spahr-Summers + * Released under the MIT license + */ + +#ifndef EXTC_METAMACROS_H +#define EXTC_METAMACROS_H + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +/** + * Executes one or more expressions (which may have a void type, such as a call + * to a function that returns no value) and always returns true. + */ +#define metamacro_exprify(...) \ + ((__VA_ARGS__), true) + +/** + * Returns a string representation of VALUE after full macro expansion. + */ +#define metamacro_stringify(VALUE) \ + metamacro_stringify_(VALUE) + +/** + * Returns A and B concatenated after full macro expansion. + */ +#define metamacro_concat(A, B) \ + metamacro_concat_(A, B) + +/** + * Returns the Nth variadic argument (starting from zero). At least + * N + 1 variadic arguments must be given. N must be between zero and twenty, + * inclusive. + */ +#define metamacro_at(N, ...) \ + metamacro_concat(metamacro_at, N)(__VA_ARGS__) + +/** + * Returns the number of arguments (up to twenty) provided to the macro. At + * least one argument must be provided. + * + * Inspired by P99: http://p99.gforge.inria.fr + */ +#define metamacro_argcount(...) \ + metamacro_at(25, __VA_ARGS__, 25, 24, 23, 22 ,21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1) + +/** + * Identical to #metamacro_foreach_cxt, except that no CONTEXT argument is + * given. Only the index and current argument will thus be passed to MACRO. + */ +#define metamacro_foreach(MACRO, SEP, ...) \ + metamacro_foreach_cxt(metamacro_foreach_iter, SEP, MACRO, __VA_ARGS__) + +/** + * For each consecutive variadic argument (up to twenty), MACRO is passed the + * zero-based index of the current argument, CONTEXT, and then the argument + * itself. The results of adjoining invocations of MACRO are then separated by + * SEP. + * + * Inspired by P99: http://p99.gforge.inria.fr + */ +#define metamacro_foreach_cxt(MACRO, SEP, CONTEXT, ...) \ + metamacro_concat(metamacro_foreach_cxt, metamacro_argcount(__VA_ARGS__))(MACRO, SEP, CONTEXT, __VA_ARGS__) + +/** + * Identical to #metamacro_foreach_cxt. This can be used when the former would + * fail due to recursive macro expansion. + */ +#define metamacro_foreach_cxt_recursive(MACRO, SEP, CONTEXT, ...) \ + metamacro_concat(metamacro_foreach_cxt_recursive, metamacro_argcount(__VA_ARGS__))(MACRO, SEP, CONTEXT, __VA_ARGS__) + +/** + * In consecutive order, appends each variadic argument (up to twenty) onto + * BASE. The resulting concatenations are then separated by SEP. + * + * This is primarily useful to manipulate a list of macro invocations into instead + * invoking a different, possibly related macro. + */ +#define metamacro_foreach_concat(BASE, SEP, ...) \ + metamacro_foreach_cxt(metamacro_foreach_concat_iter, SEP, BASE, __VA_ARGS__) + +/** + * Iterates COUNT times, each time invoking MACRO with the current index + * (starting at zero) and CONTEXT. The results of adjoining invocations of MACRO + * are then separated by SEP. + * + * COUNT must be an integer between zero and twenty, inclusive. + */ +#define metamacro_for_cxt(COUNT, MACRO, SEP, CONTEXT) \ + metamacro_concat(metamacro_for_cxt, COUNT)(MACRO, SEP, CONTEXT) + +/** + * Returns the first argument given. At least one argument must be provided. + * + * This is useful when implementing a variadic macro, where you may have only + * one variadic argument, but no way to retrieve it (for example, because \c ... + * always needs to match at least one argument). + * + * @code + +#define varmacro(...) \ + metamacro_head(__VA_ARGS__) + + * @endcode + */ +#define metamacro_head(...) \ + metamacro_head_(__VA_ARGS__, 0) + +/** + * Returns every argument except the first. At least two arguments must be + * provided. + */ +#define metamacro_tail(...) \ + metamacro_tail_(__VA_ARGS__) + +/** + * Returns the first N (up to twenty) variadic arguments as a new argument list. + * At least N variadic arguments must be provided. + */ +#define metamacro_take(N, ...) \ + metamacro_concat(metamacro_take, N)(__VA_ARGS__) + +/** + * Removes the first N (up to twenty) variadic arguments from the given argument + * list. At least N variadic arguments must be provided. + */ +#define metamacro_drop(N, ...) \ + metamacro_concat(metamacro_drop, N)(__VA_ARGS__) + +/** + * Decrements VAL, which must be a number between zero and twenty, inclusive. + * + * This is primarily useful when dealing with indexes and counts in + * metaprogramming. + */ +#define metamacro_dec(VAL) \ + metamacro_at(VAL, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24) + +/** + * Increments VAL, which must be a number between zero and twenty, inclusive. + * + * This is primarily useful when dealing with indexes and counts in + * metaprogramming. + */ +#define metamacro_inc(VAL) \ + metamacro_at(VAL, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26) + +/** + * If A is equal to B, the next argument list is expanded; otherwise, the + * argument list after that is expanded. A and B must be numbers between zero + * and twenty, inclusive. Additionally, B must be greater than or equal to A. + * + * @code + +// expands to true +metamacro_if_eq(0, 0)(true)(false) + +// expands to false +metamacro_if_eq(0, 1)(true)(false) + + * @endcode + * + * This is primarily useful when dealing with indexes and counts in + * metaprogramming. + */ +#define metamacro_if_eq(A, B) \ + metamacro_concat(metamacro_if_eq, A)(B) + +/** + * Identical to #metamacro_if_eq. This can be used when the former would fail + * due to recursive macro expansion. + */ +#define metamacro_if_eq_recursive(A, B) \ + metamacro_concat(metamacro_if_eq_recursive, A)(B) + +/** + * Returns 1 if N is an even number, or 0 otherwise. N must be between zero and + * twenty, inclusive. + * + * For the purposes of this test, zero is considered even. + */ +#define metamacro_is_even(N) \ + metamacro_at(N, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1) + +/** + * Returns the logical NOT of B, which must be the number zero or one. + */ +#define metamacro_not(B) \ + metamacro_at(B, 1, 0) + +// IMPLEMENTATION DETAILS FOLLOW! +// Do not write code that depends on anything below this line. +#define metamacro_stringify_(VALUE) # VALUE +#define metamacro_concat_(A, B) A ## B +#define metamacro_foreach_iter(INDEX, MACRO, ARG) MACRO(INDEX, ARG) +#define metamacro_head_(FIRST, ...) FIRST +#define metamacro_tail_(FIRST, ...) __VA_ARGS__ +#define metamacro_consume_(...) +#define metamacro_expand_(...) __VA_ARGS__ + +// implemented from scratch so that metamacro_concat() doesn't end up nesting +#define metamacro_foreach_concat_iter(INDEX, BASE, ARG) metamacro_foreach_concat_iter_(BASE, ARG) +#define metamacro_foreach_concat_iter_(BASE, ARG) BASE ## ARG + +// metamacro_at expansions +#define metamacro_at0(...) metamacro_head(__VA_ARGS__) +#define metamacro_at1(_0, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at2(_0, _1, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at3(_0, _1, _2, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at4(_0, _1, _2, _3, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at5(_0, _1, _2, _3, _4, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at6(_0, _1, _2, _3, _4, _5, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at7(_0, _1, _2, _3, _4, _5, _6, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at8(_0, _1, _2, _3, _4, _5, _6, _7, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at9(_0, _1, _2, _3, _4, _5, _6, _7, _8, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at10(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at11(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at12(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at13(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at14(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at15(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at16(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at17(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at18(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at19(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at20(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at21(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at22(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at23(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at24(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, ...) metamacro_head(__VA_ARGS__) +#define metamacro_at25(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, ...) metamacro_head(__VA_ARGS__) + +// metamacro_foreach_cxt expansions +#define metamacro_foreach_cxt0(MACRO, SEP, CONTEXT) +#define metamacro_foreach_cxt1(MACRO, SEP, CONTEXT, _0) MACRO(0, CONTEXT, _0) + +#define metamacro_foreach_cxt2(MACRO, SEP, CONTEXT, _0, _1) \ + metamacro_foreach_cxt1(MACRO, SEP, CONTEXT, _0) \ + SEP \ + MACRO(1, CONTEXT, _1) + +#define metamacro_foreach_cxt3(MACRO, SEP, CONTEXT, _0, _1, _2) \ + metamacro_foreach_cxt2(MACRO, SEP, CONTEXT, _0, _1) \ + SEP \ + MACRO(2, CONTEXT, _2) + +#define metamacro_foreach_cxt4(MACRO, SEP, CONTEXT, _0, _1, _2, _3) \ + metamacro_foreach_cxt3(MACRO, SEP, CONTEXT, _0, _1, _2) \ + SEP \ + MACRO(3, CONTEXT, _3) + +#define metamacro_foreach_cxt5(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4) \ + metamacro_foreach_cxt4(MACRO, SEP, CONTEXT, _0, _1, _2, _3) \ + SEP \ + MACRO(4, CONTEXT, _4) + +#define metamacro_foreach_cxt6(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5) \ + metamacro_foreach_cxt5(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4) \ + SEP \ + MACRO(5, CONTEXT, _5) + +#define metamacro_foreach_cxt7(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6) \ + metamacro_foreach_cxt6(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5) \ + SEP \ + MACRO(6, CONTEXT, _6) + +#define metamacro_foreach_cxt8(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7) \ + metamacro_foreach_cxt7(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6) \ + SEP \ + MACRO(7, CONTEXT, _7) + +#define metamacro_foreach_cxt9(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8) \ + metamacro_foreach_cxt8(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7) \ + SEP \ + MACRO(8, CONTEXT, _8) + +#define metamacro_foreach_cxt10(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9) \ + metamacro_foreach_cxt9(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8) \ + SEP \ + MACRO(9, CONTEXT, _9) + +#define metamacro_foreach_cxt11(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10) \ + metamacro_foreach_cxt10(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9) \ + SEP \ + MACRO(10, CONTEXT, _10) + +#define metamacro_foreach_cxt12(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11) \ + metamacro_foreach_cxt11(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10) \ + SEP \ + MACRO(11, CONTEXT, _11) + +#define metamacro_foreach_cxt13(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12) \ + metamacro_foreach_cxt12(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11) \ + SEP \ + MACRO(12, CONTEXT, _12) + +#define metamacro_foreach_cxt14(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13) \ + metamacro_foreach_cxt13(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12) \ + SEP \ + MACRO(13, CONTEXT, _13) + +#define metamacro_foreach_cxt15(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14) \ + metamacro_foreach_cxt14(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13) \ + SEP \ + MACRO(14, CONTEXT, _14) + +#define metamacro_foreach_cxt16(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15) \ + metamacro_foreach_cxt15(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14) \ + SEP \ + MACRO(15, CONTEXT, _15) + +#define metamacro_foreach_cxt17(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) \ + metamacro_foreach_cxt16(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15) \ + SEP \ + MACRO(16, CONTEXT, _16) + +#define metamacro_foreach_cxt18(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) \ + metamacro_foreach_cxt17(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) \ + SEP \ + MACRO(17, CONTEXT, _17) + +#define metamacro_foreach_cxt19(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \ + metamacro_foreach_cxt18(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) \ + SEP \ + MACRO(18, CONTEXT, _18) + +#define metamacro_foreach_cxt20(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19) \ + metamacro_foreach_cxt19(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \ + SEP \ + MACRO(19, CONTEXT, _19) + +#define metamacro_foreach_cxt21(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20) \ + metamacro_foreach_cxt20(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19) \ + SEP \ + MACRO(20, CONTEXT, _20) + +#define metamacro_foreach_cxt22(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21) \ + metamacro_foreach_cxt21(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20) \ + SEP \ + MACRO(21, CONTEXT, _21) + +#define metamacro_foreach_cxt23(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22) \ + metamacro_foreach_cxt22(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21) \ + SEP \ + MACRO(22, CONTEXT, _22) + +#define metamacro_foreach_cxt24(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) \ + metamacro_foreach_cxt23(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22) \ + SEP \ + MACRO(23, CONTEXT, _23) + +#define metamacro_foreach_cxt25(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) \ + metamacro_foreach_cxt24(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) \ + SEP \ + MACRO(24, CONTEXT, _24) + +// metamacro_foreach_cxt_recursive expansions +#define metamacro_foreach_cxt_recursive0(MACRO, SEP, CONTEXT) +#define metamacro_foreach_cxt_recursive1(MACRO, SEP, CONTEXT, _0) MACRO(0, CONTEXT, _0) + +#define metamacro_foreach_cxt_recursive2(MACRO, SEP, CONTEXT, _0, _1) \ + metamacro_foreach_cxt_recursive1(MACRO, SEP, CONTEXT, _0) \ + SEP \ + MACRO(1, CONTEXT, _1) + +#define metamacro_foreach_cxt_recursive3(MACRO, SEP, CONTEXT, _0, _1, _2) \ + metamacro_foreach_cxt_recursive2(MACRO, SEP, CONTEXT, _0, _1) \ + SEP \ + MACRO(2, CONTEXT, _2) + +#define metamacro_foreach_cxt_recursive4(MACRO, SEP, CONTEXT, _0, _1, _2, _3) \ + metamacro_foreach_cxt_recursive3(MACRO, SEP, CONTEXT, _0, _1, _2) \ + SEP \ + MACRO(3, CONTEXT, _3) + +#define metamacro_foreach_cxt_recursive5(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4) \ + metamacro_foreach_cxt_recursive4(MACRO, SEP, CONTEXT, _0, _1, _2, _3) \ + SEP \ + MACRO(4, CONTEXT, _4) + +#define metamacro_foreach_cxt_recursive6(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5) \ + metamacro_foreach_cxt_recursive5(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4) \ + SEP \ + MACRO(5, CONTEXT, _5) + +#define metamacro_foreach_cxt_recursive7(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6) \ + metamacro_foreach_cxt_recursive6(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5) \ + SEP \ + MACRO(6, CONTEXT, _6) + +#define metamacro_foreach_cxt_recursive8(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7) \ + metamacro_foreach_cxt_recursive7(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6) \ + SEP \ + MACRO(7, CONTEXT, _7) + +#define metamacro_foreach_cxt_recursive9(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8) \ + metamacro_foreach_cxt_recursive8(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7) \ + SEP \ + MACRO(8, CONTEXT, _8) + +#define metamacro_foreach_cxt_recursive10(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9) \ + metamacro_foreach_cxt_recursive9(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8) \ + SEP \ + MACRO(9, CONTEXT, _9) + +#define metamacro_foreach_cxt_recursive11(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10) \ + metamacro_foreach_cxt_recursive10(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9) \ + SEP \ + MACRO(10, CONTEXT, _10) + +#define metamacro_foreach_cxt_recursive12(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11) \ + metamacro_foreach_cxt_recursive11(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10) \ + SEP \ + MACRO(11, CONTEXT, _11) + +#define metamacro_foreach_cxt_recursive13(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12) \ + metamacro_foreach_cxt_recursive12(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11) \ + SEP \ + MACRO(12, CONTEXT, _12) + +#define metamacro_foreach_cxt_recursive14(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13) \ + metamacro_foreach_cxt_recursive13(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12) \ + SEP \ + MACRO(13, CONTEXT, _13) + +#define metamacro_foreach_cxt_recursive15(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14) \ + metamacro_foreach_cxt_recursive14(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13) \ + SEP \ + MACRO(14, CONTEXT, _14) + +#define metamacro_foreach_cxt_recursive16(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15) \ + metamacro_foreach_cxt_recursive15(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14) \ + SEP \ + MACRO(15, CONTEXT, _15) + +#define metamacro_foreach_cxt_recursive17(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) \ + metamacro_foreach_cxt_recursive16(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15) \ + SEP \ + MACRO(16, CONTEXT, _16) + +#define metamacro_foreach_cxt_recursive18(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) \ + metamacro_foreach_cxt_recursive17(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) \ + SEP \ + MACRO(17, CONTEXT, _17) + +#define metamacro_foreach_cxt_recursive19(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \ + metamacro_foreach_cxt_recursive18(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) \ + SEP \ + MACRO(18, CONTEXT, _18) + +#define metamacro_foreach_cxt_recursive20(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19) \ + metamacro_foreach_cxt_recursive19(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \ + SEP \ + MACRO(19, CONTEXT, _19) + +#define metamacro_foreach_cxt_recursive21(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20) \ + metamacro_foreach_cxt_recursive20(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19) \ + SEP \ + MACRO(20, CONTEXT, _20) +#define metamacro_foreach_cxt_recursive22(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21) \ + metamacro_foreach_cxt_recursive21(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20) \ + SEP \ + MACRO(21, CONTEXT, _21) +#define metamacro_foreach_cxt_recursive23(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22) \ + metamacro_foreach_cxt_recursive22(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21) \ + SEP \ + MACRO(22, CONTEXT, _22) +#define metamacro_foreach_cxt_recursive24(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) \ + metamacro_foreach_cxt_recursive23(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22) \ + SEP \ + MACRO(23, CONTEXT, _23) +#define metamacro_foreach_cxt_recursive25(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) \ + metamacro_foreach_cxt_recursive24(MACRO, SEP, CONTEXT, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) \ + SEP \ + MACRO(24, CONTEXT, _24) + +// metamacro_for_cxt expansions +#define metamacro_for_cxt0(MACRO, SEP, CONTEXT) +#define metamacro_for_cxt1(MACRO, SEP, CONTEXT) MACRO(0, CONTEXT) + +#define metamacro_for_cxt2(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt1(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(1, CONTEXT) + +#define metamacro_for_cxt3(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt2(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(2, CONTEXT) + +#define metamacro_for_cxt4(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt3(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(3, CONTEXT) + +#define metamacro_for_cxt5(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt4(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(4, CONTEXT) + +#define metamacro_for_cxt6(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt5(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(5, CONTEXT) + +#define metamacro_for_cxt7(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt6(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(6, CONTEXT) + +#define metamacro_for_cxt8(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt7(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(7, CONTEXT) + +#define metamacro_for_cxt9(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt8(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(8, CONTEXT) + +#define metamacro_for_cxt10(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt9(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(9, CONTEXT) + +#define metamacro_for_cxt11(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt10(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(10, CONTEXT) + +#define metamacro_for_cxt12(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt11(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(11, CONTEXT) + +#define metamacro_for_cxt13(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt12(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(12, CONTEXT) + +#define metamacro_for_cxt14(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt13(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(13, CONTEXT) + +#define metamacro_for_cxt15(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt14(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(14, CONTEXT) + +#define metamacro_for_cxt16(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt15(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(15, CONTEXT) + +#define metamacro_for_cxt17(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt16(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(16, CONTEXT) + +#define metamacro_for_cxt18(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt17(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(17, CONTEXT) + +#define metamacro_for_cxt19(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt18(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(18, CONTEXT) + +#define metamacro_for_cxt20(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt19(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(19, CONTEXT) + +#define metamacro_for_cxt21(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt20(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(20, CONTEXT) +#define metamacro_for_cxt22(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt21(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(21, CONTEXT) +#define metamacro_for_cxt23(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt22(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(22, CONTEXT) +#define metamacro_for_cxt24(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt23(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(23, CONTEXT) +#define metamacro_for_cxt25(MACRO, SEP, CONTEXT) \ + metamacro_for_cxt24(MACRO, SEP, CONTEXT) \ + SEP \ + MACRO(24, CONTEXT) + +// metamacro_if_eq expansions +#define metamacro_if_eq0(VALUE) \ + metamacro_concat(metamacro_if_eq0_, VALUE) + +#define metamacro_if_eq0_0(...) __VA_ARGS__ metamacro_consume_ +#define metamacro_if_eq0_1(...) metamacro_expand_ +#define metamacro_if_eq0_2(...) metamacro_expand_ +#define metamacro_if_eq0_3(...) metamacro_expand_ +#define metamacro_if_eq0_4(...) metamacro_expand_ +#define metamacro_if_eq0_5(...) metamacro_expand_ +#define metamacro_if_eq0_6(...) metamacro_expand_ +#define metamacro_if_eq0_7(...) metamacro_expand_ +#define metamacro_if_eq0_8(...) metamacro_expand_ +#define metamacro_if_eq0_9(...) metamacro_expand_ +#define metamacro_if_eq0_10(...) metamacro_expand_ +#define metamacro_if_eq0_11(...) metamacro_expand_ +#define metamacro_if_eq0_12(...) metamacro_expand_ +#define metamacro_if_eq0_13(...) metamacro_expand_ +#define metamacro_if_eq0_14(...) metamacro_expand_ +#define metamacro_if_eq0_15(...) metamacro_expand_ +#define metamacro_if_eq0_16(...) metamacro_expand_ +#define metamacro_if_eq0_17(...) metamacro_expand_ +#define metamacro_if_eq0_18(...) metamacro_expand_ +#define metamacro_if_eq0_19(...) metamacro_expand_ +#define metamacro_if_eq0_20(...) metamacro_expand_ +#define metamacro_if_eq0_21(...) metamacro_expand_ +#define metamacro_if_eq0_22(...) metamacro_expand_ +#define metamacro_if_eq0_23(...) metamacro_expand_ +#define metamacro_if_eq0_24(...) metamacro_expand_ +#define metamacro_if_eq0_25(...) metamacro_expand_ + +#define metamacro_if_eq1(VALUE) metamacro_if_eq0(metamacro_dec(VALUE)) +#define metamacro_if_eq2(VALUE) metamacro_if_eq1(metamacro_dec(VALUE)) +#define metamacro_if_eq3(VALUE) metamacro_if_eq2(metamacro_dec(VALUE)) +#define metamacro_if_eq4(VALUE) metamacro_if_eq3(metamacro_dec(VALUE)) +#define metamacro_if_eq5(VALUE) metamacro_if_eq4(metamacro_dec(VALUE)) +#define metamacro_if_eq6(VALUE) metamacro_if_eq5(metamacro_dec(VALUE)) +#define metamacro_if_eq7(VALUE) metamacro_if_eq6(metamacro_dec(VALUE)) +#define metamacro_if_eq8(VALUE) metamacro_if_eq7(metamacro_dec(VALUE)) +#define metamacro_if_eq9(VALUE) metamacro_if_eq8(metamacro_dec(VALUE)) +#define metamacro_if_eq10(VALUE) metamacro_if_eq9(metamacro_dec(VALUE)) +#define metamacro_if_eq11(VALUE) metamacro_if_eq10(metamacro_dec(VALUE)) +#define metamacro_if_eq12(VALUE) metamacro_if_eq11(metamacro_dec(VALUE)) +#define metamacro_if_eq13(VALUE) metamacro_if_eq12(metamacro_dec(VALUE)) +#define metamacro_if_eq14(VALUE) metamacro_if_eq13(metamacro_dec(VALUE)) +#define metamacro_if_eq15(VALUE) metamacro_if_eq14(metamacro_dec(VALUE)) +#define metamacro_if_eq16(VALUE) metamacro_if_eq15(metamacro_dec(VALUE)) +#define metamacro_if_eq17(VALUE) metamacro_if_eq16(metamacro_dec(VALUE)) +#define metamacro_if_eq18(VALUE) metamacro_if_eq17(metamacro_dec(VALUE)) +#define metamacro_if_eq19(VALUE) metamacro_if_eq18(metamacro_dec(VALUE)) +#define metamacro_if_eq20(VALUE) metamacro_if_eq19(metamacro_dec(VALUE)) +#define metamacro_if_eq21(VALUE) metamacro_if_eq20(metamacro_dec(VALUE)) +#define metamacro_if_eq22(VALUE) metamacro_if_eq21(metamacro_dec(VALUE)) +#define metamacro_if_eq23(VALUE) metamacro_if_eq22(metamacro_dec(VALUE)) +#define metamacro_if_eq24(VALUE) metamacro_if_eq23(metamacro_dec(VALUE)) +#define metamacro_if_eq25(VALUE) metamacro_if_eq24(metamacro_dec(VALUE)) + +// metamacro_if_eq_recursive expansions +#define metamacro_if_eq_recursive0(VALUE) \ + metamacro_concat(metamacro_if_eq_recursive0_, VALUE) + +#define metamacro_if_eq_recursive0_0(...) __VA_ARGS__ metamacro_consume_ +#define metamacro_if_eq_recursive0_1(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_2(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_3(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_4(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_5(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_6(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_7(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_8(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_9(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_10(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_11(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_12(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_13(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_14(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_15(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_16(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_17(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_18(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_19(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_20(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_21(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_22(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_23(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_24(...) metamacro_expand_ +#define metamacro_if_eq_recursive0_25(...) metamacro_expand_ + +#define metamacro_if_eq_recursive1(VALUE) metamacro_if_eq_recursive0(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive2(VALUE) metamacro_if_eq_recursive1(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive3(VALUE) metamacro_if_eq_recursive2(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive4(VALUE) metamacro_if_eq_recursive3(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive5(VALUE) metamacro_if_eq_recursive4(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive6(VALUE) metamacro_if_eq_recursive5(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive7(VALUE) metamacro_if_eq_recursive6(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive8(VALUE) metamacro_if_eq_recursive7(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive9(VALUE) metamacro_if_eq_recursive8(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive10(VALUE) metamacro_if_eq_recursive9(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive11(VALUE) metamacro_if_eq_recursive10(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive12(VALUE) metamacro_if_eq_recursive11(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive13(VALUE) metamacro_if_eq_recursive12(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive14(VALUE) metamacro_if_eq_recursive13(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive15(VALUE) metamacro_if_eq_recursive14(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive16(VALUE) metamacro_if_eq_recursive15(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive17(VALUE) metamacro_if_eq_recursive16(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive18(VALUE) metamacro_if_eq_recursive17(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive19(VALUE) metamacro_if_eq_recursive18(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive20(VALUE) metamacro_if_eq_recursive19(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive21(VALUE) metamacro_if_eq_recursive20(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive22(VALUE) metamacro_if_eq_recursive21(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive23(VALUE) metamacro_if_eq_recursive22(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive24(VALUE) metamacro_if_eq_recursive23(metamacro_dec(VALUE)) +#define metamacro_if_eq_recursive25(VALUE) metamacro_if_eq_recursive24(metamacro_dec(VALUE)) + +// metamacro_take expansions +#define metamacro_take0(...) +#define metamacro_take1(...) metamacro_head(__VA_ARGS__) +#define metamacro_take2(...) metamacro_head(__VA_ARGS__), metamacro_take1(metamacro_tail(__VA_ARGS__)) +#define metamacro_take3(...) metamacro_head(__VA_ARGS__), metamacro_take2(metamacro_tail(__VA_ARGS__)) +#define metamacro_take4(...) metamacro_head(__VA_ARGS__), metamacro_take3(metamacro_tail(__VA_ARGS__)) +#define metamacro_take5(...) metamacro_head(__VA_ARGS__), metamacro_take4(metamacro_tail(__VA_ARGS__)) +#define metamacro_take6(...) metamacro_head(__VA_ARGS__), metamacro_take5(metamacro_tail(__VA_ARGS__)) +#define metamacro_take7(...) metamacro_head(__VA_ARGS__), metamacro_take6(metamacro_tail(__VA_ARGS__)) +#define metamacro_take8(...) metamacro_head(__VA_ARGS__), metamacro_take7(metamacro_tail(__VA_ARGS__)) +#define metamacro_take9(...) metamacro_head(__VA_ARGS__), metamacro_take8(metamacro_tail(__VA_ARGS__)) +#define metamacro_take10(...) metamacro_head(__VA_ARGS__), metamacro_take9(metamacro_tail(__VA_ARGS__)) +#define metamacro_take11(...) metamacro_head(__VA_ARGS__), metamacro_take10(metamacro_tail(__VA_ARGS__)) +#define metamacro_take12(...) metamacro_head(__VA_ARGS__), metamacro_take11(metamacro_tail(__VA_ARGS__)) +#define metamacro_take13(...) metamacro_head(__VA_ARGS__), metamacro_take12(metamacro_tail(__VA_ARGS__)) +#define metamacro_take14(...) metamacro_head(__VA_ARGS__), metamacro_take13(metamacro_tail(__VA_ARGS__)) +#define metamacro_take15(...) metamacro_head(__VA_ARGS__), metamacro_take14(metamacro_tail(__VA_ARGS__)) +#define metamacro_take16(...) metamacro_head(__VA_ARGS__), metamacro_take15(metamacro_tail(__VA_ARGS__)) +#define metamacro_take17(...) metamacro_head(__VA_ARGS__), metamacro_take16(metamacro_tail(__VA_ARGS__)) +#define metamacro_take18(...) metamacro_head(__VA_ARGS__), metamacro_take17(metamacro_tail(__VA_ARGS__)) +#define metamacro_take19(...) metamacro_head(__VA_ARGS__), metamacro_take18(metamacro_tail(__VA_ARGS__)) +#define metamacro_take20(...) metamacro_head(__VA_ARGS__), metamacro_take19(metamacro_tail(__VA_ARGS__)) +#define metamacro_take21(...) metamacro_head(__VA_ARGS__), metamacro_take20(metamacro_tail(__VA_ARGS__)) +#define metamacro_take22(...) metamacro_head(__VA_ARGS__), metamacro_take21(metamacro_tail(__VA_ARGS__)) +#define metamacro_take23(...) metamacro_head(__VA_ARGS__), metamacro_take22(metamacro_tail(__VA_ARGS__)) +#define metamacro_take24(...) metamacro_head(__VA_ARGS__), metamacro_take23(metamacro_tail(__VA_ARGS__)) +#define metamacro_take25(...) metamacro_head(__VA_ARGS__), metamacro_take24(metamacro_tail(__VA_ARGS__)) + +// metamacro_drop expansions +#define metamacro_drop0(...) __VA_ARGS__ +#define metamacro_drop1(...) metamacro_tail(__VA_ARGS__) +#define metamacro_drop2(...) metamacro_drop1(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop3(...) metamacro_drop2(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop4(...) metamacro_drop3(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop5(...) metamacro_drop4(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop6(...) metamacro_drop5(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop7(...) metamacro_drop6(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop8(...) metamacro_drop7(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop9(...) metamacro_drop8(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop10(...) metamacro_drop9(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop11(...) metamacro_drop10(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop12(...) metamacro_drop11(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop13(...) metamacro_drop12(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop14(...) metamacro_drop13(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop15(...) metamacro_drop14(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop16(...) metamacro_drop15(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop17(...) metamacro_drop16(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop18(...) metamacro_drop17(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop19(...) metamacro_drop18(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop20(...) metamacro_drop19(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop21(...) metamacro_drop20(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop22(...) metamacro_drop21(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop23(...) metamacro_drop22(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop24(...) metamacro_drop23(metamacro_tail(__VA_ARGS__)) +#define metamacro_drop25(...) metamacro_drop24(metamacro_tail(__VA_ARGS__)) + +#endif From a627fd617f94bedefb1361de3bb0ced57764daf5 Mon Sep 17 00:00:00 2001 From: Ant Date: Sun, 16 Nov 2014 17:58:26 +0000 Subject: [PATCH 09/33] Finished converting boilerplate code in FSObjectBrowserViewObjectInfo into macro calls --- .../FSObjectBrowserViewObjectInfo.m | 3328 ++++++++--------- 1 file changed, 1630 insertions(+), 1698 deletions(-) diff --git a/FScriptFramework/FSObjectBrowserViewObjectInfo.m b/FScriptFramework/FSObjectBrowserViewObjectInfo.m index 1d11aad..c9c5c9b 100644 --- a/FScriptFramework/FSObjectBrowserViewObjectInfo.m +++ b/FScriptFramework/FSObjectBrowserViewObjectInfo.m @@ -5,7 +5,7 @@ #import "FSObjectBrowserCell.h" #import "FSNamedNumber.h" #import "FSNumber.h" -#import "FSMiscTools.h" +#import "FSMiscTools.h" #import "FSBoolean.h" #import "FSBlock.h" #import "BlockRep.h" @@ -43,7 +43,7 @@ @interface FSObjectBrowserViewObjectHelper : NSObject NSString *selectedClassLabel; NSString *selectedLabel; id selectedObject; - NSString *classLabel; + NSString *classLabel; NSMatrix *m; FSObjectBrowserView *view; NSMutableArray *baseClasses; @@ -89,10 +89,10 @@ - (void)addNSLayoutManager:(id)object; - (void)addNSManagedObjectContext:(id)object; - (void)addNSManagedObjectID:(id)object; - (void)addNSManagedObjectModel:(id)object; -- (void)addNSMenu:(id)object; -- (void)addNSMenuItem:(id)object; -- (void)addNSOpenGLContext:(id)object; -- (void)addNSOpenGLPixelBuffer:(id)object; +- (void)addNSMenu:(id)object; +- (void)addNSMenuItem:(id)object; +- (void)addNSOpenGLContext:(id)object; +- (void)addNSOpenGLPixelBuffer:(id)object; - (void)addNSOpenGLPixelFormat:(id)object; - (void)addNSPageLayout:(id)object; - (void)addNSParagraphStyle:(id)object; @@ -125,22 +125,35 @@ - (void)processNSWindow:(id)object; #define _BIDICT(_idx, _enum) \ - @(_enum): @#_enum, +@(_enum): @metamacro_stringify(_enum), -#define BIDICT(_name, ...) \ +#define _BIDICT_LEADER(_name) \ static inline CHBidirectionalDictionary *_name ## Bimap() { \ static CHBidirectionalDictionary *dict = nil; \ if (!dict) { \ - dict = [CHBidirectionalDictionary new]; \ - [dict addEntriesFromDictionary:@{ \ -metamacro_foreach(_BIDICT, ,__VA_ARGS__) \ - }]; \ -} \ +dict = [CHBidirectionalDictionary new]; \ +[dict addEntriesFromDictionary: + +#define BIDICT(_name, ...) \ +_BIDICT_LEADER(_name) \ +@{ metamacro_foreach(_BIDICT, ,__VA_ARGS__) } \ +];} \ return dict; \ } -#define ENUMTOOBJ(_name, ...) \ -BIDICT(_name, __VA_ARGS__) \ +#define BIDICT_LIT(_name, _dict) \ +_BIDICT_LEADER(_name) \ +_dict \ +];} \ +return dict; \ +} + +#define _IDENTITY(_idx, _val) _val + +#define OPTSMASK(...) \ +metamacro_foreach(_IDENTITY, |, __VA_ARGS__) + +#define ENUM_FUNC(_name) \ static id objectFrom ## _name(NS ## _name _name) \ { \ CHBidirectionalDictionary *dict = _name ## Bimap(); \ @@ -148,564 +161,519 @@ - (void)processNSWindow:(id)object; return lookup ? [FSNamedNumber namedNumberWithDouble:(double)_name name:lookup] : [FSNumber numberWithDouble:_name]; \ } +// Define a lookup function 'objectTo', for simple enumerations (can take one, and only one value from the enum) +#define ENUMTOOBJ(_name, ...) \ +BIDICT(_name, __VA_ARGS__) \ +ENUM_FUNC(_name) -ENUMTOOBJ(AnimationBlockingMode, - NSAnimationBlocking, - NSAnimationNonblocking, - NSAnimationNonblockingThreaded - ); - - - -ENUMTOOBJ(AnimationCurve, - NSAnimationEaseInOut, - NSAnimationEaseIn, - NSAnimationEaseOut, - NSAnimationLinear - ); - - -ENUMTOOBJ(AlertStyle, - NSWarningAlertStyle, - NSInformationalAlertStyle, - NSCriticalAlertStyle - ); - - -static id objectFromAutoresizingMask(NSUInteger mask) -{ - if (mask & ~(NSViewMinXMargin | NSViewWidthSizable | NSViewMaxXMargin | NSViewMinYMargin | NSViewHeightSizable | NSViewMaxYMargin)) return [FSNumber numberWithDouble:mask]; - else if (mask == 0) return [FSNamedNumber namedNumberWithDouble:NSRegularControlSize name:@"NSViewNotSizable"]; - else - { - NSMutableString *str = [NSMutableString string]; - - if (mask & NSViewMinXMargin) [str appendString:@"NSViewMinXMargin"]; - if (mask & NSViewWidthSizable) [str appendString:[str length] == 0 ? @"NSViewWidthSizable" : @" + NSViewWidthSizable"]; - if (mask & NSViewMaxXMargin) [str appendString:[str length] == 0 ? @"NSViewMaxXMargin" : @" + NSViewMaxXMargin"]; - if (mask & NSViewMinYMargin) [str appendString:[str length] == 0 ? @"NSViewMinYMargin" : @" + NSViewMinYMargin"]; - if (mask & NSViewHeightSizable) [str appendString:[str length] == 0 ? @"NSViewHeightSizable" : @" + NSViewHeightSizable"]; - if (mask & NSViewMaxYMargin) [str appendString:[str length] == 0 ? @"NSViewMaxYMargin" : @" + NSViewMaxYMargin"]; - - return [FSNamedNumber namedNumberWithDouble:mask name:str]; - } -} - -ENUMTOOBJ(AttributeType, - NSUndefinedAttributeType, - NSInteger16AttributeType, - NSInteger32AttributeType, - NSInteger64AttributeType, - NSDecimalAttributeType, - NSDoubleAttributeType, - NSFloatAttributeType, - NSStringAttributeType, - NSBooleanAttributeType, - NSDateAttributeType, - NSBinaryDataAttributeType, - NSTransformableAttributeType - ); - - -ENUMTOOBJ(BackgroundStyle, - NSBackgroundStyleLight, - NSBackgroundStyleDark, - NSBackgroundStyleRaised, - NSBackgroundStyleLowered - ); - - - -ENUMTOOBJ(BackingStoreType, - NSBackingStoreBuffered, - NSBackingStoreRetained, - NSBackingStoreNonretained - ); - - -ENUMTOOBJ(BorderType, - NSNoBorder, - NSLineBorder, - NSBezelBorder, - NSGrooveBorder - ); - -ENUMTOOBJ(BezelStyle, - NSRoundedBezelStyle, - NSRegularSquareBezelStyle, - NSThickSquareBezelStyle, - NSThickerSquareBezelStyle, - NSDisclosureBezelStyle, - NSShadowlessSquareBezelStyle, - NSCircularBezelStyle, - NSTexturedSquareBezelStyle, - NSHelpButtonBezelStyle, - NSSmallSquareBezelStyle, - NSTexturedRoundedBezelStyle - ); - - - -static id objectFromBitmapFormat(NSBitmapFormat mask) -{ - if (mask == 0 || (mask & ~(NSAlphaFirstBitmapFormat | NSAlphaNonpremultipliedBitmapFormat | NSFloatingPointSamplesBitmapFormat))) return [FSNumber numberWithDouble:mask]; - else - { - NSMutableString *str = [NSMutableString string]; - - if (mask & NSAlphaFirstBitmapFormat) [str appendString:@"NSAlphaFirstBitmapFormat"]; - if (mask & NSAlphaNonpremultipliedBitmapFormat) [str appendString:[str length] == 0 ? @"NSAlphaNonpremultipliedBitmapFormat" : @" + NSAlphaNonpremultipliedBitmapFormat"]; - if (mask & NSFloatingPointSamplesBitmapFormat) [str appendString:[str length] == 0 ? @"NSFloatingPointSamplesBitmapFormat" : @" + NSFloatingPointSamplesBitmapFormat"]; - return [FSNamedNumber namedNumberWithDouble:mask name:str]; - } -} - -ENUMTOOBJ(BoxType, - NSBoxPrimary, - NSBoxSecondary, - NSBoxSeparator, - NSBoxOldStyle, - NSBoxCustom - ); - - - -static id objectFromButtonMask(NSUInteger mask) -{ - if (mask == 0 || (mask & ~(NSPenTipMask | NSPenLowerSideMask | NSPenUpperSideMask))) return [FSNumber numberWithDouble:mask]; - else - { - NSMutableString *str = [NSMutableString string]; - - if (mask & NSPenTipMask) [str appendString:@"NSPenTipMask"]; - if (mask & NSPenLowerSideMask) [str appendString:[str length] == 0 ? @"NSPenLowerSideMask" : @" + NSPenLowerSideMask"]; - if (mask & NSPenUpperSideMask) [str appendString:[str length] == 0 ? @"NSPenUpperSideMask" : @" + NSPenUpperSideMask"]; - return [FSNamedNumber namedNumberWithDouble:mask name:str]; - } -} +// Same as 'ENUMTOOBJ', but use when the elements of the 'enumeration' are actually macros +#define ENUMTOOBJ_DICT(_name, _dict) \ +BIDICT_LIT(_name, _dict) \ +ENUM_FUNC(_name) +#define OPTSDICT(_name, ...) \ +const NSUInteger _name ## Mask = OPTSMASK(__VA_ARGS__); \ +BIDICT(_name, __VA_ARGS__) -ENUMTOOBJ(BrowserColumnResizingType, - NSBrowserNoColumnResizing, - NSBrowserAutoColumnResizing, - NSBrowserUserColumnResizing - ); +// Define a lookup function 'objectTo', for flag enumerations (can take a logical OR of enumeration values) +#define OPTSTOOBJ(_name, ...) \ +OPTSDICT(_name, __VA_ARGS__) \ +static id objectFrom ## _name(NS ## _name mask) \ +{ \ +if (_name ## Mask == 0 || (mask & ~(_name ## Mask))) { return [FSNumber numberWithDouble:mask]; } \ +CHBidirectionalDictionary *dict = _name ## Bimap(); \ +NSMutableArray *result = [NSMutableArray array] ; \ +for (NSNumber *opt in dict.allKeys) { \ +if (mask & opt.unsignedIntegerValue) { \ +[result addObject:dict[opt]]; \ +} \ +} \ +return result.count ? [FSNamedNumber namedNumberWithDouble:mask name:[result componentsJoinedByString:@" + "]] : [FSNumber numberWithDouble:mask];\ +} +ENUMTOOBJ(AnimationBlockingMode, + NSAnimationBlocking, + NSAnimationNonblocking, + NSAnimationNonblockingThreaded + ); + + + +ENUMTOOBJ(AnimationCurve, + NSAnimationEaseInOut, + NSAnimationEaseIn, + NSAnimationEaseOut, + NSAnimationLinear + ); + + +ENUMTOOBJ(AlertStyle, + NSWarningAlertStyle, + NSInformationalAlertStyle, + NSCriticalAlertStyle + ); + + +OPTSTOOBJ(AutoresizingMaskOptions, + NSViewMinXMargin, + NSViewWidthSizable, + NSViewMaxXMargin, + NSViewMinYMargin, + NSViewHeightSizable, + NSViewMaxYMargin + ); + +ENUMTOOBJ(AttributeType, + NSUndefinedAttributeType, + NSInteger16AttributeType, + NSInteger32AttributeType, + NSInteger64AttributeType, + NSDecimalAttributeType, + NSDoubleAttributeType, + NSFloatAttributeType, + NSStringAttributeType, + NSBooleanAttributeType, + NSDateAttributeType, + NSBinaryDataAttributeType, + NSTransformableAttributeType + ); + + +ENUMTOOBJ(BackgroundStyle, + NSBackgroundStyleLight, + NSBackgroundStyleDark, + NSBackgroundStyleRaised, + NSBackgroundStyleLowered + ); + + + +ENUMTOOBJ(BackingStoreType, + NSBackingStoreBuffered, + NSBackingStoreRetained, + NSBackingStoreNonretained + ); + + +ENUMTOOBJ(BorderType, + NSNoBorder, + NSLineBorder, + NSBezelBorder, + NSGrooveBorder + ); + +ENUMTOOBJ(BezelStyle, + NSRoundedBezelStyle, + NSRegularSquareBezelStyle, + NSThickSquareBezelStyle, + NSThickerSquareBezelStyle, + NSDisclosureBezelStyle, + NSShadowlessSquareBezelStyle, + NSCircularBezelStyle, + NSTexturedSquareBezelStyle, + NSHelpButtonBezelStyle, + NSSmallSquareBezelStyle, + NSTexturedRoundedBezelStyle + ); + + + +OPTSTOOBJ(BitmapFormat, + NSAlphaFirstBitmapFormat, + NSAlphaNonpremultipliedBitmapFormat, + NSFloatingPointSamplesBitmapFormat + ); + +ENUMTOOBJ(BoxType, + NSBoxPrimary, + NSBoxSecondary, + NSBoxSeparator, + NSBoxOldStyle, + NSBoxCustom + ); + + +OPTSTOOBJ(EventButtonMask, + NSPenTipMask, + NSPenLowerSideMask, + NSPenUpperSideMask + ); + + +ENUMTOOBJ(BrowserColumnResizingType, + NSBrowserNoColumnResizing, + NSBrowserAutoColumnResizing, + NSBrowserUserColumnResizing + ); /*static id objectFromButtonType(NSButtonType buttonType) -{ - switch (buttonType) - { - case NSMomentaryLight: return [NamedNumber namedNumberWithDouble:buttonType name:@"NSMomentaryLight"]; - case NSMomentaryPushButton: return [NamedNumber namedNumberWithDouble:buttonType name:@"NSMomentaryPushButton"]; - case NSMomentaryChangeButton: return [NamedNumber namedNumberWithDouble:buttonType name:@"NSMomentaryChangeButton"]; - case NSPushOnPushOffButton: return [NamedNumber namedNumberWithDouble:buttonType name:@"NSPushOnPushOffButton"]; - case NSOnOffButton: return [NamedNumber namedNumberWithDouble:buttonType name:@"NSOnOffButton"]; - case NSToggleButton: return [NamedNumber namedNumberWithDouble:buttonType name:@"NSToggleButton"]; - case NSSwitchButton: return [NamedNumber namedNumberWithDouble:buttonType name:@"NSSwitchButton"]; - case NSRadioButton: return [NamedNumber namedNumberWithDouble:buttonType name:@"NSRadioButton"]; - default: return [Number numberWithDouble:buttonType]; - } -}*/ - -ENUMTOOBJ(CellImagePosition, - NSNoImage, - NSImageOnly, - NSImageLeft, - NSImageRight, - NSImageBelow, - NSImageAbove, - NSImageOverlaps - ); - - -static id objectFromCellMask(NSUInteger mask) -{ - if (mask & ~(NSContentsCellMask | NSPushInCellMask | NSPushInCellMask | NSChangeGrayCellMask | NSChangeBackgroundCellMask)) return [FSNumber numberWithDouble:mask]; - else if (mask == 0) return [FSNamedNumber namedNumberWithDouble:mask name:@"NSNoCellMask"]; - else - { - NSMutableString *str = [NSMutableString string]; - if (mask & NSContentsCellMask) [str appendString:@"NSContentsCellMask"]; - if (mask & NSPushInCellMask) [str appendString:[str length] == 0 ? @"NSPushInCellMask" : @" + NSPushInCellMask"]; - if (mask & NSChangeGrayCellMask) [str appendString:[str length] == 0 ? @"NSChangeGrayCellMask" : @" + NSChangeGrayCellMask"]; - if (mask & NSChangeBackgroundCellMask) [str appendString:[str length] == 0 ? @"NSChangeBackgroundCellMask" : @" + NSChangeBackgroundCellMask"]; - return [FSNamedNumber namedNumberWithDouble:mask name:str]; - } -} - -ENUMTOOBJ(CellStateValue, - NSMixedState, - NSOffState, - NSOnState - ); - - -ENUMTOOBJ(CellType, - NSNullCellType, - NSTextCellType, - NSImageCellType - ); - - -ENUMTOOBJ(CharacterCollection, - NSIdentityMappingCharacterCollection, - NSAdobeCNS1CharacterCollection, - NSAdobeGB1CharacterCollection, - NSAdobeJapan1CharacterCollection, - NSAdobeJapan2CharacterCollection, - NSAdobeKorea1CharacterCollection - ); - - -ENUMTOOBJ(ColorPanelMode, - NSGrayModeColorPanel, - NSRGBModeColorPanel, - NSCMYKModeColorPanel, - NSHSBModeColorPanel, - NSCustomPaletteModeColorPanel, - NSColorListModeColorPanel, - NSWheelModeColorPanel, - NSCrayonModeColorPanel - ); - - -ENUMTOOBJ(ColorRenderingIntent, - NSColorRenderingIntentDefault, - NSColorRenderingIntentAbsoluteColorimetric, - NSColorRenderingIntentRelativeColorimetric, - NSColorRenderingIntentPerceptual, - NSColorRenderingIntentSaturation - ); - - -static id objectFromComparisonPredicateOptions(NSUInteger mask) -{ - if (mask == 0 || (mask & ~(NSCaseInsensitivePredicateOption | NSDiacriticInsensitivePredicateOption))) return [FSNumber numberWithDouble:mask]; - else - { - NSMutableString *str = [NSMutableString string]; - if (mask & NSCaseInsensitivePredicateOption) [str appendString:@"NSCaseInsensitivePredicateOption"]; - if (mask & NSDiacriticInsensitivePredicateOption) [str appendString:[str length] == 0 ? @"NSDiacriticInsensitivePredicateOption" : @" + NSDiacriticInsensitivePredicateOption"]; - return [FSNamedNumber namedNumberWithDouble:mask name:str]; - } -} - -ENUMTOOBJ(ComparisonPredicateModifier, - NSDirectPredicateModifier, - NSAllPredicateModifier, - NSAnyPredicateModifier - ); - - -ENUMTOOBJ(CompositingOperation, - NSCompositeClear, - NSCompositeCopy, - NSCompositeSourceOver, - NSCompositeSourceIn, - NSCompositeSourceOut, - NSCompositeSourceAtop, - NSCompositeDestinationOver, - NSCompositeDestinationIn, - NSCompositeDestinationOut, - NSCompositeDestinationAtop, - NSCompositeXOR, - NSCompositePlusDarker, - NSCompositeHighlight, - NSCompositePlusLighter - ); - - - -ENUMTOOBJ(CompoundPredicateType, - NSNotPredicateType, - NSAndPredicateType, - NSOrPredicateType - ); - - -ENUMTOOBJ(ControlSize, - NSRegularControlSize, - NSSmallControlSize, - NSMiniControlSize - ); - - -ENUMTOOBJ(ControlTint, - NSDefaultControlTint, - NSBlueControlTint, - NSGraphiteControlTint, - NSClearControlTint - ); - - -static id objectFromDatePickerElementFlags(NSUInteger mask) -{ - if (mask == 0 || (mask & ~(NSHourMinuteDatePickerElementFlag | NSHourMinuteSecondDatePickerElementFlag | NSTimeZoneDatePickerElementFlag | NSYearMonthDatePickerElementFlag | NSYearMonthDayDatePickerElementFlag | NSEraDatePickerElementFlag))) return [FSNumber numberWithDouble:mask]; - else - { - NSMutableString *str = [NSMutableString string]; - - if (mask & NSEraDatePickerElementFlag) [str appendString:@"NSEraDatePickerElementFlag"]; - - if (mask & NSYearMonthDayDatePickerElementFlag) [str appendString:[str length] == 0 ? @"NSYearMonthDayDatePickerElementFlag" : @" + NSYearMonthDayDatePickerElementFlag"]; - else if (mask & NSYearMonthDatePickerElementFlag) [str appendString:[str length] == 0 ? @"NSYearMonthDatePickerElementFlag" : @" + NSYearMonthDatePickerElementFlag"]; - - if (mask & NSTimeZoneDatePickerElementFlag) [str appendString:[str length] == 0 ? @"NSTimeZoneDatePickerElementFlag" : @" + NSTimeZoneDatePickerElementFlag"]; - - if (mask & NSHourMinuteSecondDatePickerElementFlag) [str appendString:[str length] == 0 ? @"NSHourMinuteSecondDatePickerElementFlag" : @" + NSHourMinuteSecondDatePickerElementFlag"]; - else if (mask & NSHourMinuteDatePickerElementFlag) [str appendString:[str length] == 0 ? @"NSHourMinuteDatePickerElementFlag" : @" + NSHourMinuteDatePickerElementFlag"]; - - return [FSNamedNumber namedNumberWithDouble:mask name:str]; - } -} - -ENUMTOOBJ(DatePickerMode, - NSSingleDateMode, - NSRangeDateMode - ); - - -ENUMTOOBJ(DatePickerStyle, - NSTextFieldAndStepperDatePickerStyle, - NSClockAndCalendarDatePickerStyle - ); - - -ENUMTOOBJ(DeleteRule, - NSNoActionDeleteRule, - NSNullifyDeleteRule, - NSCascadeDeleteRule, - NSDenyDeleteRule - ); - - -ENUMTOOBJ(DrawerState, - NSDrawerClosedState, - NSDrawerOpeningState, - NSDrawerOpenState, - NSDrawerClosingState - ); - - - -ENUMTOOBJ(EventType, - NSLeftMouseDown, - NSLeftMouseUp, - NSRightMouseDown, - NSRightMouseUp, - NSOtherMouseDown, - NSOtherMouseUp, - NSMouseMoved, - NSLeftMouseDragged, - NSRightMouseDragged, - NSOtherMouseDragged, - NSMouseEntered, - NSMouseExited, - NSCursorUpdate, - NSKeyDown, - NSKeyUp, - NSFlagsChanged, - NSAppKitDefined, - NSSystemDefined, - NSApplicationDefined, - NSPeriodic, - NSScrollWheel, - NSTabletPoint, - NSTabletProximity - ); - - -ENUMTOOBJ(EventSubtype, - NSMouseEventSubtype, - NSTabletPointEventSubtype, - NSTabletProximityEventSubtype - ); - - -ENUMTOOBJ(ExpressionType, - NSConstantValueExpressionType, - NSEvaluatedObjectExpressionType, - NSVariableExpressionType, - NSKeyPathExpressionType, - NSFunctionExpressionType, - NSUnionSetExpressionType, - NSIntersectSetExpressionType, - NSMinusSetExpressionType, - NSSubqueryExpressionType, - NSAggregateExpressionType - ); - - - -ENUMTOOBJ(FetchRequestResultType, - NSManagedObjectResultType, - NSManagedObjectIDResultType - ); - - -ENUMTOOBJ(FocusRingType, - NSFocusRingTypeDefault, - NSFocusRingTypeNone, - NSFocusRingTypeExterior - ); - - -ENUMTOOBJ(FontRenderingMode, - NSFontDefaultRenderingMode, - NSFontAntialiasedRenderingMode, - NSFontIntegerAdvancementsRenderingMode, - NSFontAntialiasedIntegerAdvancementsRenderingMode - ); - - -ENUMTOOBJ(GradientType, - NSGradientNone, - NSGradientConcaveWeak, - NSGradientConcaveStrong, - NSGradientConvexWeak, - NSGradientConvexStrong - ); - - -static id objectFromGridStyleMask(NSUInteger mask) -{ - if (mask & ~(NSTableViewSolidVerticalGridLineMask | NSTableViewSolidHorizontalGridLineMask)) return [FSNumber numberWithDouble:mask]; - else if (mask == 0) return [FSNamedNumber namedNumberWithDouble:mask name:@"NSTableViewGridNone"]; - else - { - NSMutableString *str = [NSMutableString string]; - if (mask & NSTableViewSolidVerticalGridLineMask) [str appendString:@"NSTableViewSolidVerticalGridLineMask"]; - if (mask & NSTableViewSolidHorizontalGridLineMask) [str appendString:[str length] == 0 ? @"NSTableViewSolidHorizontalGridLineMask" : @" + NSTableViewSolidHorizontalGridLineMask"]; - return [FSNamedNumber namedNumberWithDouble:mask name:str]; - } -} - -ENUMTOOBJ(ImageAlignment, - NSImageAlignCenter, - NSImageAlignTop, - NSImageAlignTopLeft, - NSImageAlignTopRight, - NSImageAlignLeft, - NSImageAlignBottom, - NSImageAlignBottomLeft, - NSImageAlignBottomRight, - NSImageAlignRight - ); - - -ENUMTOOBJ(ImageCacheMode, - NSImageCacheDefault, - NSImageCacheAlways, - NSImageCacheBySize, - NSImageCacheNever - ); - - - -ENUMTOOBJ(ImageFrameStyle, - NSImageFrameNone, - NSImageFramePhoto, - NSImageFrameGrayBezel, - NSImageFrameGroove, - NSImageFrameButton - ); - - - -ENUMTOOBJ(ImageInterpolation, - NSImageInterpolationDefault, - NSImageInterpolationNone, - NSImageInterpolationLow, - NSImageInterpolationHigh - ); - - -ENUMTOOBJ(ImageScaling, - NSImageScaleProportionallyDown, - NSImageScaleAxesIndependently, - NSImageScaleNone, - NSImageScaleProportionallyUpOrDown - ); + { + switch (buttonType) + { + case NSMomentaryLight: return [NamedNumber namedNumberWithDouble:buttonType name:@"NSMomentaryLight"]; + case NSMomentaryPushButton: return [NamedNumber namedNumberWithDouble:buttonType name:@"NSMomentaryPushButton"]; + case NSMomentaryChangeButton: return [NamedNumber namedNumberWithDouble:buttonType name:@"NSMomentaryChangeButton"]; + case NSPushOnPushOffButton: return [NamedNumber namedNumberWithDouble:buttonType name:@"NSPushOnPushOffButton"]; + case NSOnOffButton: return [NamedNumber namedNumberWithDouble:buttonType name:@"NSOnOffButton"]; + case NSToggleButton: return [NamedNumber namedNumberWithDouble:buttonType name:@"NSToggleButton"]; + case NSSwitchButton: return [NamedNumber namedNumberWithDouble:buttonType name:@"NSSwitchButton"]; + case NSRadioButton: return [NamedNumber namedNumberWithDouble:buttonType name:@"NSRadioButton"]; + default: return [Number numberWithDouble:buttonType]; + } + }*/ + +ENUMTOOBJ(CellImagePosition, + NSNoImage, + NSImageOnly, + NSImageLeft, + NSImageRight, + NSImageBelow, + NSImageAbove, + NSImageOverlaps + ); + + +OPTSTOOBJ(CellStyleMask, + NSNoCellMask, + NSContentsCellMask, + NSPushInCellMask, + NSChangeGrayCellMask, + NSChangeBackgroundCellMask + ); + +ENUMTOOBJ(CellStateValue, + NSMixedState, + NSOffState, + NSOnState + ); + + +ENUMTOOBJ(CellType, + NSNullCellType, + NSTextCellType, + NSImageCellType + ); + + +ENUMTOOBJ(CharacterCollection, + NSIdentityMappingCharacterCollection, + NSAdobeCNS1CharacterCollection, + NSAdobeGB1CharacterCollection, + NSAdobeJapan1CharacterCollection, + NSAdobeJapan2CharacterCollection, + NSAdobeKorea1CharacterCollection + ); + + +ENUMTOOBJ(ColorPanelMode, + NSGrayModeColorPanel, + NSRGBModeColorPanel, + NSCMYKModeColorPanel, + NSHSBModeColorPanel, + NSCustomPaletteModeColorPanel, + NSColorListModeColorPanel, + NSWheelModeColorPanel, + NSCrayonModeColorPanel + ); + + +ENUMTOOBJ(ColorRenderingIntent, + NSColorRenderingIntentDefault, + NSColorRenderingIntentAbsoluteColorimetric, + NSColorRenderingIntentRelativeColorimetric, + NSColorRenderingIntentPerceptual, + NSColorRenderingIntentSaturation + ); + + +OPTSTOOBJ(ComparisonPredicateOptions, + NSCaseInsensitivePredicateOption, + NSDiacriticInsensitivePredicateOption, + NSNormalizedPredicateOption + ); + +ENUMTOOBJ(ComparisonPredicateModifier, + NSDirectPredicateModifier, + NSAllPredicateModifier, + NSAnyPredicateModifier + ); + + +ENUMTOOBJ(CompositingOperation, + NSCompositeClear, + NSCompositeCopy, + NSCompositeSourceOver, + NSCompositeSourceIn, + NSCompositeSourceOut, + NSCompositeSourceAtop, + NSCompositeDestinationOver, + NSCompositeDestinationIn, + NSCompositeDestinationOut, + NSCompositeDestinationAtop, + NSCompositeXOR, + NSCompositePlusDarker, + NSCompositeHighlight, + NSCompositePlusLighter + ); + + + +ENUMTOOBJ(CompoundPredicateType, + NSNotPredicateType, + NSAndPredicateType, + NSOrPredicateType + ); + + +ENUMTOOBJ(ControlSize, + NSRegularControlSize, + NSSmallControlSize, + NSMiniControlSize + ); + + +ENUMTOOBJ(ControlTint, + NSDefaultControlTint, + NSBlueControlTint, + NSGraphiteControlTint, + NSClearControlTint + ); + +OPTSTOOBJ(DatePickerElementFlags, + NSHourMinuteDatePickerElementFlag, + NSHourMinuteSecondDatePickerElementFlag, + NSTimeZoneDatePickerElementFlag, + NSYearMonthDatePickerElementFlag, + NSYearMonthDayDatePickerElementFlag, + NSEraDatePickerElementFlag + ); + +ENUMTOOBJ(DatePickerMode, + NSSingleDateMode, + NSRangeDateMode + ); + + +ENUMTOOBJ(DatePickerStyle, + NSTextFieldAndStepperDatePickerStyle, + NSClockAndCalendarDatePickerStyle + ); + + +ENUMTOOBJ(DeleteRule, + NSNoActionDeleteRule, + NSNullifyDeleteRule, + NSCascadeDeleteRule, + NSDenyDeleteRule + ); + + +ENUMTOOBJ(DrawerState, + NSDrawerClosedState, + NSDrawerOpeningState, + NSDrawerOpenState, + NSDrawerClosingState + ); + + + +ENUMTOOBJ(EventType, + NSLeftMouseDown, + NSLeftMouseUp, + NSRightMouseDown, + NSRightMouseUp, + NSOtherMouseDown, + NSOtherMouseUp, + NSMouseMoved, + NSLeftMouseDragged, + NSRightMouseDragged, + NSOtherMouseDragged, + NSMouseEntered, + NSMouseExited, + NSCursorUpdate, + NSKeyDown, + NSKeyUp, + NSFlagsChanged, + NSAppKitDefined, + NSSystemDefined, + NSApplicationDefined, + NSPeriodic, + NSScrollWheel, + NSTabletPoint, + NSTabletProximity + ); + + +ENUMTOOBJ(EventSubtype, + NSMouseEventSubtype, + NSTabletPointEventSubtype, + NSTabletProximityEventSubtype + ); + + +ENUMTOOBJ(ExpressionType, + NSConstantValueExpressionType, + NSEvaluatedObjectExpressionType, + NSVariableExpressionType, + NSKeyPathExpressionType, + NSFunctionExpressionType, + NSUnionSetExpressionType, + NSIntersectSetExpressionType, + NSMinusSetExpressionType, + NSSubqueryExpressionType, + NSAggregateExpressionType + ); + + + +ENUMTOOBJ(FetchRequestResultType, + NSManagedObjectResultType, + NSManagedObjectIDResultType + ); + + +ENUMTOOBJ(FocusRingType, + NSFocusRingTypeDefault, + NSFocusRingTypeNone, + NSFocusRingTypeExterior + ); + + +ENUMTOOBJ(FontRenderingMode, + NSFontDefaultRenderingMode, + NSFontAntialiasedRenderingMode, + NSFontIntegerAdvancementsRenderingMode, + NSFontAntialiasedIntegerAdvancementsRenderingMode + ); + + +ENUMTOOBJ(GradientType, + NSGradientNone, + NSGradientConcaveWeak, + NSGradientConcaveStrong, + NSGradientConvexWeak, + NSGradientConvexStrong + ); + + +OPTSTOOBJ(TableViewGridLineStyle, + NSTableViewSolidVerticalGridLineMask, + NSTableViewSolidHorizontalGridLineMask, + NSTableViewDashedHorizontalGridLineMask + ); + +ENUMTOOBJ(ImageAlignment, + NSImageAlignCenter, + NSImageAlignTop, + NSImageAlignTopLeft, + NSImageAlignTopRight, + NSImageAlignLeft, + NSImageAlignBottom, + NSImageAlignBottomLeft, + NSImageAlignBottomRight, + NSImageAlignRight + ); + + +ENUMTOOBJ(ImageCacheMode, + NSImageCacheDefault, + NSImageCacheAlways, + NSImageCacheBySize, + NSImageCacheNever + ); + + + +ENUMTOOBJ(ImageFrameStyle, + NSImageFrameNone, + NSImageFramePhoto, + NSImageFrameGrayBezel, + NSImageFrameGroove, + NSImageFrameButton + ); + + + +ENUMTOOBJ(ImageInterpolation, + NSImageInterpolationDefault, + NSImageInterpolationNone, + NSImageInterpolationLow, + NSImageInterpolationHigh + ); + + +ENUMTOOBJ(ImageScaling, + NSImageScaleProportionallyDown, + NSImageScaleAxesIndependently, + NSImageScaleNone, + NSImageScaleProportionallyUpOrDown + ); + + +OPTSTOOBJ(EventModifierFlags, + NSAlphaShiftKeyMask, + NSShiftKeyMask, + NSControlKeyMask, + NSAlternateKeyMask, + NSCommandKeyMask, + NSNumericPadKeyMask, + NSHelpKeyMask, + NSFunctionKeyMask + ); static id objectFromKeyModifierMask(NSUInteger mask) { - NSUInteger devideDependentMask = mask & (NSUInteger)32767; - NSUInteger devideIndependentMask = mask & ~(NSUInteger)32767; // The lower 16 bits of the modifier flags are reserved for device-dependent bits. - - if (devideIndependentMask & ~(NSAlphaShiftKeyMask | NSShiftKeyMask | NSControlKeyMask | NSAlternateKeyMask | NSCommandKeyMask | NSNumericPadKeyMask | NSHelpKeyMask | NSFunctionKeyMask)) - return [FSNumber numberWithDouble:mask]; - - NSMutableString *str = [NSMutableString string]; - - if (devideDependentMask != 0) [str appendString:[[NSNumber numberWithUnsignedLong:(unsigned long)devideDependentMask] description]]; - - if (devideIndependentMask & NSAlphaShiftKeyMask) [str appendString:[str length] == 0 ? @"NSAlphaShiftKeyMask" : @" + NSAlphaShiftKeyMask"]; - if (devideIndependentMask & NSShiftKeyMask) [str appendString:[str length] == 0 ? @"NSShiftKeyMask" : @" + NSShiftKeyMask"]; - if (devideIndependentMask & NSControlKeyMask) [str appendString:[str length] == 0 ? @"NSControlKeyMask" : @" + NSControlKeyMask"]; - if (devideIndependentMask & NSAlternateKeyMask) [str appendString:[str length] == 0 ? @"NSAlternateKeyMask" : @" + NSAlternateKeyMask"]; - if (devideIndependentMask & NSCommandKeyMask) [str appendString:[str length] == 0 ? @"NSCommandKeyMask" : @" + NSCommandKeyMask"]; - if (devideIndependentMask & NSNumericPadKeyMask) [str appendString:[str length] == 0 ? @"NSNumericPadKeyMask" : @" + NSNumericPadKeyMask"]; - if (devideIndependentMask & NSHelpKeyMask) [str appendString:[str length] == 0 ? @"NSHelpKeyMask" : @" + NSHelpKeyMask"]; - if (devideIndependentMask & NSFunctionKeyMask) [str appendString:[str length] == 0 ? @"NSFunctionKeyMask" : @" + NSFunctionKeyMask"]; - - return ([str length] == 0 ? [FSNumber numberWithDouble:mask] : [FSNamedNumber namedNumberWithDouble:mask name:str]); + NSUInteger deviceIndependentMask = mask & ~(NSUInteger)32767; // The lower 16 bits of the modifier flags are reserved for device-dependent bits. + return objectFromEventModifierFlags(deviceIndependentMask); } +typedef NSUInteger NSGlyphStorageLayoutOptions; +OPTSTOOBJ(GlyphStorageLayoutOptions, + NSShowControlGlyphs, + NSShowInvisibleGlyphs, + NSWantsBidiLevels + ); -static id objectFromLayoutOptions(NSUInteger mask) -{ - if (mask & ~(NSShowControlGlyphs | NSShowInvisibleGlyphs | NSWantsBidiLevels)) return [FSNumber numberWithDouble:mask]; - else - { - NSMutableString *str = [NSMutableString string]; - if (mask & NSShowControlGlyphs) [str appendString:@"NSShowControlGlyphs"]; - if (mask & NSShowInvisibleGlyphs) [str appendString:[str length] == 0 ? @"NSShowInvisibleGlyphs" : @" + NSShowInvisibleGlyphs"]; - if (mask & NSWantsBidiLevels) [str appendString:[str length] == 0 ? @"NSWantsBidiLevels" : @" + NSWantsBidiLevels"]; - - return ([str length] == 0 ? [FSNumber numberWithDouble:mask] : [FSNamedNumber namedNumberWithDouble:mask name:str]); - } -} -ENUMTOOBJ(LevelIndicatorStyle, - NSRelevancyLevelIndicatorStyle, - NSContinuousCapacityLevelIndicatorStyle, - NSDiscreteCapacityLevelIndicatorStyle, - NSRatingLevelIndicatorStyle - ); +ENUMTOOBJ(LevelIndicatorStyle, + NSRelevancyLevelIndicatorStyle, + NSContinuousCapacityLevelIndicatorStyle, + NSDiscreteCapacityLevelIndicatorStyle, + NSRatingLevelIndicatorStyle + ); -ENUMTOOBJ(LineBreakMode, - NSLineBreakByWordWrapping, - NSLineBreakByCharWrapping, - NSLineBreakByClipping, - NSLineBreakByTruncatingHead, - NSLineBreakByTruncatingTail, - NSLineBreakByTruncatingMiddle - ); +ENUMTOOBJ(LineBreakMode, + NSLineBreakByWordWrapping, + NSLineBreakByCharWrapping, + NSLineBreakByClipping, + NSLineBreakByTruncatingHead, + NSLineBreakByTruncatingTail, + NSLineBreakByTruncatingMiddle + ); -ENUMTOOBJ(LineCapStyle, - NSButtLineCapStyle, - NSRoundLineCapStyle, - NSSquareLineCapStyle - ); +ENUMTOOBJ(LineCapStyle, + NSButtLineCapStyle, + NSRoundLineCapStyle, + NSSquareLineCapStyle + ); -ENUMTOOBJ(LineJoinStyle, - NSMiterLineJoinStyle, - NSRoundLineJoinStyle, - NSBevelLineJoinStyle - ); +ENUMTOOBJ(LineJoinStyle, + NSMiterLineJoinStyle, + NSRoundLineJoinStyle, + NSBevelLineJoinStyle + ); -ENUMTOOBJ(MatrixMode, - NSRadioModeMatrix, - NSHighlightModeMatrix, - NSListModeMatrix, - NSTrackModeMatrix - ); +ENUMTOOBJ(MatrixMode, + NSRadioModeMatrix, + NSHighlightModeMatrix, + NSListModeMatrix, + NSTrackModeMatrix + ); static id objectFromMergePolicy(id mergePolicy) @@ -720,478 +688,442 @@ static id objectFromMergePolicy(id mergePolicy) if (name) return [FSObjectBrowserNamedObjectWrapper namedObjectWrapperWithObject:mergePolicy name:name]; else return mergePolicy; -} +} -ENUMTOOBJ(RuleEditorNestingMode, - NSRuleEditorNestingModeSingle, - NSRuleEditorNestingModeList, - NSRuleEditorNestingModeCompound, - NSRuleEditorNestingModeSimple - ); +ENUMTOOBJ(RuleEditorNestingMode, + NSRuleEditorNestingModeSingle, + NSRuleEditorNestingModeList, + NSRuleEditorNestingModeCompound, + NSRuleEditorNestingModeSimple + ); -ENUMTOOBJ(PathStyle, - NSPathStyleStandard, - NSPathStyleNavigationBar, - NSPathStylePopUp - ); +ENUMTOOBJ(PathStyle, + NSPathStyleStandard, + NSPathStyleNavigationBar, + NSPathStylePopUp + ); -ENUMTOOBJ(PointingDeviceType, - NSUnknownPointingDevice, - NSPenPointingDevice, - NSCursorPointingDevice, - NSEraserPointingDevice - ); +ENUMTOOBJ(PointingDeviceType, + NSUnknownPointingDevice, + NSPenPointingDevice, + NSCursorPointingDevice, + NSEraserPointingDevice + ); -ENUMTOOBJ(PredicateOperatorType, - NSLessThanPredicateOperatorType, - NSLessThanOrEqualToPredicateOperatorType, - NSGreaterThanPredicateOperatorType, - NSGreaterThanOrEqualToPredicateOperatorType, - NSEqualToPredicateOperatorType, - NSNotEqualToPredicateOperatorType, - NSMatchesPredicateOperatorType, - NSLikePredicateOperatorType, - NSBeginsWithPredicateOperatorType, - NSEndsWithPredicateOperatorType, - NSInPredicateOperatorType, - NSCustomSelectorPredicateOperatorType, - NSContainsPredicateOperatorType, - NSBetweenPredicateOperatorType - ); +ENUMTOOBJ(PredicateOperatorType, + NSLessThanPredicateOperatorType, + NSLessThanOrEqualToPredicateOperatorType, + NSGreaterThanPredicateOperatorType, + NSGreaterThanOrEqualToPredicateOperatorType, + NSEqualToPredicateOperatorType, + NSNotEqualToPredicateOperatorType, + NSMatchesPredicateOperatorType, + NSLikePredicateOperatorType, + NSBeginsWithPredicateOperatorType, + NSEndsWithPredicateOperatorType, + NSInPredicateOperatorType, + NSCustomSelectorPredicateOperatorType, + NSContainsPredicateOperatorType, + NSBetweenPredicateOperatorType + ); -ENUMTOOBJ(ProgressIndicatorStyle, - NSProgressIndicatorBarStyle, - NSProgressIndicatorSpinningStyle - ); +ENUMTOOBJ(ProgressIndicatorStyle, + NSProgressIndicatorBarStyle, + NSProgressIndicatorSpinningStyle + ); -ENUMTOOBJ(PopUpArrowPosition, - NSPopUpNoArrow, - NSPopUpArrowAtCenter, - NSPopUpArrowAtBottom - ); +ENUMTOOBJ(PopUpArrowPosition, + NSPopUpNoArrow, + NSPopUpArrowAtCenter, + NSPopUpArrowAtBottom + ); -ENUMTOOBJ(RectEdge, - NSMinXEdge, - NSMinYEdge, - NSMaxXEdge, - NSMaxYEdge - ); +ENUMTOOBJ_DICT(RectEdge, + (@{@(NSMinXEdge):@"NSMinXEdge", + @(NSMinYEdge):@"NSMinYEdge", + @(NSMaxXEdge):@"NSMaxXEdge", + @(NSMaxYEdge):@"NSMaxYEdge" + }) + ); -ENUMTOOBJ(RulerOrientation, - NSHorizontalRuler, - NSVerticalRuler - ); +ENUMTOOBJ(RulerOrientation, + NSHorizontalRuler, + NSVerticalRuler + ); -ENUMTOOBJ(ScrollArrowPosition, - NSScrollerArrowsDefaultSetting, - NSScrollerArrowsNone - ); +ENUMTOOBJ(ScrollArrowPosition, + NSScrollerArrowsDefaultSetting, + NSScrollerArrowsNone + ); -ENUMTOOBJ(ScrollerPart, - NSScrollerNoPart, - NSScrollerDecrementPage, - NSScrollerKnob, - NSScrollerIncrementPage, - NSScrollerDecrementLine, - NSScrollerIncrementLine, - NSScrollerKnobSlot - ); +ENUMTOOBJ(ScrollerPart, + NSScrollerNoPart, + NSScrollerDecrementPage, + NSScrollerKnob, + NSScrollerIncrementPage, + NSScrollerDecrementLine, + NSScrollerIncrementLine, + NSScrollerKnobSlot + ); -ENUMTOOBJ(SegmentSwitchTracking, - NSSegmentSwitchTrackingSelectOne, - NSSegmentSwitchTrackingSelectAny, - NSSegmentSwitchTrackingMomentary - ); +ENUMTOOBJ(SegmentSwitchTracking, + NSSegmentSwitchTrackingSelectOne, + NSSegmentSwitchTrackingSelectAny, + NSSegmentSwitchTrackingMomentary + ); -ENUMTOOBJ(SelectionAffinity, - NSSelectionAffinityUpstream, - NSSelectionAffinityDownstream - ); +ENUMTOOBJ(SelectionAffinity, + NSSelectionAffinityUpstream, + NSSelectionAffinityDownstream + ); -ENUMTOOBJ(SelectionDirection, - NSDirectSelection, - NSSelectingNext, - NSSelectingPrevious - ); +ENUMTOOBJ(SelectionDirection, + NSDirectSelection, + NSSelectingNext, + NSSelectingPrevious + ); -ENUMTOOBJ(SelectionGranularity, - NSSelectByCharacter, - NSSelectByWord, - NSSelectByParagraph - ); +ENUMTOOBJ(SelectionGranularity, + NSSelectByCharacter, + NSSelectByWord, + NSSelectByParagraph + ); -ENUMTOOBJ(TableViewSelectionHighlightStyle, - NSTableViewSelectionHighlightStyleRegular, - NSTableViewSelectionHighlightStyleSourceList - ); +ENUMTOOBJ(TableViewSelectionHighlightStyle, + NSTableViewSelectionHighlightStyleRegular, + NSTableViewSelectionHighlightStyleSourceList + ); -ENUMTOOBJ(SliderType, - NSLinearSlider, - NSCircularSlider - ); +ENUMTOOBJ(SliderType, + NSLinearSlider, + NSCircularSlider + ); typedef CGFloat NSStatusItemLength; -ENUMTOOBJ(StatusItemLength, NSVariableStatusItemLength, NSSquareStatusItemLength); - -ENUMTOOBJ(StringEncoding, - NSASCIIStringEncoding, - NSNEXTSTEPStringEncoding, - NSJapaneseEUCStringEncoding, - NSUTF8StringEncoding, - NSISOLatin1StringEncoding, - NSSymbolStringEncoding, - NSNonLossyASCIIStringEncoding, - NSShiftJISStringEncoding, - NSISOLatin2StringEncoding, - NSUnicodeStringEncoding, - NSWindowsCP1251StringEncoding, - NSWindowsCP1252StringEncoding, - NSWindowsCP1253StringEncoding, - NSWindowsCP1254StringEncoding, - NSWindowsCP1250StringEncoding, - NSISO2022JPStringEncoding, - NSMacOSRomanStringEncoding - ); - - -static id objectFromTableColumnResizingMask(NSUInteger mask) -{ - if (mask & ~(NSTableColumnAutoresizingMask | NSTableColumnUserResizingMask)) return [FSNumber numberWithDouble:mask]; - else if (mask == 0) return [FSNamedNumber namedNumberWithDouble:mask name:@"NSTableColumnNoResizing"]; - else - { - NSMutableString *str = [NSMutableString string]; - - if (mask & NSTableColumnNoResizing) [str appendString:@"NSTableColumnAutoresizingMask"]; - if (mask & NSTableColumnUserResizingMask) [str appendString:[str length] == 0 ? @"NSTableColumnUserResizingMask" : @" + NSTableColumnUserResizingMask"]; - return [FSNamedNumber namedNumberWithDouble:mask name:str]; - } -} - -ENUMTOOBJ(TableViewColumnAutoresizingStyle, - NSTableViewNoColumnAutoresizing, - NSTableViewUniformColumnAutoresizingStyle, - NSTableViewSequentialColumnAutoresizingStyle, - NSTableViewReverseSequentialColumnAutoresizingStyle, - NSTableViewLastColumnOnlyAutoresizingStyle, - NSTableViewFirstColumnOnlyAutoresizingStyle - ); - - - -ENUMTOOBJ(TabState, - NSBackgroundTab, - NSPressedTab, - NSSelectedTab - ); - - -ENUMTOOBJ(TabViewType, - NSTopTabsBezelBorder, - NSLeftTabsBezelBorder, - NSBottomTabsBezelBorder, - NSRightTabsBezelBorder, - NSNoTabsBezelBorder, - NSNoTabsLineBorder, - NSNoTabsNoBorder - ); - - -ENUMTOOBJ(TextAlignment, - NSLeftTextAlignment, - NSRightTextAlignment, - NSCenterTextAlignment, - NSJustifiedTextAlignment, - NSNaturalTextAlignment - ); - - -ENUMTOOBJ(TextBlockValueType, - NSTextBlockAbsoluteValueType, - NSTextBlockPercentageValueType - ); - - -ENUMTOOBJ(TextBlockVerticalAlignment, - NSTextBlockTopAlignment, - NSTextBlockMiddleAlignment, - NSTextBlockBottomAlignment, - NSTextBlockBaselineAlignment - ); - - -ENUMTOOBJ(TextFieldBezelStyle, - NSTextFieldSquareBezel, - NSTextFieldRoundedBezel - ); - - -static id objectFromTextListOptionsMask(NSUInteger mask) -{ - if (mask == 0 || (mask & ~(NSTextListPrependEnclosingMarker))) return [FSNumber numberWithDouble:mask]; - else - { - NSMutableString *str = [NSMutableString string]; - - if (mask & NSTextListPrependEnclosingMarker) [str appendString:@"NSTextListPrependEnclosingMarker"]; - return [FSNamedNumber namedNumberWithDouble:mask name:str]; - } -} - -static id objectFromTextStorageEditedMask(NSUInteger mask) -{ - if (mask == 0 || (mask & ~(NSTextStorageEditedAttributes | NSTextStorageEditedAttributes))) return [FSNumber numberWithDouble:mask]; - else - { - NSMutableString *str = [NSMutableString string]; - - if (mask & NSTextStorageEditedAttributes) [str appendString:@"NSTextStorageEditedAttributes"]; - if (mask & NSTextStorageEditedCharacters) [str appendString:[str length] == 0 ? @"NSTextStorageEditedCharacters" : @" + NSTextStorageEditedCharacters"]; - return [FSNamedNumber namedNumberWithDouble:mask name:str]; - } -} - -ENUMTOOBJ(TextTableLayoutAlgorithm, - NSTextTableAutomaticLayoutAlgorithm, - NSTextTableFixedLayoutAlgorithm - ); - - -ENUMTOOBJ(TextTabType, - NSLeftTabStopType, - NSRightTabStopType, - NSCenterTabStopType, - NSDecimalTabStopType - ); +ENUMTOOBJ(StatusItemLength, + NSVariableStatusItemLength, + NSSquareStatusItemLength + ); + +ENUMTOOBJ(StringEncoding, + NSASCIIStringEncoding, + NSNEXTSTEPStringEncoding, + NSJapaneseEUCStringEncoding, + NSUTF8StringEncoding, + NSISOLatin1StringEncoding, + NSSymbolStringEncoding, + NSNonLossyASCIIStringEncoding, + NSShiftJISStringEncoding, + NSISOLatin2StringEncoding, + NSUnicodeStringEncoding, + NSWindowsCP1251StringEncoding, + NSWindowsCP1252StringEncoding, + NSWindowsCP1253StringEncoding, + NSWindowsCP1254StringEncoding, + NSWindowsCP1250StringEncoding, + NSISO2022JPStringEncoding, + NSMacOSRomanStringEncoding + ); + + +OPTSTOOBJ(TableColumnResizingOptions, + NSTableColumnNoResizing, + NSTableColumnAutoresizingMask, + NSTableColumnUserResizingMask + ); + +ENUMTOOBJ(TableViewColumnAutoresizingStyle, + NSTableViewNoColumnAutoresizing, + NSTableViewUniformColumnAutoresizingStyle, + NSTableViewSequentialColumnAutoresizingStyle, + NSTableViewReverseSequentialColumnAutoresizingStyle, + NSTableViewLastColumnOnlyAutoresizingStyle, + NSTableViewFirstColumnOnlyAutoresizingStyle + ); + + + +ENUMTOOBJ(TabState, + NSBackgroundTab, + NSPressedTab, + NSSelectedTab + ); + + +ENUMTOOBJ(TabViewType, + NSTopTabsBezelBorder, + NSLeftTabsBezelBorder, + NSBottomTabsBezelBorder, + NSRightTabsBezelBorder, + NSNoTabsBezelBorder, + NSNoTabsLineBorder, + NSNoTabsNoBorder + ); + + +ENUMTOOBJ(TextAlignment, + NSLeftTextAlignment, + NSRightTextAlignment, + NSCenterTextAlignment, + NSJustifiedTextAlignment, + NSNaturalTextAlignment + ); + + +ENUMTOOBJ(TextBlockValueType, + NSTextBlockAbsoluteValueType, + NSTextBlockPercentageValueType + ); + + +ENUMTOOBJ(TextBlockVerticalAlignment, + NSTextBlockTopAlignment, + NSTextBlockMiddleAlignment, + NSTextBlockBottomAlignment, + NSTextBlockBaselineAlignment + ); + + +ENUMTOOBJ(TextFieldBezelStyle, + NSTextFieldSquareBezel, + NSTextFieldRoundedBezel + ); + +OPTSTOOBJ(TextListOptions, + NSTextListPrependEnclosingMarker + ); + + +OPTSTOOBJ(TextStorageEditedOptions, + NSTextStorageEditedAttributes, + NSTextStorageEditedCharacters + ); + +ENUMTOOBJ(TextTableLayoutAlgorithm, + NSTextTableAutomaticLayoutAlgorithm, + NSTextTableFixedLayoutAlgorithm + ); + + +ENUMTOOBJ(TextTabType, + NSLeftTabStopType, + NSRightTabStopType, + NSCenterTabStopType, + NSDecimalTabStopType + ); static id objectFromTickMarkPosition(NSTickMarkPosition tickMarkPosition, BOOL isVertical) { - switch (tickMarkPosition) + switch (tickMarkPosition) { - case NSTickMarkBelow: return [FSNamedNumber namedNumberWithDouble:tickMarkPosition name: isVertical ? @"NSTickMarkRight" : @"NSTickMarkBelow"]; - case NSTickMarkAbove: return [FSNamedNumber namedNumberWithDouble:tickMarkPosition name: isVertical ? @"NSTickMarkLeft" : @"NSTickMarkAbove"]; - //case NSTickMarkLeft: return [NamedNumber namedNumberWithDouble:tickMarkPosition name:@"NSTickMarkLeft"]; - //case NSTickMarkRight: return [NamedNumber namedNumberWithDouble:tickMarkPosition name:@"NSTickMarkRight"]; - default: return [FSNumber numberWithDouble:tickMarkPosition]; + case NSTickMarkBelow: return [FSNamedNumber namedNumberWithDouble:tickMarkPosition name: isVertical ? @"NSTickMarkRight" : @"NSTickMarkBelow"]; + case NSTickMarkAbove: return [FSNamedNumber namedNumberWithDouble:tickMarkPosition name: isVertical ? @"NSTickMarkLeft" : @"NSTickMarkAbove"]; + //case NSTickMarkLeft: return [NamedNumber namedNumberWithDouble:tickMarkPosition name:@"NSTickMarkLeft"]; + //case NSTickMarkRight: return [NamedNumber namedNumberWithDouble:tickMarkPosition name:@"NSTickMarkRight"]; + default: return [FSNumber numberWithDouble:tickMarkPosition]; } } -ENUMTOOBJ(TIFFCompression, - NSTIFFCompressionNone, - NSTIFFCompressionCCITTFAX3, - NSTIFFCompressionCCITTFAX4, - NSTIFFCompressionLZW, - NSTIFFCompressionJPEG, - NSTIFFCompressionNEXT, - NSTIFFCompressionPackBits, - NSTIFFCompressionOldJPEG - ); +ENUMTOOBJ(TIFFCompression, + NSTIFFCompressionNone, + NSTIFFCompressionCCITTFAX3, + NSTIFFCompressionCCITTFAX4, + NSTIFFCompressionLZW, + NSTIFFCompressionJPEG, + NSTIFFCompressionNEXT, + NSTIFFCompressionPackBits, + NSTIFFCompressionOldJPEG + ); -ENUMTOOBJ(TitlePosition, - NSNoTitle, - NSAboveTop, - NSAtTop, - NSBelowTop, - NSAboveBottom, - NSAtBottom, - NSBelowBottom - ); +ENUMTOOBJ(TitlePosition, + NSNoTitle, + NSAboveTop, + NSAtTop, + NSBelowTop, + NSAboveBottom, + NSAtBottom, + NSBelowBottom + ); -ENUMTOOBJ(TokenStyle, - NSDefaultTokenStyle, - NSPlainTextTokenStyle, - NSRoundedTokenStyle - ); +ENUMTOOBJ(TokenStyle, + NSDefaultTokenStyle, + NSPlainTextTokenStyle, + NSRoundedTokenStyle + ); -ENUMTOOBJ(ToolbarDisplayMode, - NSToolbarDisplayModeDefault, - NSToolbarDisplayModeIconAndLabel, - NSToolbarDisplayModeIconOnly, - NSToolbarDisplayModeLabelOnly - ); +ENUMTOOBJ(ToolbarDisplayMode, + NSToolbarDisplayModeDefault, + NSToolbarDisplayModeIconAndLabel, + NSToolbarDisplayModeIconOnly, + NSToolbarDisplayModeLabelOnly + ); typedef NSUInteger NSToolbarItemVisibilityPriority; -ENUMTOOBJ(ToolbarItemVisibilityPriority, - NSToolbarItemVisibilityPriorityStandard, - NSToolbarItemVisibilityPriorityLow, - NSToolbarItemVisibilityPriorityHigh, - NSToolbarItemVisibilityPriorityUser - ); - - -ENUMTOOBJ(ToolbarSizeMode, - NSToolbarSizeModeDefault, - NSToolbarSizeModeRegular, - NSToolbarSizeModeSmall - ); - - -static id objectFromTrackingAreaOptions(NSTrackingAreaOptions mask) -{ - if (mask & ~(NSTrackingMouseEnteredAndExited | NSTrackingMouseMoved | NSTrackingCursorUpdate | NSTrackingActiveWhenFirstResponder | - NSTrackingActiveInKeyWindow | NSTrackingActiveInActiveApp | NSTrackingActiveAlways | NSTrackingAssumeInside | - NSTrackingInVisibleRect | NSTrackingEnabledDuringMouseDrag)) return [FSNumber numberWithDouble:mask]; - else - { - NSMutableString *str = [NSMutableString string]; - if (mask & NSTrackingMouseEnteredAndExited) [str appendString:@"NSTrackingMouseEnteredAndExited"]; - if (mask & NSTrackingMouseMoved) [str appendString:[str length] == 0 ? @"NSTrackingMouseMoved" : @" + NSTrackingMouseMoved"]; - if (mask & NSTrackingCursorUpdate) [str appendString:[str length] == 0 ? @"NSTrackingCursorUpdate" : @" + NSTrackingCursorUpdate"]; - if (mask & NSTrackingActiveWhenFirstResponder) [str appendString:[str length] == 0 ? @"NSTrackingActiveWhenFirstResponder" : @" + NSTrackingActiveWhenFirstResponder"]; - if (mask & NSTrackingActiveInKeyWindow) [str appendString:[str length] == 0 ? @"NSTrackingActiveInKeyWindow" : @" + NSTrackingActiveInKeyWindow"]; - if (mask & NSTrackingActiveInActiveApp) [str appendString:[str length] == 0 ? @"NSTrackingActiveInActiveApp" : @" + NSTrackingActiveInActiveApp"]; - if (mask & NSTrackingActiveAlways) [str appendString:[str length] == 0 ? @"NSTrackingActiveAlways" : @" + NSTrackingActiveAlways"]; - if (mask & NSTrackingAssumeInside) [str appendString:[str length] == 0 ? @"NSTrackingAssumeInside" : @" + NSTrackingAssumeInside"]; - if (mask & NSTrackingInVisibleRect) [str appendString:[str length] == 0 ? @"NSTrackingInVisibleRect" : @" + NSTrackingInVisibleRect"]; - if (mask & NSTrackingEnabledDuringMouseDrag) [str appendString:[str length] == 0 ? @"NSTrackingEnabledDuringMouseDrag" : @" + NSTrackingEnabledDuringMouseDrag"]; - - return ([str length] == 0 ? [FSNumber numberWithDouble:mask] : [FSNamedNumber namedNumberWithDouble:mask name:str]); - } -} - -ENUMTOOBJ(TypesetterBehavior, - NSTypesetterLatestBehavior, - NSTypesetterOriginalBehavior, - NSTypesetterBehavior_10_2_WithCompatibility, - NSTypesetterBehavior_10_2, - NSTypesetterBehavior_10_3, - NSTypesetterBehavior_10_4 - ); - - -ENUMTOOBJ(UsableScrollerParts, - NSNoScrollerParts, - NSOnlyScrollerArrows, - NSAllScrollerParts - ); - - -ENUMTOOBJ(WindingRule, - NSNonZeroWindingRule, - NSEvenOddWindingRule - ); - - -static id objectFromWindowLevel(NSInteger windowLevel) -{ - if (windowLevel == NSNormalWindowLevel) return [FSNamedNumber namedNumberWithDouble:windowLevel name:@"NSNormalWindowLevel"]; - else if (windowLevel == NSFloatingWindowLevel) return [FSNamedNumber namedNumberWithDouble:windowLevel name:@"NSFloatingWindowLevel"]; - else if (windowLevel == NSSubmenuWindowLevel) return [FSNamedNumber namedNumberWithDouble:windowLevel name:@"NSSubmenuWindowLevel"]; - else if (windowLevel == NSTornOffMenuWindowLevel) return [FSNamedNumber namedNumberWithDouble:windowLevel name:@"NSTornOffMenuWindowLevel"]; - else if (windowLevel == NSModalPanelWindowLevel) return [FSNamedNumber namedNumberWithDouble:windowLevel name:@"NSModalPanelWindowLevel"]; - else if (windowLevel == NSMainMenuWindowLevel) return [FSNamedNumber namedNumberWithDouble:windowLevel name:@"NSMainMenuWindowLevel"]; - else if (windowLevel == NSStatusWindowLevel) return [FSNamedNumber namedNumberWithDouble:windowLevel name:@"NSStatusWindowLevel"]; - else if (windowLevel == NSPopUpMenuWindowLevel) return [FSNamedNumber namedNumberWithDouble:windowLevel name:@"NSPopUpMenuWindowLevel"]; - else if (windowLevel == NSScreenSaverWindowLevel) return [FSNamedNumber namedNumberWithDouble:windowLevel name:@"NSScreenSaverWindowLevel"]; - else return [FSNumber numberWithDouble:windowLevel]; -} - -static id objectFromWindowMask(NSUInteger mask) -{ - if (mask & ~(NSTitledWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask | NSResizableWindowMask | NSTexturedBackgroundWindowMask | NSUnifiedTitleAndToolbarWindowMask | NSUnscaledWindowMask)) return [FSNumber numberWithDouble:mask]; - else if (mask == 0) return [FSNamedNumber namedNumberWithDouble:mask name:@"NSBorderlessWindowMask"]; - else - { - NSMutableString *str = [NSMutableString string]; - - if (mask & NSTitledWindowMask) [str appendString:@"NSTitledWindowMask"]; - if (mask & NSClosableWindowMask) [str appendString:[str length] == 0 ? @"NSClosableWindowMask" : @" + NSClosableWindowMask"]; - if (mask & NSMiniaturizableWindowMask) [str appendString:[str length] == 0 ? @"NSMiniaturizableWindowMask" : @" + NSMiniaturizableWindowMask"]; - if (mask & NSResizableWindowMask) [str appendString:[str length] == 0 ? @"NSResizableWindowMask" : @" + NSResizableWindowMask"]; - if (mask & NSTexturedBackgroundWindowMask) [str appendString:[str length] == 0 ? @"NSTexturedBackgroundWindowMask" : @" + NSTexturedBackgroundWindowMask"]; - if (mask & NSUnifiedTitleAndToolbarWindowMask) [str appendString:[str length] == 0 ? @"NSUnifiedTitleAndToolbarWindowMask" : @" + NSUnifiedTitleAndToolbarWindowMask"]; - if (mask & NSUnscaledWindowMask) [str appendString:[str length] == 0 ? @"NSUnscaledWindowMask" : @" + NSUnscaledWindowMask"]; - - return [FSNamedNumber namedNumberWithDouble:mask name:str]; - } -} - -ENUMTOOBJ(WindowBackingLocation, - NSWindowBackingLocationDefault, - NSWindowBackingLocationVideoMemory, - NSWindowBackingLocationMainMemory - ); - - -ENUMTOOBJ(WindowCollectionBehavior, - NSWindowCollectionBehaviorDefault, - NSWindowCollectionBehaviorCanJoinAllSpaces, - NSWindowCollectionBehaviorMoveToActiveSpace - ); - - -ENUMTOOBJ(WindowSharingType, - NSWindowSharingNone, - NSWindowSharingReadOnly, - NSWindowSharingReadWrite - ); +ENUMTOOBJ(ToolbarItemVisibilityPriority, + NSToolbarItemVisibilityPriorityStandard, + NSToolbarItemVisibilityPriorityLow, + NSToolbarItemVisibilityPriorityHigh, + NSToolbarItemVisibilityPriorityUser + ); + + +ENUMTOOBJ(ToolbarSizeMode, + NSToolbarSizeModeDefault, + NSToolbarSizeModeRegular, + NSToolbarSizeModeSmall + ); + + +OPTSTOOBJ(TrackingAreaOptions, + NSTrackingMouseEnteredAndExited, + NSTrackingMouseMoved, + NSTrackingCursorUpdate, + NSTrackingActiveWhenFirstResponder, + NSTrackingActiveInKeyWindow, + NSTrackingActiveInActiveApp, + NSTrackingActiveAlways, + NSTrackingAssumeInside, + NSTrackingInVisibleRect, + NSTrackingEnabledDuringMouseDrag + ); + + +ENUMTOOBJ(TypesetterBehavior, + NSTypesetterLatestBehavior, + NSTypesetterOriginalBehavior, + NSTypesetterBehavior_10_2_WithCompatibility, + NSTypesetterBehavior_10_2, + NSTypesetterBehavior_10_3, + NSTypesetterBehavior_10_4 + ); + + +ENUMTOOBJ(UsableScrollerParts, + NSNoScrollerParts, + NSOnlyScrollerArrows, + NSAllScrollerParts + ); + + +ENUMTOOBJ(WindingRule, + NSNonZeroWindingRule, + NSEvenOddWindingRule + ); + +typedef CGWindowLevelKey NSWindowLevel; +ENUMTOOBJ_DICT(WindowLevel, + (@{@(NSNormalWindowLevel):@"NSNormalWindowLevel", + @(NSFloatingWindowLevel):@"NSFloatingWindowLevel", + @(NSSubmenuWindowLevel):@"NSSubmenuWindowLevel", + @(NSTornOffMenuWindowLevel):@"NSTornOffMenuWindowLevel", + @(NSMainMenuWindowLevel):@"NSMainMenuWindowLevel", + @(NSStatusWindowLevel):@"NSStatusWindowLevel", + @(NSDockWindowLevel):@"NSDockWindowLevel", + @(NSModalPanelWindowLevel):@"NSModalPanelWindowLevel", + @(NSPopUpMenuWindowLevel):@"NSPopUpMenuWindowLevel", + @(NSScreenSaverWindowLevel):@"NSScreenSaverWindowLevel"}) + ); + + +typedef NSUInteger NSWindowMask; +OPTSTOOBJ(WindowMask, + NSBorderlessWindowMask, + NSTitledWindowMask, + NSClosableWindowMask, + NSMiniaturizableWindowMask, + NSResizableWindowMask, + NSTexturedBackgroundWindowMask, + NSUnifiedTitleAndToolbarWindowMask, + NSFullScreenWindowMask, + NSFullSizeContentViewWindowMask + ); + +ENUMTOOBJ(WindowBackingLocation, + NSWindowBackingLocationDefault, + NSWindowBackingLocationVideoMemory, + NSWindowBackingLocationMainMemory + ); + + +ENUMTOOBJ(WindowCollectionBehavior, + NSWindowCollectionBehaviorDefault, + NSWindowCollectionBehaviorCanJoinAllSpaces, + NSWindowCollectionBehaviorMoveToActiveSpace + ); + + +ENUMTOOBJ(WindowSharingType, + NSWindowSharingNone, + NSWindowSharingReadOnly, + NSWindowSharingReadWrite + ); /*static id objectFromWindowOrderingMode(NSWindowOrderingMode orderingMode) -{ - switch (orderingMode) - { - case NSWindowAbove: return [NamedNumber namedNumberWithDouble:orderingMode name:@"NSWindowAbove"]; - case NSWindowBelow: return [NamedNumber namedNumberWithDouble:orderingMode name:@"NSWindowBelow"]; - case NSWindowOut: return [NamedNumber namedNumberWithDouble:orderingMode name:@"NSWindowOut"]; - default: return [Number numberWithDouble:orderingMode]; - } -}*/ - -ENUMTOOBJ(WritingDirection, - NSWritingDirectionNatural, - NSWritingDirectionLeftToRight, - NSWritingDirectionRightToLeft - ); + { + switch (orderingMode) + { + case NSWindowAbove: return [NamedNumber namedNumberWithDouble:orderingMode name:@"NSWindowAbove"]; + case NSWindowBelow: return [NamedNumber namedNumberWithDouble:orderingMode name:@"NSWindowBelow"]; + case NSWindowOut: return [NamedNumber namedNumberWithDouble:orderingMode name:@"NSWindowOut"]; + default: return [Number numberWithDouble:orderingMode]; + } + }*/ + +ENUMTOOBJ(WritingDirection, + NSWritingDirectionNatural, + NSWritingDirectionLeftToRight, + NSWritingDirectionRightToLeft + ); @implementation FSObjectBrowserView (FSObjectBrowserViewObjectInfo) -- (void)fillMatrix:(NSMatrix *)m withObject:(id)object +- (void)fillMatrix:(NSMatrix *)m withObject:(id)object { FSObjectBrowserViewObjectHelper *objectHelper = [[FSObjectBrowserViewObjectHelper alloc] initWithObjectBrowserView:self]; [objectHelper fillMatrix:m withObject:object]; - + [self addBlankRowToMatrix:m]; [self fillMatrix:m withMethodsForObject:object]; - + [m sizeToCells]; //[m scrollCellToVisibleAtRow:[matrix selectedRow] column:0]; [m setNeedsDisplay]; - + [objectHelper release]; } -@end +@end @implementation FSObjectBrowserViewObjectHelper #define ADD_OBJECT(OBJECT,LABEL) @try { [view addObject:(OBJECT) withLabel:(LABEL) toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; } @catch (id exception) { NSLog(@"%@",exception); } -#define ADD_OBJECT_NOT_NIL(OBJECT,LABEL) @try { id object = (OBJECT); if (object) [view addObject:object withLabel:(LABEL) toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; } @catch (id exception) { NSLog(@"%@",exception); } +#define ADD_OBJECT_NOT_NIL(OBJECT,LABEL) @try { id object = (OBJECT); if (object) [view addObject:object withLabel:(LABEL) toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; } @catch (id exception) { NSLog(@"%@",exception); } #define ADD_DICTIONARY(OBJECTS,LABEL) @try { if ([(OBJECTS) count] <= 20) [view addDictionary:(OBJECTS) withLabel:(LABEL) toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; else [view addObject:(OBJECTS) withLabel:(LABEL) toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; } @catch (id exception) { NSLog(@"%@",exception); } @@ -1258,14 +1190,14 @@ - (void)fillMatrix:(NSMatrix *)theMatrix withObject:(id)object classLabel = @""; //for (int j = [m numberOfRows]-1; j >= 0; j--) [m removeRow:j]; // Remove all rows. As a side effect, this will supress the selection. - [m renewRows:0 columns:1]; + [m renewRows:0 columns:1]; [view addObject:object toMatrix:m label:@"" classLabel:@"" indentationLevel:0 leaf:YES]; [object release]; // It's now safe to match the retain in instruction (1) if (selectedObject == object && [selectedClassLabel isEqualToString:@""] && [selectedLabel isEqualToString:@""]) [m selectCellAtRow:[m numberOfRows]-1 column:0]; - + if (object != nil && object == [object class]) // object is a class { NSMutableArray *classNames = [NSMutableArray array]; @@ -1304,9 +1236,9 @@ - (void)fillMatrix:(NSMatrix *)theMatrix withObject:(id)object } else if ([object isKindOfClass:[NSManagedObject class]]) { - NSManagedObject *o = object; + NSManagedObject *o = object; classLabel = @"NSManagedObject Properties"; - NSArray *attributeKeys = [[[[o entity] attributesByName] allKeys] sortedArrayUsingSelector:@selector(compare:)]; + NSArray *attributeKeys = [[[[o entity] attributesByName] allKeys] sortedArrayUsingSelector:@selector(compare:)]; [view addPropertyLabel:@"Attributes" toMatrix:m]; for (NSUInteger i = 0, count = [attributeKeys count]; i < count; i++) { @@ -1332,11 +1264,11 @@ - (void)fillMatrix:(NSMatrix *)theMatrix withObject:(id)object } else if (([object isKindOfClass:[NSArray class]] || [object isKindOfClass:[NSDictionary class]] || [object isKindOfClass:[NSSet class]]) && [object count] < 500 ) // We display the elements only if there is less than a certain number of them - { + { [view addBlankRowToMatrix:m]; if ([object isKindOfClass:[NSArray class]]) - { - NSArray *o = object; + { + NSArray *o = object; if ([o count] == 0) [view addLabelAlone:@"This array is empty" toMatrix:m]; [view addObjects:o withLabel:@"Elements" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; } @@ -1357,21 +1289,21 @@ - (void)fillMatrix:(NSMatrix *)theMatrix withObject:(id)object { FSAssociation *o = object; [view addBlankRowToMatrix:m]; - [view addObject:[o key] withLabel:@"Key" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; - [view addObject:[o value] withLabel:@"Value" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; - } + [view addObject:[o key] withLabel:@"Key" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + [view addObject:[o value] withLabel:@"Value" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + } else if ([object isKindOfClass:[NSView class]]) - { + { NSView *o = object; [view addBlankRowToMatrix:m]; - [view addObject:[o superview] withLabel:@"Superview" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + [view addObject:[o superview] withLabel:@"Superview" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; if ([[o subviews] count] == 0) [view addLabelAlone:@"No subviews" toMatrix:m]; else [view addObjects:[o subviews] withLabel:@"Subviews" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; } else if ([object isKindOfClass:[FSCNBase class]]) - { + { [view addBlankRowToMatrix:m]; if ([object isKindOfClass:[FSCNArray class]]) @@ -1383,31 +1315,31 @@ - (void)fillMatrix:(NSMatrix *)theMatrix withObject:(id)object else if ([object isKindOfClass:[FSCNAssignment class]]) { FSCNAssignment *o = object; - [view addObject:o->left withLabel:@"lvalue" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; - [view addObject:o->right withLabel:@"rvalue" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + [view addObject:o->left withLabel:@"lvalue" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + [view addObject:o->right withLabel:@"rvalue" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; } else if ([object isKindOfClass:[FSCNBlock class]]) { FSCNBlock *o = object; - [view addObject:[o->blockRep ast] withLabel:@"Abstract syntax tree" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + [view addObject:[o->blockRep ast] withLabel:@"Abstract syntax tree" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; } else if ([object isKindOfClass:[FSCNCascade class]]) { FSCNCascade *o = object; - [view addObject:o->receiver withLabel:@"Receiver" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + [view addObject:o->receiver withLabel:@"Receiver" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; [view addObjects:[NSArray arrayWithObjects:o->messages count:o->messageCount] withLabel:@"Message sends" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; } else if ([object isKindOfClass:[FSCNCategory class]]) { FSCNCategory *o = object; - [view addObject:o->className withLabel:@"Class name" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + [view addObject:o->className withLabel:@"Class name" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; [view addObjects:o->methods withLabel:@"Methods" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; } else if ([object isKindOfClass:[FSCNClassDefinition class]]) { FSCNClassDefinition *o = object; - [view addObject:o->className withLabel:@"Class name" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; - [view addObject:o->superclassName withLabel:@"Superclass name" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + [view addObject:o->className withLabel:@"Class name" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + [view addObject:o->superclassName withLabel:@"Superclass name" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; [view addObjects:o->civarNames withLabel:@"Class instance variables names" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; [view addObjects:o->ivarNames withLabel:@"Instance variables names" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; [view addObjects:o->methods withLabel:@"Methods" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; @@ -1421,17 +1353,17 @@ - (void)fillMatrix:(NSMatrix *)theMatrix withObject:(id)object else if ([object isKindOfClass:[FSCNMethod class]]) { FSCNMethod *o = object; - [view addObject:o->method->code withLabel:@"Abstract syntax tree" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + [view addObject:o->method->code withLabel:@"Abstract syntax tree" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; } else if ([object isKindOfClass:[FSCNMessage class]]) { FSCNMessage *o = object; - [view addObject:o->receiver withLabel:@"Receiver" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + [view addObject:o->receiver withLabel:@"Receiver" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; if ([object isKindOfClass:[FSCNBinaryMessage class]]) { FSCNBinaryMessage *o = object; - [view addObject:o->argument withLabel:@"Argument" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + [view addObject:o->argument withLabel:@"Argument" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; } else if ([object isKindOfClass:[FSCNKeywordMessage class]]) { @@ -1442,25 +1374,25 @@ - (void)fillMatrix:(NSMatrix *)theMatrix withObject:(id)object else if ([object isKindOfClass:[FSCNPrecomputedObject class]]) { FSCNPrecomputedObject *o = object; - [view addObject:o->object withLabel:@"Precomputed object" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + [view addObject:o->object withLabel:@"Precomputed object" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; } else if ([object isKindOfClass:[FSCNStatementList class]]) { FSCNStatementList *o = object; - [view addObject:[NSNumber numberWithUnsignedInteger:o->statementCount] withLabel:@"Number of statements" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + [view addObject:[NSNumber numberWithUnsignedInteger:o->statementCount] withLabel:@"Number of statements" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; [view addObjects:[NSArray arrayWithObjects:o->statements count:o->statementCount] withLabel:@"Statements" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; } else if ([object isKindOfClass:[FSCNReturn class]]) { FSCNReturn *o = object; - [view addObject:o->expression withLabel:@"Expression" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + [view addObject:o->expression withLabel:@"Expression" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; } //FSCNBase *o = object; - //[self addObject:[NSNumber numberWithInteger:o->firstCharIndex] withLabel:@"Index of first character in source code" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; - //[self addObject:[NSNumber numberWithInteger:o->lastCharIndex] withLabel:@"Index of last character in source code" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + //[self addObject:[NSNumber numberWithInteger:o->firstCharIndex] withLabel:@"Index of first character in source code" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + //[self addObject:[NSNumber numberWithInteger:o->lastCharIndex] withLabel:@"Index of last character in source code" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; } - + /////////////////// Objective-C 2.0 declared properties /////////////////// if ([[NSUserDefaults standardUserDefaults] boolForKey:@"FScriptAutomaticallyIntrospectDeclaredProperties"]) { @@ -1469,15 +1401,15 @@ - (void)fillMatrix:(NSMatrix *)theMatrix withObject:(id)object { unsigned int i, count; objc_property_t *properties = class_copyPropertyList(cls, &count); - if (properties != NULL && !(cls == [NSView class]) ) // Second part of condition is a quick fix to avoid bloating display for the NSView class with a "one property" section (10.5.0) or spurious properties (10.6). TODO: revise this. + if (properties != NULL && !(cls == [NSView class]) ) // Second part of condition is a quick fix to avoid bloating display for the NSView class with a "one property" section (10.5.0) or spurious properties (10.6). TODO: revise this. { - classLabel = [NSString stringWithFormat:@"%@ Properties", [cls printString]]; + classLabel = [NSString stringWithFormat:@"%@ Properties", [cls printString]]; [view addClassLabel:classLabel toMatrix:m color:[NSColor magentaColor]]; - for (i = 0; i < count; i++) + for (i = 0; i < count; i++) { NSString *propertyName = [NSString stringWithUTF8String:property_getName(properties[i])]; - NSString* propertyEncoding = [ NSString stringWithUTF8String:property_getAttributes(properties[i])]; + NSString* propertyEncoding = [ NSString stringWithUTF8String:property_getAttributes(properties[i])]; NSError*error=nil; NSRegularExpression* customGetterRegexp = [ NSRegularExpression regularExpressionWithPattern:@"(?:^G|,G)([^,]+)" options:0 error:&error ]; NSTextCheckingResult* customGetterMatch = [ customGetterRegexp firstMatchInString:propertyEncoding options:0 range:NSMakeRange(0, propertyEncoding.length)]; @@ -1495,20 +1427,20 @@ - (void)fillMatrix:(NSMatrix *)theMatrix withObject:(id)object } @catch (id exception) { - errorMessage = [@"F-Script can't display the value of this property. " stringByAppendingString:FSErrorMessageFromException(exception)]; + errorMessage = [@"F-Script can't display the value of this property. " stringByAppendingString:FSErrorMessageFromException(exception)]; [view addObject:errorMessage withLabel:propertyName toMatrix:m leaf:YES classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject indentationLevel:0]; } - if (!errorMessage) ADD_OBJECT(propertyValue, propertyName) + if (!errorMessage) ADD_OBJECT(propertyValue, propertyName) } free(properties); } if (cls == [cls superclass]) // Defensive programming against flawed class hierarchies with infinite loops. - cls = nil; - else - cls = [cls superclass]; - } + cls = nil; + else + cls = [cls superclass]; + } } - + /////////////////// Bindings /////////////////// if ([object respondsToSelector:@selector(exposedBindings)] && [object respondsToSelector:@selector(infoForBinding:)]) { @@ -1532,24 +1464,24 @@ - (void)fillMatrix:(NSMatrix *)theMatrix withObject:(id)object if (exposedBindings) { for (i = 0, count = [exposedBindings count]; i < count; i++) - if ([object infoForBinding:[exposedBindings objectAtIndex:i]]) + if ([object infoForBinding:[exposedBindings objectAtIndex:i]]) break; if (i < count && count > 0) - { - classLabel = @"Bindings"; + { + classLabel = @"Bindings"; [view addClassLabel:classLabel toMatrix:m color:[NSColor colorWithCalibratedRed:0 green:0.7098 blue:1 alpha:1]]; for (i = 0, count = [exposedBindings count]; i < count; i++) { [view addBindingForObject:object withName:[exposedBindings objectAtIndex:i] toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; - } + } ADD_OBJECT(exposedBindings, @"Exposed Bindings"); } } } - + for (Class baseClass in self.baseClasses) { if ([object isKindOfClass:baseClass]) { NSString *method = [NSString stringWithFormat:@"add%@:", [baseClass className]]; @@ -1563,7 +1495,7 @@ - (void)fillMatrix:(NSMatrix *)theMatrix withObject:(id)object } } } - + - (NSMutableArray *)baseClasses { if (!baseClasses) { @@ -1603,10 +1535,10 @@ - (NSMutableArray *)baseClasses [NSManagedObjectContext class], [NSManagedObjectID class], [NSManagedObjectModel class], - [NSMenu class], - [NSMenuItem class], - [NSOpenGLContext class], - [NSOpenGLPixelBuffer class], + [NSMenu class], + [NSMenuItem class], + [NSOpenGLContext class], + [NSOpenGLPixelBuffer class], [NSOpenGLPixelFormat class], [NSPageLayout class], [NSParagraphStyle class], @@ -1647,7 +1579,7 @@ - (void)addFSGenericPointer:(id)object ADD_OBJECT_NOT_NIL( [o memoryContentUTF8] ,@"Memory content as UTF8 string") } } - + - (void)addFSObjectPointer:(id)object { FSObjectPointer *o = object; @@ -1659,7 +1591,7 @@ - (void)addFSObjectPointer:(id)object ADD_OBJECT( memoryContent ,@"Memory content") } } - + - (void)addNSAffineTransform:(id)object { NSAffineTransform *o = object; @@ -1672,7 +1604,7 @@ - (void)addNSAffineTransform:(id)object ADD_NUMBER( s.tX ,@"tX") ADD_NUMBER( s.tY ,@"tY") } - + - (void)addNSAlert:(id)object { NSAlert *o = object; @@ -1690,7 +1622,7 @@ - (void)addNSAlert:(id)object ADD_OBJECT( [o suppressionButton] ,@"Suppression button") ADD_OBJECT( [o window] ,@"Window") } - + - (void)addNSAnimation:(id)object { if ([object isKindOfClass:[NSViewAnimation class]]) @@ -1717,14 +1649,14 @@ - (void)addNSAnimation:(id)object ADD_OBJECTS( [o progressMarks] ,@"Progress marks") ADD_OBJECT( [o runLoopModesForAnimating] ,@"Run loop modes for animating") } - + - (void)addNSAnimationContext:(id)object { NSAnimationContext *o = object; ADD_CLASS_LABEL(@"NSAnimationContext Info"); ADD_NUMBER( [o duration] ,@"Duration (in seconds)") } - + - (void)addNSAttributedString:(id)object { if ([object isKindOfClass:[NSMutableAttributedString class]]) @@ -1736,13 +1668,13 @@ - (void)addNSAttributedString:(id)object //ADD_OBJECT( [o attributeRuns] ,@"Attribute runs") ADD_NUMBER( [o changeInLength] ,@"Change in length") ADD_OBJECT_NOT_NIL( [o delegate] ,@"Delegate") - ADD_OBJECT(objectFromTextStorageEditedMask([o editedMask]) ,@"Edited mask") + ADD_OBJECT(objectFromTextStorageEditedOptions([o editedMask]) ,@"Edited mask") ADD_RANGE( [o editedRange] ,@"Edited range") ADD_BOOL( [o fixesAttributesLazily] ,@"Fixes attributes lazily") ADD_OBJECT( [o font] ,@"Font") ADD_OBJECT( [o foregroundColor] ,@"Foreground color") ADD_OBJECTS( [o layoutManagers] ,@"Layout managers") - //ADD_OBJECT( [o paragraphs] ,@"Paragraphs") // Note: invoking "paragraphs" and retaining the result cause the result of "layoutManager" to become trash ! + //ADD_OBJECT( [o paragraphs] ,@"Paragraphs") // Note: invoking "paragraphs" and retaining the result cause the result of "layoutManager" to become trash ! //ADD_OBJECT( [o words] ,@"Words") } //NSMutableAttributedString *o = object; @@ -1752,7 +1684,7 @@ - (void)addNSAttributedString:(id)object //NSAttributedString *o = object; //[self addClassLabel:@"NSAttributedString Info" toMatrix:m]; } - + - (void)addNSBezierPath:(id)object { NSBezierPath *o = object; @@ -1768,8 +1700,8 @@ - (void)addNSBezierPath:(id)object ADD_NUMBER( [o lineWidth] ,@"Line width") ADD_NUMBER( [o miterLimit] ,@"Miter limit") ADD_OBJECT(objectFromWindingRule([o windingRule]) ,@"Winding rule") -} - + } + - (void)addNSCell:(id)object { if ([object isKindOfClass:[NSActionCell class]]) @@ -1786,7 +1718,7 @@ - (void)addNSCell:(id)object ADD_OBJECT(objectFromPopUpArrowPosition([o arrowPosition]),@"Arrow position") ADD_BOOL( [o autoenablesItems] ,@"Autoenables Items") ADD_NUMBER( [o indexOfSelectedItem] ,@"Index of selected item") - ADD_OBJECTS( [o itemArray] ,@"Item array") + ADD_OBJECTS( [o itemArray] ,@"Item array") ADD_NUMBER( [o numberOfItems] ,@"Number of items") ADD_OBJECT( [o objectValue] ,@"Object value") ADD_OBJECT(objectFromRectEdge([o preferredEdge]) ,@"Preferred edge") @@ -1797,7 +1729,7 @@ - (void)addNSCell:(id)object NSMenuItemCell *o = object; ADD_CLASS_LABEL(@"NSMenuItemCell Info"); - if ([[o menuItem] image]) + if ([[o menuItem] image]) ADD_NUMBER( [o imageWidth] ,@"Image width") ADD_BOOL( [o isHighlighted] ,@"Is highlighted") if (![[[o menuItem] keyEquivalent] isEqualToString:@""]) @@ -1818,15 +1750,15 @@ - (void)addNSCell:(id)object ADD_OBJECT( [o backgroundColor] ,@"Background color") ADD_OBJECT(objectFromBezelStyle([o bezelStyle]) ,@"Bezel style") ADD_OBJECT(objectFromGradientType([o gradientType]) ,@"Gradient type") - ADD_OBJECT(objectFromCellMask([o highlightsBy]) ,@"Highlights by") + ADD_OBJECT(objectFromCellStyleMask([o highlightsBy]) ,@"Highlights by") ADD_BOOL( [o imageDimsWhenDisabled] ,@"Image dims when disabled") ADD_OBJECT(objectFromCellImagePosition([o imagePosition]) ,@"Image position") ADD_OBJECT(objectFromImageScaling([o imageScaling]) ,@"Image scaling") ADD_BOOL( [o isTransparent] ,@"Is transparent") ADD_OBJECT_NOT_NIL( [o keyEquivalentFont] ,@"Key equivalent font") ADD_OBJECT(objectFromKeyModifierMask([o keyEquivalentModifierMask]) , @"Key equivalent modifier mask") - ADD_BOOL( [o showsBorderOnlyWhileMouseInside] ,@"Shows border only while mouse inside") - ADD_OBJECT(objectFromCellMask([o showsStateBy]) ,@"Shows state by") + ADD_BOOL( [o showsBorderOnlyWhileMouseInside] ,@"Shows border only while mouse inside") + ADD_OBJECT(objectFromCellStyleMask([o showsStateBy]) ,@"Shows state by") ADD_OBJECT_NOT_NIL( [o sound] ,@"Sound") ADD_OBJECT( [o title] ,@"Title") } @@ -1848,16 +1780,16 @@ - (void)addNSCell:(id)object ADD_OBJECT( [o textColor] ,@"Text Color") ADD_NUMBER( [o timeInterval] ,@"Time interval") ADD_OBJECT( [o timeZone] ,@"Time zone") - } + } else if ([object isKindOfClass:[NSFormCell class]]) { NSFormCell *o = object; ADD_CLASS_LABEL(@"NSFormCell Info"); ADD_OBJECT( [o attributedTitle] ,@"Attributed title") ADD_OBJECT_NOT_NIL( [o placeholderAttributedString] ,@"Placeholder attributed string") - ADD_OBJECT_NOT_NIL( [o placeholderString] ,@"Placeholder string") + ADD_OBJECT_NOT_NIL( [o placeholderString] ,@"Placeholder string") ADD_OBJECT(objectFromTextAlignment([o titleAlignment]) ,@"Title alignment") - ADD_OBJECT(objectFromWritingDirection([o titleBaseWritingDirection]),@"Title base writing direction") + ADD_OBJECT(objectFromWritingDirection([o titleBaseWritingDirection]),@"Title base writing direction") ADD_OBJECT( [o titleFont] ,@"Title font") ADD_NUMBER( [o titleWidth] ,@"Title width") } @@ -1899,7 +1831,7 @@ - (void)addNSCell:(id)object ADD_OBJECT(objectFromSegmentSwitchTracking([o trackingMode]),@"Tracking mode") for (NSInteger i = 0; i < segmentCount; i++) - { + { ADD_OBJECT_NOT_NIL([o imageForSegment:i] ,([NSString stringWithFormat:@"Image for segment %ld",(long)i])) ADD_OBJECT(objectFromImageScaling([o imageScalingForSegment:i]),([NSString stringWithFormat:@"Image scaling for segment %ld",(long)i])) ADD_BOOL( [o isEnabledForSegment:i] ,([NSString stringWithFormat:@"Is enabled for segment %ld",(long)i])) @@ -1915,12 +1847,12 @@ - (void)addNSCell:(id)object { NSSliderCell *o = object; ADD_CLASS_LABEL(@"NSSliderCell Info"); - ADD_BOOL( [o allowsTickMarkValuesOnly] ,@"Allows tick mark values only") - ADD_NUMBER( [o altIncrementValue] ,@"Alt increment value") - ADD_NUMBER( [(NSSliderCell*)o isVertical] ,@"Is vertical") - ADD_NUMBER( [o knobThickness] ,@"Knob thickness") - ADD_NUMBER( [o maxValue] ,@"Max value") - ADD_NUMBER( [o minValue] ,@"Min value") + ADD_BOOL( [o allowsTickMarkValuesOnly] ,@"Allows tick mark values only") + ADD_NUMBER( [o altIncrementValue] ,@"Alt increment value") + ADD_NUMBER( [(NSSliderCell*)o isVertical] ,@"Is vertical") + ADD_NUMBER( [o knobThickness] ,@"Knob thickness") + ADD_NUMBER( [o maxValue] ,@"Max value") + ADD_NUMBER( [o minValue] ,@"Min value") ADD_NUMBER( [o numberOfTickMarks] ,@"Number of tick marks") ADD_OBJECT( objectFromSliderType([o sliderType]) ,@"Slider type") ADD_OBJECT(objectFromTickMarkPosition([o tickMarkPosition], [(NSSliderCell*)o isVertical] == 1),@"Tick mark position") @@ -1930,80 +1862,80 @@ - (void)addNSCell:(id)object { NSStepperCell *o = object; ADD_CLASS_LABEL(@"NSStepperCell Info"); - ADD_BOOL( [o autorepeat] ,@"Autorepeat") - ADD_NUMBER( [o increment] ,@"Increment") - ADD_NUMBER( [o maxValue] ,@"Max value") - ADD_NUMBER( [o minValue] ,@"Min value") - ADD_BOOL( [o valueWraps] ,@"Value wraps") + ADD_BOOL( [o autorepeat] ,@"Autorepeat") + ADD_NUMBER( [o increment] ,@"Increment") + ADD_NUMBER( [o maxValue] ,@"Max value") + ADD_NUMBER( [o minValue] ,@"Min value") + ADD_BOOL( [o valueWraps] ,@"Value wraps") } else if ([object isKindOfClass:[NSTextFieldCell class]]) { - if ([object isKindOfClass:[NSComboBoxCell class]]) + if ([object isKindOfClass:[NSComboBoxCell class]]) { NSComboBoxCell *o = object; ADD_CLASS_LABEL(@"NSComboBoxCell Info"); - if ([o usesDataSource]) ADD_OBJECT([o dataSource] ,@"Data source") + if ([o usesDataSource]) ADD_OBJECT([o dataSource] ,@"Data source") ADD_BOOL( [o hasVerticalScroller] ,@"Has vertical scroller") - ADD_NUMBER( [o indexOfSelectedItem] ,@"Index of selected item") + ADD_NUMBER( [o indexOfSelectedItem] ,@"Index of selected item") ADD_SIZE( [o intercellSpacing] ,@"Intercell spacing") ADD_BOOL( [o isButtonBordered] ,@"Is button bordered") - ADD_NUMBER( [o itemHeight] ,@"Item height") - ADD_NUMBER( [o numberOfItems] ,@"Number of items") - ADD_NUMBER( [o numberOfVisibleItems] ,@"Number of visible items") - if (![o usesDataSource] && [o indexOfSelectedItem] != -1) - ADD_OBJECT( [o objectValueOfSelectedItem] ,@"Object value of selected item") - if (![o usesDataSource]) - ADD_OBJECTS( [o objectValues] ,@"Object values") - ADD_BOOL( [o usesDataSource] ,@"Uses data source") + ADD_NUMBER( [o itemHeight] ,@"Item height") + ADD_NUMBER( [o numberOfItems] ,@"Number of items") + ADD_NUMBER( [o numberOfVisibleItems] ,@"Number of visible items") + if (![o usesDataSource] && [o indexOfSelectedItem] != -1) + ADD_OBJECT( [o objectValueOfSelectedItem] ,@"Object value of selected item") + if (![o usesDataSource]) + ADD_OBJECTS( [o objectValues] ,@"Object values") + ADD_BOOL( [o usesDataSource] ,@"Uses data source") } else if ([object isKindOfClass:[NSPathComponentCell class]]) { NSPathComponentCell *o = object; ADD_CLASS_LABEL(@"NSPathComponentCell Info"); - ADD_OBJECT_NOT_NIL([o image] ,@"Image") + ADD_OBJECT_NOT_NIL([o image] ,@"Image") ADD_OBJECT_NOT_NIL([o URL] ,@"URL") } else if ([object isKindOfClass:[NSSearchFieldCell class]]) { NSSearchFieldCell *o = object; ADD_CLASS_LABEL(@"NSSearchFieldCell Info"); - ADD_OBJECT( [o cancelButtonCell] ,@"Cancel button cell") - ADD_NUMBER( [o maximumRecents] ,@"Maximum recents") - ADD_OBJECTS( [o recentSearches] ,@"Recent searches") - ADD_OBJECT_NOT_NIL([o recentsAutosaveName] ,@"Recents autosave name") - ADD_OBJECT( [o searchButtonCell] ,@"Search button cell") + ADD_OBJECT( [o cancelButtonCell] ,@"Cancel button cell") + ADD_NUMBER( [o maximumRecents] ,@"Maximum recents") + ADD_OBJECTS( [o recentSearches] ,@"Recent searches") + ADD_OBJECT_NOT_NIL([o recentsAutosaveName] ,@"Recents autosave name") + ADD_OBJECT( [o searchButtonCell] ,@"Search button cell") ADD_OBJECT_NOT_NIL([o searchMenuTemplate] ,@"Search menu template") - ADD_BOOL( [o sendsSearchStringImmediately] ,@"Sends search string immediately") + ADD_BOOL( [o sendsSearchStringImmediately] ,@"Sends search string immediately") ADD_BOOL( [o sendsWholeSearchString] ,@"Sends whole search string") } - else if ([object isKindOfClass:[NSTokenFieldCell class]]) + else if ([object isKindOfClass:[NSTokenFieldCell class]]) { NSTokenField *o = object; ADD_CLASS_LABEL(@"NSTokenField Info"); ADD_NUMBER( [o completionDelay] ,@"Completion delay") - ADD_OBJECT_NOT_NIL([o delegate] ,@"Delegate") - ADD_OBJECT( [o tokenizingCharacterSet] ,@"Tokenizing character set") - ADD_OBJECT(objectFromTokenStyle([o tokenStyle]) ,@"Token style") + ADD_OBJECT_NOT_NIL([o delegate] ,@"Delegate") + ADD_OBJECT( [o tokenizingCharacterSet] ,@"Tokenizing character set") + ADD_OBJECT(objectFromTokenStyle([o tokenStyle]) ,@"Token style") } NSTextFieldCell *o = object; ADD_CLASS_LABEL(@"NSTextFieldCell Info"); - ADD_OBJECTS( [o allowedInputSourceLocales] ,@"Allowed input source locales") - ADD_OBJECT( [o backgroundColor] ,@"Background color") + ADD_OBJECTS( [o allowedInputSourceLocales] ,@"Allowed input source locales") + ADD_OBJECT( [o backgroundColor] ,@"Background color") ADD_OBJECT(objectFromTextFieldBezelStyle([o bezelStyle]) ,@"Bezel style") ADD_BOOL( [o drawsBackground] ,@"Draws background") ADD_OBJECT_NOT_NIL([o placeholderAttributedString] ,@"Placeholder attributed string") - ADD_OBJECT_NOT_NIL([o placeholderString] ,@"Placeholder string") + ADD_OBJECT_NOT_NIL([o placeholderString] ,@"Placeholder string") ADD_OBJECT( [o textColor] ,@"Text color") } - } + } else if ([object isKindOfClass:[NSBrowserCell class]]) { NSBrowserCell *o = object; ADD_CLASS_LABEL(@"NSBrowserCell Info"); ADD_OBJECT_NOT_NIL( [o alternateImage] ,@"Alternate image") ADD_BOOL( [o isLeaf] ,@"Is leaf") - ADD_BOOL( [o isLoaded] ,@"Is loaded") + ADD_BOOL( [o isLoaded] ,@"Is loaded") } else if ([object isKindOfClass:[NSImageCell class]]) { @@ -2019,7 +1951,7 @@ - (void)addNSCell:(id)object ADD_OBJECT( [o attachment] ,@"Attachment") ADD_POINT( [o cellBaselineOffset] ,@"Cell baseline offset") ADD_SIZE( [o cellSize] ,@"Cell size") - ADD_BOOL( [o wantsToTrackMouse] ,@"Wants to track mouse") + ADD_BOOL( [o wantsToTrackMouse] ,@"Wants to track mouse") } NSCell *o = object; @@ -2031,8 +1963,8 @@ - (void)addNSCell:(id)object ADD_BOOL( [o allowsMixedState] ,@"Allows mixed state") ADD_BOOL( [o allowsUndo] ,@"Allows undo") //ADD_OBJECT( [o attributedStringValue] ,@"Attributed string value") - ADD_OBJECT(objectFromBackgroundStyle([o backgroundStyle]) ,@"Background style") - ADD_OBJECT(objectFromWritingDirection([o baseWritingDirection]) ,@"Base writing direction") + ADD_OBJECT(objectFromBackgroundStyle([o backgroundStyle]) ,@"Background style") + ADD_OBJECT(objectFromWritingDirection([o baseWritingDirection]) ,@"Base writing direction") ADD_SIZE( [o cellSize] ,@"Cell size") ADD_OBJECT(objectFromControlSize([o controlSize]) ,@"Control size") ADD_OBJECT(objectFromControlTint([o controlTint]) ,@"Control tint") @@ -2042,35 +1974,35 @@ - (void)addNSCell:(id)object ADD_OBJECT_NOT_NIL( [o formatter] ,@"Formatter") ADD_OBJECT_NOT_NIL( [o image] ,@"Image") if ([(NSCell *)o type] == NSTextCellType) ADD_BOOL([o importsGraphics] ,@"Imports graphics") - ADD_OBJECT(objectFromBackgroundStyle([o interiorBackgroundStyle]),@"Interior background style") + ADD_OBJECT(objectFromBackgroundStyle([o interiorBackgroundStyle]),@"Interior background style") ADD_BOOL( [o isBezeled] ,@"Is bezeled") ADD_BOOL( [o isBordered] ,@"Is bordered") ADD_BOOL( [o isContinuous] ,@"Is continuous") ADD_BOOL( [o isEditable] ,@"Is editable") - ADD_BOOL( [o isEnabled] ,@"Is enabled") + ADD_BOOL( [o isEnabled] ,@"Is enabled") ADD_BOOL( [o isHighlighted] ,@"Is highlighted") ADD_BOOL( [o isOpaque] ,@"Is opaque") ADD_BOOL( [o isScrollable] ,@"Is scrollable") ADD_BOOL( [o isSelectable] ,@"Is selectable") if ([[o keyEquivalent] length]!=0) ADD_OBJECT([o keyEquivalent] ,@"Key equivalent") - ADD_OBJECT(objectFromLineBreakMode([o lineBreakMode]) ,@"Line break mode") + ADD_OBJECT(objectFromLineBreakMode([o lineBreakMode]) ,@"Line break mode") ADD_OBJECT_NOT_NIL( [o menu] ,@"Menu") if ([[o mnemonic] length]!=0) ADD_OBJECT([o mnemonic] ,@"Mnemonic") if ([o mnemonicLocation]!=NSNotFound) ADD_NUMBER([o mnemonicLocation],@"Mnemonic location") - ADD_OBJECT(objectFromCellStateValue([o nextState]) ,@"Next state") + ADD_OBJECT(objectFromCellStateValue([o nextState]) ,@"Next state") //ADD_OBJECT( [o objectValue] ,@"Object value") ADD_BOOL( [o refusesFirstResponder] ,@"Refuses first responder") ADD_OBJECT_NOT_NIL( [o representedObject] ,@"Represented object") ADD_BOOL( [o sendsActionOnEndEditing] ,@"Sends action on end editing") ADD_BOOL( [o showsFirstResponder] ,@"Shows first responder") - ADD_OBJECT(objectFromCellStateValue([o state]) ,@"State") + ADD_OBJECT(objectFromCellStateValue([o state]) ,@"State") ADD_NUMBER( [o tag] ,@"Tag") ADD_OBJECT_NOT_NIL( [o target] ,@"Target") ADD_OBJECT(objectFromCellType([(NSCell *)o type]) ,@"Type") - ADD_BOOL( [o wantsNotificationForMarkedText] ,@"Wants notification for marked text") - ADD_BOOL( [o wraps] ,@"Wraps") + ADD_BOOL( [o wantsNotificationForMarkedText] ,@"Wants notification for marked text") + ADD_BOOL( [o wraps] ,@"Wraps") } - + - (void)addNSCollectionViewItem:(id)object { NSCollectionViewItem *o = object; @@ -2080,7 +2012,7 @@ - (void)addNSCollectionViewItem:(id)object ADD_OBJECT( [o representedObject] ,@"Represented object") ADD_OBJECT_NOT_NIL( [o view] ,@"View") } - + - (void)addNSComparisonPredicate:(id)object { NSComparisonPredicate *o = object; @@ -2091,15 +2023,15 @@ - (void)addNSComparisonPredicate:(id)object ADD_OBJECT(objectFromPredicateOperatorType([o predicateOperatorType]), @"Predicate operator type") ADD_OBJECT( [o rightExpression] ,@"Right expression") } - + - (void)addNSCompoundPredicate:(id)object { NSCompoundPredicate *o = object; ADD_CLASS_LABEL(@"NSCompoundPredicate Info") - ADD_OBJECT(objectFromCompoundPredicateType([o compoundPredicateType]) ,@"Compound predicate type") + ADD_OBJECT(objectFromCompoundPredicateType([o compoundPredicateType]) ,@"Compound predicate type") ADD_OBJECTS( [o subpredicates] ,@"Subpredicates") } - + - (void)addNSController:(id)object { if ([object isKindOfClass:[NSObjectController class]]) @@ -2110,8 +2042,8 @@ - (void)addNSController:(id)object { NSDictionaryController *o = object; ADD_CLASS_LABEL(@"NSDictionaryController Info"); - ADD_OBJECTS( [o excludedKeys] ,@"Excluded keys") - ADD_OBJECTS( [o includedKeys] ,@"Included keys") + ADD_OBJECTS( [o excludedKeys] ,@"Excluded keys") + ADD_OBJECTS( [o includedKeys] ,@"Included keys") ADD_OBJECT( [o initialKey] ,@"Initial key") ADD_OBJECT( [o initialValue] ,@"Initial value") ADD_DICTIONARY( [o localizedKeyDictionary] ,@"Localized key dictionary") @@ -2133,7 +2065,7 @@ - (void)addNSController:(id)object if ([o selectionIndex] != NSNotFound) ADD_NUMBER([o selectionIndex], @"Selection index") ADD_OBJECT( [o selectionIndexes] ,@"Selection indexes") ADD_BOOL( [o selectsInsertedObjects] ,@"Selects inserted Objects") - ADD_OBJECTS( [o sortDescriptors] ,@"Sort descriptors") + ADD_OBJECTS( [o sortDescriptors] ,@"Sort descriptors") } else if ([object isKindOfClass:[NSTreeController class]]) { @@ -2145,15 +2077,15 @@ - (void)addNSController:(id)object ADD_BOOL( [o canInsert] ,@"Can insert") ADD_BOOL( [o canInsertChild] ,@"Can insert child") ADD_OBJECT( [o childrenKeyPath] ,@"Children key path") - ADD_OBJECT( [o countKeyPath] ,@"Count key path") - ADD_OBJECT( [o leafKeyPath] ,@"Leaf key path") + ADD_OBJECT( [o countKeyPath] ,@"Count key path") + ADD_OBJECT( [o leafKeyPath] ,@"Leaf key path") ADD_BOOL( [o preservesSelection] ,@"Preserves selection") - ADD_OBJECTS( [o selectedNodes] ,@"Selected nodes") - ADD_OBJECTS( [o selectedObjects] ,@"Selected objects") + ADD_OBJECTS( [o selectedNodes] ,@"Selected nodes") + ADD_OBJECTS( [o selectedObjects] ,@"Selected objects") ADD_OBJECTS( [o selectionIndexPaths] ,@"Selection index paths") ADD_BOOL( [o selectsInsertedObjects] ,@"Selects inserted Objects") - ADD_OBJECTS( [o sortDescriptors] ,@"Sort descriptors") - } + ADD_OBJECTS( [o sortDescriptors] ,@"Sort descriptors") + } NSObjectController *o = object; ADD_CLASS_LABEL(@"NSObjectController Info"); @@ -2188,7 +2120,7 @@ - (void)addNSController:(id)object ADD_CLASS_LABEL(@"NSController Info"); ADD_BOOL( [o isEditing] ,@"Is editing") } - + - (void)addNSCursor:(id)object { NSCursor *o = object; @@ -2198,7 +2130,7 @@ - (void)addNSCursor:(id)object ADD_BOOL( [o isSetOnMouseEntered] ,@"Is set on mouse entered") ADD_BOOL( [o isSetOnMouseExited] ,@"Is set on mouse exited") } - + - (void)addNSDockTile:(id)object { NSDockTile *o = object; @@ -2208,8 +2140,8 @@ - (void)addNSDockTile:(id)object ADD_OBJECT( [o owner] ,@"Owner") ADD_BOOL( [o showsApplicationBadge] ,@"Shows application badge") ADD_SIZE( [o size] ,@"Size") -} - +} + - (void)addNSDocument:(id)object { /* @@ -2240,8 +2172,8 @@ - (void)addNSDocument:(id)object ADD_OBJECTS( [o windowControllers] ,@"Window controllers") ADD_OBJECT( [o windowForSheet] ,@"Window for sheet") ADD_OBJECT( [o windowNibName] ,@"Window nib name") -} - +} + - (void)addNSDocumentController:(id)object { NSDocumentController *o = object; @@ -2256,7 +2188,7 @@ - (void)addNSDocumentController:(id)object ADD_NUMBER( [o maximumRecentDocumentCount] ,@"Maximum recent document count") ADD_OBJECT( [o recentDocumentURLs] ,@"Recent document URLs") } - + - (void)addNSEntityDescription:(id)object { NSEntityDescription *o = object; @@ -2274,7 +2206,7 @@ - (void)addNSEntityDescription:(id)object ADD_OBJECT( [o superentity] ,@"Superentity") ADD_DICTIONARY( [o userInfo] ,@"User info") } - + - (void)addNSEvent:(id)object { NSEvent *o = object; @@ -2286,7 +2218,7 @@ - (void)addNSEvent:(id)object ADD_NUMBER( [o absoluteX] ,@"Absolute x") ADD_NUMBER( [o absoluteY] ,@"Absolute y") ADD_NUMBER( [o absoluteZ] ,@"Absolute z") - ADD_OBJECT(objectFromButtonMask([o buttonMask]) ,@"Button mask") + ADD_OBJECT(objectFromEventButtonMask([o buttonMask]) ,@"Button mask") } if (type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp) ADD_NUMBER( [o buttonNumber] ,@"Button number") @@ -2322,7 +2254,7 @@ - (void)addNSEvent:(id)object if (type == NSTabletProximity || ((type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) && [object subtype] == NSTabletProximityEventSubtype) ) ADD_BOOL( [o isEnteringProximity] ,@"Is entering proximity") if (type == NSKeyDown || type == NSKeyUp) - ADD_NUMBER( [o keyCode] ,@"Key code") + ADD_NUMBER( [o keyCode] ,@"Key code") if (type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) ADD_POINT( [o locationInWindow] ,@"Location in window") ADD_OBJECT(objectFromKeyModifierMask([o modifierFlags]) ,@"Modifier flags") @@ -2372,8 +2304,8 @@ - (void)addNSEvent:(id)object } if (type != NSPeriodic) ADD_OBJECT( [o window] ,@"Window") - } - + } + - (void)addNSExpression:(id)object { NSExpression *o = object; @@ -2401,16 +2333,16 @@ - (void)addNSExpression:(id)object BOOL rightExpressionIsInitialized = NO; BOOL variableIsInitialized = NO; - @try { arguments = [o arguments]; argumentsIsInitialized = YES; } @catch (id exception) {} - @try { collection = [o collection]; collectionIsInitialized = YES; } @catch (id exception) {} - @try { constantValue = [o constantValue]; constantValueIsInitialized = YES; } @catch (id exception) {} - @try { expressionType = [o expressionType]; expressionTypeIsInitialized = YES; } @catch (id exception) {} - @try { function = [o function]; functionIsInitialized = YES; } @catch (id exception) {} - @try { keyPath = [o keyPath]; keyPathIsInitialized = YES; } @catch (id exception) {} - @try { leftExpression = [o leftExpression]; leftExpressionIsInitialized = YES; } @catch (id exception) {} - @try { operand = [o operand]; operandIsInitialized = YES; } @catch (id exception) {} - @try { predicate = [o predicate]; predicateIsInitialized = YES; } @catch (id exception) {} - @try { rightExpression = [o rightExpression]; rightExpressionIsInitialized = YES; } @catch (id exception) {} + @try { arguments = [o arguments]; argumentsIsInitialized = YES; } @catch (id exception) {} + @try { collection = [o collection]; collectionIsInitialized = YES; } @catch (id exception) {} + @try { constantValue = [o constantValue]; constantValueIsInitialized = YES; } @catch (id exception) {} + @try { expressionType = [o expressionType]; expressionTypeIsInitialized = YES; } @catch (id exception) {} + @try { function = [o function]; functionIsInitialized = YES; } @catch (id exception) {} + @try { keyPath = [o keyPath]; keyPathIsInitialized = YES; } @catch (id exception) {} + @try { leftExpression = [o leftExpression]; leftExpressionIsInitialized = YES; } @catch (id exception) {} + @try { operand = [o operand]; operandIsInitialized = YES; } @catch (id exception) {} + @try { predicate = [o predicate]; predicateIsInitialized = YES; } @catch (id exception) {} + @try { rightExpression = [o rightExpression]; rightExpressionIsInitialized = YES; } @catch (id exception) {} @try { variable = [o variable]; variableIsInitialized = YES; } @catch (id exception) {} ADD_CLASS_LABEL(@"NSExpression Info"); @@ -2427,38 +2359,38 @@ - (void)addNSExpression:(id)object if (rightExpressionIsInitialized) ADD_OBJECT(leftExpression ,@"Right expression"); if (variableIsInitialized) ADD_OBJECT(variable ,@"Variable"); } - + - (void)addNSFetchRequest:(id)object { NSFetchRequest *o = object; ADD_CLASS_LABEL(@"NSFetchRequest Info"); - ADD_OBJECTS( [o affectedStores] ,@"Affected stores") - ADD_OBJECT( [o entity] ,@"Entity") - ADD_NUMBER( [o fetchLimit] ,@"Fetch limit") + ADD_OBJECTS( [o affectedStores] ,@"Affected stores") + ADD_OBJECT( [o entity] ,@"Entity") + ADD_NUMBER( [o fetchLimit] ,@"Fetch limit") ADD_BOOL( [o includesPropertyValues] ,@"Includes property values") ADD_BOOL( [o includesSubentities] ,@"Includes bubentities") - ADD_OBJECT( [o predicate] ,@"Predicate") - ADD_OBJECTS( [o relationshipKeyPathsForPrefetching] ,@"Relationship key paths for prefetching") - ADD_OBJECT(objectFromFetchRequestResultType([o resultType]) ,@"Result type") + ADD_OBJECT( [o predicate] ,@"Predicate") + ADD_OBJECTS( [o relationshipKeyPathsForPrefetching] ,@"Relationship key paths for prefetching") + ADD_OBJECT(objectFromFetchRequestResultType([o resultType]) ,@"Result type") ADD_BOOL( [o returnsObjectsAsFaults] ,@"Returns objects as faults") - ADD_OBJECTS( [o sortDescriptors] ,@"Sort descriptors") + ADD_OBJECTS( [o sortDescriptors] ,@"Sort descriptors") } - (void)addNSFileWrapper:(id)object { NSFileWrapper *o = object; ADD_CLASS_LABEL(@"NSFileWrapper Info"); - ADD_DICTIONARY( [o fileAttributes] ,@"File attributes") - ADD_OBJECT( [o filename] ,@"Filename") - ADD_OBJECT_NOT_NIL( [o icon] ,@"Icon") + ADD_DICTIONARY( [o fileAttributes] ,@"File attributes") + ADD_OBJECT( [o filename] ,@"Filename") + ADD_OBJECT_NOT_NIL( [o icon] ,@"Icon") ADD_BOOL( [o isDirectory] ,@"Is directory") ADD_BOOL( [o isRegularFile] ,@"Is regularFile") ADD_BOOL( [o isSymbolicLink] ,@"Is symbolic link") - ADD_OBJECT_NOT_NIL( [o preferredFilename] ,@"Preferred filename") + ADD_OBJECT_NOT_NIL( [o preferredFilename] ,@"Preferred filename") if ([o isSymbolicLink]) - ADD_OBJECT_NOT_NIL( [o symbolicLinkDestination] ,@"Symbolic link destination") -} - + ADD_OBJECT_NOT_NIL( [o symbolicLinkDestination] ,@"Symbolic link destination") + } + - (void)addNSFont:(id)object { NSFont *o = object; @@ -2466,12 +2398,12 @@ - (void)addNSFont:(id)object ADD_NUMBER( [o ascender] ,@"Ascender") ADD_RECT( [o boundingRectForFont] ,@"Bounding rect for font") ADD_NUMBER( [o capHeight] ,@"Cap height") - ADD_OBJECT( [o coveredCharacterSet] ,@"Covered character set") + ADD_OBJECT( [o coveredCharacterSet] ,@"Covered character set") ADD_NUMBER( [o descender] ,@"Descender") - ADD_OBJECT( [o displayName] ,@"Display name") - ADD_OBJECT( [o familyName] ,@"Family name") - ADD_OBJECT( [o fontDescriptor] ,@"Font descriptor") - ADD_OBJECT( [o fontName] ,@"Font name") + ADD_OBJECT( [o displayName] ,@"Display name") + ADD_OBJECT( [o familyName] ,@"Family name") + ADD_OBJECT( [o fontDescriptor] ,@"Font descriptor") + ADD_OBJECT( [o fontName] ,@"Font name") ADD_BOOL( [o isFixedPitch] ,@"Is fixedPitch") ADD_NUMBER( [o italicAngle] ,@"Italic angle") ADD_NUMBER( [o leading] ,@"Leading") @@ -2481,17 +2413,17 @@ - (void)addNSFont:(id)object [view addObject:matrixString withLabel:@"Matrix" toMatrix:m leaf:YES classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject indentationLevel:0]; ADD_SIZE( [o maximumAdvancement] ,@"Maximum advancement") - ADD_OBJECT(objectFromStringEncoding([o mostCompatibleStringEncoding]),@"Most compatible string encoding") + ADD_OBJECT(objectFromStringEncoding([o mostCompatibleStringEncoding]),@"Most compatible string encoding") ADD_NUMBER( [o numberOfGlyphs] ,@"Number of glyphs") ADD_NUMBER( [o pointSize] ,@"Point size") - ADD_OBJECT( [o printerFont] ,@"Printer font") - ADD_OBJECT(objectFromFontRenderingMode([o renderingMode]) ,@"Rendering mode") - ADD_OBJECT_NOT_NIL( [o screenFont] ,@"Screen font") + ADD_OBJECT( [o printerFont] ,@"Printer font") + ADD_OBJECT(objectFromFontRenderingMode([o renderingMode]) ,@"Rendering mode") + ADD_OBJECT_NOT_NIL( [o screenFont] ,@"Screen font") ADD_NUMBER( [o underlinePosition] ,@"Underline position") ADD_NUMBER( [o underlineThickness] ,@"Underline thickness") ADD_NUMBER( [o xHeight] ,@"xHeight") -} - +} + - (void)addNSFontDescriptor:(id)object { NSFontDescriptor *o = object; @@ -2502,7 +2434,7 @@ - (void)addNSFontDescriptor:(id)object ADD_OBJECT( [o postscriptName] ,@"Postscript name") ADD_NUMBER( [o symbolicTraits] ,@"Symbolic traits") } - + - (void)addNSFontManager:(id)object { NSFontManager *o = object; @@ -2517,22 +2449,22 @@ - (void)addNSFontManager:(id)object ADD_OBJECT( [o selectedFont] ,@"Selected font") ADD_OBJECT( [o target] ,@"Target") } - + - (void)addNSGlyphInfo:(id)object - { - NSGlyphInfo *o = object; - ADD_CLASS_LABEL(@"NSGlyphInfo Info"); - ADD_OBJECT(objectFromCharacterCollection([o characterCollection]),@"Character collection") - if ([o characterIdentifier]) ADD_NUMBER( [o characterIdentifier],@"Character identifier"); - ADD_OBJECT_NOT_NIL( [o glyphName] ,@"Glyph name") - } - +{ + NSGlyphInfo *o = object; + ADD_CLASS_LABEL(@"NSGlyphInfo Info"); + ADD_OBJECT(objectFromCharacterCollection([o characterCollection]),@"Character collection") + if ([o characterIdentifier]) ADD_NUMBER( [o characterIdentifier],@"Character identifier"); + ADD_OBJECT_NOT_NIL( [o glyphName] ,@"Glyph name") +} + - (void)addNSGlyphGenerator:(id)object { //NSGlyphGenerator *o = object; //ADD_CLASS_LABEL(@"NSGlyphGenerator Info"); } - + - (void)addNSGradient:(id)object { NSGradient *o = object; @@ -2540,8 +2472,8 @@ - (void)addNSGradient:(id)object ADD_OBJECT_NOT_NIL( [o colorSpace] ,@"Color space") ADD_NUMBER( [o numberOfColorStops] ,@"Number of color stops") } - - + + - (void)addNSGraphicsContext:(id)object { NSGraphicsContext *o = object; @@ -2550,13 +2482,13 @@ - (void)addNSGraphicsContext:(id)object ADD_OBJECT(objectFromColorRenderingIntent([o colorRenderingIntent]),@"Color rendering intent") ADD_OBJECT(objectFromCompositingOperation([o compositingOperation]),@"Compositing operation") ADD_POINTER( [o graphicsPort] ,@"Graphics port") - ADD_OBJECT(objectFromImageInterpolation([o imageInterpolation]) ,@"Image interpolation") + ADD_OBJECT(objectFromImageInterpolation([o imageInterpolation]) ,@"Image interpolation") ADD_BOOL( [o isDrawingToScreen] ,@"Is drawing to screen") ADD_BOOL( [o isFlipped] ,@"Is flipped") ADD_POINT( [o patternPhase] ,@"Pattern phase") ADD_BOOL( [o shouldAntialias] ,@"Should antialias") } - + - (void)addNSImage:(id)object { NSImage *o = object; @@ -2578,18 +2510,18 @@ - (void)addNSImage:(id)object ADD_BOOL( [o scalesWhenResized] ,@"Scales when resized") ADD_SIZE( [o size] ,@"Size") ADD_BOOL( [o usesEPSOnResolutionMismatch] ,@"Uses EPS on resolution mismatch") -} - +} + - (void)addNSImageRep:(id)object { - if ([object isKindOfClass:[NSBitmapImageRep class]]) + if ([object isKindOfClass:[NSBitmapImageRep class]]) { NSBitmapImageRep *o = object; ADD_CLASS_LABEL(@"NSBitmapImageRep Info"); ADD_OBJECT( objectFromBitmapFormat([o bitmapFormat]),@"Bitmap format") - ADD_NUMBER( [o bitsPerPixel] ,@"Bits per pixel") - ADD_NUMBER( [o bytesPerPlane] ,@"Bytes per plane") - ADD_NUMBER( [o bytesPerRow] ,@"Bytes per row") + ADD_NUMBER( [o bitsPerPixel] ,@"Bits per pixel") + ADD_NUMBER( [o bytesPerPlane] ,@"Bytes per plane") + ADD_NUMBER( [o bytesPerRow] ,@"Bytes per row") ADD_OBJECT_NOT_NIL([o valueForProperty:NSImageColorSyncProfileData],@"ColorSync profile data") ADD_OBJECT_NOT_NIL([o valueForProperty:NSImageCompressionFactor],@"Compression factor") { @@ -2607,39 +2539,39 @@ - (void)addNSImageRep:(id)object ADD_OBJECT_NOT_NIL([o valueForProperty:NSImageInterlaced] ,@"Interlaced") ADD_BOOL( [o isPlanar] ,@"Is planar") ADD_OBJECT_NOT_NIL([o valueForProperty:NSImageLoopCount] ,@"Loop count") - ADD_NUMBER( [o numberOfPlanes] ,@"Number of planes") + ADD_NUMBER( [o numberOfPlanes] ,@"Number of planes") ADD_OBJECT_NOT_NIL([o valueForProperty:NSImageProgressive] ,@"Progressive") ADD_OBJECT_NOT_NIL([o valueForProperty:NSImageRGBColorTable] ,@"RGB color table") - ADD_NUMBER( [o samplesPerPixel] ,@"Samples per pixel") + ADD_NUMBER( [o samplesPerPixel] ,@"Samples per pixel") } - else if ([object isKindOfClass:[NSCIImageRep class]]) + else if ([object isKindOfClass:[NSCIImageRep class]]) { NSCIImageRep *o = object; ADD_CLASS_LABEL(@"NSCIImageRep Info"); - ADD_OBJECT( [o CIImage] ,@"CIImage") + ADD_OBJECT( [o CIImage] ,@"CIImage") } - else if ([object isKindOfClass:[NSCustomImageRep class]]) + else if ([object isKindOfClass:[NSCustomImageRep class]]) { NSCustomImageRep *o = object; ADD_CLASS_LABEL(@"NSCustomImageRep Info"); ADD_OBJECT( [o delegate] ,@"Delegate") - ADD_SEL( [o drawSelector] ,@"Draw selector") + ADD_SEL( [o drawSelector] ,@"Draw selector") } - else if ([object isKindOfClass:[NSEPSImageRep class]]) + else if ([object isKindOfClass:[NSEPSImageRep class]]) { NSEPSImageRep *o = object; ADD_CLASS_LABEL(@"NSEPSImageRep Info"); ADD_RECT( [o boundingBox] ,@"Bounding box") } - else if ([object isKindOfClass:[NSPDFImageRep class]]) + else if ([object isKindOfClass:[NSPDFImageRep class]]) { NSPDFImageRep *o = object; ADD_CLASS_LABEL(@"NSPDFImageRep Info"); ADD_RECT( [o bounds] ,@"Bounding box") - ADD_NUMBER( [o currentPage] ,@"Current page") - ADD_NUMBER( [o pageCount] ,@"Page count") + ADD_NUMBER( [o currentPage] ,@"Current page") + ADD_NUMBER( [o pageCount] ,@"Page count") } - else if ([object isKindOfClass:[NSPICTImageRep class]]) + else if ([object isKindOfClass:[NSPICTImageRep class]]) { NSPICTImageRep *o = object; ADD_CLASS_LABEL(@"NSPICTImageRep Info"); @@ -2648,44 +2580,44 @@ - (void)addNSImageRep:(id)object NSImageRep *o = object; ADD_CLASS_LABEL(@"NSImageRep Info"); - ADD_NUMBER( [o bitsPerSample] ,@"Bits per sample") - ADD_OBJECT( [o colorSpaceName] ,@"Color space name") + ADD_NUMBER( [o bitsPerSample] ,@"Bits per sample") + ADD_OBJECT( [o colorSpaceName] ,@"Color space name") ADD_BOOL( [o hasAlpha] ,@"Has alpha") ADD_BOOL( [o isOpaque] ,@"Is opaque") - ADD_NUMBER( [o pixelsHigh] ,@"Pixels high") - ADD_NUMBER( [o pixelsWide] ,@"Pixels wide") - ADD_SIZE( [o size] ,@"Size") -} - + ADD_NUMBER( [o pixelsHigh] ,@"Pixels high") + ADD_NUMBER( [o pixelsWide] ,@"Pixels wide") + ADD_SIZE( [o size] ,@"Size") +} + - (void)addNSLayoutManager:(id)object { NSLayoutManager *o = object; ADD_CLASS_LABEL(@"NSLayoutManager Info"); ADD_BOOL( [o allowsNonContiguousLayout] ,@"Allows non contiguous layout") ADD_BOOL( [o backgroundLayoutEnabled] ,@"Background layout enabled") - ADD_OBJECT(objectFromImageScaling([o defaultAttachmentScaling]) ,@"Default attachment scaling") - ADD_OBJECT_NOT_NIL( [o delegate] ,@"Delegate") + ADD_OBJECT(objectFromImageScaling([o defaultAttachmentScaling]) ,@"Default attachment scaling") + ADD_OBJECT_NOT_NIL( [o delegate] ,@"Delegate") ADD_RECT( [o extraLineFragmentRect] ,@"Extra line fragment rect") - ADD_OBJECT_NOT_NIL( [o extraLineFragmentTextContainer] ,@"Extra line fragment text container") + ADD_OBJECT_NOT_NIL( [o extraLineFragmentTextContainer] ,@"Extra line fragment text container") ADD_RECT( [o extraLineFragmentUsedRect] ,@"Extra line fragment used rect") - ADD_OBJECT( [o firstTextView] ,@"First text view") - ADD_NUMBER( [o firstUnlaidCharacterIndex] ,@"First unlaid character index") + ADD_OBJECT( [o firstTextView] ,@"First text view") + ADD_NUMBER( [o firstUnlaidCharacterIndex] ,@"First unlaid character index") ADD_NUMBER( [o firstUnlaidGlyphIndex] ,@"First unlaid glyph index") - ADD_OBJECT( [o glyphGenerator] ,@"Glyph generator") + ADD_OBJECT( [o glyphGenerator] ,@"Glyph generator") ADD_BOOL( [o hasNonContiguousLayout] ,@"Has non contiguous layout") - ADD_NUMBER( [o hyphenationFactor] ,@"Hyphenation factor") - ADD_OBJECT(objectFromLayoutOptions([o layoutOptions]) ,@"Layout options") + ADD_NUMBER( [o hyphenationFactor] ,@"Hyphenation factor") + ADD_OBJECT(objectFromGlyphStorageLayoutOptions([o layoutOptions]) ,@"Layout options") ADD_BOOL( [o showsControlCharacters] ,@"Shows control characters") ADD_BOOL( [o showsInvisibleCharacters] ,@"Shows invisible characters") ADD_OBJECTS( [o textContainers] ,@"Text containers") - ADD_OBJECT( [o textStorage] ,@"Text storage") - ADD_OBJECT( [o textViewForBeginningOfSelection] ,@"Text view for beginning of selection") - ADD_OBJECT( [o typesetter] ,@"Typesetter") - ADD_OBJECT(objectFromTypesetterBehavior([o typesetterBehavior]) ,@"Typesetter behavior") + ADD_OBJECT( [o textStorage] ,@"Text storage") + ADD_OBJECT( [o textViewForBeginningOfSelection] ,@"Text view for beginning of selection") + ADD_OBJECT( [o typesetter] ,@"Typesetter") + ADD_OBJECT(objectFromTypesetterBehavior([o typesetterBehavior]) ,@"Typesetter behavior") ADD_BOOL( [o usesFontLeading] ,@"Uses font leading") ADD_BOOL( [o usesScreenFonts] ,@"Uses screen fonts") } - + - (void)addNSManagedObjectContext:(id)object { NSManagedObjectContext *o = object; @@ -2702,9 +2634,9 @@ - (void)addNSManagedObjectContext:(id)object ADD_BOOL( [o tryLock] ,@"Try lock") ADD_OBJECT( [o undoManager] ,@"Undo manager" ) ADD_OBJECT( [o updatedObjects] ,@"Updated objects" ) -} - -- (void)addNSManagedObjectID:(id)object +} + +- (void)addNSManagedObjectID:(id)object { NSManagedObjectID *o = object; ADD_CLASS_LABEL(@"NSManagedObjectID Info"); @@ -2713,8 +2645,8 @@ - (void)addNSManagedObjectID:(id)object ADD_OBJECT( [o persistentStore] ,@"Persistent store" ) ADD_OBJECT( [o URIRepresentation] ,@"URI representation" ) } - -- (void)addNSManagedObjectModel:(id)object + +- (void)addNSManagedObjectModel:(id)object { NSManagedObjectModel *o = object; ADD_CLASS_LABEL(@"NSManagedObjectModel Info"); @@ -2723,23 +2655,23 @@ - (void)addNSManagedObjectModel:(id)object ADD_DICTIONARY( [o fetchRequestTemplatesByName] ,@"Fetch request templates by name") ADD_OBJECTS( [[o versionIdentifiers] allObjects] ,@"Version identifiers") } - -- (void)addNSMenu:(id)object + +- (void)addNSMenu:(id)object { NSMenu *o = object; ADD_CLASS_LABEL(@"NSMenu Info"); ADD_BOOL( [o autoenablesItems] ,@"Autoenables Items") - ADD_OBJECT_NOT_NIL( [o delegate] ,@"Delegate") - ADD_OBJECT_NOT_NIL( [o highlightedItem] ,@"Highlighted item") + ADD_OBJECT_NOT_NIL( [o delegate] ,@"Delegate") + ADD_OBJECT_NOT_NIL( [o highlightedItem] ,@"Highlighted item") ADD_BOOL( [o isTornOff] ,@"Is torn off") ADD_OBJECTS( [o itemArray] ,@"Items" ) ADD_BOOL( [o menuChangedMessagesEnabled] ,@"Menu changed messages enabled") ADD_BOOL( [o showsStateColumn] ,@"Shows state column") ADD_OBJECT_NOT_NIL( [o supermenu] ,@"Supermenu") - ADD_OBJECT( [o title] ,@"Title") -} - -- (void)addNSMenuItem:(id)object + ADD_OBJECT( [o title] ,@"Title") +} + +- (void)addNSMenuItem:(id)object { NSMenuItem *o = object; ADD_CLASS_LABEL(@"NSMenuItem Info") @@ -2761,7 +2693,7 @@ - (void)addNSMenuItem:(id)object ADD_OBJECT_NOT_NIL( [o offStateImage] ,@"Off state image") ADD_OBJECT_NOT_NIL( [o onStateImage] ,@"On state image") ADD_OBJECT_NOT_NIL( [o representedObject] ,@"Represented object") - ADD_OBJECT(objectFromCellStateValue([o state]) ,@"State") + ADD_OBJECT(objectFromCellStateValue([o state]) ,@"State") ADD_OBJECT_NOT_NIL( [o submenu] ,@"Submenu") ADD_NUMBER( [o tag] ,@"Tag") ADD_OBJECT_NOT_NIL( [o target] ,@"Target") @@ -2769,21 +2701,21 @@ - (void)addNSMenuItem:(id)object ADD_OBJECT_NOT_NIL( [o toolTip] ,@"Tool tip") ADD_OBJECT( [o userKeyEquivalent] ,@"User key equivalent") ADD_OBJECT_NOT_NIL( [o view] ,@"View") -} - -- (void)addNSOpenGLContext:(id)object +} + +- (void)addNSOpenGLContext:(id)object { NSOpenGLContext *o = object; ADD_CLASS_LABEL(@"NSOpenGLContext Info"); ADD_POINTER( [o CGLContextObj] ,@"CGL context obj") ADD_NUMBER( [o currentVirtualScreen] ,@"Current virtual screen") - ADD_OBJECT_NOT_NIL( [o pixelBuffer] ,@"Pixel buffer") + ADD_OBJECT_NOT_NIL( [o pixelBuffer] ,@"Pixel buffer") ADD_NUMBER( [o pixelBufferCubeMapFace] ,@"Pixel buffer cube map face") ADD_NUMBER( [o pixelBufferMipMapLevel] ,@"Pixel buffer mipmap level") - ADD_OBJECT_NOT_NIL( [o view] ,@"View") + ADD_OBJECT_NOT_NIL( [o view] ,@"View") } - -- (void)addNSOpenGLPixelBuffer:(id)object + +- (void)addNSOpenGLPixelBuffer:(id)object { NSOpenGLPixelBuffer *o = object; ADD_CLASS_LABEL(@"NSOpenGLPixelBuffer Info"); @@ -2792,16 +2724,16 @@ - (void)addNSOpenGLPixelBuffer:(id)object ADD_NUMBER( [o textureInternalFormat] ,@"Texture internal format") ADD_NUMBER( [o textureMaxMipMapLevel] ,@"Texture max mipmap level") ADD_NUMBER( [o textureTarget] ,@"Texture target") -} - -- (void)addNSOpenGLPixelFormat:(id)object +} + +- (void)addNSOpenGLPixelFormat:(id)object { NSOpenGLPixelFormat *o = object; ADD_CLASS_LABEL(@"NSOpenGLPixelFormat Info"); ADD_POINTER( [o CGLPixelFormatObj] ,@"CGL pixel format obj") ADD_NUMBER( [o numberOfVirtualScreens] ,@"Number of virtual screens") } - + - (void)addNSPageLayout:(id)object { NSPageLayout *o = object; @@ -2810,49 +2742,49 @@ - (void)addNSPageLayout:(id)object { ADD_CLASS_LABEL(@"NSPageLayout Info"); ADD_OBJECTS( [o accessoryControllers] ,@"Accessory controllers") - ADD_OBJECT_NOT_NIL( [o printInfo] ,@"Print info") + ADD_OBJECT_NOT_NIL( [o printInfo] ,@"Print info") } -} - +} + - (void)addNSParagraphStyle:(id)object { - if ([object isKindOfClass:[NSMutableParagraphStyle class]]) + if ([object isKindOfClass:[NSMutableParagraphStyle class]]) { //NSMutableParagraphStyle *o = object; //ADD_CLASS_LABEL(@"NSMutableParagraphStyle Info") - } + } NSParagraphStyle *o = object; ADD_CLASS_LABEL(@"NSParagraphStyle Info") - ADD_OBJECT(objectFromTextAlignment([o alignment]) ,@"Alignment") - ADD_OBJECT(objectFromWritingDirection([o baseWritingDirection]) ,@"Base writing direction") + ADD_OBJECT(objectFromTextAlignment([o alignment]) ,@"Alignment") + ADD_OBJECT(objectFromWritingDirection([o baseWritingDirection]) ,@"Base writing direction") ADD_NUMBER( [o defaultTabInterval] ,@"Default tab interval") ADD_NUMBER( [o firstLineHeadIndent] ,@"First line head indent") ADD_NUMBER( [o headerLevel] ,@"HeaderLevel") - ADD_NUMBER( [o headIndent] ,@"Head indent") + ADD_NUMBER( [o headIndent] ,@"Head indent") ADD_NUMBER( [o hyphenationFactor] ,@"hyphenationFactor") - ADD_OBJECT(objectFromLineBreakMode([o lineBreakMode]) ,@"Line break mode") + ADD_OBJECT(objectFromLineBreakMode([o lineBreakMode]) ,@"Line break mode") ADD_NUMBER( [o lineHeightMultiple] ,@"Line height multiple") - ADD_NUMBER( [o lineSpacing] ,@"Line spacing") - ADD_NUMBER( [o maximumLineHeight] ,@"Maximum line height") - ADD_NUMBER( [o minimumLineHeight] ,@"Minimum line height") - ADD_NUMBER( [o paragraphSpacing] ,@"Paragraph spacing") - ADD_NUMBER( [o paragraphSpacingBefore] ,@"Paragraph spacing before") + ADD_NUMBER( [o lineSpacing] ,@"Line spacing") + ADD_NUMBER( [o maximumLineHeight] ,@"Maximum line height") + ADD_NUMBER( [o minimumLineHeight] ,@"Minimum line height") + ADD_NUMBER( [o paragraphSpacing] ,@"Paragraph spacing") + ADD_NUMBER( [o paragraphSpacingBefore] ,@"Paragraph spacing before") ADD_OBJECTS( [o tabStops] ,@"Tab stops") - ADD_NUMBER( [o tailIndent] ,@"Tail indent") + ADD_NUMBER( [o tailIndent] ,@"Tail indent") ADD_OBJECTS( [o textBlocks] ,@"Text blocks") ADD_OBJECTS( [o textLists] ,@"Text lists") ADD_NUMBER( [o tighteningFactorForTruncation] ,@"Tightening factor for truncation") } - + - (void)addNSPersistentStoreCoordinator:(id)object { NSPersistentStoreCoordinator *o = object; ADD_CLASS_LABEL(@"NSPersistentStoreCoordinator Info") ADD_OBJECT( [o managedObjectModel] ,@"Managed object model") ADD_OBJECTS( [o persistentStores] ,@"Persistent stores") -} - +} + - (void)addNSPredicateEditorRowTemplate:(id)object { NSPredicateEditorRowTemplate *o = object; @@ -2865,11 +2797,11 @@ - (void)addNSPredicateEditorRowTemplate:(id)object ADD_OBJECT(objectFromAttributeType([o rightExpressionAttributeType]),@"Right expression attribute type") ADD_OBJECTS( [o rightExpressions] ,@"Right expressions") ADD_OBJECTS( [o templateViews] ,@"Template views") -} - +} + - (void)addNSPropertyDescription:(id)object { - if ([object isKindOfClass:[NSAttributeDescription class]]) + if ([object isKindOfClass:[NSAttributeDescription class]]) { NSAttributeDescription *o = object; ADD_CLASS_LABEL(@"NSAttributeDescription Info") @@ -2881,13 +2813,13 @@ - (void)addNSPropertyDescription:(id)object ADD_OBJECT( [o valueTransformerName] ,@"Value transformer name") } - else if ([object isKindOfClass:[NSFetchedPropertyDescription class]]) + else if ([object isKindOfClass:[NSFetchedPropertyDescription class]]) { NSFetchedPropertyDescription *o = object; ADD_CLASS_LABEL(@"NSFetchedPropertyDescription Info") ADD_OBJECT( [o fetchRequest] ,@"Fetch request") } - else if ([object isKindOfClass:[NSRelationshipDescription class]]) + else if ([object isKindOfClass:[NSRelationshipDescription class]]) { NSRelationshipDescription *o = object; ADD_CLASS_LABEL(@"NSRelationshipDescription Info") @@ -2895,8 +2827,8 @@ - (void)addNSPropertyDescription:(id)object ADD_OBJECT( [o destinationEntity] ,@"Destination entity") ADD_OBJECT( [o inverseRelationship] ,@"Inverse relationship") ADD_BOOL( [o isToMany] ,@"Is to many") - ADD_NUMBER( [o maxCount] ,@"Max count") - ADD_NUMBER( [o minCount] ,@"Min count") + ADD_NUMBER( [o maxCount] ,@"Max count") + ADD_NUMBER( [o minCount] ,@"Min count") } NSPropertyDescription *o = object; @@ -2910,69 +2842,69 @@ - (void)addNSPropertyDescription:(id)object ADD_OBJECTS( [o validationPredicates] ,@"Validation predicates") ADD_OBJECTS( [o validationWarnings] ,@"Validation warnings") } - + - (void)addNSResponder:(id)object { if ([object isKindOfClass:[NSApplication class]]) - { + { NSApplication *o = object; ADD_CLASS_LABEL(@"NSApplication Info") - ADD_OBJECT_NOT_NIL( [o applicationIconImage] ,@"Application icon image") - ADD_OBJECT_NOT_NIL( [o context] ,@"Context") - ADD_OBJECT_NOT_NIL( [o currentEvent] ,@"Current event") - ADD_OBJECT_NOT_NIL( [o delegate] ,@"Delegate") - ADD_OBJECT_NOT_NIL( [o dockTile] ,@"Dock tile") + ADD_OBJECT_NOT_NIL( [o applicationIconImage] ,@"Application icon image") + ADD_OBJECT_NOT_NIL( [o context] ,@"Context") + ADD_OBJECT_NOT_NIL( [o currentEvent] ,@"Current event") + ADD_OBJECT_NOT_NIL( [o delegate] ,@"Delegate") + ADD_OBJECT_NOT_NIL( [o dockTile] ,@"Dock tile") ADD_BOOL( [o isActive] ,@"Is active") ADD_BOOL( [o isHidden] ,@"Is hidden") ADD_BOOL( [o isRunning] ,@"Is running") - ADD_OBJECT_NOT_NIL( [o keyWindow] ,@"Key window") - ADD_OBJECT_NOT_NIL( [o mainMenu] ,@"Main menu") - ADD_OBJECT_NOT_NIL( [o mainWindow] ,@"Main window") - ADD_OBJECT_NOT_NIL( [o modalWindow] ,@"Modal window") - ADD_OBJECTS( [o orderedDocuments] ,@"Ordered documents") - ADD_OBJECTS( [o orderedWindows] ,@"Ordered windows") - ADD_OBJECT_NOT_NIL( [o servicesMenu] ,@"Services menu") - ADD_OBJECT_NOT_NIL( [o servicesProvider] ,@"Services provider") - ADD_OBJECTS( [o windows] ,@"Windows") - ADD_OBJECT_NOT_NIL( [o windowsMenu] ,@"Windows menu") + ADD_OBJECT_NOT_NIL( [o keyWindow] ,@"Key window") + ADD_OBJECT_NOT_NIL( [o mainMenu] ,@"Main menu") + ADD_OBJECT_NOT_NIL( [o mainWindow] ,@"Main window") + ADD_OBJECT_NOT_NIL( [o modalWindow] ,@"Modal window") + ADD_OBJECTS( [o orderedDocuments] ,@"Ordered documents") + ADD_OBJECTS( [o orderedWindows] ,@"Ordered windows") + ADD_OBJECT_NOT_NIL( [o servicesMenu] ,@"Services menu") + ADD_OBJECT_NOT_NIL( [o servicesProvider] ,@"Services provider") + ADD_OBJECTS( [o windows] ,@"Windows") + ADD_OBJECT_NOT_NIL( [o windowsMenu] ,@"Windows menu") } else if ([object isKindOfClass:[NSDrawer class]]) - { + { NSDrawer *o = object; ADD_CLASS_LABEL(@"NSDrawer Info"); - ADD_SIZE( [o contentSize] ,@"Content size") - ADD_OBJECT( [o contentView] ,@"Content view") - ADD_OBJECT( [o delegate] ,@"Delegate") + ADD_SIZE( [o contentSize] ,@"Content size") + ADD_OBJECT( [o contentView] ,@"Content view") + ADD_OBJECT( [o delegate] ,@"Delegate") ADD_OBJECT(objectFromRectEdge([o edge]) ,@"Edge") - ADD_NUMBER( [o leadingOffset] ,@"Leading offset") + ADD_NUMBER( [o leadingOffset] ,@"Leading offset") ADD_SIZE( [o maxContentSize] ,@"Max content size") ADD_SIZE( [o minContentSize] ,@"Min content size") - ADD_OBJECT( [o parentWindow] ,@"Parent window") + ADD_OBJECT( [o parentWindow] ,@"Parent window") ADD_OBJECT(objectFromRectEdge([o preferredEdge]) ,@"Preferred edge") ADD_OBJECT(objectFromDrawerState([o state]) ,@"State") - ADD_NUMBER( [o trailingOffset] ,@"Trailing offset") + ADD_NUMBER( [o trailingOffset] ,@"Trailing offset") } - else if ([object isKindOfClass:[NSView class]]) + else if ([object isKindOfClass:[NSView class]]) { [self processNSView:object]; } if ([object isKindOfClass:[NSViewController class]]) - { + { NSViewController *o = object; ADD_CLASS_LABEL(@"NSViewController Info") - ADD_OBJECT_NOT_NIL( [o nibBundle] ,@"Nib bundle") - ADD_OBJECT_NOT_NIL( [o nibName] ,@"Nib name") - ADD_OBJECT_NOT_NIL( [o representedObject] ,@"Represented object") - ADD_OBJECT_NOT_NIL( [o title] ,@"Title") - ADD_OBJECT_NOT_NIL( [o view] ,@"View") + ADD_OBJECT_NOT_NIL( [o nibBundle] ,@"Nib bundle") + ADD_OBJECT_NOT_NIL( [o nibName] ,@"Nib name") + ADD_OBJECT_NOT_NIL( [o representedObject] ,@"Represented object") + ADD_OBJECT_NOT_NIL( [o title] ,@"Title") + ADD_OBJECT_NOT_NIL( [o view] ,@"View") } else if ([object isKindOfClass:[NSWindow class]]) { [self processNSWindow:object]; } else if ([object isKindOfClass:[NSWindowController class]]) - { + { NSWindowController *o = object; ADD_CLASS_LABEL(@"NSWindowController Info"); ADD_OBJECT( [o document] ,@"Document") @@ -2980,7 +2912,7 @@ - (void)addNSResponder:(id)object ADD_OBJECT( [o owner] ,@"Owner") ADD_BOOL( [o shouldCascadeWindows] ,@"Should cascade windows") ADD_BOOL( [o shouldCloseDocument] ,@"Should close document") - if ([o isWindowLoaded]) + if ([o isWindowLoaded]) ADD_OBJECT( [o window] ,@"Window") ADD_OBJECT( [o windowFrameAutosaveName] ,@"Window frame autosave name") ADD_OBJECT( [o windowNibName] ,@"Window nib name") @@ -2999,7 +2931,7 @@ - (void)addNSResponder:(id)object @catch (id exception) {} if ([o nextResponder]) - { + { NSResponder *responder = o; NSMutableArray *responders = [NSMutableArray array]; while ((responder = [responder nextResponder])) [responders addObject:responder]; @@ -3008,13 +2940,13 @@ - (void)addNSResponder:(id)object ADD_OBJECT( [o undoManager] ,@"Undo Manager") } - + - (void)addNSRulerMarker:(id)object { NSRulerMarker *o = object; ADD_CLASS_LABEL(@"NSRulerMarker Info"); ADD_OBJECT( [o image] ,@"Image") - ADD_POINT( [o imageOrigin] ,@"Image origin") + ADD_POINT( [o imageOrigin] ,@"Image origin") ADD_RECT( [o imageRectInRuler] ,@"Image rect in ruler") ADD_BOOL( [o isDragging] ,@"Is dragging") ADD_BOOL( [o isMovable] ,@"Is movable") @@ -3025,7 +2957,7 @@ - (void)addNSRulerMarker:(id)object ADD_NUMBER( [o thicknessRequiredInRuler] ,@"Thickness required in ruler") } - + - (void)addNSScreen:(id)object { NSScreen *o = object; @@ -3037,7 +2969,7 @@ - (void)addNSScreen:(id)object ADD_RECT( [o visibleFrame] ,@"Visible frame") } - + - (void)addNSShadow:(id)object { NSShadow *o = object; @@ -3047,7 +2979,7 @@ - (void)addNSShadow:(id)object ADD_SIZE( [o shadowOffset] ,@"Shadow offset") } - + - (void)addNSStatusBar:(id)object { NSStatusBar *o = object; @@ -3056,7 +2988,7 @@ - (void)addNSStatusBar:(id)object ADD_NUMBER( [o thickness] ,@"Thickness") } - + - (void)addNSStatusItem:(id)object { NSStatusItem *o = object; @@ -3067,7 +2999,7 @@ - (void)addNSStatusItem:(id)object ADD_SEL( [o doubleAction] ,@"Double action") ADD_BOOL( [o highlightMode] ,@"Highlight mode") ADD_OBJECT_NOT_NIL( [o image] ,@"Image") - ADD_BOOL( [o isEnabled] ,@"Is enabled") + ADD_BOOL( [o isEnabled] ,@"Is enabled") ADD_OBJECT(objectFromStatusItemLength([o length]) ,@"Length") ADD_OBJECT_NOT_NIL( [o menu] ,@"Menu") ADD_OBJECT( [o statusBar] ,@"Status bar") @@ -3077,13 +3009,13 @@ - (void)addNSStatusItem:(id)object ADD_OBJECT_NOT_NIL( [o view] ,@"View") } - + - (void)addNSTabViewItem:(id)object { NSTabViewItem *o = object; ADD_CLASS_LABEL(@"NSTabViewItem Info"); ADD_OBJECT( [o color] ,@"Color") - ADD_OBJECT( [(NSTabViewItem *)o identifier] ,@"Identifier") + ADD_OBJECT( [(NSTabViewItem *)o identifier] ,@"Identifier") ADD_OBJECT( [o initialFirstResponder] ,@"Initial first responder") ADD_OBJECT( [o label] ,@"Label") ADD_OBJECT( objectFromTabState([o tabState]) ,@"Tab state") @@ -3091,26 +3023,26 @@ - (void)addNSTabViewItem:(id)object ADD_OBJECT( [o view] ,@"View") } - + - (void)addNSTableColumn:(id)object { NSTableColumn *o = object; ADD_CLASS_LABEL(@"NSTableColumn Info"); - ADD_OBJECT( [o dataCell] ,@"Data cell") - ADD_OBJECT( [o headerCell] ,@"Header cell") - ADD_OBJECT_NOT_NIL( [o headerToolTip] ,@"Header tool tip") + ADD_OBJECT( [o dataCell] ,@"Data cell") + ADD_OBJECT( [o headerCell] ,@"Header cell") + ADD_OBJECT_NOT_NIL( [o headerToolTip] ,@"Header tool tip") ADD_OBJECT( [(NSTableColumn*)o identifier] ,@"Identifier") ADD_BOOL( [o isEditable] ,@"Is editable") ADD_BOOL( [o isHidden] ,@"Is hidden") - ADD_NUMBER( [o maxWidth] ,@"Max width") + ADD_NUMBER( [o maxWidth] ,@"Max width") ADD_NUMBER( [o minWidth] ,@"Min width") - ADD_OBJECT(objectFromTableColumnResizingMask([o resizingMask]) ,@"Resizing mask") - ADD_OBJECT_NOT_NIL( [o sortDescriptorPrototype] ,@"Sort descriptor prototype") + ADD_OBJECT(objectFromTableColumnResizingOptions([o resizingMask]) ,@"Resizing mask") + ADD_OBJECT_NOT_NIL( [o sortDescriptorPrototype] ,@"Sort descriptor prototype") ADD_OBJECT( [o tableView] ,@"Table view") - ADD_NUMBER( [o width] ,@"Width") + ADD_NUMBER( [o width] ,@"Width") } - + - (void)addNSTextAttachment:(id)object { NSTextAttachment *o = object; @@ -3119,11 +3051,11 @@ - (void)addNSTextAttachment:(id)object ADD_OBJECT( [o fileWrapper] ,@"File wrapper") } - + - (void)addNSTextBlock:(id)object { if ([object isKindOfClass:[NSTextTableBlock class]]) - { + { NSTextTableBlock *o = object; ADD_CLASS_LABEL(@"NSTextTableBlock Info"); ADD_NUMBER( [o columnSpan] ,@"Column span") @@ -3133,7 +3065,7 @@ - (void)addNSTextBlock:(id)object ADD_OBJECT( [o table] ,@"Table") } else if ([object isKindOfClass:[NSTextTable class]]) - { + { NSTextTable *o = object; ADD_CLASS_LABEL(@"NSTextTable Info"); ADD_BOOL( [o collapsesBorders] ,@"Collapses borders") @@ -3146,10 +3078,10 @@ - (void)addNSTextBlock:(id)object ADD_CLASS_LABEL(@"NSTextBlock Info"); ADD_OBJECT( [o backgroundColor] ,@"Background color") ADD_NUMBER( [o contentWidth] ,@"Content width") - ADD_OBJECT(objectFromTextBlockValueType([o contentWidthValueType]),@"Content width value type") - ADD_OBJECT(objectFromTextBlockVerticalAlignment([o verticalAlignment]),@"Vertical alignment") + ADD_OBJECT(objectFromTextBlockValueType([o contentWidthValueType]),@"Content width value type") + ADD_OBJECT(objectFromTextBlockVerticalAlignment([o verticalAlignment]),@"Vertical alignment") } - + - (void)addNSTextContainer:(id)object { NSTextContainer *o = object; @@ -3157,33 +3089,33 @@ - (void)addNSTextContainer:(id)object ADD_SIZE( [o containerSize] ,@"Container size") ADD_BOOL( [o heightTracksTextView] ,@"Height tracks text view") ADD_BOOL( [o isSimpleRectangularTextContainer] ,@"Is simple rectangular text container") - ADD_OBJECT_NOT_NIL( [o layoutManager] ,@"Layout manager") + ADD_OBJECT_NOT_NIL( [o layoutManager] ,@"Layout manager") ADD_NUMBER( [o lineFragmentPadding] ,@"Line fragment padding") - ADD_OBJECT_NOT_NIL( [o textView] ,@"Text view") + ADD_OBJECT_NOT_NIL( [o textView] ,@"Text view") ADD_BOOL( [o widthTracksTextView] ,@"Width tracks text view") } - + - (void)addNSTextList:(id)object { NSTextList *o = object; ADD_CLASS_LABEL(@"NSTextList Info"); - ADD_OBJECT(objectFromTextListOptionsMask([o listOptions]) ,@"List options") + ADD_OBJECT(objectFromTextListOptions([o listOptions]) ,@"List options") ADD_OBJECT( [o markerFormat] ,@"Marker format") } - + - (void)addNSTextTab:(id)object { NSTextTab *o = object; ADD_CLASS_LABEL(@"NSTextTab Info"); - ADD_OBJECT( objectFromTextAlignment([o alignment]) ,@"Alignment") + ADD_OBJECT( objectFromTextAlignment([o alignment]) ,@"Alignment") ADD_NUMBER( [o location] ,@"Location") - ADD_OBJECT( [o options] ,@"Options") - ADD_OBJECT(objectFromTextTabType([o tabStopType]) ,@"Tab stop type") + ADD_OBJECT( [o options] ,@"Options") + ADD_OBJECT(objectFromTextTabType([o tabStopType]) ,@"Tab stop type") } - + - (void)addNSToolbar:(id)object { NSToolbar *o = object; @@ -3200,9 +3132,9 @@ - (void)addNSToolbar:(id)object ADD_OBJECT_NOT_NIL( [o selectedItemIdentifier] ,@"Selected item identifier") ADD_BOOL( [o showsBaselineSeparator] ,@"Shows baseline separator") ADD_OBJECT(objectFromToolbarSizeMode([o sizeMode]) ,@"Identifier") - ADD_OBJECTS( [o visibleItems] ,@"Visible items") + ADD_OBJECTS( [o visibleItems] ,@"Visible items") } - + - (void)addNSToolbarItem:(id)object { if ([object isKindOfClass:[NSToolbarItemGroup class]]) @@ -3225,15 +3157,15 @@ - (void)addNSToolbarItem:(id)object ADD_OBJECT_NOT_NIL( [o menuFormRepresentation] ,@"Menu form representation") ADD_SIZE( [o minSize] ,@"Min size") ADD_OBJECT( [o paletteLabel] ,@"Palette label") - ADD_NUMBER( [o tag] ,@"Tag") + ADD_NUMBER( [o tag] ,@"Tag") ADD_OBJECT( [o target] ,@"Target") ADD_OBJECT( [o toolbar] ,@"Toolbar") - ADD_OBJECT_NOT_NIL( [o toolTip] ,@"Tool tip") + ADD_OBJECT_NOT_NIL( [o toolTip] ,@"Tool tip") ADD_OBJECT( [o view] ,@"View") ADD_OBJECT(objectFromToolbarItemVisibilityPriority([o visibilityPriority]),@"Visibility priority") } - + - (void)addNSTrackingArea:(id)object { NSTrackingArea *o = object; @@ -3247,312 +3179,312 @@ - (void)addNSTrackingArea:(id)object - (void)addNSUndoManager:(id)object { - NSUndoManager *o = object; - ADD_CLASS_LABEL(@"NSUndoManager Info"); - ADD_NUMBER( [o groupingLevel] ,@"Grouping level") - ADD_BOOL( [o groupsByEvent] ,@"Groups by event") - ADD_BOOL( [o isUndoRegistrationEnabled] ,@"Is undo registration enabled") - ADD_NUMBER( [o levelsOfUndo] ,@"Levels of undo") - ADD_OBJECT_NOT_NIL( [o redoActionName] ,@"Redo action name") - ADD_OBJECT_NOT_NIL( [o redoMenuItemTitle] ,@"Redo menu item title") - ADD_OBJECTS( [o runLoopModes] ,@"Run loop modes") - ADD_OBJECT_NOT_NIL( [o undoActionName] ,@"Undo action name") - ADD_OBJECT_NOT_NIL( [o undoMenuItemTitle] ,@"Undo menu item title") + NSUndoManager *o = object; + ADD_CLASS_LABEL(@"NSUndoManager Info"); + ADD_NUMBER( [o groupingLevel] ,@"Grouping level") + ADD_BOOL( [o groupsByEvent] ,@"Groups by event") + ADD_BOOL( [o isUndoRegistrationEnabled] ,@"Is undo registration enabled") + ADD_NUMBER( [o levelsOfUndo] ,@"Levels of undo") + ADD_OBJECT_NOT_NIL( [o redoActionName] ,@"Redo action name") + ADD_OBJECT_NOT_NIL( [o redoMenuItemTitle] ,@"Redo menu item title") + ADD_OBJECTS( [o runLoopModes] ,@"Run loop modes") + ADD_OBJECT_NOT_NIL( [o undoActionName] ,@"Undo action name") + ADD_OBJECT_NOT_NIL( [o undoMenuItemTitle] ,@"Undo menu item title") } -(void)addNSATSTypesetter:(id)object { - if ([object isKindOfClass:NSClassFromString(@"NSATSTypesetter")]) - { - // NSATSTypesetter *o = object; - // ADD_CLASS_LABEL(@"NSATSTypesetter Info"); - } - - NSTypesetter *o = object; - ADD_CLASS_LABEL(@"NSTypesetter Info"); - //ADD_OBJECT( [o attributedString] ,@"Attributed string") - ADD_DICTIONARY( [o attributesForExtraLineFragment] ,@"Attributes for extra line fragment") - ADD_BOOL( [o bidiProcessingEnabled] ,@"Bidi processing enabled") - ADD_OBJECT_NOT_NIL( [o currentTextContainer] ,@"Current text container") - ADD_NUMBER( [o hyphenationFactor] ,@"Hyphenation factor") - ADD_OBJECT_NOT_NIL( [o layoutManager] ,@"Layout manager") - ADD_NUMBER( [o lineFragmentPadding] ,@"Line fragment padding") - ADD_OBJECT(objectFromTypesetterBehavior([o typesetterBehavior]) ,@"Typesetter behavior") - ADD_BOOL( [o usesFontLeading] ,@"Uses font leading") + if ([object isKindOfClass:NSClassFromString(@"NSATSTypesetter")]) + { + // NSATSTypesetter *o = object; + // ADD_CLASS_LABEL(@"NSATSTypesetter Info"); + } + + NSTypesetter *o = object; + ADD_CLASS_LABEL(@"NSTypesetter Info"); + //ADD_OBJECT( [o attributedString] ,@"Attributed string") + ADD_DICTIONARY( [o attributesForExtraLineFragment] ,@"Attributes for extra line fragment") + ADD_BOOL( [o bidiProcessingEnabled] ,@"Bidi processing enabled") + ADD_OBJECT_NOT_NIL( [o currentTextContainer] ,@"Current text container") + ADD_NUMBER( [o hyphenationFactor] ,@"Hyphenation factor") + ADD_OBJECT_NOT_NIL( [o layoutManager] ,@"Layout manager") + ADD_NUMBER( [o lineFragmentPadding] ,@"Line fragment padding") + ADD_OBJECT(objectFromTypesetterBehavior([o typesetterBehavior]) ,@"Typesetter behavior") + ADD_BOOL( [o usesFontLeading] ,@"Uses font leading") } - (void)processNSView:(id)object { - - if ([object isKindOfClass:[NSBox class]]) - { - NSBox *o = object; - ADD_CLASS_LABEL(@"NSBox Info"); - ADD_OBJECT( [o borderColor] ,@"Border color" ) - ADD_RECT( [o borderRect] ,@"Border rect") - ADD_OBJECT(objectFromBorderType([o borderType]) ,@"Border type" ) - ADD_NUMBER( [o borderWidth] ,@"Border width") - ADD_OBJECT(objectFromBoxType([o boxType]) ,@"Box type" ) - ADD_OBJECT( [o contentView] ,@"Content view" ) - ADD_SIZE( [o contentViewMargins] ,@"Content view margins") - ADD_NUMBER( [o cornerRadius] ,@"Corner radius") - ADD_OBJECT( [o fillColor] ,@"Fill color" ) - ADD_BOOL( [o isTransparent] ,@"Is transparent") - ADD_OBJECT( [o title] ,@"Title" ) - ADD_OBJECT( [o titleCell] ,@"Title cell" ) - ADD_OBJECT( [o titleFont] ,@"Title font" ) - ADD_OBJECT(objectFromTitlePosition([o titlePosition]) ,@"Title position" ) - ADD_RECT( [o titleRect] ,@"Title rect") - } - if ([object isKindOfClass:[NSCollectionView class]]) - { - NSCollectionView *o = object; - ADD_CLASS_LABEL(@"NSCollectionView Info"); - ADD_BOOL( [o allowsMultipleSelection] ,@"Allows multiple selection") - ADD_OBJECTS( [o backgroundColors] ,@"Background colors" ) - ADD_OBJECT( [o content] ,@"Content" ) - ADD_BOOL( [o isFirstResponder] ,@"Is first responder") - ADD_BOOL( [o isSelectable] ,@"Is selectable") - ADD_OBJECT_NOT_NIL( [o itemPrototype] ,@"Item prototype" ) - ADD_SIZE( [o maxItemSize] ,@"Max item size") - ADD_NUMBER( [o maxNumberOfColumns] ,@"Max number of columns") - ADD_NUMBER( [o maxNumberOfRows] ,@"Max number of rows") - ADD_SIZE( [o minItemSize] ,@"Min item size") - ADD_OBJECT_NOT_NIL( [o selectionIndexes] ,@"Selection indexes" ) - } - else if ([object isKindOfClass:[NSControl class]]) - { - [self processNSControl:object]; - } - else if ([object isKindOfClass:[NSClipView class]]) - { - NSClipView *o = object; - ADD_CLASS_LABEL(@"NSClipView Info"); - ADD_OBJECT( [o backgroundColor] ,@"Background color") - ADD_BOOL( [o copiesOnScroll] ,@"Copies on scroll") - ADD_OBJECT( [o documentCursor] ,@"Document cursor") - ADD_RECT( [o documentRect] ,@"Document rect") - ADD_OBJECT( [o documentView] ,@"Document view") - ADD_RECT( [o documentVisibleRect] ,@"Document visible rect") - ADD_BOOL( [o drawsBackground] ,@"Draws background") - } - else if ([object isKindOfClass:[NSOpenGLView class]]) - { - NSOpenGLView *o = object; - ADD_CLASS_LABEL(@"NSOpenGLView Info"); - ADD_OBJECT( [o openGLContext] ,@"OpenGL context") - ADD_OBJECT( [o pixelFormat] ,@"Pixel format") - } - else if ([object isKindOfClass:[NSProgressIndicator class]]) - { - NSProgressIndicator *o = object; - ADD_CLASS_LABEL(@"NSProgressIndicator Info"); - ADD_OBJECT( objectFromControlSize([o controlSize]) ,@"Control size") - ADD_OBJECT( objectFromControlTint([o controlTint]) ,@"Control tint") + + if ([object isKindOfClass:[NSBox class]]) + { + NSBox *o = object; + ADD_CLASS_LABEL(@"NSBox Info"); + ADD_OBJECT( [o borderColor] ,@"Border color" ) + ADD_RECT( [o borderRect] ,@"Border rect") + ADD_OBJECT(objectFromBorderType([o borderType]) ,@"Border type" ) + ADD_NUMBER( [o borderWidth] ,@"Border width") + ADD_OBJECT(objectFromBoxType([o boxType]) ,@"Box type" ) + ADD_OBJECT( [o contentView] ,@"Content view" ) + ADD_SIZE( [o contentViewMargins] ,@"Content view margins") + ADD_NUMBER( [o cornerRadius] ,@"Corner radius") + ADD_OBJECT( [o fillColor] ,@"Fill color" ) + ADD_BOOL( [o isTransparent] ,@"Is transparent") + ADD_OBJECT( [o title] ,@"Title" ) + ADD_OBJECT( [o titleCell] ,@"Title cell" ) + ADD_OBJECT( [o titleFont] ,@"Title font" ) + ADD_OBJECT(objectFromTitlePosition([o titlePosition]) ,@"Title position" ) + ADD_RECT( [o titleRect] ,@"Title rect") + } + if ([object isKindOfClass:[NSCollectionView class]]) + { + NSCollectionView *o = object; + ADD_CLASS_LABEL(@"NSCollectionView Info"); + ADD_BOOL( [o allowsMultipleSelection] ,@"Allows multiple selection") + ADD_OBJECTS( [o backgroundColors] ,@"Background colors" ) + ADD_OBJECT( [o content] ,@"Content" ) + ADD_BOOL( [o isFirstResponder] ,@"Is first responder") + ADD_BOOL( [o isSelectable] ,@"Is selectable") + ADD_OBJECT_NOT_NIL( [o itemPrototype] ,@"Item prototype" ) + ADD_SIZE( [o maxItemSize] ,@"Max item size") + ADD_NUMBER( [o maxNumberOfColumns] ,@"Max number of columns") + ADD_NUMBER( [o maxNumberOfRows] ,@"Max number of rows") + ADD_SIZE( [o minItemSize] ,@"Min item size") + ADD_OBJECT_NOT_NIL( [o selectionIndexes] ,@"Selection indexes" ) + } + else if ([object isKindOfClass:[NSControl class]]) + { + [self processNSControl:object]; + } + else if ([object isKindOfClass:[NSClipView class]]) + { + NSClipView *o = object; + ADD_CLASS_LABEL(@"NSClipView Info"); + ADD_OBJECT( [o backgroundColor] ,@"Background color") + ADD_BOOL( [o copiesOnScroll] ,@"Copies on scroll") + ADD_OBJECT( [o documentCursor] ,@"Document cursor") + ADD_RECT( [o documentRect] ,@"Document rect") + ADD_OBJECT( [o documentView] ,@"Document view") + ADD_RECT( [o documentVisibleRect] ,@"Document visible rect") + ADD_BOOL( [o drawsBackground] ,@"Draws background") + } + else if ([object isKindOfClass:[NSOpenGLView class]]) + { + NSOpenGLView *o = object; + ADD_CLASS_LABEL(@"NSOpenGLView Info"); + ADD_OBJECT( [o openGLContext] ,@"OpenGL context") + ADD_OBJECT( [o pixelFormat] ,@"Pixel format") + } + else if ([object isKindOfClass:[NSProgressIndicator class]]) + { + NSProgressIndicator *o = object; + ADD_CLASS_LABEL(@"NSProgressIndicator Info"); + ADD_OBJECT( objectFromControlSize([o controlSize]) ,@"Control size") + ADD_OBJECT( objectFromControlTint([o controlTint]) ,@"Control tint") + if ([o style] == NSProgressIndicatorBarStyle && ![o isIndeterminate]) + ADD_NUMBER( [o doubleValue] ,@"Double value") + ADD_BOOL( [o isBezeled] ,@"Is bezeled") + ADD_BOOL( [o isDisplayedWhenStopped] ,@"Is displayed when stopped") if ([o style] == NSProgressIndicatorBarStyle && ![o isIndeterminate]) - ADD_NUMBER( [o doubleValue] ,@"Double value") - ADD_BOOL( [o isBezeled] ,@"Is bezeled") - ADD_BOOL( [o isDisplayedWhenStopped] ,@"Is displayed when stopped") - if ([o style] == NSProgressIndicatorBarStyle && ![o isIndeterminate]) - { - ADD_NUMBER( [o maxValue] ,@"Max value") - ADD_NUMBER( [o minValue] ,@"Min value") - } - ADD_OBJECT(objectFromProgressIndicatorStyle([o style]) ,@"Style") - ADD_BOOL( [o usesThreadedAnimation] ,@"Uses threaded animation") - } - else if ([object isKindOfClass:[NSRulerView class]]) - { - NSRulerView *o = object; - ADD_CLASS_LABEL(@"NSRulerView Info"); - ADD_OBJECT_NOT_NIL( [o accessoryView] ,@"Accessory view") - ADD_NUMBER( [o baselineLocation] ,@"Baseline location") - ADD_OBJECT( [o clientView] ,@"Client view") - ADD_BOOL( [o isFlipped] ,@"Is flipped") - ADD_OBJECTS( [o markers] ,@"Markers") - ADD_OBJECT( [o measurementUnits] ,@"Measurement units") - ADD_OBJECT(objectFromRulerOrientation([o orientation]) ,@"Orientation") - ADD_NUMBER( [o originOffset] ,@"Origin offset") - ADD_NUMBER( [o requiredThickness] ,@"Required thickness") - ADD_NUMBER( [o reservedThicknessForAccessoryView] ,@"Reserved thickness for accessory view") - ADD_NUMBER( [o reservedThicknessForMarkers] ,@"Reserved thickness for markers") - ADD_NUMBER( [o ruleThickness] ,@"Rule thickness") - ADD_OBJECT( [o scrollView] ,@"ScrollView") - } - else if ([object isKindOfClass:[NSScrollView class]]) - { - NSScrollView *o = object; - ADD_CLASS_LABEL(@"NSScrollView Info"); - ADD_BOOL( [o autohidesScrollers] ,@"Autohides scrollers") - ADD_OBJECT( [o backgroundColor] ,@"Background color") - ADD_OBJECT( objectFromBorderType([o borderType]) ,@"Border type") - ADD_SIZE( [o contentSize] ,@"Content size") - ADD_OBJECT( [o contentView] ,@"Content view") - ADD_OBJECT( [o documentCursor] ,@"Document cursor") - ADD_OBJECT( [o documentView] ,@"Document view") - ADD_RECT( [o documentVisibleRect] ,@"Document visible rect") - ADD_BOOL( [o drawsBackground] ,@"Draws background") - ADD_BOOL( [o hasHorizontalRuler] ,@"Has horizontal ruler") - ADD_BOOL( [o hasHorizontalScroller] ,@"Has horizontal scroller") - ADD_BOOL( [o hasVerticalRuler] ,@"Has vertical ruler") - ADD_BOOL( [o hasVerticalScroller] ,@"Has vertical scroller") - ADD_NUMBER( [o horizontalLineScroll] ,@"Horizontal line scroll") - ADD_NUMBER( [o horizontalPageScroll] ,@"Horizontal page scroll") - ADD_OBJECT( [o horizontalRulerView] ,@"Horizontal ruler view") - ADD_OBJECT( [o horizontalScroller] ,@"Horizontal scroller") - ADD_NUMBER( [o lineScroll] ,@"Line scroll") - ADD_NUMBER( [o pageScroll] ,@"Page scroll") - ADD_BOOL( [o rulersVisible] ,@"Ruller visible") - ADD_BOOL( [o scrollsDynamically] ,@"Scrolls dynamically") - ADD_NUMBER( [o verticalLineScroll] ,@"Vertical line scroll") - ADD_NUMBER( [o verticalPageScroll] ,@"Vertical page scroll") - ADD_OBJECT( [o verticalRulerView] ,@"Vertical ruler view") - ADD_OBJECT( [o verticalScroller] ,@"Vertical scroller") - } - else if ([object isKindOfClass:[NSSplitView class]]) - { - NSSplitView *o = object; - ADD_CLASS_LABEL(@"NSSplitView Info"); - ADD_OBJECT_NOT_NIL( [o delegate] ,@"Delegate") - ADD_NUMBER( [o dividerThickness] ,@"Divider thickness") - ADD_BOOL( [o isVertical] ,@"Is vertical") - ADD_OBJECT_NOT_NIL( [o autosaveName] ,@"Autosave name") - } - else if ([object isKindOfClass:[NSTabView class]]) - { - NSTabView *o = object; - ADD_CLASS_LABEL(@"NSTabView Info"); - ADD_BOOL( [o allowsTruncatedLabels] ,@"Allows truncated labels") - ADD_RECT( [o contentRect] ,@"Content rect") - ADD_OBJECT( objectFromControlSize([o controlSize]) ,@"Control size") - ADD_OBJECT( objectFromControlTint([o controlTint]) ,@"Control tint") - ADD_OBJECT( [o delegate] ,@"Delegate") - ADD_BOOL( [o drawsBackground] ,@"Draws background") - ADD_OBJECT( [o font] ,@"Font") - ADD_SIZE( [o minimumSize] ,@"Minimum size") - ADD_OBJECT( [o selectedTabViewItem] ,@"Selected tab view item") - ADD_OBJECTS( [o tabViewItems] ,@"Tab view items") - ADD_OBJECT( objectFromTabViewType([o tabViewType]) ,@"Tab view type") - } - else if ([object isKindOfClass:[NSTableHeaderView class]]) - { - NSTableHeaderView *o = object; - ADD_CLASS_LABEL(@"NSTableHeaderView Info"); - ADD_OBJECT( [o tableView] ,@"Table view") - } - else if ([object isKindOfClass:[NSText class]]) - { - if ([object isKindOfClass:[NSTextView class]]) { - NSTextView *o = object; - ADD_CLASS_LABEL(@"NSTextView Info"); - ADD_OBJECTS( [o acceptableDragTypes] ,@"Acceptable drag types") - ADD_BOOL( [o acceptsGlyphInfo] ,@"Accepts glyph info") - ADD_OBJECTS( [o allowedInputSourceLocales] ,@"Allowed input source locales") - ADD_BOOL( [o allowsImageEditing] ,@"Allows image editing") - ADD_BOOL( [o allowsDocumentBackgroundColorChange],@"Allows document background color change") - ADD_BOOL( [o allowsUndo] ,@"Allows undo") - ADD_OBJECT_NOT_NIL([o defaultParagraphStyle] ,@"Default paragraph style") - ADD_BOOL( [o displaysLinkToolTips] ,@"Displays link tool tips") - ADD_OBJECT( [o insertionPointColor] ,@"Insertion point color") - ADD_BOOL( [o isAutomaticLinkDetectionEnabled] ,@"Is automatic link detection enabled") - ADD_BOOL( [o isAutomaticQuoteSubstitutionEnabled],@"Is automatic quote substitution enabled") - ADD_BOOL( [o isContinuousSpellCheckingEnabled] ,@"Is continuous spell checking enabled") - ADD_BOOL( [o isGrammarCheckingEnabled] ,@"Is grammar checking enabled") - ADD_OBJECT_NOT_NIL([o layoutManager] ,@"Layout manager") - ADD_DICTIONARY( [o linkTextAttributes] ,@"Link text attributes") - ADD_DICTIONARY([o markedTextAttributes] ,@"Marked text attributes") - ADD_RANGE( [o rangeForUserCompletion] ,@"Range for user completion") - ADD_OBJECTS( [o rangesForUserCharacterAttributeChange],@"Ranges for user character attribute change") - ADD_OBJECTS( [o rangesForUserParagraphAttributeChange],@"Ranges for user paragraph attribute change") - ADD_OBJECTS( [o rangesForUserTextChange] ,@"Ranges for user text change") - ADD_OBJECTS( [o readablePasteboardTypes] ,@"Readable pasteboard types") - ADD_OBJECTS( [o selectedRanges] ,@"Selected ranges") - ADD_DICTIONARY( [o selectedTextAttributes] ,@"Selected text attributes") - ADD_OBJECT(objectFromSelectionAffinity([o selectionAffinity]),@"Selection affinity") - ADD_OBJECT(objectFromSelectionGranularity([o selectionGranularity]),@"Selection granularity") - ADD_BOOL( [o shouldDrawInsertionPoint] ,@"Should draw insertion point") - ADD_BOOL( [o smartInsertDeleteEnabled] ,@"Smart insert delete enabled") - ADD_NUMBER( [o spellCheckerDocumentTag] ,@"Spell checker document tag") - ADD_OBJECT( [o textContainer] ,@"Text container") - ADD_SIZE( [o textContainerInset] ,@"Text container inset") - ADD_POINT( [o textContainerOrigin] ,@"Text container origin") - ADD_OBJECT( [o textStorage] ,@"Text storage") - ADD_DICTIONARY( [o typingAttributes] ,@"Typing attributes") - ADD_BOOL( [o usesFindPanel] ,@"Uses find panel") - ADD_BOOL( [o usesFontPanel] ,@"Uses font panel") - ADD_BOOL( [o usesRuler] ,@"Uses ruler") - ADD_OBJECT( [o writablePasteboardTypes] ,@"Writable pasteboard types") + ADD_NUMBER( [o maxValue] ,@"Max value") + ADD_NUMBER( [o minValue] ,@"Min value") } - - NSText *o = object; - ADD_CLASS_LABEL(@"NSText Info"); - ADD_OBJECT( objectFromTextAlignment([o alignment]) ,@"Alignment") - ADD_OBJECT( [o backgroundColor] ,@"Background color") - ADD_OBJECT(objectFromWritingDirection([o baseWritingDirection]),@"Base writing direction") - ADD_OBJECT_NOT_NIL( [o delegate] ,@"Delegate") - ADD_BOOL( [o drawsBackground] ,@"Draws background") - ADD_OBJECT( [o font] ,@"Font") - ADD_BOOL( [o importsGraphics] ,@"Imports graphics") - ADD_BOOL( [o isEditable] ,@"Is editable") - ADD_BOOL( [o isFieldEditor] ,@"Is field editor") - ADD_BOOL( [o isHorizontallyResizable] ,@"Is horizontally resizable") - ADD_BOOL( [o isRichText] ,@"Is rich text") - ADD_BOOL( [o isRulerVisible] ,@"Is ruler visible") - ADD_BOOL( [o isSelectable] ,@"Is selectable") - ADD_BOOL( [o isVerticallyResizable] ,@"Is vertically resizable") - ADD_SIZE( [o maxSize] ,@"Max size") - ADD_SIZE( [o minSize] ,@"Min size") - ADD_RANGE( [o selectedRange] ,@"Selected range") - ADD_OBJECT( [o string] ,@"String") - ADD_OBJECT_NOT_NIL( [o textColor] ,@"Text color") - ADD_BOOL( [o usesFontPanel] ,@"Uses font panel") + ADD_OBJECT(objectFromProgressIndicatorStyle([o style]) ,@"Style") + ADD_BOOL( [o usesThreadedAnimation] ,@"Uses threaded animation") + } + else if ([object isKindOfClass:[NSRulerView class]]) + { + NSRulerView *o = object; + ADD_CLASS_LABEL(@"NSRulerView Info"); + ADD_OBJECT_NOT_NIL( [o accessoryView] ,@"Accessory view") + ADD_NUMBER( [o baselineLocation] ,@"Baseline location") + ADD_OBJECT( [o clientView] ,@"Client view") + ADD_BOOL( [o isFlipped] ,@"Is flipped") + ADD_OBJECTS( [o markers] ,@"Markers") + ADD_OBJECT( [o measurementUnits] ,@"Measurement units") + ADD_OBJECT(objectFromRulerOrientation([o orientation]) ,@"Orientation") + ADD_NUMBER( [o originOffset] ,@"Origin offset") + ADD_NUMBER( [o requiredThickness] ,@"Required thickness") + ADD_NUMBER( [o reservedThicknessForAccessoryView] ,@"Reserved thickness for accessory view") + ADD_NUMBER( [o reservedThicknessForMarkers] ,@"Reserved thickness for markers") + ADD_NUMBER( [o ruleThickness] ,@"Rule thickness") + ADD_OBJECT( [o scrollView] ,@"ScrollView") + } + else if ([object isKindOfClass:[NSScrollView class]]) + { + NSScrollView *o = object; + ADD_CLASS_LABEL(@"NSScrollView Info"); + ADD_BOOL( [o autohidesScrollers] ,@"Autohides scrollers") + ADD_OBJECT( [o backgroundColor] ,@"Background color") + ADD_OBJECT( objectFromBorderType([o borderType]) ,@"Border type") + ADD_SIZE( [o contentSize] ,@"Content size") + ADD_OBJECT( [o contentView] ,@"Content view") + ADD_OBJECT( [o documentCursor] ,@"Document cursor") + ADD_OBJECT( [o documentView] ,@"Document view") + ADD_RECT( [o documentVisibleRect] ,@"Document visible rect") + ADD_BOOL( [o drawsBackground] ,@"Draws background") + ADD_BOOL( [o hasHorizontalRuler] ,@"Has horizontal ruler") + ADD_BOOL( [o hasHorizontalScroller] ,@"Has horizontal scroller") + ADD_BOOL( [o hasVerticalRuler] ,@"Has vertical ruler") + ADD_BOOL( [o hasVerticalScroller] ,@"Has vertical scroller") + ADD_NUMBER( [o horizontalLineScroll] ,@"Horizontal line scroll") + ADD_NUMBER( [o horizontalPageScroll] ,@"Horizontal page scroll") + ADD_OBJECT( [o horizontalRulerView] ,@"Horizontal ruler view") + ADD_OBJECT( [o horizontalScroller] ,@"Horizontal scroller") + ADD_NUMBER( [o lineScroll] ,@"Line scroll") + ADD_NUMBER( [o pageScroll] ,@"Page scroll") + ADD_BOOL( [o rulersVisible] ,@"Ruller visible") + ADD_BOOL( [o scrollsDynamically] ,@"Scrolls dynamically") + ADD_NUMBER( [o verticalLineScroll] ,@"Vertical line scroll") + ADD_NUMBER( [o verticalPageScroll] ,@"Vertical page scroll") + ADD_OBJECT( [o verticalRulerView] ,@"Vertical ruler view") + ADD_OBJECT( [o verticalScroller] ,@"Vertical scroller") + } + else if ([object isKindOfClass:[NSSplitView class]]) + { + NSSplitView *o = object; + ADD_CLASS_LABEL(@"NSSplitView Info"); + ADD_OBJECT_NOT_NIL( [o delegate] ,@"Delegate") + ADD_NUMBER( [o dividerThickness] ,@"Divider thickness") + ADD_BOOL( [o isVertical] ,@"Is vertical") + ADD_OBJECT_NOT_NIL( [o autosaveName] ,@"Autosave name") + } + else if ([object isKindOfClass:[NSTabView class]]) + { + NSTabView *o = object; + ADD_CLASS_LABEL(@"NSTabView Info"); + ADD_BOOL( [o allowsTruncatedLabels] ,@"Allows truncated labels") + ADD_RECT( [o contentRect] ,@"Content rect") + ADD_OBJECT( objectFromControlSize([o controlSize]) ,@"Control size") + ADD_OBJECT( objectFromControlTint([o controlTint]) ,@"Control tint") + ADD_OBJECT( [o delegate] ,@"Delegate") + ADD_BOOL( [o drawsBackground] ,@"Draws background") + ADD_OBJECT( [o font] ,@"Font") + ADD_SIZE( [o minimumSize] ,@"Minimum size") + ADD_OBJECT( [o selectedTabViewItem] ,@"Selected tab view item") + ADD_OBJECTS( [o tabViewItems] ,@"Tab view items") + ADD_OBJECT( objectFromTabViewType([o tabViewType]) ,@"Tab view type") + } + else if ([object isKindOfClass:[NSTableHeaderView class]]) + { + NSTableHeaderView *o = object; + ADD_CLASS_LABEL(@"NSTableHeaderView Info"); + ADD_OBJECT( [o tableView] ,@"Table view") + } + else if ([object isKindOfClass:[NSText class]]) + { + if ([object isKindOfClass:[NSTextView class]]) + { + NSTextView *o = object; + ADD_CLASS_LABEL(@"NSTextView Info"); + ADD_OBJECTS( [o acceptableDragTypes] ,@"Acceptable drag types") + ADD_BOOL( [o acceptsGlyphInfo] ,@"Accepts glyph info") + ADD_OBJECTS( [o allowedInputSourceLocales] ,@"Allowed input source locales") + ADD_BOOL( [o allowsImageEditing] ,@"Allows image editing") + ADD_BOOL( [o allowsDocumentBackgroundColorChange],@"Allows document background color change") + ADD_BOOL( [o allowsUndo] ,@"Allows undo") + ADD_OBJECT_NOT_NIL([o defaultParagraphStyle] ,@"Default paragraph style") + ADD_BOOL( [o displaysLinkToolTips] ,@"Displays link tool tips") + ADD_OBJECT( [o insertionPointColor] ,@"Insertion point color") + ADD_BOOL( [o isAutomaticLinkDetectionEnabled] ,@"Is automatic link detection enabled") + ADD_BOOL( [o isAutomaticQuoteSubstitutionEnabled],@"Is automatic quote substitution enabled") + ADD_BOOL( [o isContinuousSpellCheckingEnabled] ,@"Is continuous spell checking enabled") + ADD_BOOL( [o isGrammarCheckingEnabled] ,@"Is grammar checking enabled") + ADD_OBJECT_NOT_NIL([o layoutManager] ,@"Layout manager") + ADD_DICTIONARY( [o linkTextAttributes] ,@"Link text attributes") + ADD_DICTIONARY([o markedTextAttributes] ,@"Marked text attributes") + ADD_RANGE( [o rangeForUserCompletion] ,@"Range for user completion") + ADD_OBJECTS( [o rangesForUserCharacterAttributeChange],@"Ranges for user character attribute change") + ADD_OBJECTS( [o rangesForUserParagraphAttributeChange],@"Ranges for user paragraph attribute change") + ADD_OBJECTS( [o rangesForUserTextChange] ,@"Ranges for user text change") + ADD_OBJECTS( [o readablePasteboardTypes] ,@"Readable pasteboard types") + ADD_OBJECTS( [o selectedRanges] ,@"Selected ranges") + ADD_DICTIONARY( [o selectedTextAttributes] ,@"Selected text attributes") + ADD_OBJECT(objectFromSelectionAffinity([o selectionAffinity]),@"Selection affinity") + ADD_OBJECT(objectFromSelectionGranularity([o selectionGranularity]),@"Selection granularity") + ADD_BOOL( [o shouldDrawInsertionPoint] ,@"Should draw insertion point") + ADD_BOOL( [o smartInsertDeleteEnabled] ,@"Smart insert delete enabled") + ADD_NUMBER( [o spellCheckerDocumentTag] ,@"Spell checker document tag") + ADD_OBJECT( [o textContainer] ,@"Text container") + ADD_SIZE( [o textContainerInset] ,@"Text container inset") + ADD_POINT( [o textContainerOrigin] ,@"Text container origin") + ADD_OBJECT( [o textStorage] ,@"Text storage") + ADD_DICTIONARY( [o typingAttributes] ,@"Typing attributes") + ADD_BOOL( [o usesFindPanel] ,@"Uses find panel") + ADD_BOOL( [o usesFontPanel] ,@"Uses font panel") + ADD_BOOL( [o usesRuler] ,@"Uses ruler") + ADD_OBJECT( [o writablePasteboardTypes] ,@"Writable pasteboard types") } - NSView *o = object; - ADD_CLASS_LABEL(@"NSView Info"); - ADD_OBJECT(objectFromAutoresizingMask([o autoresizingMask]) ,@"Autoresizing mask") - ADD_BOOL( [o autoresizesSubviews] ,@"Autoresizes subviews") - ADD_RECT( [o bounds] ,@"Bounds") - ADD_NUMBER( [o boundsRotation] ,@"Bounds rotation") - ADD_BOOL( [o canBecomeKeyView] ,@"Can become key view") - ADD_BOOL( [o canDraw] ,@"Can draw") - ADD_OBJECT_NOT_NIL( [o enclosingMenuItem] ,@"Enclosing menu item") - ADD_OBJECT_NOT_NIL( [o enclosingScrollView] ,@"Enclosing scroll view") - ADD_RECT( [o frame] ,@"Frame") - ADD_NUMBER( [o frameRotation] ,@"Frame rotation") - ADD_OBJECT( objectFromFocusRingType([o focusRingType]) ,@"Focus ring type") - ADD_NUMBER( [o gState] ,@"gState") - ADD_NUMBER( [o heightAdjustLimit] ,@"Height adjust limit") - ADD_BOOL( [o isFlipped] ,@"Is flipped") - ADD_BOOL( [o isHidden] ,@"Is hidden") - ADD_BOOL( [o isHiddenOrHasHiddenAncestor] ,@"Is hidden or has hidden ancestor" ) - ADD_BOOL( [o isInFullScreenMode] ,@"Is in full screen mode") - ADD_BOOL( [o isOpaque] ,@"Is opaque") - ADD_BOOL( [o isRotatedFromBase] ,@"Is rotated from base") - ADD_BOOL( [o isRotatedOrScaledFromBase] ,@"Is rotated or scaled from base") - ADD_OBJECT( [o layer] ,@"Layer") - ADD_BOOL( [o mouseDownCanMoveWindow] ,@"Mouse down can move window") - ADD_BOOL( [o needsDisplay] ,@"Needs display") - ADD_BOOL( [o needsPanelToBecomeKey] ,@"Needs panel to become key") - ADD_OBJECT( [o nextKeyView] ,@"Next key view") - ADD_OBJECT( [o nextValidKeyView] ,@"Next valid key view") - ADD_OBJECT( [o opaqueAncestor] ,@"Opaque ancestor") - ADD_BOOL( [o preservesContentDuringLiveResize] ,@"Preserves content during live resize") - ADD_BOOL( [o postsBoundsChangedNotifications] ,@"Posts bounds changed notifications") - ADD_BOOL( [o postsFrameChangedNotifications] ,@"Posts frame changed notifications") - ADD_OBJECT( [o previousKeyView] ,@"Previous key view") - ADD_OBJECT( [o previousValidKeyView] ,@"Previous valid key view") - ADD_OBJECT( [o printJobTitle] ,@"Print job title") - ADD_OBJECTS( [o registeredDraggedTypes] ,@"Registered dragged types") - ADD_BOOL( [o shouldDrawColor] ,@"Should draw color") - ADD_NUMBER( [o tag] ,@"Tag") - ADD_OBJECTS( [o trackingAreas] ,@"Tracking areas") - ADD_RECT( [o visibleRect] ,@"Visible rect") - ADD_BOOL( [o wantsDefaultClipping] ,@"Wants default clipping") - ADD_BOOL( [o wantsLayer] ,@"Wants layer") - ADD_NUMBER( [o widthAdjustLimit] ,@"Width adjust limit") - ADD_OBJECT( [o window] ,@"Window") + NSText *o = object; + ADD_CLASS_LABEL(@"NSText Info"); + ADD_OBJECT( objectFromTextAlignment([o alignment]) ,@"Alignment") + ADD_OBJECT( [o backgroundColor] ,@"Background color") + ADD_OBJECT(objectFromWritingDirection([o baseWritingDirection]),@"Base writing direction") + ADD_OBJECT_NOT_NIL( [o delegate] ,@"Delegate") + ADD_BOOL( [o drawsBackground] ,@"Draws background") + ADD_OBJECT( [o font] ,@"Font") + ADD_BOOL( [o importsGraphics] ,@"Imports graphics") + ADD_BOOL( [o isEditable] ,@"Is editable") + ADD_BOOL( [o isFieldEditor] ,@"Is field editor") + ADD_BOOL( [o isHorizontallyResizable] ,@"Is horizontally resizable") + ADD_BOOL( [o isRichText] ,@"Is rich text") + ADD_BOOL( [o isRulerVisible] ,@"Is ruler visible") + ADD_BOOL( [o isSelectable] ,@"Is selectable") + ADD_BOOL( [o isVerticallyResizable] ,@"Is vertically resizable") + ADD_SIZE( [o maxSize] ,@"Max size") + ADD_SIZE( [o minSize] ,@"Min size") + ADD_RANGE( [o selectedRange] ,@"Selected range") + ADD_OBJECT( [o string] ,@"String") + ADD_OBJECT_NOT_NIL( [o textColor] ,@"Text color") + ADD_BOOL( [o usesFontPanel] ,@"Uses font panel") + } + + NSView *o = object; + ADD_CLASS_LABEL(@"NSView Info"); + ADD_OBJECT(objectFromAutoresizingMaskOptions([o autoresizingMask]) ,@"Autoresizing mask") + ADD_BOOL( [o autoresizesSubviews] ,@"Autoresizes subviews") + ADD_RECT( [o bounds] ,@"Bounds") + ADD_NUMBER( [o boundsRotation] ,@"Bounds rotation") + ADD_BOOL( [o canBecomeKeyView] ,@"Can become key view") + ADD_BOOL( [o canDraw] ,@"Can draw") + ADD_OBJECT_NOT_NIL( [o enclosingMenuItem] ,@"Enclosing menu item") + ADD_OBJECT_NOT_NIL( [o enclosingScrollView] ,@"Enclosing scroll view") + ADD_RECT( [o frame] ,@"Frame") + ADD_NUMBER( [o frameRotation] ,@"Frame rotation") + ADD_OBJECT( objectFromFocusRingType([o focusRingType]) ,@"Focus ring type") + ADD_NUMBER( [o gState] ,@"gState") + ADD_NUMBER( [o heightAdjustLimit] ,@"Height adjust limit") + ADD_BOOL( [o isFlipped] ,@"Is flipped") + ADD_BOOL( [o isHidden] ,@"Is hidden") + ADD_BOOL( [o isHiddenOrHasHiddenAncestor] ,@"Is hidden or has hidden ancestor" ) + ADD_BOOL( [o isInFullScreenMode] ,@"Is in full screen mode") + ADD_BOOL( [o isOpaque] ,@"Is opaque") + ADD_BOOL( [o isRotatedFromBase] ,@"Is rotated from base") + ADD_BOOL( [o isRotatedOrScaledFromBase] ,@"Is rotated or scaled from base") + ADD_OBJECT( [o layer] ,@"Layer") + ADD_BOOL( [o mouseDownCanMoveWindow] ,@"Mouse down can move window") + ADD_BOOL( [o needsDisplay] ,@"Needs display") + ADD_BOOL( [o needsPanelToBecomeKey] ,@"Needs panel to become key") + ADD_OBJECT( [o nextKeyView] ,@"Next key view") + ADD_OBJECT( [o nextValidKeyView] ,@"Next valid key view") + ADD_OBJECT( [o opaqueAncestor] ,@"Opaque ancestor") + ADD_BOOL( [o preservesContentDuringLiveResize] ,@"Preserves content during live resize") + ADD_BOOL( [o postsBoundsChangedNotifications] ,@"Posts bounds changed notifications") + ADD_BOOL( [o postsFrameChangedNotifications] ,@"Posts frame changed notifications") + ADD_OBJECT( [o previousKeyView] ,@"Previous key view") + ADD_OBJECT( [o previousValidKeyView] ,@"Previous valid key view") + ADD_OBJECT( [o printJobTitle] ,@"Print job title") + ADD_OBJECTS( [o registeredDraggedTypes] ,@"Registered dragged types") + ADD_BOOL( [o shouldDrawColor] ,@"Should draw color") + ADD_NUMBER( [o tag] ,@"Tag") + ADD_OBJECTS( [o trackingAreas] ,@"Tracking areas") + ADD_RECT( [o visibleRect] ,@"Visible rect") + ADD_BOOL( [o wantsDefaultClipping] ,@"Wants default clipping") + ADD_BOOL( [o wantsLayer] ,@"Wants layer") + ADD_NUMBER( [o widthAdjustLimit] ,@"Width adjust limit") + ADD_OBJECT( [o window] ,@"Window") } - (void)processNSControl:(id)object @@ -3562,36 +3494,36 @@ - (void)processNSControl:(id)object { NSBrowser *o = object; ADD_CLASS_LABEL(@"NSBrowser Info"); - ADD_BOOL( [o allowsBranchSelection] ,@"Allows branch selection") - ADD_BOOL( [o allowsEmptySelection] ,@"Allows empty selection") - ADD_BOOL( [o allowsMultipleSelection] ,@"Allows multiple selection") - ADD_BOOL( [o allowsTypeSelect] ,@"Allows type select") + ADD_BOOL( [o allowsBranchSelection] ,@"Allows branch selection") + ADD_BOOL( [o allowsEmptySelection] ,@"Allows empty selection") + ADD_BOOL( [o allowsMultipleSelection] ,@"Allows multiple selection") + ADD_BOOL( [o allowsTypeSelect] ,@"Allows type select") ADD_OBJECT( [o backgroundColor] ,@"Background color" ) ADD_OBJECT( [o cellPrototype] ,@"Cell prototype" ) ADD_OBJECT(objectFromBrowserColumnResizingType([o columnResizingType]) ,@"Column resizing type") - ADD_OBJECT( [o columnsAutosaveName] ,@"Columns autosave name") + ADD_OBJECT( [o columnsAutosaveName] ,@"Columns autosave name") ADD_OBJECT( [o delegate] ,@"Delegate") ADD_SEL( [o doubleAction] ,@"Double action") - ADD_NUMBER( [o firstVisibleColumn] ,@"First visible column") - ADD_BOOL( [o hasHorizontalScroller] ,@"Has horizontal scroller") - ADD_BOOL( [o isLoaded] ,@"Is loaded") - ADD_BOOL( [o isTitled] ,@"Is titled") - ADD_NUMBER( [o lastColumn] ,@"Last column") - ADD_NUMBER( [o lastVisibleColumn] ,@"Last visible column") + ADD_NUMBER( [o firstVisibleColumn] ,@"First visible column") + ADD_BOOL( [o hasHorizontalScroller] ,@"Has horizontal scroller") + ADD_BOOL( [o isLoaded] ,@"Is loaded") + ADD_BOOL( [o isTitled] ,@"Is titled") + ADD_NUMBER( [o lastColumn] ,@"Last column") + ADD_NUMBER( [o lastVisibleColumn] ,@"Last visible column") ADD_OBJECT( [o matrixClass] ,@"Matrix class") - ADD_NUMBER( [o maxVisibleColumns] ,@"Max visible columns") - ADD_NUMBER( [o minColumnWidth] ,@"Min column width") - ADD_NUMBER( [o numberOfVisibleColumns] ,@"Number of visible columns" ) + ADD_NUMBER( [o maxVisibleColumns] ,@"Max visible columns") + ADD_NUMBER( [o minColumnWidth] ,@"Min column width") + ADD_NUMBER( [o numberOfVisibleColumns] ,@"Number of visible columns" ) ADD_OBJECT( [o path] ,@"Path") ADD_OBJECT( [o pathSeparator] ,@"Path separator") - ADD_BOOL( [o prefersAllColumnUserResizing] ,@"Prefers all column user resizing" ) - ADD_BOOL( [o reusesColumns] ,@"Reuses columns") + ADD_BOOL( [o prefersAllColumnUserResizing] ,@"Prefers all column user resizing" ) + ADD_BOOL( [o reusesColumns] ,@"Reuses columns") ADD_OBJECTS( [o selectedCells] ,@"Selected cells") - ADD_NUMBER( [o selectedColumn] ,@"Selected column") - ADD_BOOL( [o sendsActionOnArrowKeys] ,@"Sends action on arrow keys") - ADD_BOOL( [o separatesColumns] ,@"Separates columns") - ADD_BOOL( [o takesTitleFromPreviousColumn] ,@"Takes title from previous column" ) - ADD_NUMBER( [o titleHeight] ,@"Title height") + ADD_NUMBER( [o selectedColumn] ,@"Selected column") + ADD_BOOL( [o sendsActionOnArrowKeys] ,@"Sends action on arrow keys") + ADD_BOOL( [o separatesColumns] ,@"Separates columns") + ADD_BOOL( [o takesTitleFromPreviousColumn] ,@"Takes title from previous column" ) + ADD_NUMBER( [o titleHeight] ,@"Title height") } else if ([object isKindOfClass:[NSButton class]]) { @@ -3601,7 +3533,7 @@ - (void)processNSControl:(id)object ADD_CLASS_LABEL(@"NSPopUpButton Info"); ADD_BOOL( [o autoenablesItems] ,@"Autoenables Items") ADD_NUMBER( [o indexOfSelectedItem] ,@"Index of selected item") - ADD_OBJECTS( [o itemArray] ,@"Item array") + ADD_OBJECTS( [o itemArray] ,@"Item array") ADD_NUMBER( [o numberOfItems] ,@"Number of items") ADD_OBJECT( [o objectValue] ,@"Object value") ADD_OBJECT(objectFromRectEdge([o preferredEdge]) ,@"Preferred edge") @@ -3611,7 +3543,7 @@ - (void)processNSControl:(id)object NSButton *o = object; ADD_CLASS_LABEL(@"NSButton Info"); - ADD_BOOL( [o allowsMixedState] ,@"Allows mixed state") + ADD_BOOL( [o allowsMixedState] ,@"Allows mixed state") ADD_OBJECT_NOT_NIL([o alternateImage] ,@"Alternate image" ) ADD_OBJECT( [o alternateTitle] ,@"Alternate title") ADD_OBJECT( [o attributedAlternateTitle] ,@"Attributed alternate title") @@ -3619,11 +3551,11 @@ - (void)processNSControl:(id)object ADD_OBJECT(objectFromBezelStyle([o bezelStyle]) ,@"Bezel style") ADD_OBJECT( [o image] ,@"Image") ADD_OBJECT(objectFromCellImagePosition([o imagePosition]) ,@"Image position") - ADD_BOOL( [o isBordered] ,@"Is bordered") - ADD_BOOL( [o isTransparent] ,@"Is transparent" ) + ADD_BOOL( [o isBordered] ,@"Is bordered") + ADD_BOOL( [o isTransparent] ,@"Is transparent" ) ADD_OBJECT( [o keyEquivalent] ,@"Key equivalent") ADD_OBJECT(objectFromKeyModifierMask([o keyEquivalentModifierMask]) , @"Key equivalent modifier mask") - ADD_BOOL( [o showsBorderOnlyWhileMouseInside] ,@"Shows border only while mouse inside") + ADD_BOOL( [o showsBorderOnlyWhileMouseInside] ,@"Shows border only while mouse inside") ADD_OBJECT_NOT_NIL([o sound] ,@"Sound") ADD_OBJECT(objectFromCellStateValue([o state]) ,@"State") ADD_OBJECT( [o title] ,@"Title") @@ -3656,9 +3588,9 @@ - (void)processNSControl:(id)object ADD_OBJECT( [o textColor] ,@"Text Color") ADD_NUMBER( [o timeInterval] ,@"Time interval") ADD_OBJECT( [o timeZone] ,@"Time zone") - } + } else if ([object isKindOfClass:[NSImageView class]]) - { + { NSImageView *o = object; ADD_CLASS_LABEL(@"NSImageView Info"); ADD_BOOL( [o allowsCutCopyPaste] ,@"Allows cut copy paste") @@ -3668,7 +3600,7 @@ - (void)processNSControl:(id)object ADD_OBJECT(objectFromImageFrameStyle([o imageFrameStyle]) ,@"Image frame style") ADD_OBJECT(objectFromImageScaling([o imageScaling]) ,@"Image scaling") ADD_BOOL( [o isEditable] ,@"Is editable") - } + } else if ([object isKindOfClass:[NSLevelIndicator class]]) { NSLevelIndicator *o = object; @@ -3703,7 +3635,7 @@ - (void)processNSControl:(id)object for (NSInteger row = 0; row < numberOfRows; row++) [columnArray addObject:[o cellAtRow:row column:column]]; ADD_OBJECT( [NSArray arrayWithArray:columnArray] ,([NSString stringWithFormat:@"Column %ld",(long)column])) } - } + } ADD_OBJECT( [o delegate] ,@"Delegate") ADD_SEL( [o doubleAction] ,@"Double action") @@ -3711,16 +3643,16 @@ - (void)processNSControl:(id)object ADD_BOOL( [o drawsCellBackground] ,@"Draws cell background") ADD_SIZE( [o intercellSpacing] ,@"Intercell spacing") ADD_BOOL( [o isAutoscroll] ,@"Is autoscroll") - ADD_BOOL( [o isSelectionByRect] ,@"Is selection by rect") + ADD_BOOL( [o isSelectionByRect] ,@"Is selection by rect") ADD_OBJECT( [o keyCell] ,@"Key cell") ADD_OBJECT(objectFromMatrixMode([(NSMatrix *)o mode]) ,@"Mode") - ADD_NUMBER( [o numberOfColumns] ,@"Number of columns") + ADD_NUMBER( [o numberOfColumns] ,@"Number of columns") ADD_NUMBER( [o numberOfRows] ,@"Number of rows") ADD_OBJECT( [o prototype] ,@"Prototype") ADD_OBJECTS( [o selectedCells] ,@"Selected cells") - ADD_NUMBER( [o selectedColumn] ,@"Selected column") - ADD_NUMBER( [o selectedRow] ,@"Selected row") - ADD_BOOL( [o tabKeyTraversesCells] ,@"Tab key traverses cells") + ADD_NUMBER( [o selectedColumn] ,@"Selected column") + ADD_NUMBER( [o selectedRow] ,@"Selected row") + ADD_BOOL( [o tabKeyTraversesCells] ,@"Tab key traverses cells") } else if ([object isKindOfClass:[NSPathControl class]]) { @@ -3759,7 +3691,7 @@ - (void)processNSControl:(id)object ADD_OBJECT_NOT_NIL([o rowTypeKeyPath] ,@"Row type key path") ADD_OBJECT_NOT_NIL([o selectedRowIndexes] ,@"Selected row indexes") ADD_OBJECT_NOT_NIL([o subrowsKeyPath] ,@"Subrows key path") - } + } else if ([object isKindOfClass:[NSScroller class]]) { NSScroller *o = object; @@ -3771,11 +3703,11 @@ - (void)processNSControl:(id)object ADD_OBJECT(objectFromScrollerPart([o hitPart]) ,@"Hit part") ADD_NUMBER( [o knobProportion] ,@"Knob proportion") ADD_OBJECT(objectFromUsableScrollerParts([o usableParts]) ,@"Usable parts") - } + } else if ([object isKindOfClass:[NSSegmentedControl class]]) { NSSegmentedControl *o = object; - NSInteger segmentCount = [o segmentCount]; + NSInteger segmentCount = [o segmentCount]; ADD_CLASS_LABEL(@"NSSegmentedControl Info"); ADD_NUMBER( segmentCount ,@"Segment count") @@ -3796,12 +3728,12 @@ - (void)processNSControl:(id)object { NSSlider *o = object; ADD_CLASS_LABEL(@"NSSlider Info"); - ADD_BOOL( [o allowsTickMarkValuesOnly] ,@"Allows tick mark values only") - ADD_NUMBER( [o altIncrementValue] ,@"Alt increment value") - ADD_NUMBER( [(NSSlider*)o isVertical] ,@"Is vertical") - ADD_NUMBER( [o knobThickness] ,@"Knob thickness") - ADD_NUMBER( [o maxValue] ,@"Max value") - ADD_NUMBER( [o minValue] ,@"Min value") + ADD_BOOL( [o allowsTickMarkValuesOnly] ,@"Allows tick mark values only") + ADD_NUMBER( [o altIncrementValue] ,@"Alt increment value") + ADD_NUMBER( [(NSSlider*)o isVertical] ,@"Is vertical") + ADD_NUMBER( [o knobThickness] ,@"Knob thickness") + ADD_NUMBER( [o maxValue] ,@"Max value") + ADD_NUMBER( [o minValue] ,@"Min value") ADD_NUMBER( [o numberOfTickMarks] ,@"Number of tick marks") ADD_OBJECT(objectFromTickMarkPosition([o tickMarkPosition], [(NSSlider*)o isVertical] == 1),@"Tick mark position") ADD_OBJECT( [o title] ,@"title") @@ -3815,7 +3747,7 @@ - (void)processNSControl:(id)object ADD_BOOL( [o autoresizesOutlineColumn] ,@"Autoresizes outline column") ADD_BOOL( [o autosaveExpandedItems] ,@"Autosave expanded items") ADD_BOOL( [o indentationMarkerFollowsCell] ,@"Indentation marker follows cell") - ADD_NUMBER( [o indentationPerLevel] ,@"Indentation per level") + ADD_NUMBER( [o indentationPerLevel] ,@"Indentation per level") ADD_OBJECT( [o outlineTableColumn] ,@"Outline table column") } @@ -3826,8 +3758,8 @@ - (void)processNSControl:(id)object ADD_BOOL( [o allowsColumnSelection] ,@"Allows column selection") ADD_BOOL( [o allowsEmptySelection] ,@"Allows empty selection") ADD_BOOL( [o allowsMultipleSelection] ,@"Allows multiple selection") - ADD_BOOL( [o allowsTypeSelect] ,@"Allows type select") - ADD_OBJECT_NOT_NIL([o autosaveName] ,@"Autosave name") + ADD_BOOL( [o allowsTypeSelect] ,@"Allows type select") + ADD_OBJECT_NOT_NIL([o autosaveName] ,@"Autosave name") ADD_BOOL( [o autosaveTableColumns] ,@"Autosave table columns") ADD_OBJECT( [o backgroundColor] ,@"Background color") ADD_OBJECT(objectFromTableViewColumnAutoresizingStyle([o columnAutoresizingStyle]),@"Column autoresizing style") @@ -3836,21 +3768,21 @@ - (void)processNSControl:(id)object ADD_OBJECT( [o delegate] ,@"Delegate") ADD_SEL( [o doubleAction] ,@"Double action") ADD_OBJECT( [o gridColor] ,@"Grid color") - ADD_OBJECT( objectFromGridStyleMask([o gridStyleMask]),@"Grid style mask") - ADD_OBJECT( [o headerView] ,@"Header view") + ADD_OBJECT( objectFromTableViewGridLineStyle([o gridStyleMask]),@"Grid style mask") + ADD_OBJECT( [o headerView] ,@"Header view") ADD_OBJECT_NOT_NIL([o highlightedTableColumn] ,@"Highlighted table column") ADD_SIZE( [o intercellSpacing] ,@"Intercell spacing") - ADD_NUMBER( [o numberOfColumns] ,@"Number of columns") - ADD_NUMBER( [o numberOfRows] ,@"Number of rows") - ADD_NUMBER( [o numberOfSelectedColumns] ,@"Number of selected columns") - ADD_NUMBER( [o numberOfSelectedRows] ,@"Number of selected rows") - ADD_NUMBER( [o rowHeight] ,@"Row height") - ADD_NUMBER( [o selectedColumn] ,@"Selected column") - ADD_OBJECT( [o selectedColumnIndexes] ,@"Selected column indexes") - ADD_NUMBER( [o selectedRow] ,@"Selected row") - ADD_OBJECT( [o selectedRowIndexes] ,@"Selected row indexes") + ADD_NUMBER( [o numberOfColumns] ,@"Number of columns") + ADD_NUMBER( [o numberOfRows] ,@"Number of rows") + ADD_NUMBER( [o numberOfSelectedColumns] ,@"Number of selected columns") + ADD_NUMBER( [o numberOfSelectedRows] ,@"Number of selected rows") + ADD_NUMBER( [o rowHeight] ,@"Row height") + ADD_NUMBER( [o selectedColumn] ,@"Selected column") + ADD_OBJECT( [o selectedColumnIndexes] ,@"Selected column indexes") + ADD_NUMBER( [o selectedRow] ,@"Selected row") + ADD_OBJECT( [o selectedRowIndexes] ,@"Selected row indexes") ADD_OBJECT(objectFromTableViewSelectionHighlightStyle([o selectionHighlightStyle]),@"Selection highlight style") - ADD_OBJECTS( [o sortDescriptors] ,@"Sort descriptors") + ADD_OBJECTS( [o sortDescriptors] ,@"Sort descriptors") ADD_OBJECTS( [o tableColumns] ,@"Table columns") ADD_BOOL( [o usesAlternatingRowBackgroundColors] ,@"Uses alternating row background colors" ) ADD_BOOL( [o verticalMotionCanBeginDrag] ,@"Vertical motion can begin drag" ) @@ -3859,53 +3791,53 @@ - (void)processNSControl:(id)object { NSStepper *o = object; ADD_CLASS_LABEL(@"NSStepper Info"); - ADD_BOOL( [o autorepeat] ,@"Autorepeat") - ADD_NUMBER( [o increment] ,@"Increment") - ADD_NUMBER( [o maxValue] ,@"Max value") - ADD_NUMBER( [o minValue] ,@"Min value") - ADD_BOOL( [o valueWraps] ,@"Value wraps") - } + ADD_BOOL( [o autorepeat] ,@"Autorepeat") + ADD_NUMBER( [o increment] ,@"Increment") + ADD_NUMBER( [o maxValue] ,@"Max value") + ADD_NUMBER( [o minValue] ,@"Min value") + ADD_BOOL( [o valueWraps] ,@"Value wraps") + } else if ([object isKindOfClass:[NSTextField class]]) { - if ([object isKindOfClass:[NSComboBox class]]) + if ([object isKindOfClass:[NSComboBox class]]) { NSComboBox *o = object; ADD_CLASS_LABEL(@"NSComboBox Info"); - if ([o usesDataSource]) ADD_OBJECT([o dataSource] ,@"Data source") + if ([o usesDataSource]) ADD_OBJECT([o dataSource] ,@"Data source") ADD_BOOL( [o hasVerticalScroller] ,@"Has vertical scroller") - ADD_NUMBER( [o indexOfSelectedItem] ,@"Index of selected item") + ADD_NUMBER( [o indexOfSelectedItem] ,@"Index of selected item") ADD_SIZE( [o intercellSpacing] ,@"Intercell spacing") ADD_BOOL( [o isButtonBordered] ,@"Is button bordered") - ADD_NUMBER( [o itemHeight] ,@"Item height") - ADD_NUMBER( [o numberOfItems] ,@"Number of items") - ADD_NUMBER( [o numberOfVisibleItems] ,@"Number of visible items") - if (![o usesDataSource] && [o indexOfSelectedItem] != -1) - ADD_OBJECT( [o objectValueOfSelectedItem] ,@"Object value of selected item") - if (![o usesDataSource]) - ADD_OBJECTS( [o objectValues] ,@"Object values") - ADD_BOOL( [o usesDataSource] ,@"Uses data source") + ADD_NUMBER( [o itemHeight] ,@"Item height") + ADD_NUMBER( [o numberOfItems] ,@"Number of items") + ADD_NUMBER( [o numberOfVisibleItems] ,@"Number of visible items") + if (![o usesDataSource] && [o indexOfSelectedItem] != -1) + ADD_OBJECT( [o objectValueOfSelectedItem] ,@"Object value of selected item") + if (![o usesDataSource]) + ADD_OBJECTS( [o objectValues] ,@"Object values") + ADD_BOOL( [o usesDataSource] ,@"Uses data source") } else if ([object isKindOfClass:[NSSearchField class]]) { NSSearchField *o = object; - if ([[o recentSearches] count] != 0 || [o recentsAutosaveName] != nil) + if ([[o recentSearches] count] != 0 || [o recentsAutosaveName] != nil) ADD_CLASS_LABEL(@"NSSearchField Info"); - ADD_OBJECTS( [o recentSearches] ,@"Recent searches") - ADD_OBJECT_NOT_NIL([o recentsAutosaveName] ,@"Recents autosave name") + ADD_OBJECTS( [o recentSearches] ,@"Recent searches") + ADD_OBJECT_NOT_NIL([o recentsAutosaveName] ,@"Recents autosave name") } - else if ([object isKindOfClass:[NSTokenField class]]) + else if ([object isKindOfClass:[NSTokenField class]]) { NSTokenField *o = object; ADD_CLASS_LABEL(@"NSTokenField Info"); - ADD_NUMBER( [o completionDelay] ,@"Completion delay") - ADD_OBJECT( [o tokenizingCharacterSet] ,@"Tokenizing character set") - ADD_OBJECT(objectFromTokenStyle([o tokenStyle]) ,@"Token style") + ADD_NUMBER( [o completionDelay] ,@"Completion delay") + ADD_OBJECT( [o tokenizingCharacterSet] ,@"Tokenizing character set") + ADD_OBJECT(objectFromTokenStyle([o tokenStyle]) ,@"Token style") } NSTextField *o = object; ADD_CLASS_LABEL(@"NSTextField Info"); ADD_BOOL( [o allowsEditingTextAttributes] ,@"Allows editing text attributes") - ADD_OBJECT( [o backgroundColor] ,@"Background color") + ADD_OBJECT( [o backgroundColor] ,@"Background color") ADD_OBJECT(objectFromTextFieldBezelStyle([o bezelStyle]) ,@"Bezel style") ADD_OBJECT_NOT_NIL([o delegate] ,@"Delegate") ADD_BOOL( [o drawsBackground] ,@"Draws background") @@ -3915,13 +3847,13 @@ - (void)processNSControl:(id)object ADD_BOOL( [o isEditable] ,@"Is editable") ADD_BOOL( [o isSelectable] ,@"Is selectable") ADD_OBJECT( [o textColor] ,@"Text color") - } + } NSControl *o = object; ADD_CLASS_LABEL(@"NSControl Info"); ADD_SEL( [o action] ,@"Action") ADD_OBJECT( objectFromTextAlignment([o alignment]) ,@"Alignment") - ADD_OBJECT(objectFromWritingDirection([o baseWritingDirection]) ,@"Base writing direction") + ADD_OBJECT(objectFromWritingDirection([o baseWritingDirection]) ,@"Base writing direction") ADD_OBJECT( [o cell] ,@"Cell") ADD_OBJECT(objectFromControlSize([o controlSize]) ,@"Control size") ADD_OBJECT_NOT_NIL( [o currentEditor] ,@"Current editor") @@ -3929,7 +3861,7 @@ - (void)processNSControl:(id)object ADD_OBJECT( [o formatter] ,@"Formatter") ADD_BOOL( [o ignoresMultiClick] ,@"Ignores multiclick") ADD_BOOL( [o isContinuous] ,@"Is continuous") - ADD_BOOL( [o isEnabled] ,@"Is enabled") + ADD_BOOL( [o isEnabled] ,@"Is enabled") if ([o currentEditor] == nil) ADD_OBJECT([o objectValue] ,@"Object value") // To avoid side-effects, we only call objectValue if the control is not being edited, which is determined with the currentEditor call. ADD_BOOL( [o refusesFirstResponder] ,@"Refuses first responder") ADD_OBJECT( [o selectedCell] ,@"Selected cell") @@ -3937,34 +3869,34 @@ - (void)processNSControl:(id)object ADD_OBJECT( [o target] ,@"Target") } } - + - (void)processNSWindow:(id)object { - { + { if ([object isKindOfClass:[NSPanel class]]) { if ([object isKindOfClass:[NSColorPanel class]]) - { + { NSColorPanel *o = object; ADD_CLASS_LABEL(@"NSColorPanel Info"); ADD_OBJECT_NOT_NIL([o accessoryView] ,@"Accessory view") - ADD_NUMBER( [o alpha] ,@"Alpha") + ADD_NUMBER( [o alpha] ,@"Alpha") ADD_OBJECT( [o color] ,@"Color") ADD_BOOL( [o isContinuous] ,@"Is continuous") ADD_OBJECT( objectFromColorPanelMode([o mode]) ,@"Mode") ADD_BOOL( [o showsAlpha] ,@"Shows alpha") } else if ([object isKindOfClass:[NSFontPanel class]]) - { + { NSFontPanel *o = object; ADD_CLASS_LABEL(@"NSFontPanel Info"); ADD_OBJECT_NOT_NIL([o accessoryView] ,@"Accessory view") ADD_BOOL( [o isEnabled] ,@"Is enabled") } else if ([object isKindOfClass:[NSSavePanel class]]) - { + { if ([object isKindOfClass:[NSOpenPanel class]]) - { + { NSOpenPanel *o = object; ADD_CLASS_LABEL(@"NSOpenPanel Info"); ADD_BOOL( [o allowsMultipleSelection] ,@"Allows multiple selection") @@ -4005,13 +3937,13 @@ - (void)processNSWindow:(id)object ADD_CLASS_LABEL(@"NSWindow Info"); ADD_BOOL( [o acceptsMouseMovedEvents] ,@"Accepts mouse moved events") ADD_BOOL( [o allowsToolTipsWhenApplicationIsInactive] ,@"Allows tool tips when application is inactive") - ADD_NUMBER( [o alphaValue] ,@"Alpha value") + ADD_NUMBER( [o alphaValue] ,@"Alpha value") ADD_BOOL( [o areCursorRectsEnabled] ,@"Are cursor rects enabled") - ADD_SIZE( [o aspectRatio] ,@"Aspect ratio") + ADD_SIZE( [o aspectRatio] ,@"Aspect ratio") ADD_OBJECT_NOT_NIL( [o attachedSheet] ,@"Attached sheet") ADD_BOOL( [o autorecalculatesKeyViewLoop] ,@"Autorecalculates key view loop") - ADD_OBJECT(objectFromWindowBackingLocation([o backingLocation]),@"Backing location") - ADD_OBJECT( [o backgroundColor] ,@"Background color") + ADD_OBJECT(objectFromWindowBackingLocation([o backingLocation]),@"Backing location") + ADD_OBJECT( [o backgroundColor] ,@"Background color") ADD_OBJECT(objectFromBackingStoreType([o backingType]) ,@"Backing type") ADD_BOOL( [o canBecomeKeyWindow] ,@"Can become key window") ADD_BOOL( [o canBecomeMainWindow] ,@"Can become main window") @@ -4028,7 +3960,7 @@ - (void)processNSWindow:(id)object ADD_OBJECT_NOT_NIL( [o deepestScreen] ,@"Deepest screen") ADD_OBJECT( [o defaultButtonCell] ,@"Default button cell") ADD_OBJECT( [o delegate] ,@"Delegate") - ADD_NUMBER( [o depthLimit] ,@"Depth limit") + ADD_NUMBER( [o depthLimit] ,@"Depth limit") ADD_DICTIONARY( [o deviceDescription] ,@"Device description") ADD_BOOL( [o displaysWhenScreenProfileChanges] ,@"Displays when screen profile changes") ADD_OBJECTS( [o drawers] ,@"Drawers") @@ -4037,7 +3969,7 @@ - (void)processNSWindow:(id)object ADD_OBJECT_NOT_NIL( [o frameAutosaveName] ,@"Frame autosave name") ADD_OBJECT( [o graphicsContext] ,@"Graphics context") // Call to gState fails when the window in miniaturized - //ADD_NUMBER( [o gState] ,@"gState") + //ADD_NUMBER( [o gState] ,@"gState") ADD_BOOL( [o hasDynamicDepthLimit] ,@"Has dynamic depth limit") ADD_BOOL( [o hasShadow] ,@"Has shadow") ADD_BOOL( [o hidesOnDeactivate] ,@"Hides on deactivate") @@ -4062,22 +3994,22 @@ - (void)processNSWindow:(id)object ADD_OBJECT_NOT_NIL( [o miniwindowImage] ,@"Miniwindow image") ADD_OBJECT( [o miniwindowTitle] ,@"Miniwindow title") ADD_OBJECT_NOT_NIL( [o parentWindow] ,@"Parent window") - ADD_OBJECT(objectFromWindowBackingLocation([o preferredBackingLocation]),@"Preferred backing location") + ADD_OBJECT(objectFromWindowBackingLocation([o preferredBackingLocation]),@"Preferred backing location") ADD_BOOL( [o preservesContentDuringLiveResize] ,@"Preserves content during live resize") ADD_OBJECT_NOT_NIL( [o representedFilename] ,@"Represented filename") ADD_OBJECT_NOT_NIL( [o representedURL] ,@"Represented URL") ADD_SIZE( [o resizeIncrements] ,@"Resize increments") ADD_OBJECT( [o screen] ,@"Screen") - ADD_OBJECT(objectFromWindowSharingType([o sharingType]) ,@"Sharing type") + ADD_OBJECT(objectFromWindowSharingType([o sharingType]) ,@"Sharing type") ADD_BOOL( [o showsResizeIndicator] ,@"Shows resize indicator") ADD_BOOL( [o showsToolbarButton] ,@"Shows toolbar button") ADD_OBJECT(objectFromWindowMask([o styleMask]) ,@"Style mask") ADD_OBJECT( [o title] ,@"Title") ADD_OBJECT_NOT_NIL( [o toolbar] ,@"Toolbar") - ADD_NUMBER( [o userSpaceScaleFactor] ,@"User space scale factor") + ADD_NUMBER( [o userSpaceScaleFactor] ,@"User space scale factor") ADD_BOOL( [o viewsNeedDisplay] ,@"Views need display") ADD_OBJECT_NOT_NIL( [o windowController] ,@"Window controller") - ADD_NUMBER( [o windowNumber] ,@"Window number") + ADD_NUMBER( [o windowNumber] ,@"Window number") ADD_BOOL( [o worksWhenModal] ,@"Works when modal") } } From 5424498a3dd081e6be02626ad234fdbc76671465 Mon Sep 17 00:00:00 2001 From: Ant Date: Sun, 16 Nov 2014 22:46:33 +0000 Subject: [PATCH 10/33] Moved enum information into separate file --- .clang-format | 53 + FScript.xcodeproj/project.pbxproj | 68 ++ FScriptFramework/FSObjectBrowserView.m | 132 +-- .../FSObjectBrowserViewObjectInfo.m | 977 +--------------- FScriptFramework/FSObjectEnumInfo.h | 127 +++ FScriptFramework/FSObjectEnumInfo.m | 1000 +++++++++++++++++ .../FSObjectInspectorViewModelItem.h | 24 + .../FSObjectInspectorViewModelItem.m | 13 + 8 files changed, 1341 insertions(+), 1053 deletions(-) create mode 100644 .clang-format create mode 100644 FScriptFramework/FSObjectEnumInfo.h create mode 100644 FScriptFramework/FSObjectEnumInfo.m create mode 100644 FScriptFramework/FSObjectInspectorViewModelItem.h create mode 100644 FScriptFramework/FSObjectInspectorViewModelItem.m diff --git a/.clang-format b/.clang-format new file mode 100644 index 0000000..55e8236 --- /dev/null +++ b/.clang-format @@ -0,0 +1,53 @@ +--- +Language: Cpp +# BasedOnStyle: WebKit +AccessModifierOffset: -4 +ConstructorInitializerIndentWidth: 4 +AlignEscapedNewlinesLeft: false +AlignTrailingComments: false +AllowAllParametersOfDeclarationOnNextLine: true +AllowShortIfStatementsOnASingleLine: false +AllowShortLoopsOnASingleLine: false +AllowShortFunctionsOnASingleLine: All +AlwaysBreakTemplateDeclarations: false +AlwaysBreakBeforeMultilineStrings: false +BreakBeforeBinaryOperators: true +BreakBeforeTernaryOperators: true +BreakConstructorInitializersBeforeComma: true +BinPackParameters: true +ColumnLimit: 0 +ConstructorInitializerAllOnOneLineOrOnePerLine: false +DerivePointerBinding: false +ExperimentalAutoDetectBinPacking: false +IndentCaseLabels: false +MaxEmptyLinesToKeep: 2 +KeepEmptyLinesAtTheStartOfBlocks: true +NamespaceIndentation: Inner +ObjCSpaceAfterProperty: true +ObjCSpaceBeforeProtocolList: true +PenaltyBreakBeforeFirstCallParameter: 19 +PenaltyBreakComment: 300 +PenaltyBreakString: 1000 +PenaltyBreakFirstLessLess: 120 +PenaltyExcessCharacter: 1000000 +PenaltyReturnTypeOnItsOwnLine: 60 +PointerBindsToType: true +SpacesBeforeTrailingComments: 1 +Cpp11BracedListStyle: false +Standard: Cpp03 +IndentWidth: 8 +TabWidth: 8 +UseTab: Never +BreakBeforeBraces: Stroustrup +IndentFunctionDeclarationAfterType: false +SpacesInParentheses: false +SpacesInAngles: false +SpaceInEmptyParentheses: false +SpacesInCStyleCastParentheses: false +SpacesInContainerLiterals: true +SpaceBeforeAssignmentOperators: true +ContinuationIndentWidth: 20 +CommentPragmas: '^ IWYU pragma:' +ForEachMacros: [ foreach, Q_FOREACH, BOOST_FOREACH ] +SpaceBeforeParens: ControlStatements +... diff --git a/FScript.xcodeproj/project.pbxproj b/FScript.xcodeproj/project.pbxproj index b8eeda0..3e1e22a 100644 --- a/FScript.xcodeproj/project.pbxproj +++ b/FScript.xcodeproj/project.pbxproj @@ -2713,6 +2713,36 @@ BA2237AB189FA432002C5B6A /* ExceptionHandling.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F51B24640271980D01DB4759 /* ExceptionHandling.framework */; }; BA2237B2189FAC75002C5B6A /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E2DBA32D161CA7180035A675 /* AVFoundation.framework */; }; BA2237B3189FAC75002C5B6A /* AVKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA223099189F9976002C5B6A /* AVKit.framework */; }; + ED8222D61A194FD600C42C72 /* FSObjectInspectorViewModelItem.h in Headers */ = {isa = PBXBuildFile; fileRef = ED8222D41A194FD600C42C72 /* FSObjectInspectorViewModelItem.h */; }; + ED8222D71A194FD600C42C72 /* FSObjectInspectorViewModelItem.h in Headers */ = {isa = PBXBuildFile; fileRef = ED8222D41A194FD600C42C72 /* FSObjectInspectorViewModelItem.h */; }; + ED8222D81A194FD600C42C72 /* FSObjectInspectorViewModelItem.h in Headers */ = {isa = PBXBuildFile; fileRef = ED8222D41A194FD600C42C72 /* FSObjectInspectorViewModelItem.h */; }; + ED8222D91A194FD600C42C72 /* FSObjectInspectorViewModelItem.h in Headers */ = {isa = PBXBuildFile; fileRef = ED8222D41A194FD600C42C72 /* FSObjectInspectorViewModelItem.h */; }; + ED8222DA1A194FD600C42C72 /* FSObjectInspectorViewModelItem.h in Headers */ = {isa = PBXBuildFile; fileRef = ED8222D41A194FD600C42C72 /* FSObjectInspectorViewModelItem.h */; }; + ED8222DB1A194FD600C42C72 /* FSObjectInspectorViewModelItem.h in Headers */ = {isa = PBXBuildFile; fileRef = ED8222D41A194FD600C42C72 /* FSObjectInspectorViewModelItem.h */; }; + ED8222DC1A194FD600C42C72 /* FSObjectInspectorViewModelItem.h in Headers */ = {isa = PBXBuildFile; fileRef = ED8222D41A194FD600C42C72 /* FSObjectInspectorViewModelItem.h */; }; + ED8222DD1A194FD600C42C72 /* FSObjectInspectorViewModelItem.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8222D51A194FD600C42C72 /* FSObjectInspectorViewModelItem.m */; }; + ED8222DE1A194FD600C42C72 /* FSObjectInspectorViewModelItem.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8222D51A194FD600C42C72 /* FSObjectInspectorViewModelItem.m */; }; + ED8222DF1A194FD600C42C72 /* FSObjectInspectorViewModelItem.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8222D51A194FD600C42C72 /* FSObjectInspectorViewModelItem.m */; }; + ED8222E01A194FD600C42C72 /* FSObjectInspectorViewModelItem.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8222D51A194FD600C42C72 /* FSObjectInspectorViewModelItem.m */; }; + ED8222E11A194FD600C42C72 /* FSObjectInspectorViewModelItem.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8222D51A194FD600C42C72 /* FSObjectInspectorViewModelItem.m */; }; + ED8222E21A194FD600C42C72 /* FSObjectInspectorViewModelItem.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8222D51A194FD600C42C72 /* FSObjectInspectorViewModelItem.m */; }; + ED8222E31A194FD600C42C72 /* FSObjectInspectorViewModelItem.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8222D51A194FD600C42C72 /* FSObjectInspectorViewModelItem.m */; }; + ED8222E41A194FD600C42C72 /* FSObjectInspectorViewModelItem.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8222D51A194FD600C42C72 /* FSObjectInspectorViewModelItem.m */; }; + ED8222E71A19554F00C42C72 /* FSObjectEnumInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = ED8222E51A19554F00C42C72 /* FSObjectEnumInfo.h */; }; + ED8222E81A19554F00C42C72 /* FSObjectEnumInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = ED8222E51A19554F00C42C72 /* FSObjectEnumInfo.h */; }; + ED8222E91A19554F00C42C72 /* FSObjectEnumInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = ED8222E51A19554F00C42C72 /* FSObjectEnumInfo.h */; }; + ED8222EA1A19554F00C42C72 /* FSObjectEnumInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = ED8222E51A19554F00C42C72 /* FSObjectEnumInfo.h */; }; + ED8222EB1A19554F00C42C72 /* FSObjectEnumInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = ED8222E51A19554F00C42C72 /* FSObjectEnumInfo.h */; }; + ED8222EC1A19554F00C42C72 /* FSObjectEnumInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = ED8222E51A19554F00C42C72 /* FSObjectEnumInfo.h */; }; + ED8222ED1A19554F00C42C72 /* FSObjectEnumInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = ED8222E51A19554F00C42C72 /* FSObjectEnumInfo.h */; }; + ED8222EE1A19554F00C42C72 /* FSObjectEnumInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8222E61A19554F00C42C72 /* FSObjectEnumInfo.m */; }; + ED8222EF1A19554F00C42C72 /* FSObjectEnumInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8222E61A19554F00C42C72 /* FSObjectEnumInfo.m */; }; + ED8222F01A19554F00C42C72 /* FSObjectEnumInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8222E61A19554F00C42C72 /* FSObjectEnumInfo.m */; }; + ED8222F11A19554F00C42C72 /* FSObjectEnumInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8222E61A19554F00C42C72 /* FSObjectEnumInfo.m */; }; + ED8222F21A19554F00C42C72 /* FSObjectEnumInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8222E61A19554F00C42C72 /* FSObjectEnumInfo.m */; }; + ED8222F31A19554F00C42C72 /* FSObjectEnumInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8222E61A19554F00C42C72 /* FSObjectEnumInfo.m */; }; + ED8222F41A19554F00C42C72 /* FSObjectEnumInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8222E61A19554F00C42C72 /* FSObjectEnumInfo.m */; }; + ED8222F51A19554F00C42C72 /* FSObjectEnumInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8222E61A19554F00C42C72 /* FSObjectEnumInfo.m */; }; EDE508D019DD4AA00012F16A /* InterfaceBuilderKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA22313D189F9AA9002C5B6A /* InterfaceBuilderKit.framework */; }; EDE508D219DD4D310012F16A /* FSConsole.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDE508D119DD4D310012F16A /* FSConsole.xib */; }; EDE508D319DD4D310012F16A /* FSConsole.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDE508D119DD4D310012F16A /* FSConsole.xib */; }; @@ -3285,6 +3315,10 @@ E2DBA329161CA6600035A675 /* Social.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Social.framework; path = System/Library/Frameworks/Social.framework; sourceTree = SDKROOT; }; E2DBA32B161CA6660035A675 /* VideoToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = VideoToolbox.framework; path = System/Library/Frameworks/VideoToolbox.framework; sourceTree = SDKROOT; }; E2DBA32D161CA7180035A675 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; + ED8222D41A194FD600C42C72 /* FSObjectInspectorViewModelItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSObjectInspectorViewModelItem.h; sourceTree = ""; }; + ED8222D51A194FD600C42C72 /* FSObjectInspectorViewModelItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FSObjectInspectorViewModelItem.m; sourceTree = ""; }; + ED8222E51A19554F00C42C72 /* FSObjectEnumInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSObjectEnumInfo.h; sourceTree = ""; }; + ED8222E61A19554F00C42C72 /* FSObjectEnumInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FSObjectEnumInfo.m; sourceTree = ""; }; EDE508D119DD4D310012F16A /* FSConsole.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = FSConsole.xib; sourceTree = ""; }; EDE508DA19DD4FDC0012F16A /* FScriptPreferences.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = FScriptPreferences.xib; sourceTree = ""; }; EDFB2FF21A17E345002C8DD7 /* FSObjectBrowserButtonsInspector.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = FSObjectBrowserButtonsInspector.xib; sourceTree = ""; }; @@ -4036,8 +4070,12 @@ F58090D003755FC701AED2EF /* FSObjectBrowserToolbarItem.m */, 0CD4E32400D7DFE17BE9C1BD /* FSObjectBrowserView.h */, 0CD4E32500D7DFE17BE9C1BD /* FSObjectBrowserView.m */, + ED8222D41A194FD600C42C72 /* FSObjectInspectorViewModelItem.h */, + ED8222D51A194FD600C42C72 /* FSObjectInspectorViewModelItem.m */, 8F4E294C075B8E5600F8DCDB /* FSObjectBrowserViewObjectInfo.h */, 8F4E294D075B8E5600F8DCDB /* FSObjectBrowserViewObjectInfo.m */, + ED8222E51A19554F00C42C72 /* FSObjectEnumInfo.h */, + ED8222E61A19554F00C42C72 /* FSObjectEnumInfo.m */, F5EBBE810321029601CA10C6 /* FSObjectFormatter.m */, F5EBBE820321029601CA10C6 /* FSObjectFormatter.h */, 8FE9AE12078071CC005B2CC4 /* FSObjectPointer.h */, @@ -4390,6 +4428,7 @@ 8F6DA60F055FC6980050409A /* FScript.h in Headers */, 8F6DA610055FC6980050409A /* FSNSProxy.h in Headers */, 8F6DA611055FC6980050409A /* FSNSString.h in Headers */, + ED8222ED1A19554F00C42C72 /* FSObjectEnumInfo.h in Headers */, 8F6DA612055FC6980050409A /* FSNSStringPrivate.h in Headers */, 8F6DA614055FC6980050409A /* FSPattern.h in Headers */, 8F6DA616055FC6980050409A /* FSUnarchiver.h in Headers */, @@ -4452,6 +4491,7 @@ 8F8EA793077F6C9300AC1C96 /* FSGenericPointer.h in Headers */, 8F8EA7F5077F719800AC1C96 /* FSPointerPrivate.h in Headers */, 8F8EA85B077F79A000AC1C96 /* FSGenericPointerPrivate.h in Headers */, + ED8222DC1A194FD600C42C72 /* FSObjectInspectorViewModelItem.h in Headers */, 8FE9AE2C078071CC005B2CC4 /* FSObjectPointer.h in Headers */, EDFB30251A188B4E002C8DD7 /* Util.h in Headers */, 8FE9AE8F07807269005B2CC4 /* FSObjectPointerPrivate.h in Headers */, @@ -4578,6 +4618,7 @@ 8F6DA833055FC70C0050409A /* NumberPrivate.h in Headers */, 8F6DA834055FC70C0050409A /* FSPilot.h in Headers */, 8F6DA837055FC70C0050409A /* FSReplacementForCoderForClass.h in Headers */, + ED8222E71A19554F00C42C72 /* FSObjectEnumInfo.h in Headers */, 8F6DA838055FC70C0050409A /* ShellView.h in Headers */, 8F6DA839055FC70C0050409A /* Space.h in Headers */, 8F6DA83A055FC70C0050409A /* FSCommandHistory.h in Headers */, @@ -4592,6 +4633,7 @@ 8F6DA84A055FC70C0050409A /* FSObjectBrowserToolbarButton.h in Headers */, 8F6DA84B055FC70C0050409A /* FSObjectBrowserButtonCtxBlock.h in Headers */, 8F6DA84C055FC70C0050409A /* DOCustom.h in Headers */, + ED8222D61A194FD600C42C72 /* FSObjectInspectorViewModelItem.h in Headers */, 8F6DA84E055FC70C0050409A /* Pointer.h in Headers */, 8F6DA84F055FC70C0050409A /* PointerPrivate.h in Headers */, EDFB302F1A18CA26002C8DD7 /* metamacros.h in Headers */, @@ -4698,6 +4740,7 @@ 8F6DA8FB055FC71F0050409A /* FSCollectionInspector.h in Headers */, 8F6DA8FC055FC71F0050409A /* FSObjectBrowser.h in Headers */, 8F6DA8FD055FC71F0050409A /* FSObjectBrowserCell.h in Headers */, + ED8222D71A194FD600C42C72 /* FSObjectInspectorViewModelItem.h in Headers */, 8F6DA8FE055FC71F0050409A /* FSBlock.h in Headers */, 8F6DA8FF055FC71F0050409A /* BlockInspector.h in Headers */, 8F6DA900055FC71F0050409A /* BlockPrivate.h in Headers */, @@ -4813,6 +4856,7 @@ 8F936BFD082E8E5C00A04EBF /* FSNSManagedObjectContext.h in Headers */, 8F917E2C095F5DE7000932D0 /* FSObjectBrowserSearchField.h in Headers */, 8F90A2F3096DB0660064F4BC /* FSBlockCompilationResult.h in Headers */, + ED8222E81A19554F00C42C72 /* FSObjectEnumInfo.h in Headers */, 8FD7D4AA0975B377009B2685 /* FSReturnSignal.h in Headers */, 8F3C139F0C65E66400948776 /* FSMethod.h in Headers */, 8F5AD3230D05CFFE000CEAC6 /* FSCNClassDefinition.h in Headers */, @@ -4918,6 +4962,7 @@ BA2231E1189FA403002C5B6A /* NumberPrivate.h in Headers */, BA2231E2189FA403002C5B6A /* FSPilot.h in Headers */, BA2231E3189FA403002C5B6A /* FSReplacementForCoderForClass.h in Headers */, + ED8222E91A19554F00C42C72 /* FSObjectEnumInfo.h in Headers */, BA2231E4189FA403002C5B6A /* ShellView.h in Headers */, BA2231E5189FA403002C5B6A /* Space.h in Headers */, BA2231E6189FA403002C5B6A /* FSCommandHistory.h in Headers */, @@ -4932,6 +4977,7 @@ BA2231EF189FA403002C5B6A /* FSObjectBrowserToolbarButton.h in Headers */, BA2231F0189FA403002C5B6A /* FSObjectBrowserButtonCtxBlock.h in Headers */, BA2231F1189FA403002C5B6A /* DOCustom.h in Headers */, + ED8222D81A194FD600C42C72 /* FSObjectInspectorViewModelItem.h in Headers */, BA2231F2189FA403002C5B6A /* Pointer.h in Headers */, BA2231F3189FA403002C5B6A /* PointerPrivate.h in Headers */, EDFB30311A18CA26002C8DD7 /* metamacros.h in Headers */, @@ -5090,6 +5136,7 @@ BA2233A1189FA412002C5B6A /* NumberPrivate.h in Headers */, BA2233A2189FA412002C5B6A /* FSPilot.h in Headers */, BA2233A3189FA412002C5B6A /* FSReplacementForCoderForClass.h in Headers */, + ED8222EB1A19554F00C42C72 /* FSObjectEnumInfo.h in Headers */, BA2233A4189FA412002C5B6A /* ShellView.h in Headers */, BA2233A5189FA412002C5B6A /* Space.h in Headers */, BA2233A6189FA412002C5B6A /* FSCommandHistory.h in Headers */, @@ -5104,6 +5151,7 @@ BA2233AF189FA412002C5B6A /* FSObjectBrowserToolbarButton.h in Headers */, BA2233B0189FA412002C5B6A /* FSObjectBrowserButtonCtxBlock.h in Headers */, BA2233B1189FA412002C5B6A /* DOCustom.h in Headers */, + ED8222DA1A194FD600C42C72 /* FSObjectInspectorViewModelItem.h in Headers */, BA2233B2189FA412002C5B6A /* Pointer.h in Headers */, BA2233B3189FA412002C5B6A /* PointerPrivate.h in Headers */, EDFB30331A18CA26002C8DD7 /* metamacros.h in Headers */, @@ -5210,6 +5258,7 @@ BA22352B189FA429002C5B6A /* FSCollectionInspector.h in Headers */, BA22352C189FA429002C5B6A /* FSObjectBrowser.h in Headers */, BA22352D189FA429002C5B6A /* FSObjectBrowserCell.h in Headers */, + ED8222D91A194FD600C42C72 /* FSObjectInspectorViewModelItem.h in Headers */, BA22352E189FA429002C5B6A /* FSBlock.h in Headers */, BA22352F189FA429002C5B6A /* BlockInspector.h in Headers */, BA223530189FA429002C5B6A /* BlockPrivate.h in Headers */, @@ -5325,6 +5374,7 @@ BA22359A189FA429002C5B6A /* FSNSManagedObjectContext.h in Headers */, BA22359B189FA429002C5B6A /* FSObjectBrowserSearchField.h in Headers */, BA22359C189FA429002C5B6A /* FSBlockCompilationResult.h in Headers */, + ED8222EA1A19554F00C42C72 /* FSObjectEnumInfo.h in Headers */, BA22359D189FA429002C5B6A /* FSReturnSignal.h in Headers */, BA22359E189FA429002C5B6A /* FSMethod.h in Headers */, BA22359F189FA429002C5B6A /* FSCNClassDefinition.h in Headers */, @@ -5378,6 +5428,7 @@ BA223673189FA431002C5B6A /* FSCollectionInspector.h in Headers */, BA223674189FA431002C5B6A /* FSObjectBrowser.h in Headers */, BA223675189FA431002C5B6A /* FSObjectBrowserCell.h in Headers */, + ED8222DB1A194FD600C42C72 /* FSObjectInspectorViewModelItem.h in Headers */, BA223676189FA431002C5B6A /* FSBlock.h in Headers */, BA223677189FA431002C5B6A /* BlockInspector.h in Headers */, BA223678189FA431002C5B6A /* BlockPrivate.h in Headers */, @@ -5493,6 +5544,7 @@ BA2236E2189FA431002C5B6A /* FSNSManagedObjectContext.h in Headers */, BA2236E3189FA431002C5B6A /* FSObjectBrowserSearchField.h in Headers */, BA2236E4189FA431002C5B6A /* FSBlockCompilationResult.h in Headers */, + ED8222EC1A19554F00C42C72 /* FSObjectEnumInfo.h in Headers */, BA2236E5189FA431002C5B6A /* FSReturnSignal.h in Headers */, BA2236E6189FA431002C5B6A /* FSMethod.h in Headers */, BA2236E7189FA431002C5B6A /* FSCNClassDefinition.h in Headers */, @@ -6104,6 +6156,7 @@ 8F0CBBFF0BDB94AD002B0AD7 /* FSInterpreterResult.m in Sources */, 8F0CBC000BDB94AD002B0AD7 /* FSInterpreterView.m in Sources */, 8F0CBC010BDB94AD002B0AD7 /* FSNSArray.m in Sources */, + ED8222F51A19554F00C42C72 /* FSObjectEnumInfo.m in Sources */, 8F0CBC020BDB94AD002B0AD7 /* FSNSDate.m in Sources */, 8F0CBC030BDB94AD002B0AD7 /* FSNSDictionary.m in Sources */, 8F0CBC040BDB94AD002B0AD7 /* FSNSMutableString.m in Sources */, @@ -6151,6 +6204,7 @@ 8F0CBC360BDB94AD002B0AD7 /* FSObjectBrowserToolbarItem.m in Sources */, 8F0CBC370BDB94AD002B0AD7 /* ArrayRepBoolean.m in Sources */, EDFB300F1A188B4E002C8DD7 /* CHBidirectionalDictionary.m in Sources */, + ED8222E41A194FD600C42C72 /* FSObjectInspectorViewModelItem.m in Sources */, 8F0CBC380BDB94AD002B0AD7 /* FSArrayEnumerator.m in Sources */, 8F0CBC390BDB94AD002B0AD7 /* FSNSMutableArray.m in Sources */, 8F0CBC3C0BDB94AD002B0AD7 /* FSNSValue.m in Sources */, @@ -6241,6 +6295,7 @@ 8F6DA66F055FC6980050409A /* BlockRep.m in Sources */, 8F6DA670055FC6980050409A /* BlockStackElem.m in Sources */, 8F6DA671055FC6980050409A /* CLIView.m in Sources */, + ED8222E31A194FD600C42C72 /* FSObjectInspectorViewModelItem.m in Sources */, 8F6DA672055FC6980050409A /* FSCompilationResult.m in Sources */, 8F6DA673055FC6980050409A /* CompiledCodeNode.m in Sources */, 8F6DA674055FC6980050409A /* FSCompiler.m in Sources */, @@ -6366,6 +6421,7 @@ 8F2D720F0F6BD9B100F0862A /* FSNSAffineTransform.m in Sources */, 8FCA593710883B0100F67841 /* FSNewlyAllocatedObject.m in Sources */, 8F5EDA05109B384A003A2F4C /* FSWorksWhenModalWindow.m in Sources */, + ED8222F41A19554F00C42C72 /* FSObjectEnumInfo.m in Sources */, 8F442713116549C700E88F21 /* FSNSMutableDictionary.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -6437,6 +6493,7 @@ 8F6DA8B5055FC70C0050409A /* Space.m in Sources */, 8F6DA8B6055FC70C0050409A /* FSCommandHistory.m in Sources */, 8F6DA8B8055FC70C0050409A /* FSSystem.m in Sources */, + ED8222EE1A19554F00C42C72 /* FSObjectEnumInfo.m in Sources */, 8F6DA8BB055FC70C0050409A /* DOTest.m in Sources */, 8F6DA8BC055FC70C0050409A /* FSNSProtocolChecker.m in Sources */, 8F6DA8BD055FC70C0050409A /* fs_main.m in Sources */, @@ -6454,6 +6511,7 @@ 8F6DA8CF055FC70C0050409A /* FSObjectFormatter.m in Sources */, 8F6DA8D2055FC70C0050409A /* FSKeyedUnarchiver.m in Sources */, 8F6DA8D3055FC70C0050409A /* FSKeyedArchiver.m in Sources */, + ED8222DD1A194FD600C42C72 /* FSObjectInspectorViewModelItem.m in Sources */, 8F6DA8D4055FC70C0050409A /* FSConstantListBuilder.m in Sources */, 8F6DA8D5055FC70C0050409A /* FSImageInspector.m in Sources */, 8F6DA8D6055FC70C0050409A /* FSNSImage.m in Sources */, @@ -6558,6 +6616,7 @@ 8F6DA98A055FC71F0050409A /* FSFlight.m in Sources */, 8F6DA98B055FC71F0050409A /* FSArchiver.m in Sources */, 8F6DA98C055FC71F0050409A /* FSBoolean.m in Sources */, + ED8222DE1A194FD600C42C72 /* FSObjectInspectorViewModelItem.m in Sources */, 8F6DA98E055FC71F0050409A /* FScriptFunctions.m in Sources */, 8F6DA98F055FC71F0050409A /* FSInterpreter.m in Sources */, 8F6DA990055FC71F0050409A /* FSInterpreterResult.m in Sources */, @@ -6644,6 +6703,7 @@ 8F5AD3240D05CFFE000CEAC6 /* FSCNClassDefinition.m in Sources */, 8FE639860D09C0F400255EBA /* FSCNBase.m in Sources */, 8FE639960D09DCB600255EBA /* FSCNIdentifier.m in Sources */, + ED8222EF1A19554F00C42C72 /* FSObjectEnumInfo.m in Sources */, 8FE3DD280D26D49900A1D767 /* FSTestObjCClass1.m in Sources */, 8F4822070D2C317700754A4E /* FSTestObjCClass2.m in Sources */, 8F8112F30D85E58200CB3407 /* FSCNCategory.m in Sources */, @@ -6736,6 +6796,7 @@ BA223297189FA403002C5B6A /* Space.m in Sources */, BA223298189FA403002C5B6A /* FSCommandHistory.m in Sources */, BA223299189FA403002C5B6A /* FSSystem.m in Sources */, + ED8222F01A19554F00C42C72 /* FSObjectEnumInfo.m in Sources */, BA22329A189FA403002C5B6A /* DOTest.m in Sources */, BA22329B189FA403002C5B6A /* FSNSProtocolChecker.m in Sources */, BA22329C189FA403002C5B6A /* fs_main.m in Sources */, @@ -6753,6 +6814,7 @@ BA2232A8189FA403002C5B6A /* FSObjectFormatter.m in Sources */, BA2232A9189FA403002C5B6A /* FSKeyedUnarchiver.m in Sources */, BA2232AA189FA403002C5B6A /* FSKeyedArchiver.m in Sources */, + ED8222DF1A194FD600C42C72 /* FSObjectInspectorViewModelItem.m in Sources */, BA2232AB189FA403002C5B6A /* FSConstantListBuilder.m in Sources */, BA2232AC189FA403002C5B6A /* FSImageInspector.m in Sources */, BA2232AD189FA403002C5B6A /* FSNSImage.m in Sources */, @@ -6889,6 +6951,7 @@ BA223457189FA412002C5B6A /* Space.m in Sources */, BA223458189FA412002C5B6A /* FSCommandHistory.m in Sources */, BA223459189FA412002C5B6A /* FSSystem.m in Sources */, + ED8222F21A19554F00C42C72 /* FSObjectEnumInfo.m in Sources */, BA22345A189FA412002C5B6A /* DOTest.m in Sources */, BA22345B189FA412002C5B6A /* FSNSProtocolChecker.m in Sources */, BA22345C189FA412002C5B6A /* fs_main.m in Sources */, @@ -6906,6 +6969,7 @@ BA223468189FA412002C5B6A /* FSObjectFormatter.m in Sources */, BA223469189FA412002C5B6A /* FSKeyedUnarchiver.m in Sources */, BA22346A189FA412002C5B6A /* FSKeyedArchiver.m in Sources */, + ED8222E11A194FD600C42C72 /* FSObjectInspectorViewModelItem.m in Sources */, BA22346B189FA412002C5B6A /* FSConstantListBuilder.m in Sources */, BA22346C189FA412002C5B6A /* FSImageInspector.m in Sources */, BA22346D189FA412002C5B6A /* FSNSImage.m in Sources */, @@ -7010,6 +7074,7 @@ BA2235EB189FA429002C5B6A /* FSFlight.m in Sources */, BA2235EC189FA429002C5B6A /* FSArchiver.m in Sources */, BA2235ED189FA429002C5B6A /* FSBoolean.m in Sources */, + ED8222E01A194FD600C42C72 /* FSObjectInspectorViewModelItem.m in Sources */, BA2235EE189FA429002C5B6A /* FScriptFunctions.m in Sources */, BA2235EF189FA429002C5B6A /* FSInterpreter.m in Sources */, BA2235F0189FA429002C5B6A /* FSInterpreterResult.m in Sources */, @@ -7096,6 +7161,7 @@ BA22363F189FA429002C5B6A /* FSCNClassDefinition.m in Sources */, BA223640189FA429002C5B6A /* FSCNBase.m in Sources */, BA223641189FA429002C5B6A /* FSCNIdentifier.m in Sources */, + ED8222F11A19554F00C42C72 /* FSObjectEnumInfo.m in Sources */, BA223642189FA429002C5B6A /* FSTestObjCClass1.m in Sources */, BA223643189FA429002C5B6A /* FSTestObjCClass2.m in Sources */, BA223644189FA429002C5B6A /* FSCNCategory.m in Sources */, @@ -7156,6 +7222,7 @@ BA223733189FA431002C5B6A /* FSFlight.m in Sources */, BA223734189FA431002C5B6A /* FSArchiver.m in Sources */, BA223735189FA431002C5B6A /* FSBoolean.m in Sources */, + ED8222E21A194FD600C42C72 /* FSObjectInspectorViewModelItem.m in Sources */, BA223736189FA431002C5B6A /* FScriptFunctions.m in Sources */, BA223737189FA431002C5B6A /* FSInterpreter.m in Sources */, BA223738189FA431002C5B6A /* FSInterpreterResult.m in Sources */, @@ -7242,6 +7309,7 @@ BA223787189FA432002C5B6A /* FSCNClassDefinition.m in Sources */, BA223788189FA432002C5B6A /* FSCNBase.m in Sources */, BA223789189FA432002C5B6A /* FSCNIdentifier.m in Sources */, + ED8222F31A19554F00C42C72 /* FSObjectEnumInfo.m in Sources */, BA22378A189FA432002C5B6A /* FSTestObjCClass1.m in Sources */, BA22378B189FA432002C5B6A /* FSTestObjCClass2.m in Sources */, BA22378C189FA432002C5B6A /* FSCNCategory.m in Sources */, diff --git a/FScriptFramework/FSObjectBrowserView.m b/FScriptFramework/FSObjectBrowserView.m index ee65d20..4eaa700 100644 --- a/FScriptFramework/FSObjectBrowserView.m +++ b/FScriptFramework/FSObjectBrowserView.m @@ -67,6 +67,7 @@ static int compareClassesForAlphabeticalOrder(id class1, id class2, void *contex } */ + static FSObjectBrowserCell *addRowToMatrix(NSMatrix *matrix) { // Since we reuse cells when filtering (because we use renewRows:columns:), we must @@ -695,14 +696,19 @@ - (void)addLabelAlone:(NSString *)label toMatrix:(NSMatrix *)matrix } } -- (void)addObject:(id)object toMatrix:(NSMatrix *)matrix label:(NSString *)label classLabel:(NSString *)classLabel indentationLevel:(NSUInteger)indentationLevel leaf:(BOOL)leaf + + +- (void)addObject:(id)object + toMatrix:(NSMatrix *)matrix + label:(NSString *)label + classLabel:(NSString *)classLabel + indentationLevel:(NSUInteger)indentationLevel + leaf:(BOOL)leaf { FSObjectBrowserCell *cell; NSString *objectString = printStringForObjectBrowser(object); - //[matrix addRow]; - //cell = [matrix cellAtRow:[matrix numberOfRows]-1 column:0]; - cell = addRowToMatrix(matrix); + cell = addRowToMatrix(matrix); if ([object isKindOfClass:[FSObjectBrowserNamedObjectWrapper class]]) [cell setRepresentedObject:[object object]]; else [cell setRepresentedObject:object]; @@ -732,17 +738,38 @@ - (void)addObject:(id)object toMatrix:(NSMatrix *)matrix label:(NSString *)label [cell setObjectBrowserCellType:FSOBOBJECT]; } -- (void)addObject:(id)object toMatrix:(NSMatrix *)matrix label:(NSString *)label classLabel:(NSString *)classLabel indentationLevel:(NSUInteger)indentationLevel + + +- (void)addObject:(id)object + toMatrix:(NSMatrix *)matrix + label:(NSString *)label + classLabel:(NSString *)classLabel + indentationLevel:(NSUInteger)indentationLevel { [self addObject:object toMatrix:matrix label:label classLabel:classLabel indentationLevel:indentationLevel leaf:NO]; } -- (void)addObject:(id)object toMatrix:(NSMatrix *)matrix label:(NSString *)label classLabel:(NSString *)classLabel + + +- (void)addObject:(id)object + toMatrix:(NSMatrix *)matrix + label:(NSString *)label + classLabel:(NSString *)classLabel { [self addObject:object toMatrix:matrix label:label classLabel:classLabel indentationLevel:1]; } -- (void)addObject:(id)object withLabel:(NSString *)label toMatrix:(NSMatrix *)matrix leaf:(BOOL)leaf classLabel:(NSString *)classLabel selectedClassLabel:(NSString *)selectedClassLabel selectedLabel:(NSString *)selectedLabel selectedObject:(id)selectedObject indentationLevel:(NSUInteger)indentationLevel + + +- (void)addObject:(id)object + withLabel:(NSString *)label + toMatrix:(NSMatrix *)matrix + leaf:(BOOL)leaf + classLabel:(NSString *)classLabel +selectedClassLabel:(NSString *)selectedClassLabel + selectedLabel:(NSString *)selectedLabel + selectedObject:(id)selectedObject + indentationLevel:(NSUInteger)indentationLevel { BOOL addingSelectedObject = (object == selectedObject && [label isEqualToString:selectedLabel] && [classLabel isEqualToString:selectedClassLabel]); @@ -758,12 +785,28 @@ - (void)addObject:(id)object withLabel:(NSString *)label toMatrix:(NSMatrix *)ma } } -- (void)addObject:(id)object withLabel:(NSString *)label toMatrix:(NSMatrix *)matrix classLabel:(NSString *)classLabel selectedClassLabel:(NSString *)selectedClassLabel selectedLabel:(NSString *)selectedLabel selectedObject:(id)selectedObject + + +- (void)addObject:(id)object + withLabel:(NSString *)label + toMatrix:(NSMatrix *)matrix + classLabel:(NSString *)classLabel +selectedClassLabel:(NSString *)selectedClassLabel + selectedLabel:(NSString *)selectedLabel + selectedObject:(id)selectedObject { [self addObject:object withLabel:label toMatrix:matrix leaf:NO classLabel:(NSString *)classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject indentationLevel:0]; } -- (void)addObjects:(NSArray *)objects withLabel:(NSString *)label toMatrix:(NSMatrix *)matrix classLabel:(NSString *)classLabel selectedClassLabel:(NSString *)selectedClassLabel selectedLabel:(NSString *)selectedLabel selectedObject:(id)selectedObject + + +- (void)addObjects:(NSArray *)objects + withLabel:(NSString *)label + toMatrix:(NSMatrix *)matrix + classLabel:(NSString *)classLabel +selectedClassLabel:(NSString *)selectedClassLabel + selectedLabel:(NSString *)selectedLabel + selectedObject:(id)selectedObject { if (objects) { @@ -1192,24 +1235,11 @@ - (void)fillMatrix:(NSMatrix *)matrix withMethodsForObject:(id)object NSMutableAttributedString *attrStr = [[[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@" %@ Methods ", [cls printString]] attributes:txtDict] autorelease]; [attrStr setAlignment:NSCenterTextAlignment range:NSMakeRange(0,[attrStr length])]; - //[matrix addRow]; - //cell = [matrix cellAtRow:[matrix numberOfRows]-1 column:0]; - cell = addRowToMatrix(matrix); + cell = addRowToMatrix(matrix); [cell setLeaf:YES]; [cell setEnabled:NO]; [cell setAttributedStringValue:attrStr]; - //[matrix setToolTip:[cls printString] forCell:cell]; - - /*if ([filterString isEqualToString:@""]) - while ( mlist = class_nextMethodList( cls, &iterator ) ) - { - for (i = 0; i < mlist->method_count; i++) - { - [selectorStrings addObject:[FSCompiler stringFromSelector:mlist->method_list[i].method_name]]; - } - } - else*/ #ifdef __LP64__ unsigned methodCount; @@ -1263,62 +1293,6 @@ - (void)fillMatrix:(NSMatrix *)matrix withMethodsForObject:(id)object } } -/*- (void)fillMatrix:(NSMatrix *)matrix withProperty:(NSString *)property -{ - //[matrix addRow]; - //FSObjectBrowserCell *cell = [matrix cellAtRow:[matrix numberOfRows]-1 column:0]; - FSObjectBrowserCell *cell = addRowToMatrix(matrix); - - [cell setObjectBrowserCellType:BBOBJECT]; - [cell setStringValue:property]; -}*/ - -/*- (void)fillMatrix:(NSMatrix *)matrix withProperties:(NSArray *)properties label:(NSString *)label -{ - if ([properties count] == 0) return; - - NSUInteger propertiesCount = [properties count]; - NSMutableArray *filteredProperties = [NSMutableArray arrayWithCapacity:propertiesCount]; - BOOL hasEmptyFilterString = [filterString isEqualToString:@""]; - - for (NSUInteger i = 0; i < propertiesCount; i++) - { - NSString *property = [properties objectAtIndex:i]; - if (hasEmptyFilterString || containsString(property, filterString, NSCaseInsensitiveSearch)) - [filteredProperties addObject:property]; - } - - [filteredProperties sortUsingSelector:@selector(compare:)]; - - NSDictionary *txtDict = [NSDictionary dictionaryWithObjectsAndKeys:[NSColor whiteColor], NSForegroundColorAttributeName, [NSColor redColor], NSBackgroundColorAttributeName, nil]; - NSMutableAttributedString *attrStr = [[[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@" %@ ", label] attributes:txtDict] autorelease]; - [attrStr setAlignment:NSCenterTextAlignment range:NSMakeRange(0,[attrStr length])]; - //[matrix addRow]; - //FSObjectBrowserCell *cell = [matrix cellAtRow:[matrix numberOfRows]-1 column:0]; - FSObjectBrowserCell *cell = addRowToMatrix(matrix); - - [cell setLeaf:YES]; - [cell setEnabled:NO]; - [cell setAttributedStringValue:attrStr]; - - for (NSUInteger i = 0, count = [filteredProperties count]; i < count; i++) - [self fillMatrix:matrix withProperty:[filteredProperties objectAtIndex:i]]; - - [self addBlankRowToMatrix:matrix]; -} */ - -/*- (void)fillMatrix:(NSMatrix *)matrix withPropertiesForObject:(id)object -{ - //NSArray *attributeKeys = [object attributeKeys]; - - if (!NSManagedObjectClass || ![object isKindOfClass:NSManagedObjectClass]) return; - - NSArray *attributeKeys = [[[object entity] attributesByName] allKeys]; - [self fillMatrix:(NSMatrix *)matrix withProperties:attributeKeys label:@"Attributes"]; - - NSArray *relationshipKeys = [[[object entity] relationshipsByName] allKeys]; - [self fillMatrix:(NSMatrix *)matrix withProperties:relationshipKeys label:@"Relationships"]; -} */ - (void)filter { diff --git a/FScriptFramework/FSObjectBrowserViewObjectInfo.m b/FScriptFramework/FSObjectBrowserViewObjectInfo.m index c9c5c9b..819e521 100644 --- a/FScriptFramework/FSObjectBrowserViewObjectInfo.m +++ b/FScriptFramework/FSObjectBrowserViewObjectInfo.m @@ -2,6 +2,7 @@ // This software is open source. See the license. #import "FSObjectBrowserViewObjectInfo.h" +#import "FSObjectEnumInfo.h" #import "FSObjectBrowserCell.h" #import "FSNamedNumber.h" #import "FSNumber.h" @@ -12,6 +13,7 @@ #import "FSGenericPointer.h" #import "FSGenericPointerPrivate.h" #import "FSObjectBrowserNamedObjectWrapper.h" +#import "FSObjectInspectorViewModelItem.h" #import "FSNSString.h" #import #import "FSGenericPointerPrivate.h" @@ -34,8 +36,6 @@ #import "FSCNReturn.h" #import "FSCNDictionary.h" #import "FSAssociation.h" -#import "CHBidirectionalDictionary.h" -#import "metamacros.h" @interface FSObjectBrowserViewObjectHelper : NSObject { @@ -50,6 +50,7 @@ @interface FSObjectBrowserViewObjectHelper : NSObject } @property (nonatomic, retain) NSMutableArray *baseClasses; +@property (nonatomic, retain) FSObjectInspectorViewModelItem *rootViewModelItem; - (id)initWithObjectBrowserView:(FSObjectBrowserView *)view; - (void)fillMatrix:(NSMatrix *)m withObject:(id)object; @@ -124,978 +125,6 @@ - (void)processNSWindow:(id)object; @end -#define _BIDICT(_idx, _enum) \ -@(_enum): @metamacro_stringify(_enum), - -#define _BIDICT_LEADER(_name) \ -static inline CHBidirectionalDictionary *_name ## Bimap() { \ -static CHBidirectionalDictionary *dict = nil; \ -if (!dict) { \ -dict = [CHBidirectionalDictionary new]; \ -[dict addEntriesFromDictionary: - -#define BIDICT(_name, ...) \ -_BIDICT_LEADER(_name) \ -@{ metamacro_foreach(_BIDICT, ,__VA_ARGS__) } \ -];} \ -return dict; \ -} - -#define BIDICT_LIT(_name, _dict) \ -_BIDICT_LEADER(_name) \ -_dict \ -];} \ -return dict; \ -} - -#define _IDENTITY(_idx, _val) _val - -#define OPTSMASK(...) \ -metamacro_foreach(_IDENTITY, |, __VA_ARGS__) - -#define ENUM_FUNC(_name) \ -static id objectFrom ## _name(NS ## _name _name) \ -{ \ - CHBidirectionalDictionary *dict = _name ## Bimap(); \ - id lookup = dict[@(_name)]; \ - return lookup ? [FSNamedNumber namedNumberWithDouble:(double)_name name:lookup] : [FSNumber numberWithDouble:_name]; \ -} - -// Define a lookup function 'objectTo', for simple enumerations (can take one, and only one value from the enum) -#define ENUMTOOBJ(_name, ...) \ -BIDICT(_name, __VA_ARGS__) \ -ENUM_FUNC(_name) - -// Same as 'ENUMTOOBJ', but use when the elements of the 'enumeration' are actually macros -#define ENUMTOOBJ_DICT(_name, _dict) \ -BIDICT_LIT(_name, _dict) \ -ENUM_FUNC(_name) - -#define OPTSDICT(_name, ...) \ -const NSUInteger _name ## Mask = OPTSMASK(__VA_ARGS__); \ -BIDICT(_name, __VA_ARGS__) - -// Define a lookup function 'objectTo', for flag enumerations (can take a logical OR of enumeration values) -#define OPTSTOOBJ(_name, ...) \ -OPTSDICT(_name, __VA_ARGS__) \ -static id objectFrom ## _name(NS ## _name mask) \ -{ \ -if (_name ## Mask == 0 || (mask & ~(_name ## Mask))) { return [FSNumber numberWithDouble:mask]; } \ -CHBidirectionalDictionary *dict = _name ## Bimap(); \ -NSMutableArray *result = [NSMutableArray array] ; \ -for (NSNumber *opt in dict.allKeys) { \ -if (mask & opt.unsignedIntegerValue) { \ -[result addObject:dict[opt]]; \ -} \ -} \ -return result.count ? [FSNamedNumber namedNumberWithDouble:mask name:[result componentsJoinedByString:@" + "]] : [FSNumber numberWithDouble:mask];\ -} -ENUMTOOBJ(AnimationBlockingMode, - NSAnimationBlocking, - NSAnimationNonblocking, - NSAnimationNonblockingThreaded - ); - - - -ENUMTOOBJ(AnimationCurve, - NSAnimationEaseInOut, - NSAnimationEaseIn, - NSAnimationEaseOut, - NSAnimationLinear - ); - - -ENUMTOOBJ(AlertStyle, - NSWarningAlertStyle, - NSInformationalAlertStyle, - NSCriticalAlertStyle - ); - - -OPTSTOOBJ(AutoresizingMaskOptions, - NSViewMinXMargin, - NSViewWidthSizable, - NSViewMaxXMargin, - NSViewMinYMargin, - NSViewHeightSizable, - NSViewMaxYMargin - ); - -ENUMTOOBJ(AttributeType, - NSUndefinedAttributeType, - NSInteger16AttributeType, - NSInteger32AttributeType, - NSInteger64AttributeType, - NSDecimalAttributeType, - NSDoubleAttributeType, - NSFloatAttributeType, - NSStringAttributeType, - NSBooleanAttributeType, - NSDateAttributeType, - NSBinaryDataAttributeType, - NSTransformableAttributeType - ); - - -ENUMTOOBJ(BackgroundStyle, - NSBackgroundStyleLight, - NSBackgroundStyleDark, - NSBackgroundStyleRaised, - NSBackgroundStyleLowered - ); - - - -ENUMTOOBJ(BackingStoreType, - NSBackingStoreBuffered, - NSBackingStoreRetained, - NSBackingStoreNonretained - ); - - -ENUMTOOBJ(BorderType, - NSNoBorder, - NSLineBorder, - NSBezelBorder, - NSGrooveBorder - ); - -ENUMTOOBJ(BezelStyle, - NSRoundedBezelStyle, - NSRegularSquareBezelStyle, - NSThickSquareBezelStyle, - NSThickerSquareBezelStyle, - NSDisclosureBezelStyle, - NSShadowlessSquareBezelStyle, - NSCircularBezelStyle, - NSTexturedSquareBezelStyle, - NSHelpButtonBezelStyle, - NSSmallSquareBezelStyle, - NSTexturedRoundedBezelStyle - ); - - - -OPTSTOOBJ(BitmapFormat, - NSAlphaFirstBitmapFormat, - NSAlphaNonpremultipliedBitmapFormat, - NSFloatingPointSamplesBitmapFormat - ); - -ENUMTOOBJ(BoxType, - NSBoxPrimary, - NSBoxSecondary, - NSBoxSeparator, - NSBoxOldStyle, - NSBoxCustom - ); - - -OPTSTOOBJ(EventButtonMask, - NSPenTipMask, - NSPenLowerSideMask, - NSPenUpperSideMask - ); - - -ENUMTOOBJ(BrowserColumnResizingType, - NSBrowserNoColumnResizing, - NSBrowserAutoColumnResizing, - NSBrowserUserColumnResizing - ); - - -/*static id objectFromButtonType(NSButtonType buttonType) - { - switch (buttonType) - { - case NSMomentaryLight: return [NamedNumber namedNumberWithDouble:buttonType name:@"NSMomentaryLight"]; - case NSMomentaryPushButton: return [NamedNumber namedNumberWithDouble:buttonType name:@"NSMomentaryPushButton"]; - case NSMomentaryChangeButton: return [NamedNumber namedNumberWithDouble:buttonType name:@"NSMomentaryChangeButton"]; - case NSPushOnPushOffButton: return [NamedNumber namedNumberWithDouble:buttonType name:@"NSPushOnPushOffButton"]; - case NSOnOffButton: return [NamedNumber namedNumberWithDouble:buttonType name:@"NSOnOffButton"]; - case NSToggleButton: return [NamedNumber namedNumberWithDouble:buttonType name:@"NSToggleButton"]; - case NSSwitchButton: return [NamedNumber namedNumberWithDouble:buttonType name:@"NSSwitchButton"]; - case NSRadioButton: return [NamedNumber namedNumberWithDouble:buttonType name:@"NSRadioButton"]; - default: return [Number numberWithDouble:buttonType]; - } - }*/ - -ENUMTOOBJ(CellImagePosition, - NSNoImage, - NSImageOnly, - NSImageLeft, - NSImageRight, - NSImageBelow, - NSImageAbove, - NSImageOverlaps - ); - - -OPTSTOOBJ(CellStyleMask, - NSNoCellMask, - NSContentsCellMask, - NSPushInCellMask, - NSChangeGrayCellMask, - NSChangeBackgroundCellMask - ); - -ENUMTOOBJ(CellStateValue, - NSMixedState, - NSOffState, - NSOnState - ); - - -ENUMTOOBJ(CellType, - NSNullCellType, - NSTextCellType, - NSImageCellType - ); - - -ENUMTOOBJ(CharacterCollection, - NSIdentityMappingCharacterCollection, - NSAdobeCNS1CharacterCollection, - NSAdobeGB1CharacterCollection, - NSAdobeJapan1CharacterCollection, - NSAdobeJapan2CharacterCollection, - NSAdobeKorea1CharacterCollection - ); - - -ENUMTOOBJ(ColorPanelMode, - NSGrayModeColorPanel, - NSRGBModeColorPanel, - NSCMYKModeColorPanel, - NSHSBModeColorPanel, - NSCustomPaletteModeColorPanel, - NSColorListModeColorPanel, - NSWheelModeColorPanel, - NSCrayonModeColorPanel - ); - - -ENUMTOOBJ(ColorRenderingIntent, - NSColorRenderingIntentDefault, - NSColorRenderingIntentAbsoluteColorimetric, - NSColorRenderingIntentRelativeColorimetric, - NSColorRenderingIntentPerceptual, - NSColorRenderingIntentSaturation - ); - - -OPTSTOOBJ(ComparisonPredicateOptions, - NSCaseInsensitivePredicateOption, - NSDiacriticInsensitivePredicateOption, - NSNormalizedPredicateOption - ); - -ENUMTOOBJ(ComparisonPredicateModifier, - NSDirectPredicateModifier, - NSAllPredicateModifier, - NSAnyPredicateModifier - ); - - -ENUMTOOBJ(CompositingOperation, - NSCompositeClear, - NSCompositeCopy, - NSCompositeSourceOver, - NSCompositeSourceIn, - NSCompositeSourceOut, - NSCompositeSourceAtop, - NSCompositeDestinationOver, - NSCompositeDestinationIn, - NSCompositeDestinationOut, - NSCompositeDestinationAtop, - NSCompositeXOR, - NSCompositePlusDarker, - NSCompositeHighlight, - NSCompositePlusLighter - ); - - - -ENUMTOOBJ(CompoundPredicateType, - NSNotPredicateType, - NSAndPredicateType, - NSOrPredicateType - ); - - -ENUMTOOBJ(ControlSize, - NSRegularControlSize, - NSSmallControlSize, - NSMiniControlSize - ); - - -ENUMTOOBJ(ControlTint, - NSDefaultControlTint, - NSBlueControlTint, - NSGraphiteControlTint, - NSClearControlTint - ); - -OPTSTOOBJ(DatePickerElementFlags, - NSHourMinuteDatePickerElementFlag, - NSHourMinuteSecondDatePickerElementFlag, - NSTimeZoneDatePickerElementFlag, - NSYearMonthDatePickerElementFlag, - NSYearMonthDayDatePickerElementFlag, - NSEraDatePickerElementFlag - ); - -ENUMTOOBJ(DatePickerMode, - NSSingleDateMode, - NSRangeDateMode - ); - - -ENUMTOOBJ(DatePickerStyle, - NSTextFieldAndStepperDatePickerStyle, - NSClockAndCalendarDatePickerStyle - ); - - -ENUMTOOBJ(DeleteRule, - NSNoActionDeleteRule, - NSNullifyDeleteRule, - NSCascadeDeleteRule, - NSDenyDeleteRule - ); - - -ENUMTOOBJ(DrawerState, - NSDrawerClosedState, - NSDrawerOpeningState, - NSDrawerOpenState, - NSDrawerClosingState - ); - - - -ENUMTOOBJ(EventType, - NSLeftMouseDown, - NSLeftMouseUp, - NSRightMouseDown, - NSRightMouseUp, - NSOtherMouseDown, - NSOtherMouseUp, - NSMouseMoved, - NSLeftMouseDragged, - NSRightMouseDragged, - NSOtherMouseDragged, - NSMouseEntered, - NSMouseExited, - NSCursorUpdate, - NSKeyDown, - NSKeyUp, - NSFlagsChanged, - NSAppKitDefined, - NSSystemDefined, - NSApplicationDefined, - NSPeriodic, - NSScrollWheel, - NSTabletPoint, - NSTabletProximity - ); - - -ENUMTOOBJ(EventSubtype, - NSMouseEventSubtype, - NSTabletPointEventSubtype, - NSTabletProximityEventSubtype - ); - - -ENUMTOOBJ(ExpressionType, - NSConstantValueExpressionType, - NSEvaluatedObjectExpressionType, - NSVariableExpressionType, - NSKeyPathExpressionType, - NSFunctionExpressionType, - NSUnionSetExpressionType, - NSIntersectSetExpressionType, - NSMinusSetExpressionType, - NSSubqueryExpressionType, - NSAggregateExpressionType - ); - - - -ENUMTOOBJ(FetchRequestResultType, - NSManagedObjectResultType, - NSManagedObjectIDResultType - ); - - -ENUMTOOBJ(FocusRingType, - NSFocusRingTypeDefault, - NSFocusRingTypeNone, - NSFocusRingTypeExterior - ); - - -ENUMTOOBJ(FontRenderingMode, - NSFontDefaultRenderingMode, - NSFontAntialiasedRenderingMode, - NSFontIntegerAdvancementsRenderingMode, - NSFontAntialiasedIntegerAdvancementsRenderingMode - ); - - -ENUMTOOBJ(GradientType, - NSGradientNone, - NSGradientConcaveWeak, - NSGradientConcaveStrong, - NSGradientConvexWeak, - NSGradientConvexStrong - ); - - -OPTSTOOBJ(TableViewGridLineStyle, - NSTableViewSolidVerticalGridLineMask, - NSTableViewSolidHorizontalGridLineMask, - NSTableViewDashedHorizontalGridLineMask - ); - - -ENUMTOOBJ(ImageAlignment, - NSImageAlignCenter, - NSImageAlignTop, - NSImageAlignTopLeft, - NSImageAlignTopRight, - NSImageAlignLeft, - NSImageAlignBottom, - NSImageAlignBottomLeft, - NSImageAlignBottomRight, - NSImageAlignRight - ); - - -ENUMTOOBJ(ImageCacheMode, - NSImageCacheDefault, - NSImageCacheAlways, - NSImageCacheBySize, - NSImageCacheNever - ); - - - -ENUMTOOBJ(ImageFrameStyle, - NSImageFrameNone, - NSImageFramePhoto, - NSImageFrameGrayBezel, - NSImageFrameGroove, - NSImageFrameButton - ); - - - -ENUMTOOBJ(ImageInterpolation, - NSImageInterpolationDefault, - NSImageInterpolationNone, - NSImageInterpolationLow, - NSImageInterpolationHigh - ); - - -ENUMTOOBJ(ImageScaling, - NSImageScaleProportionallyDown, - NSImageScaleAxesIndependently, - NSImageScaleNone, - NSImageScaleProportionallyUpOrDown - ); - - -OPTSTOOBJ(EventModifierFlags, - NSAlphaShiftKeyMask, - NSShiftKeyMask, - NSControlKeyMask, - NSAlternateKeyMask, - NSCommandKeyMask, - NSNumericPadKeyMask, - NSHelpKeyMask, - NSFunctionKeyMask - ); - -static id objectFromKeyModifierMask(NSUInteger mask) -{ - NSUInteger deviceIndependentMask = mask & ~(NSUInteger)32767; // The lower 16 bits of the modifier flags are reserved for device-dependent bits. - return objectFromEventModifierFlags(deviceIndependentMask); -} - -typedef NSUInteger NSGlyphStorageLayoutOptions; -OPTSTOOBJ(GlyphStorageLayoutOptions, - NSShowControlGlyphs, - NSShowInvisibleGlyphs, - NSWantsBidiLevels - ); - - -ENUMTOOBJ(LevelIndicatorStyle, - NSRelevancyLevelIndicatorStyle, - NSContinuousCapacityLevelIndicatorStyle, - NSDiscreteCapacityLevelIndicatorStyle, - NSRatingLevelIndicatorStyle - ); - - -ENUMTOOBJ(LineBreakMode, - NSLineBreakByWordWrapping, - NSLineBreakByCharWrapping, - NSLineBreakByClipping, - NSLineBreakByTruncatingHead, - NSLineBreakByTruncatingTail, - NSLineBreakByTruncatingMiddle - ); - - -ENUMTOOBJ(LineCapStyle, - NSButtLineCapStyle, - NSRoundLineCapStyle, - NSSquareLineCapStyle - ); - - -ENUMTOOBJ(LineJoinStyle, - NSMiterLineJoinStyle, - NSRoundLineJoinStyle, - NSBevelLineJoinStyle - ); - - -ENUMTOOBJ(MatrixMode, - NSRadioModeMatrix, - NSHighlightModeMatrix, - NSListModeMatrix, - NSTrackModeMatrix - ); - - -static id objectFromMergePolicy(id mergePolicy) -{ - NSString *name = nil; - - if (mergePolicy == NSErrorMergePolicy) name = @"NSErrorMergePolicy"; - else if (mergePolicy == NSMergeByPropertyStoreTrumpMergePolicy) name = @"NSMergeByPropertyStoreTrumpMergePolicy"; - else if (mergePolicy == NSMergeByPropertyObjectTrumpMergePolicy) name = @"NSMergeByPropertyObjectTrumpMergePolicy"; - else if (mergePolicy == NSOverwriteMergePolicy) name = @"NSOverwriteMergePolicy"; - else if (mergePolicy == NSRollbackMergePolicy) name = @"NSRollbackMergePolicy"; - - if (name) return [FSObjectBrowserNamedObjectWrapper namedObjectWrapperWithObject:mergePolicy name:name]; - else return mergePolicy; -} - -ENUMTOOBJ(RuleEditorNestingMode, - NSRuleEditorNestingModeSingle, - NSRuleEditorNestingModeList, - NSRuleEditorNestingModeCompound, - NSRuleEditorNestingModeSimple - ); - - -ENUMTOOBJ(PathStyle, - NSPathStyleStandard, - NSPathStyleNavigationBar, - NSPathStylePopUp - ); - - -ENUMTOOBJ(PointingDeviceType, - NSUnknownPointingDevice, - NSPenPointingDevice, - NSCursorPointingDevice, - NSEraserPointingDevice - ); - - -ENUMTOOBJ(PredicateOperatorType, - NSLessThanPredicateOperatorType, - NSLessThanOrEqualToPredicateOperatorType, - NSGreaterThanPredicateOperatorType, - NSGreaterThanOrEqualToPredicateOperatorType, - NSEqualToPredicateOperatorType, - NSNotEqualToPredicateOperatorType, - NSMatchesPredicateOperatorType, - NSLikePredicateOperatorType, - NSBeginsWithPredicateOperatorType, - NSEndsWithPredicateOperatorType, - NSInPredicateOperatorType, - NSCustomSelectorPredicateOperatorType, - NSContainsPredicateOperatorType, - NSBetweenPredicateOperatorType - ); - - -ENUMTOOBJ(ProgressIndicatorStyle, - NSProgressIndicatorBarStyle, - NSProgressIndicatorSpinningStyle - ); - - -ENUMTOOBJ(PopUpArrowPosition, - NSPopUpNoArrow, - NSPopUpArrowAtCenter, - NSPopUpArrowAtBottom - ); - - -ENUMTOOBJ_DICT(RectEdge, - (@{@(NSMinXEdge):@"NSMinXEdge", - @(NSMinYEdge):@"NSMinYEdge", - @(NSMaxXEdge):@"NSMaxXEdge", - @(NSMaxYEdge):@"NSMaxYEdge" - }) - ); - - -ENUMTOOBJ(RulerOrientation, - NSHorizontalRuler, - NSVerticalRuler - ); - - -ENUMTOOBJ(ScrollArrowPosition, - NSScrollerArrowsDefaultSetting, - NSScrollerArrowsNone - ); - - -ENUMTOOBJ(ScrollerPart, - NSScrollerNoPart, - NSScrollerDecrementPage, - NSScrollerKnob, - NSScrollerIncrementPage, - NSScrollerDecrementLine, - NSScrollerIncrementLine, - NSScrollerKnobSlot - ); - - -ENUMTOOBJ(SegmentSwitchTracking, - NSSegmentSwitchTrackingSelectOne, - NSSegmentSwitchTrackingSelectAny, - NSSegmentSwitchTrackingMomentary - ); - - -ENUMTOOBJ(SelectionAffinity, - NSSelectionAffinityUpstream, - NSSelectionAffinityDownstream - ); - - -ENUMTOOBJ(SelectionDirection, - NSDirectSelection, - NSSelectingNext, - NSSelectingPrevious - ); - - -ENUMTOOBJ(SelectionGranularity, - NSSelectByCharacter, - NSSelectByWord, - NSSelectByParagraph - ); - - -ENUMTOOBJ(TableViewSelectionHighlightStyle, - NSTableViewSelectionHighlightStyleRegular, - NSTableViewSelectionHighlightStyleSourceList - ); - - -ENUMTOOBJ(SliderType, - NSLinearSlider, - NSCircularSlider - ); - - -typedef CGFloat NSStatusItemLength; -ENUMTOOBJ(StatusItemLength, - NSVariableStatusItemLength, - NSSquareStatusItemLength - ); - -ENUMTOOBJ(StringEncoding, - NSASCIIStringEncoding, - NSNEXTSTEPStringEncoding, - NSJapaneseEUCStringEncoding, - NSUTF8StringEncoding, - NSISOLatin1StringEncoding, - NSSymbolStringEncoding, - NSNonLossyASCIIStringEncoding, - NSShiftJISStringEncoding, - NSISOLatin2StringEncoding, - NSUnicodeStringEncoding, - NSWindowsCP1251StringEncoding, - NSWindowsCP1252StringEncoding, - NSWindowsCP1253StringEncoding, - NSWindowsCP1254StringEncoding, - NSWindowsCP1250StringEncoding, - NSISO2022JPStringEncoding, - NSMacOSRomanStringEncoding - ); - - -OPTSTOOBJ(TableColumnResizingOptions, - NSTableColumnNoResizing, - NSTableColumnAutoresizingMask, - NSTableColumnUserResizingMask - ); - -ENUMTOOBJ(TableViewColumnAutoresizingStyle, - NSTableViewNoColumnAutoresizing, - NSTableViewUniformColumnAutoresizingStyle, - NSTableViewSequentialColumnAutoresizingStyle, - NSTableViewReverseSequentialColumnAutoresizingStyle, - NSTableViewLastColumnOnlyAutoresizingStyle, - NSTableViewFirstColumnOnlyAutoresizingStyle - ); - - - -ENUMTOOBJ(TabState, - NSBackgroundTab, - NSPressedTab, - NSSelectedTab - ); - - -ENUMTOOBJ(TabViewType, - NSTopTabsBezelBorder, - NSLeftTabsBezelBorder, - NSBottomTabsBezelBorder, - NSRightTabsBezelBorder, - NSNoTabsBezelBorder, - NSNoTabsLineBorder, - NSNoTabsNoBorder - ); - - -ENUMTOOBJ(TextAlignment, - NSLeftTextAlignment, - NSRightTextAlignment, - NSCenterTextAlignment, - NSJustifiedTextAlignment, - NSNaturalTextAlignment - ); - - -ENUMTOOBJ(TextBlockValueType, - NSTextBlockAbsoluteValueType, - NSTextBlockPercentageValueType - ); - - -ENUMTOOBJ(TextBlockVerticalAlignment, - NSTextBlockTopAlignment, - NSTextBlockMiddleAlignment, - NSTextBlockBottomAlignment, - NSTextBlockBaselineAlignment - ); - - -ENUMTOOBJ(TextFieldBezelStyle, - NSTextFieldSquareBezel, - NSTextFieldRoundedBezel - ); - -OPTSTOOBJ(TextListOptions, - NSTextListPrependEnclosingMarker - ); - - -OPTSTOOBJ(TextStorageEditedOptions, - NSTextStorageEditedAttributes, - NSTextStorageEditedCharacters - ); - -ENUMTOOBJ(TextTableLayoutAlgorithm, - NSTextTableAutomaticLayoutAlgorithm, - NSTextTableFixedLayoutAlgorithm - ); - - -ENUMTOOBJ(TextTabType, - NSLeftTabStopType, - NSRightTabStopType, - NSCenterTabStopType, - NSDecimalTabStopType - ); - - -static id objectFromTickMarkPosition(NSTickMarkPosition tickMarkPosition, BOOL isVertical) -{ - switch (tickMarkPosition) - { - case NSTickMarkBelow: return [FSNamedNumber namedNumberWithDouble:tickMarkPosition name: isVertical ? @"NSTickMarkRight" : @"NSTickMarkBelow"]; - case NSTickMarkAbove: return [FSNamedNumber namedNumberWithDouble:tickMarkPosition name: isVertical ? @"NSTickMarkLeft" : @"NSTickMarkAbove"]; - //case NSTickMarkLeft: return [NamedNumber namedNumberWithDouble:tickMarkPosition name:@"NSTickMarkLeft"]; - //case NSTickMarkRight: return [NamedNumber namedNumberWithDouble:tickMarkPosition name:@"NSTickMarkRight"]; - default: return [FSNumber numberWithDouble:tickMarkPosition]; - } -} - -ENUMTOOBJ(TIFFCompression, - NSTIFFCompressionNone, - NSTIFFCompressionCCITTFAX3, - NSTIFFCompressionCCITTFAX4, - NSTIFFCompressionLZW, - NSTIFFCompressionJPEG, - NSTIFFCompressionNEXT, - NSTIFFCompressionPackBits, - NSTIFFCompressionOldJPEG - ); - - -ENUMTOOBJ(TitlePosition, - NSNoTitle, - NSAboveTop, - NSAtTop, - NSBelowTop, - NSAboveBottom, - NSAtBottom, - NSBelowBottom - ); - - -ENUMTOOBJ(TokenStyle, - NSDefaultTokenStyle, - NSPlainTextTokenStyle, - NSRoundedTokenStyle - ); - - -ENUMTOOBJ(ToolbarDisplayMode, - NSToolbarDisplayModeDefault, - NSToolbarDisplayModeIconAndLabel, - NSToolbarDisplayModeIconOnly, - NSToolbarDisplayModeLabelOnly - ); - -typedef NSUInteger NSToolbarItemVisibilityPriority; -ENUMTOOBJ(ToolbarItemVisibilityPriority, - NSToolbarItemVisibilityPriorityStandard, - NSToolbarItemVisibilityPriorityLow, - NSToolbarItemVisibilityPriorityHigh, - NSToolbarItemVisibilityPriorityUser - ); - - -ENUMTOOBJ(ToolbarSizeMode, - NSToolbarSizeModeDefault, - NSToolbarSizeModeRegular, - NSToolbarSizeModeSmall - ); - - -OPTSTOOBJ(TrackingAreaOptions, - NSTrackingMouseEnteredAndExited, - NSTrackingMouseMoved, - NSTrackingCursorUpdate, - NSTrackingActiveWhenFirstResponder, - NSTrackingActiveInKeyWindow, - NSTrackingActiveInActiveApp, - NSTrackingActiveAlways, - NSTrackingAssumeInside, - NSTrackingInVisibleRect, - NSTrackingEnabledDuringMouseDrag - ); - - -ENUMTOOBJ(TypesetterBehavior, - NSTypesetterLatestBehavior, - NSTypesetterOriginalBehavior, - NSTypesetterBehavior_10_2_WithCompatibility, - NSTypesetterBehavior_10_2, - NSTypesetterBehavior_10_3, - NSTypesetterBehavior_10_4 - ); - - -ENUMTOOBJ(UsableScrollerParts, - NSNoScrollerParts, - NSOnlyScrollerArrows, - NSAllScrollerParts - ); - - -ENUMTOOBJ(WindingRule, - NSNonZeroWindingRule, - NSEvenOddWindingRule - ); - -typedef CGWindowLevelKey NSWindowLevel; -ENUMTOOBJ_DICT(WindowLevel, - (@{@(NSNormalWindowLevel):@"NSNormalWindowLevel", - @(NSFloatingWindowLevel):@"NSFloatingWindowLevel", - @(NSSubmenuWindowLevel):@"NSSubmenuWindowLevel", - @(NSTornOffMenuWindowLevel):@"NSTornOffMenuWindowLevel", - @(NSMainMenuWindowLevel):@"NSMainMenuWindowLevel", - @(NSStatusWindowLevel):@"NSStatusWindowLevel", - @(NSDockWindowLevel):@"NSDockWindowLevel", - @(NSModalPanelWindowLevel):@"NSModalPanelWindowLevel", - @(NSPopUpMenuWindowLevel):@"NSPopUpMenuWindowLevel", - @(NSScreenSaverWindowLevel):@"NSScreenSaverWindowLevel"}) - ); - - -typedef NSUInteger NSWindowMask; -OPTSTOOBJ(WindowMask, - NSBorderlessWindowMask, - NSTitledWindowMask, - NSClosableWindowMask, - NSMiniaturizableWindowMask, - NSResizableWindowMask, - NSTexturedBackgroundWindowMask, - NSUnifiedTitleAndToolbarWindowMask, - NSFullScreenWindowMask, - NSFullSizeContentViewWindowMask - ); - -ENUMTOOBJ(WindowBackingLocation, - NSWindowBackingLocationDefault, - NSWindowBackingLocationVideoMemory, - NSWindowBackingLocationMainMemory - ); - - -ENUMTOOBJ(WindowCollectionBehavior, - NSWindowCollectionBehaviorDefault, - NSWindowCollectionBehaviorCanJoinAllSpaces, - NSWindowCollectionBehaviorMoveToActiveSpace - ); - - -ENUMTOOBJ(WindowSharingType, - NSWindowSharingNone, - NSWindowSharingReadOnly, - NSWindowSharingReadWrite - ); - - -/*static id objectFromWindowOrderingMode(NSWindowOrderingMode orderingMode) - { - switch (orderingMode) - { - case NSWindowAbove: return [NamedNumber namedNumberWithDouble:orderingMode name:@"NSWindowAbove"]; - case NSWindowBelow: return [NamedNumber namedNumberWithDouble:orderingMode name:@"NSWindowBelow"]; - case NSWindowOut: return [NamedNumber namedNumberWithDouble:orderingMode name:@"NSWindowOut"]; - default: return [Number numberWithDouble:orderingMode]; - } - }*/ - -ENUMTOOBJ(WritingDirection, - NSWritingDirectionNatural, - NSWritingDirectionLeftToRight, - NSWritingDirectionRightToLeft - ); - @implementation FSObjectBrowserView (FSObjectBrowserViewObjectInfo) diff --git a/FScriptFramework/FSObjectEnumInfo.h b/FScriptFramework/FSObjectEnumInfo.h new file mode 100644 index 0000000..6cb50a5 --- /dev/null +++ b/FScriptFramework/FSObjectEnumInfo.h @@ -0,0 +1,127 @@ +// +// FSObjectEnumInfo.h +// FScript +// +// Created by Anthony Dervish on 16/11/2014. +// +// + +#import +#import + + +typedef NSUInteger NSGlyphStorageLayoutOptions; +typedef CGFloat NSStatusItemLength; +typedef NSUInteger NSToolbarItemVisibilityPriority; +typedef CGWindowLevelKey NSWindowLevel; +typedef NSUInteger NSWindowMask; + +#define BIMAP_CLASS_METHODS_DECL(_name) \ ++(id)objectFor ## _name :(NS ## _name)mask; \ ++(NSDictionary*)optionsFor ## _name ; \ +extern id objectFrom ## _name(NS ## _name _name); + +@interface FSObjectEnumInfo : NSObject + +BIMAP_CLASS_METHODS_DECL(AlertStyle); +BIMAP_CLASS_METHODS_DECL(AnimationBlockingMode); +BIMAP_CLASS_METHODS_DECL(AnimationCurve); +BIMAP_CLASS_METHODS_DECL(AttributeType); +BIMAP_CLASS_METHODS_DECL(AutoresizingMaskOptions); +BIMAP_CLASS_METHODS_DECL(BackgroundStyle); +BIMAP_CLASS_METHODS_DECL(BackingStoreType); +BIMAP_CLASS_METHODS_DECL(BezelStyle); +BIMAP_CLASS_METHODS_DECL(BitmapFormat); +BIMAP_CLASS_METHODS_DECL(BorderType); +BIMAP_CLASS_METHODS_DECL(BoxType); +BIMAP_CLASS_METHODS_DECL(BrowserColumnResizingType); +BIMAP_CLASS_METHODS_DECL(CellImagePosition); +BIMAP_CLASS_METHODS_DECL(CellStateValue); +BIMAP_CLASS_METHODS_DECL(CellStyleMask); +BIMAP_CLASS_METHODS_DECL(CellType); +BIMAP_CLASS_METHODS_DECL(CharacterCollection); +BIMAP_CLASS_METHODS_DECL(ColorPanelMode); +BIMAP_CLASS_METHODS_DECL(ColorRenderingIntent); +BIMAP_CLASS_METHODS_DECL(ComparisonPredicateModifier); +BIMAP_CLASS_METHODS_DECL(ComparisonPredicateOptions); +BIMAP_CLASS_METHODS_DECL(CompositingOperation); +BIMAP_CLASS_METHODS_DECL(CompoundPredicateType); +BIMAP_CLASS_METHODS_DECL(ControlSize); +BIMAP_CLASS_METHODS_DECL(ControlTint); +BIMAP_CLASS_METHODS_DECL(DatePickerElementFlags); +BIMAP_CLASS_METHODS_DECL(DatePickerMode); +BIMAP_CLASS_METHODS_DECL(DatePickerStyle); +BIMAP_CLASS_METHODS_DECL(DeleteRule); +BIMAP_CLASS_METHODS_DECL(DrawerState); +BIMAP_CLASS_METHODS_DECL(EventButtonMask); +BIMAP_CLASS_METHODS_DECL(EventModifierFlags); +BIMAP_CLASS_METHODS_DECL(EventSubtype); +BIMAP_CLASS_METHODS_DECL(EventType); +BIMAP_CLASS_METHODS_DECL(ExpressionType); +BIMAP_CLASS_METHODS_DECL(FetchRequestResultType); +BIMAP_CLASS_METHODS_DECL(FocusRingType); +BIMAP_CLASS_METHODS_DECL(FontRenderingMode); +BIMAP_CLASS_METHODS_DECL(GlyphStorageLayoutOptions); +BIMAP_CLASS_METHODS_DECL(GradientType); +BIMAP_CLASS_METHODS_DECL(ImageAlignment); +BIMAP_CLASS_METHODS_DECL(ImageCacheMode); +BIMAP_CLASS_METHODS_DECL(ImageFrameStyle); +BIMAP_CLASS_METHODS_DECL(ImageInterpolation); +BIMAP_CLASS_METHODS_DECL(ImageScaling); +BIMAP_CLASS_METHODS_DECL(LevelIndicatorStyle); +BIMAP_CLASS_METHODS_DECL(LineBreakMode); +BIMAP_CLASS_METHODS_DECL(LineCapStyle); +BIMAP_CLASS_METHODS_DECL(LineJoinStyle); +BIMAP_CLASS_METHODS_DECL(MatrixMode); +id objectFromMergePolicy(id mergePolicy); +id objectFromKeyModifierMask(NSUInteger mask); +BIMAP_CLASS_METHODS_DECL(PathStyle); +BIMAP_CLASS_METHODS_DECL(PointingDeviceType); +BIMAP_CLASS_METHODS_DECL(PopUpArrowPosition); +BIMAP_CLASS_METHODS_DECL(PredicateOperatorType); +BIMAP_CLASS_METHODS_DECL(ProgressIndicatorStyle); +BIMAP_CLASS_METHODS_DECL(RectEdge); +BIMAP_CLASS_METHODS_DECL(RuleEditorNestingMode); +BIMAP_CLASS_METHODS_DECL(RulerOrientation); +BIMAP_CLASS_METHODS_DECL(ScrollArrowPosition); +BIMAP_CLASS_METHODS_DECL(ScrollerPart); +BIMAP_CLASS_METHODS_DECL(SegmentSwitchTracking); +BIMAP_CLASS_METHODS_DECL(SelectionAffinity); +BIMAP_CLASS_METHODS_DECL(SelectionDirection); +BIMAP_CLASS_METHODS_DECL(SelectionGranularity); +BIMAP_CLASS_METHODS_DECL(SliderType); +BIMAP_CLASS_METHODS_DECL(StatusItemLength); +BIMAP_CLASS_METHODS_DECL(StringEncoding); +BIMAP_CLASS_METHODS_DECL(TIFFCompression); +BIMAP_CLASS_METHODS_DECL(TabState); +BIMAP_CLASS_METHODS_DECL(TabViewType); +BIMAP_CLASS_METHODS_DECL(TableColumnResizingOptions); +BIMAP_CLASS_METHODS_DECL(TableViewColumnAutoresizingStyle); +BIMAP_CLASS_METHODS_DECL(TableViewGridLineStyle); +BIMAP_CLASS_METHODS_DECL(TableViewSelectionHighlightStyle); +BIMAP_CLASS_METHODS_DECL(TextAlignment); +BIMAP_CLASS_METHODS_DECL(TextBlockValueType); +BIMAP_CLASS_METHODS_DECL(TextBlockVerticalAlignment); +BIMAP_CLASS_METHODS_DECL(TextFieldBezelStyle); +BIMAP_CLASS_METHODS_DECL(TextListOptions); +BIMAP_CLASS_METHODS_DECL(TextStorageEditedOptions); +BIMAP_CLASS_METHODS_DECL(TextTabType); +BIMAP_CLASS_METHODS_DECL(TextTableLayoutAlgorithm); +id objectFromTickMarkPosition(NSTickMarkPosition tickMarkPosition, BOOL isVertical); +BIMAP_CLASS_METHODS_DECL(TitlePosition); +BIMAP_CLASS_METHODS_DECL(TokenStyle); +BIMAP_CLASS_METHODS_DECL(ToolbarDisplayMode); +BIMAP_CLASS_METHODS_DECL(ToolbarItemVisibilityPriority); +BIMAP_CLASS_METHODS_DECL(ToolbarSizeMode); +BIMAP_CLASS_METHODS_DECL(TrackingAreaOptions); +BIMAP_CLASS_METHODS_DECL(TypesetterBehavior); +BIMAP_CLASS_METHODS_DECL(UsableScrollerParts); +BIMAP_CLASS_METHODS_DECL(WindingRule); +BIMAP_CLASS_METHODS_DECL(WindowBackingLocation); +BIMAP_CLASS_METHODS_DECL(WindowCollectionBehavior); +BIMAP_CLASS_METHODS_DECL(WindowLevel); +BIMAP_CLASS_METHODS_DECL(WindowMask); +BIMAP_CLASS_METHODS_DECL(WindowSharingType); +BIMAP_CLASS_METHODS_DECL(WritingDirection); + +@end diff --git a/FScriptFramework/FSObjectEnumInfo.m b/FScriptFramework/FSObjectEnumInfo.m new file mode 100644 index 0000000..1cd6018 --- /dev/null +++ b/FScriptFramework/FSObjectEnumInfo.m @@ -0,0 +1,1000 @@ +// +// FSObjectEnumInfo.m +// FScript +// +// Created by Anthony Dervish on 16/11/2014. +// +// + +#import "FSObjectEnumInfo.h" +#import "FSNamedNumber.h" +#import "FSNumber.h" +#import "FSObjectBrowserNamedObjectWrapper.h" + +#import "CHBidirectionalDictionary.h" +#import "metamacros.h" + +#define _BIDICT(_idx, _enum) \ +@(_enum): @metamacro_stringify(_enum), + +#define _BIDICT_LEADER(_name) \ +static inline CHBidirectionalDictionary *_name ## Bimap() { \ +static CHBidirectionalDictionary *dict = nil; \ +if (!dict) { \ +dict = [CHBidirectionalDictionary new]; \ +[dict addEntriesFromDictionary: + +#define BIDICT(_name, ...) \ +_BIDICT_LEADER(_name) \ +@{ metamacro_foreach(_BIDICT, ,__VA_ARGS__) } \ +];} \ +return dict; \ +} + +#define BIDICT_LIT(_name, _dict) \ +_BIDICT_LEADER(_name) \ +_dict \ +];} \ +return dict; \ +} + +#define _IDENTITY(_idx, _val) _val + +#define OPTSMASK(...) \ +metamacro_foreach(_IDENTITY, |, __VA_ARGS__) + +#define BIMAP_CLASS_METHODS_DECL(_name) \ ++(id)objectFor ## _name :(NS ## _name)mask; \ ++(NSDictionary*)optionsFor ## _name ; \ +extern id objectFrom ## _name(NS ## _name _name); + +#define BIMAP_CLASS_METHODS_DEFN(_name) \ ++(id)objectFor ## _name :(NS ## _name)mask { return objectFrom ## _name(mask); } \ ++(NSDictionary*)optionsFor ## _name { return (_name ## Bimap()).inverseDictionary; } + +#define ENUM_FUNC(_name) \ +id objectFrom ## _name(NS ## _name _name) \ +{ \ + CHBidirectionalDictionary *dict = _name ## Bimap(); \ + id lookup = dict[@(_name)]; \ + return lookup ? [FSNamedNumber namedNumberWithDouble:(double)_name name:lookup] : [FSNumber numberWithDouble:_name]; \ +} \ + +// Define a lookup function 'objectTo', for simple enumerations (can take one, and only one value from the enum) +#define ENUMTOOBJ(_name, ...) \ +BIDICT(_name, __VA_ARGS__) \ +ENUM_FUNC(_name) \ +BIMAP_CLASS_METHODS_DEFN(_name) + + +// Same as 'ENUMTOOBJ', but use when the elements of the 'enumeration' are actually macros +#define ENUMTOOBJ_DICT(_name, _dict) \ +BIDICT_LIT(_name, _dict) \ +ENUM_FUNC(_name) \ +BIMAP_CLASS_METHODS_DEFN(_name) + +#define OPTSDICT(_name, ...) \ +const NSUInteger _name ## Mask = OPTSMASK(__VA_ARGS__); \ +BIDICT(_name, __VA_ARGS__) + +// Define a lookup function 'objectTo', for flag enumerations (can take a logical OR of enumeration values) +#define OPTSTOOBJ(_name, ...) \ +OPTSDICT(_name, __VA_ARGS__) \ +id objectFrom ## _name(NS ## _name mask) \ +{ \ +if (_name ## Mask == 0 || (mask & ~(_name ## Mask))) { return [FSNumber numberWithDouble:mask]; } \ +CHBidirectionalDictionary *dict = _name ## Bimap(); \ +NSMutableArray *result = [NSMutableArray array] ; \ +for (NSNumber *opt in dict.allKeys) { \ +if (mask & opt.unsignedIntegerValue) { \ +[result addObject:dict[opt]]; \ +} \ +} \ +return result.count ? [FSNamedNumber namedNumberWithDouble:mask name:[result componentsJoinedByString:@" + "]] : [FSNumber numberWithDouble:mask];\ +} \ +BIMAP_CLASS_METHODS_DEFN(_name) + +@implementation FSObjectEnumInfo + +ENUMTOOBJ(AnimationBlockingMode, + NSAnimationBlocking, + NSAnimationNonblocking, + NSAnimationNonblockingThreaded + ); + + + +ENUMTOOBJ(AnimationCurve, + NSAnimationEaseInOut, + NSAnimationEaseIn, + NSAnimationEaseOut, + NSAnimationLinear + ); + + +ENUMTOOBJ(AlertStyle, + NSWarningAlertStyle, + NSInformationalAlertStyle, + NSCriticalAlertStyle + ); + + +OPTSTOOBJ(AutoresizingMaskOptions, + NSViewMinXMargin, + NSViewWidthSizable, + NSViewMaxXMargin, + NSViewMinYMargin, + NSViewHeightSizable, + NSViewMaxYMargin + ); + +ENUMTOOBJ(AttributeType, + NSUndefinedAttributeType, + NSInteger16AttributeType, + NSInteger32AttributeType, + NSInteger64AttributeType, + NSDecimalAttributeType, + NSDoubleAttributeType, + NSFloatAttributeType, + NSStringAttributeType, + NSBooleanAttributeType, + NSDateAttributeType, + NSBinaryDataAttributeType, + NSTransformableAttributeType + ); + + +ENUMTOOBJ(BackgroundStyle, + NSBackgroundStyleLight, + NSBackgroundStyleDark, + NSBackgroundStyleRaised, + NSBackgroundStyleLowered + ); + + + +ENUMTOOBJ(BackingStoreType, + NSBackingStoreBuffered, + NSBackingStoreRetained, + NSBackingStoreNonretained + ); + + +ENUMTOOBJ(BorderType, + NSNoBorder, + NSLineBorder, + NSBezelBorder, + NSGrooveBorder + ); + +ENUMTOOBJ(BezelStyle, + NSRoundedBezelStyle, + NSRegularSquareBezelStyle, + NSThickSquareBezelStyle, + NSThickerSquareBezelStyle, + NSDisclosureBezelStyle, + NSShadowlessSquareBezelStyle, + NSCircularBezelStyle, + NSTexturedSquareBezelStyle, + NSHelpButtonBezelStyle, + NSSmallSquareBezelStyle, + NSTexturedRoundedBezelStyle + ); + + + +OPTSTOOBJ(BitmapFormat, + NSAlphaFirstBitmapFormat, + NSAlphaNonpremultipliedBitmapFormat, + NSFloatingPointSamplesBitmapFormat + ); + +ENUMTOOBJ(BoxType, + NSBoxPrimary, + NSBoxSecondary, + NSBoxSeparator, + NSBoxOldStyle, + NSBoxCustom + ); + + +OPTSTOOBJ(EventButtonMask, + NSPenTipMask, + NSPenLowerSideMask, + NSPenUpperSideMask + ); + + +ENUMTOOBJ(BrowserColumnResizingType, + NSBrowserNoColumnResizing, + NSBrowserAutoColumnResizing, + NSBrowserUserColumnResizing + ); + + +/*static id objectFromButtonType(NSButtonType buttonType) + { + switch (buttonType) + { + case NSMomentaryLight: return [NamedNumber namedNumberWithDouble:buttonType name:@"NSMomentaryLight"]; + case NSMomentaryPushButton: return [NamedNumber namedNumberWithDouble:buttonType name:@"NSMomentaryPushButton"]; + case NSMomentaryChangeButton: return [NamedNumber namedNumberWithDouble:buttonType name:@"NSMomentaryChangeButton"]; + case NSPushOnPushOffButton: return [NamedNumber namedNumberWithDouble:buttonType name:@"NSPushOnPushOffButton"]; + case NSOnOffButton: return [NamedNumber namedNumberWithDouble:buttonType name:@"NSOnOffButton"]; + case NSToggleButton: return [NamedNumber namedNumberWithDouble:buttonType name:@"NSToggleButton"]; + case NSSwitchButton: return [NamedNumber namedNumberWithDouble:buttonType name:@"NSSwitchButton"]; + case NSRadioButton: return [NamedNumber namedNumberWithDouble:buttonType name:@"NSRadioButton"]; + default: return [Number numberWithDouble:buttonType]; + } + }*/ + +ENUMTOOBJ(CellImagePosition, + NSNoImage, + NSImageOnly, + NSImageLeft, + NSImageRight, + NSImageBelow, + NSImageAbove, + NSImageOverlaps + ); + + +OPTSTOOBJ(CellStyleMask, + NSNoCellMask, + NSContentsCellMask, + NSPushInCellMask, + NSChangeGrayCellMask, + NSChangeBackgroundCellMask + ); + +ENUMTOOBJ(CellStateValue, + NSMixedState, + NSOffState, + NSOnState + ); + + +ENUMTOOBJ(CellType, + NSNullCellType, + NSTextCellType, + NSImageCellType + ); + + +ENUMTOOBJ(CharacterCollection, + NSIdentityMappingCharacterCollection, + NSAdobeCNS1CharacterCollection, + NSAdobeGB1CharacterCollection, + NSAdobeJapan1CharacterCollection, + NSAdobeJapan2CharacterCollection, + NSAdobeKorea1CharacterCollection + ); + + +ENUMTOOBJ(ColorPanelMode, + NSGrayModeColorPanel, + NSRGBModeColorPanel, + NSCMYKModeColorPanel, + NSHSBModeColorPanel, + NSCustomPaletteModeColorPanel, + NSColorListModeColorPanel, + NSWheelModeColorPanel, + NSCrayonModeColorPanel + ); + + +ENUMTOOBJ(ColorRenderingIntent, + NSColorRenderingIntentDefault, + NSColorRenderingIntentAbsoluteColorimetric, + NSColorRenderingIntentRelativeColorimetric, + NSColorRenderingIntentPerceptual, + NSColorRenderingIntentSaturation + ); + + +OPTSTOOBJ(ComparisonPredicateOptions, + NSCaseInsensitivePredicateOption, + NSDiacriticInsensitivePredicateOption, + NSNormalizedPredicateOption + ); + +ENUMTOOBJ(ComparisonPredicateModifier, + NSDirectPredicateModifier, + NSAllPredicateModifier, + NSAnyPredicateModifier + ); + + +ENUMTOOBJ(CompositingOperation, + NSCompositeClear, + NSCompositeCopy, + NSCompositeSourceOver, + NSCompositeSourceIn, + NSCompositeSourceOut, + NSCompositeSourceAtop, + NSCompositeDestinationOver, + NSCompositeDestinationIn, + NSCompositeDestinationOut, + NSCompositeDestinationAtop, + NSCompositeXOR, + NSCompositePlusDarker, + NSCompositeHighlight, + NSCompositePlusLighter + ); + + + +ENUMTOOBJ(CompoundPredicateType, + NSNotPredicateType, + NSAndPredicateType, + NSOrPredicateType + ); + + +ENUMTOOBJ(ControlSize, + NSRegularControlSize, + NSSmallControlSize, + NSMiniControlSize + ); + + +ENUMTOOBJ(ControlTint, + NSDefaultControlTint, + NSBlueControlTint, + NSGraphiteControlTint, + NSClearControlTint + ); + +OPTSTOOBJ(DatePickerElementFlags, + NSHourMinuteDatePickerElementFlag, + NSHourMinuteSecondDatePickerElementFlag, + NSTimeZoneDatePickerElementFlag, + NSYearMonthDatePickerElementFlag, + NSYearMonthDayDatePickerElementFlag, + NSEraDatePickerElementFlag + ); + +ENUMTOOBJ(DatePickerMode, + NSSingleDateMode, + NSRangeDateMode + ); + + +ENUMTOOBJ(DatePickerStyle, + NSTextFieldAndStepperDatePickerStyle, + NSClockAndCalendarDatePickerStyle + ); + + +ENUMTOOBJ(DeleteRule, + NSNoActionDeleteRule, + NSNullifyDeleteRule, + NSCascadeDeleteRule, + NSDenyDeleteRule + ); + + +ENUMTOOBJ(DrawerState, + NSDrawerClosedState, + NSDrawerOpeningState, + NSDrawerOpenState, + NSDrawerClosingState + ); + + + +ENUMTOOBJ(EventType, + NSLeftMouseDown, + NSLeftMouseUp, + NSRightMouseDown, + NSRightMouseUp, + NSOtherMouseDown, + NSOtherMouseUp, + NSMouseMoved, + NSLeftMouseDragged, + NSRightMouseDragged, + NSOtherMouseDragged, + NSMouseEntered, + NSMouseExited, + NSCursorUpdate, + NSKeyDown, + NSKeyUp, + NSFlagsChanged, + NSAppKitDefined, + NSSystemDefined, + NSApplicationDefined, + NSPeriodic, + NSScrollWheel, + NSTabletPoint, + NSTabletProximity + ); + + +ENUMTOOBJ(EventSubtype, + NSMouseEventSubtype, + NSTabletPointEventSubtype, + NSTabletProximityEventSubtype + ); + + +ENUMTOOBJ(ExpressionType, + NSConstantValueExpressionType, + NSEvaluatedObjectExpressionType, + NSVariableExpressionType, + NSKeyPathExpressionType, + NSFunctionExpressionType, + NSUnionSetExpressionType, + NSIntersectSetExpressionType, + NSMinusSetExpressionType, + NSSubqueryExpressionType, + NSAggregateExpressionType + ); + + + +ENUMTOOBJ(FetchRequestResultType, + NSManagedObjectResultType, + NSManagedObjectIDResultType + ); + + +ENUMTOOBJ(FocusRingType, + NSFocusRingTypeDefault, + NSFocusRingTypeNone, + NSFocusRingTypeExterior + ); + + +ENUMTOOBJ(FontRenderingMode, + NSFontDefaultRenderingMode, + NSFontAntialiasedRenderingMode, + NSFontIntegerAdvancementsRenderingMode, + NSFontAntialiasedIntegerAdvancementsRenderingMode + ); + + +ENUMTOOBJ(GradientType, + NSGradientNone, + NSGradientConcaveWeak, + NSGradientConcaveStrong, + NSGradientConvexWeak, + NSGradientConvexStrong + ); + + +OPTSTOOBJ(TableViewGridLineStyle, + NSTableViewSolidVerticalGridLineMask, + NSTableViewSolidHorizontalGridLineMask, + NSTableViewDashedHorizontalGridLineMask + ); + + +ENUMTOOBJ(ImageAlignment, + NSImageAlignCenter, + NSImageAlignTop, + NSImageAlignTopLeft, + NSImageAlignTopRight, + NSImageAlignLeft, + NSImageAlignBottom, + NSImageAlignBottomLeft, + NSImageAlignBottomRight, + NSImageAlignRight + ); + + +ENUMTOOBJ(ImageCacheMode, + NSImageCacheDefault, + NSImageCacheAlways, + NSImageCacheBySize, + NSImageCacheNever + ); + + + +ENUMTOOBJ(ImageFrameStyle, + NSImageFrameNone, + NSImageFramePhoto, + NSImageFrameGrayBezel, + NSImageFrameGroove, + NSImageFrameButton + ); + + + +ENUMTOOBJ(ImageInterpolation, + NSImageInterpolationDefault, + NSImageInterpolationNone, + NSImageInterpolationLow, + NSImageInterpolationHigh + ); + + +ENUMTOOBJ(ImageScaling, + NSImageScaleProportionallyDown, + NSImageScaleAxesIndependently, + NSImageScaleNone, + NSImageScaleProportionallyUpOrDown + ); + + +OPTSTOOBJ(EventModifierFlags, + NSAlphaShiftKeyMask, + NSShiftKeyMask, + NSControlKeyMask, + NSAlternateKeyMask, + NSCommandKeyMask, + NSNumericPadKeyMask, + NSHelpKeyMask, + NSFunctionKeyMask + ); + +id objectFromKeyModifierMask(NSUInteger mask) +{ + NSUInteger deviceIndependentMask = mask & ~(NSUInteger)32767; // The lower 16 bits of the modifier flags are reserved for device-dependent bits. + return objectFromEventModifierFlags(deviceIndependentMask); +} + +OPTSTOOBJ(GlyphStorageLayoutOptions, + NSShowControlGlyphs, + NSShowInvisibleGlyphs, + NSWantsBidiLevels + ); + + +ENUMTOOBJ(LevelIndicatorStyle, + NSRelevancyLevelIndicatorStyle, + NSContinuousCapacityLevelIndicatorStyle, + NSDiscreteCapacityLevelIndicatorStyle, + NSRatingLevelIndicatorStyle + ); + + +ENUMTOOBJ(LineBreakMode, + NSLineBreakByWordWrapping, + NSLineBreakByCharWrapping, + NSLineBreakByClipping, + NSLineBreakByTruncatingHead, + NSLineBreakByTruncatingTail, + NSLineBreakByTruncatingMiddle + ); + + +ENUMTOOBJ(LineCapStyle, + NSButtLineCapStyle, + NSRoundLineCapStyle, + NSSquareLineCapStyle + ); + + +ENUMTOOBJ(LineJoinStyle, + NSMiterLineJoinStyle, + NSRoundLineJoinStyle, + NSBevelLineJoinStyle + ); + + +ENUMTOOBJ(MatrixMode, + NSRadioModeMatrix, + NSHighlightModeMatrix, + NSListModeMatrix, + NSTrackModeMatrix + ); + + +id objectFromMergePolicy(id mergePolicy) +{ + NSString *name = nil; + + if (mergePolicy == NSErrorMergePolicy) name = @"NSErrorMergePolicy"; + else if (mergePolicy == NSMergeByPropertyStoreTrumpMergePolicy) name = @"NSMergeByPropertyStoreTrumpMergePolicy"; + else if (mergePolicy == NSMergeByPropertyObjectTrumpMergePolicy) name = @"NSMergeByPropertyObjectTrumpMergePolicy"; + else if (mergePolicy == NSOverwriteMergePolicy) name = @"NSOverwriteMergePolicy"; + else if (mergePolicy == NSRollbackMergePolicy) name = @"NSRollbackMergePolicy"; + + if (name) return [FSObjectBrowserNamedObjectWrapper namedObjectWrapperWithObject:mergePolicy name:name]; + else return mergePolicy; +} + +ENUMTOOBJ(RuleEditorNestingMode, + NSRuleEditorNestingModeSingle, + NSRuleEditorNestingModeList, + NSRuleEditorNestingModeCompound, + NSRuleEditorNestingModeSimple + ); + + +ENUMTOOBJ(PathStyle, + NSPathStyleStandard, + NSPathStyleNavigationBar, + NSPathStylePopUp + ); + + +ENUMTOOBJ(PointingDeviceType, + NSUnknownPointingDevice, + NSPenPointingDevice, + NSCursorPointingDevice, + NSEraserPointingDevice + ); + + +ENUMTOOBJ(PredicateOperatorType, + NSLessThanPredicateOperatorType, + NSLessThanOrEqualToPredicateOperatorType, + NSGreaterThanPredicateOperatorType, + NSGreaterThanOrEqualToPredicateOperatorType, + NSEqualToPredicateOperatorType, + NSNotEqualToPredicateOperatorType, + NSMatchesPredicateOperatorType, + NSLikePredicateOperatorType, + NSBeginsWithPredicateOperatorType, + NSEndsWithPredicateOperatorType, + NSInPredicateOperatorType, + NSCustomSelectorPredicateOperatorType, + NSContainsPredicateOperatorType, + NSBetweenPredicateOperatorType + ); + + +ENUMTOOBJ(ProgressIndicatorStyle, + NSProgressIndicatorBarStyle, + NSProgressIndicatorSpinningStyle + ); + + +ENUMTOOBJ(PopUpArrowPosition, + NSPopUpNoArrow, + NSPopUpArrowAtCenter, + NSPopUpArrowAtBottom + ); + + +ENUMTOOBJ_DICT(RectEdge, + (@{@(NSMinXEdge):@"NSMinXEdge", + @(NSMinYEdge):@"NSMinYEdge", + @(NSMaxXEdge):@"NSMaxXEdge", + @(NSMaxYEdge):@"NSMaxYEdge" + }) + ); + + +ENUMTOOBJ(RulerOrientation, + NSHorizontalRuler, + NSVerticalRuler + ); + + +ENUMTOOBJ(ScrollArrowPosition, + NSScrollerArrowsDefaultSetting, + NSScrollerArrowsNone + ); + + +ENUMTOOBJ(ScrollerPart, + NSScrollerNoPart, + NSScrollerDecrementPage, + NSScrollerKnob, + NSScrollerIncrementPage, + NSScrollerDecrementLine, + NSScrollerIncrementLine, + NSScrollerKnobSlot + ); + + +ENUMTOOBJ(SegmentSwitchTracking, + NSSegmentSwitchTrackingSelectOne, + NSSegmentSwitchTrackingSelectAny, + NSSegmentSwitchTrackingMomentary + ); + + +ENUMTOOBJ(SelectionAffinity, + NSSelectionAffinityUpstream, + NSSelectionAffinityDownstream + ); + + +ENUMTOOBJ(SelectionDirection, + NSDirectSelection, + NSSelectingNext, + NSSelectingPrevious + ); + + +ENUMTOOBJ(SelectionGranularity, + NSSelectByCharacter, + NSSelectByWord, + NSSelectByParagraph + ); + + +ENUMTOOBJ(TableViewSelectionHighlightStyle, + NSTableViewSelectionHighlightStyleRegular, + NSTableViewSelectionHighlightStyleSourceList + ); + + +ENUMTOOBJ(SliderType, + NSLinearSlider, + NSCircularSlider + ); + + +ENUMTOOBJ(StatusItemLength, + NSVariableStatusItemLength, + NSSquareStatusItemLength + ); + +ENUMTOOBJ(StringEncoding, + NSASCIIStringEncoding, + NSNEXTSTEPStringEncoding, + NSJapaneseEUCStringEncoding, + NSUTF8StringEncoding, + NSISOLatin1StringEncoding, + NSSymbolStringEncoding, + NSNonLossyASCIIStringEncoding, + NSShiftJISStringEncoding, + NSISOLatin2StringEncoding, + NSUnicodeStringEncoding, + NSWindowsCP1251StringEncoding, + NSWindowsCP1252StringEncoding, + NSWindowsCP1253StringEncoding, + NSWindowsCP1254StringEncoding, + NSWindowsCP1250StringEncoding, + NSISO2022JPStringEncoding, + NSMacOSRomanStringEncoding + ); + + +OPTSTOOBJ(TableColumnResizingOptions, + NSTableColumnNoResizing, + NSTableColumnAutoresizingMask, + NSTableColumnUserResizingMask + ); + +ENUMTOOBJ(TableViewColumnAutoresizingStyle, + NSTableViewNoColumnAutoresizing, + NSTableViewUniformColumnAutoresizingStyle, + NSTableViewSequentialColumnAutoresizingStyle, + NSTableViewReverseSequentialColumnAutoresizingStyle, + NSTableViewLastColumnOnlyAutoresizingStyle, + NSTableViewFirstColumnOnlyAutoresizingStyle + ); + + + +ENUMTOOBJ(TabState, + NSBackgroundTab, + NSPressedTab, + NSSelectedTab + ); + + +ENUMTOOBJ(TabViewType, + NSTopTabsBezelBorder, + NSLeftTabsBezelBorder, + NSBottomTabsBezelBorder, + NSRightTabsBezelBorder, + NSNoTabsBezelBorder, + NSNoTabsLineBorder, + NSNoTabsNoBorder + ); + + +ENUMTOOBJ(TextAlignment, + NSLeftTextAlignment, + NSRightTextAlignment, + NSCenterTextAlignment, + NSJustifiedTextAlignment, + NSNaturalTextAlignment + ); + + +ENUMTOOBJ(TextBlockValueType, + NSTextBlockAbsoluteValueType, + NSTextBlockPercentageValueType + ); + + +ENUMTOOBJ(TextBlockVerticalAlignment, + NSTextBlockTopAlignment, + NSTextBlockMiddleAlignment, + NSTextBlockBottomAlignment, + NSTextBlockBaselineAlignment + ); + + +ENUMTOOBJ(TextFieldBezelStyle, + NSTextFieldSquareBezel, + NSTextFieldRoundedBezel + ); + +OPTSTOOBJ(TextListOptions, + NSTextListPrependEnclosingMarker + ); + + +OPTSTOOBJ(TextStorageEditedOptions, + NSTextStorageEditedAttributes, + NSTextStorageEditedCharacters + ); + +ENUMTOOBJ(TextTableLayoutAlgorithm, + NSTextTableAutomaticLayoutAlgorithm, + NSTextTableFixedLayoutAlgorithm + ); + + +ENUMTOOBJ(TextTabType, + NSLeftTabStopType, + NSRightTabStopType, + NSCenterTabStopType, + NSDecimalTabStopType + ); + + +id objectFromTickMarkPosition(NSTickMarkPosition tickMarkPosition, BOOL isVertical) +{ + switch (tickMarkPosition) + { + case NSTickMarkBelow: return [FSNamedNumber namedNumberWithDouble:tickMarkPosition name: isVertical ? @"NSTickMarkRight" : @"NSTickMarkBelow"]; + case NSTickMarkAbove: return [FSNamedNumber namedNumberWithDouble:tickMarkPosition name: isVertical ? @"NSTickMarkLeft" : @"NSTickMarkAbove"]; + //case NSTickMarkLeft: return [NamedNumber namedNumberWithDouble:tickMarkPosition name:@"NSTickMarkLeft"]; + //case NSTickMarkRight: return [NamedNumber namedNumberWithDouble:tickMarkPosition name:@"NSTickMarkRight"]; + default: return [FSNumber numberWithDouble:tickMarkPosition]; + } +} + +ENUMTOOBJ(TIFFCompression, + NSTIFFCompressionNone, + NSTIFFCompressionCCITTFAX3, + NSTIFFCompressionCCITTFAX4, + NSTIFFCompressionLZW, + NSTIFFCompressionJPEG, + NSTIFFCompressionNEXT, + NSTIFFCompressionPackBits, + NSTIFFCompressionOldJPEG + ); + + +ENUMTOOBJ(TitlePosition, + NSNoTitle, + NSAboveTop, + NSAtTop, + NSBelowTop, + NSAboveBottom, + NSAtBottom, + NSBelowBottom + ); + + +ENUMTOOBJ(TokenStyle, + NSDefaultTokenStyle, + NSPlainTextTokenStyle, + NSRoundedTokenStyle + ); + + +ENUMTOOBJ(ToolbarDisplayMode, + NSToolbarDisplayModeDefault, + NSToolbarDisplayModeIconAndLabel, + NSToolbarDisplayModeIconOnly, + NSToolbarDisplayModeLabelOnly + ); + +ENUMTOOBJ(ToolbarItemVisibilityPriority, + NSToolbarItemVisibilityPriorityStandard, + NSToolbarItemVisibilityPriorityLow, + NSToolbarItemVisibilityPriorityHigh, + NSToolbarItemVisibilityPriorityUser + ); + + +ENUMTOOBJ(ToolbarSizeMode, + NSToolbarSizeModeDefault, + NSToolbarSizeModeRegular, + NSToolbarSizeModeSmall + ); + + +OPTSTOOBJ(TrackingAreaOptions, + NSTrackingMouseEnteredAndExited, + NSTrackingMouseMoved, + NSTrackingCursorUpdate, + NSTrackingActiveWhenFirstResponder, + NSTrackingActiveInKeyWindow, + NSTrackingActiveInActiveApp, + NSTrackingActiveAlways, + NSTrackingAssumeInside, + NSTrackingInVisibleRect, + NSTrackingEnabledDuringMouseDrag + ); + + +ENUMTOOBJ(TypesetterBehavior, + NSTypesetterLatestBehavior, + NSTypesetterOriginalBehavior, + NSTypesetterBehavior_10_2_WithCompatibility, + NSTypesetterBehavior_10_2, + NSTypesetterBehavior_10_3, + NSTypesetterBehavior_10_4 + ); + + +ENUMTOOBJ(UsableScrollerParts, + NSNoScrollerParts, + NSOnlyScrollerArrows, + NSAllScrollerParts + ); + + +ENUMTOOBJ(WindingRule, + NSNonZeroWindingRule, + NSEvenOddWindingRule + ); + +ENUMTOOBJ_DICT(WindowLevel, + (@{@(NSNormalWindowLevel):@"NSNormalWindowLevel", + @(NSFloatingWindowLevel):@"NSFloatingWindowLevel", + @(NSSubmenuWindowLevel):@"NSSubmenuWindowLevel", + @(NSTornOffMenuWindowLevel):@"NSTornOffMenuWindowLevel", + @(NSMainMenuWindowLevel):@"NSMainMenuWindowLevel", + @(NSStatusWindowLevel):@"NSStatusWindowLevel", + @(NSDockWindowLevel):@"NSDockWindowLevel", + @(NSModalPanelWindowLevel):@"NSModalPanelWindowLevel", + @(NSPopUpMenuWindowLevel):@"NSPopUpMenuWindowLevel", + @(NSScreenSaverWindowLevel):@"NSScreenSaverWindowLevel"}) + ); + + +OPTSTOOBJ(WindowMask, + NSBorderlessWindowMask, + NSTitledWindowMask, + NSClosableWindowMask, + NSMiniaturizableWindowMask, + NSResizableWindowMask, + NSTexturedBackgroundWindowMask, + NSUnifiedTitleAndToolbarWindowMask, + NSFullScreenWindowMask, + NSFullSizeContentViewWindowMask + ); + +ENUMTOOBJ(WindowBackingLocation, + NSWindowBackingLocationDefault, + NSWindowBackingLocationVideoMemory, + NSWindowBackingLocationMainMemory + ); + + +ENUMTOOBJ(WindowCollectionBehavior, + NSWindowCollectionBehaviorDefault, + NSWindowCollectionBehaviorCanJoinAllSpaces, + NSWindowCollectionBehaviorMoveToActiveSpace + ); + + +ENUMTOOBJ(WindowSharingType, + NSWindowSharingNone, + NSWindowSharingReadOnly, + NSWindowSharingReadWrite + ); + + +/*static id objectFromWindowOrderingMode(NSWindowOrderingMode orderingMode) + { + switch (orderingMode) + { + case NSWindowAbove: return [NamedNumber namedNumberWithDouble:orderingMode name:@"NSWindowAbove"]; + case NSWindowBelow: return [NamedNumber namedNumberWithDouble:orderingMode name:@"NSWindowBelow"]; + case NSWindowOut: return [NamedNumber namedNumberWithDouble:orderingMode name:@"NSWindowOut"]; + default: return [Number numberWithDouble:orderingMode]; + } + }*/ + +ENUMTOOBJ(WritingDirection, + NSWritingDirectionNatural, + NSWritingDirectionLeftToRight, + NSWritingDirectionRightToLeft + ); + +@end diff --git a/FScriptFramework/FSObjectInspectorViewModelItem.h b/FScriptFramework/FSObjectInspectorViewModelItem.h new file mode 100644 index 0000000..1667e7d --- /dev/null +++ b/FScriptFramework/FSObjectInspectorViewModelItem.h @@ -0,0 +1,24 @@ +// +// FSObjectInspectorViewModelItem.h +// FScript +// +// Created by Anthony Dervish on 16/11/2014. +// +// + +#import + +typedef NS_ENUM(NSUInteger, FSInspectorVMItemType) { + FS_ITEM_HEADER, + FS_ITEM_ENUM, + FS_ITEM_OPTIONS, + FS_ITEM_CONTINUOUS, + FS_ITEM_SIZE, + FS_ITEM_RECT +}; + +@interface FSObjectInspectorViewModelItem : NSTreeNode +@property (copy,nonatomic) NSString *name; +@property (retain,nonatomic) id value; +@property (assign,nonatomic) FSInspectorVMItemType itemType; +@end diff --git a/FScriptFramework/FSObjectInspectorViewModelItem.m b/FScriptFramework/FSObjectInspectorViewModelItem.m new file mode 100644 index 0000000..903fa62 --- /dev/null +++ b/FScriptFramework/FSObjectInspectorViewModelItem.m @@ -0,0 +1,13 @@ +// +// FSObjectInspectorViewModelItem.m +// FScript +// +// Created by Anthony Dervish on 16/11/2014. +// +// + +#import "FSObjectInspectorViewModelItem.h" + +@implementation FSObjectInspectorViewModelItem + +@end From 7cece38eb3e474acea75fe86ebf1ebd83f8104a2 Mon Sep 17 00:00:00 2001 From: Ant Date: Mon, 17 Nov 2014 10:12:37 +0000 Subject: [PATCH 11/33] Reformat object browser view and browser view object info. Remove dead code in comments. --- FScriptFramework/FSObjectBrowserView.h | 76 +- FScriptFramework/FSObjectBrowserView.m | 3464 +++++------ .../FSObjectBrowserViewObjectInfo.m | 5249 ++++++++--------- 3 files changed, 4240 insertions(+), 4549 deletions(-) diff --git a/FScriptFramework/FSObjectBrowserView.h b/FScriptFramework/FSObjectBrowserView.h index 8771893..8d0d205 100644 --- a/FScriptFramework/FSObjectBrowserView.h +++ b/FScriptFramework/FSObjectBrowserView.h @@ -7,49 +7,51 @@ @class FSInterpreter; @class FSObjectBrowserBottomBarTextDisplay; -NSInteger FSCompareClassNamesForAlphabeticalOrder(NSString *className1, NSString *className2, void *context); +NSInteger FSCompareClassNamesForAlphabeticalOrder(NSString* className1, NSString* className2, void* context); const int FSObjectBrowserBottomBarHeight; -@interface FSObjectBrowserView : NSView -{ - id rootObject; - FSInterpreter *interpreter; - NSBrowser *browser; - FSObjectBrowserBottomBarTextDisplay *bottomBarTextDisplay; - id selectedView; - NSString *filterString; - NSMutableSet *matrixes; - enum {FSBrowsingWorkspace, FSBrowsingClasses, FSBrowsingObject, FSBrowsingNothing} browsingMode; +@interface FSObjectBrowserView : NSView { + id rootObject; + FSInterpreter* interpreter; + NSBrowser* browser; + FSObjectBrowserBottomBarTextDisplay* bottomBarTextDisplay; + id selectedView; + NSString* filterString; + NSMutableSet* matrixes; + enum { FSBrowsingWorkspace, + FSBrowsingClasses, + FSBrowsingObject, + FSBrowsingNothing } browsingMode; } -+ (NSArray *)customButtons; ++ (NSArray*)customButtons; + (void)saveCustomButtonsSettings; -- (void)addDictionary:(NSDictionary *)d withLabel:(NSString *)label toMatrix:(NSMatrix *)matrix classLabel:(NSString *)classLabel selectedClassLabel:(NSString *)selectedClassLabel selectedLabel:(NSString *)selectedLabel selectedObject:(id)selectedObject; -- (void)addBindingForObject:(id)object withName:(NSString *)name toMatrix:(NSMatrix *)matrix classLabel:(NSString *)classLabel selectedClassLabel:(NSString *)selectedClassLabel selectedLabel:(NSString *)selectedLabel selectedObject:(id)selectedObject; -- (void)addBlankRowToMatrix:(NSMatrix *)matrix; -- (void)addClassLabel:(NSString *)label toMatrix:(NSMatrix *)matrix; -- (void)addClassLabel:(NSString *)label toMatrix:(NSMatrix *)matrix color:(NSColor *)color; -- (void)addClassesWithNames:(NSArray *)classNames withLabel:(NSString *)label toMatrix:(NSMatrix *)matrix classLabel:(NSString *)classLabel selectedClassLabel:(NSString *)selectedClassLabel selectedLabel:(NSString *)selectedLabel selectedObject:(id)selectedObject; -- (void)addLabel:(NSString *)label toMatrix:(NSMatrix *)matrix; -- (void)addLabel:(NSString *)label toMatrix:(NSMatrix *)matrix indentationLevel:(NSUInteger)indentationLevel; -- (void)addLabelAlone:(NSString *)label toMatrix:(NSMatrix *)matrix; -- (void)addObject:(id)object toMatrix:(NSMatrix *)matrix label:(NSString *)label classLabel:(NSString *)classLabel; -- (void)addObject:(id)object toMatrix:(NSMatrix *)matrix label:(NSString *)label classLabel:(NSString *)classLabel indentationLevel:(NSUInteger)indentationLevel; -- (void)addObject:(id)object toMatrix:(NSMatrix *)matrix label:(NSString *)label classLabel:(NSString *)classLabel indentationLevel:(NSUInteger)indentationLevel leaf:(BOOL)leaf; -- (void)addObject:(id)object withLabel:(NSString *)label toMatrix:(NSMatrix *)matrix classLabel:(NSString *)classLabel selectedClassLabel:(NSString *)selectedClassLabel selectedLabel:(NSString *)selectedLabel selectedObject:(id)selectedObject; -- (void)addObject:(id)object withLabel:(NSString *)label toMatrix:(NSMatrix *)matrix leaf:(BOOL)leaf classLabel:(NSString *)classLabel selectedClassLabel:(NSString *)selectedClassLabel selectedLabel:(NSString *)selectedLabel selectedObject:(id)selectedObject indentationLevel:(NSUInteger)indentationLevel; -- (void)addObjects:(NSArray *)objects withLabel:(NSString *)label toMatrix:(NSMatrix *)matrix classLabel:(NSString *)classLabel selectedClassLabel:(NSString *)selectedClassLabel selectedLabel:(NSString *)selectedLabel selectedObject:(id)selectedObject; -- (void)addPropertyLabel:(NSString *)label toMatrix:(NSMatrix *)matrix; +- (void)addDictionary:(NSDictionary*)d withLabel:(NSString*)label toMatrix:(NSMatrix*)matrix classLabel:(NSString*)classLabel selectedClassLabel:(NSString*)selectedClassLabel selectedLabel:(NSString*)selectedLabel selectedObject:(id)selectedObject; +- (void)addBindingForObject:(id)object withName:(NSString*)name toMatrix:(NSMatrix*)matrix classLabel:(NSString*)classLabel selectedClassLabel:(NSString*)selectedClassLabel selectedLabel:(NSString*)selectedLabel selectedObject:(id)selectedObject; +- (void)addBlankRowToMatrix:(NSMatrix*)matrix; +- (void)addClassLabel:(NSString*)label toMatrix:(NSMatrix*)matrix; +- (void)addClassLabel:(NSString*)label toMatrix:(NSMatrix*)matrix color:(NSColor*)color; +- (void)addClassesWithNames:(NSArray*)classNames withLabel:(NSString*)label toMatrix:(NSMatrix*)matrix classLabel:(NSString*)classLabel selectedClassLabel:(NSString*)selectedClassLabel selectedLabel:(NSString*)selectedLabel selectedObject:(id)selectedObject; +- (void)addLabel:(NSString*)label toMatrix:(NSMatrix*)matrix; +- (void)addLabel:(NSString*)label toMatrix:(NSMatrix*)matrix indentationLevel:(NSUInteger)indentationLevel; +- (void)addLabelAlone:(NSString*)label toMatrix:(NSMatrix*)matrix; +- (void)addObject:(id)object toMatrix:(NSMatrix*)matrix label:(NSString*)label classLabel:(NSString*)classLabel; +- (void)addObject:(id)object toMatrix:(NSMatrix*)matrix label:(NSString*)label classLabel:(NSString*)classLabel indentationLevel:(NSUInteger)indentationLevel; +- (void)addObject:(id)object toMatrix:(NSMatrix*)matrix label:(NSString*)label classLabel:(NSString*)classLabel indentationLevel:(NSUInteger)indentationLevel leaf:(BOOL)leaf; +- (void)addObject:(id)object withLabel:(NSString*)label toMatrix:(NSMatrix*)matrix classLabel:(NSString*)classLabel selectedClassLabel:(NSString*)selectedClassLabel selectedLabel:(NSString*)selectedLabel selectedObject:(id)selectedObject; +- (void)addObject:(id)object withLabel:(NSString*)label toMatrix:(NSMatrix*)matrix leaf:(BOOL)leaf classLabel:(NSString*)classLabel selectedClassLabel:(NSString*)selectedClassLabel selectedLabel:(NSString*)selectedLabel selectedObject:(id)selectedObject indentationLevel:(NSUInteger)indentationLevel; +- (void)addObjects:(NSArray*)objects withLabel:(NSString*)label toMatrix:(NSMatrix*)matrix classLabel:(NSString*)classLabel selectedClassLabel:(NSString*)selectedClassLabel selectedLabel:(NSString*)selectedLabel selectedObject:(id)selectedObject; +- (void)addPropertyLabel:(NSString*)label toMatrix:(NSMatrix*)matrix; - (IBAction)browseAction:(id)sender; -- (void) browseNothing; -- (void) browseWorkspace; -- (void) fillMatrix:(NSMatrix *)matrix withMethodsForObject:(id)object; -- (void) filterAction:(id)sender; -- (BOOL) hasEmptyFilterString; -- (id) initWithFrame:(NSRect)frameRect; -- (id) selectedObject; -- (void) setInterpreter:(FSInterpreter *)theInterpreter; -- (void) setRootObject:(id)theRootObject; +- (void)browseNothing; +- (void)browseWorkspace; +- (void)fillMatrix:(NSMatrix*)matrix withMethodsForObject:(id)object; +- (void)filterAction:(id)sender; +- (BOOL)hasEmptyFilterString; +- (id)initWithFrame:(NSRect)frameRect; +- (id)selectedObject; +- (void)setInterpreter:(FSInterpreter*)theInterpreter; +- (void)setRootObject:(id)theRootObject; @end diff --git a/FScriptFramework/FSObjectBrowserView.m b/FScriptFramework/FSObjectBrowserView.m index 4eaa700..13dd141 100644 --- a/FScriptFramework/FSObjectBrowserView.m +++ b/FScriptFramework/FSObjectBrowserView.m @@ -11,7 +11,7 @@ #import "FSNSObject.h" #import "FSArray.h" #import "FSObjectBrowserCell.h" -#import "FSMiscTools.h" +#import "FSMiscTools.h" #import "BlockStackElem.h" #import "BlockPrivate.h" #import "BlockInspector.h" @@ -43,8 +43,9 @@ @interface ArgumentsWindow : NSWindow @end @implementation ArgumentsWindow -- (BOOL)canBecomeKeyWindow { - return YES; +- (BOOL)canBecomeKeyWindow +{ + return YES; } @end @@ -52,1997 +53,1714 @@ - (BOOL)canBecomeKeyWindow { static Class NSManagedObjectClass; -/* -static int compareClassesForAlphabeticalOrder(id class1, id class2, void *context) -{ - NSString *class1String = printString(class1); - NSString *class2String = printString(class2); - - if ([class1String hasPrefix:@"%"] && ![class2String hasPrefix:@"%"]) - return NSOrderedDescending; - else if ([class2String hasPrefix:@"%"] && ![class1String hasPrefix:@"%"]) - return NSOrderedAscending; - else - return [class1String compare:class2String]; -} -*/ - - -static FSObjectBrowserCell *addRowToMatrix(NSMatrix *matrix) -{ - // Since we reuse cells when filtering (because we use renewRows:columns:), we must - // ensure that they are correctly set-up when reused. This is the job of this function. - - FSObjectBrowserCell *cell; - - // For an unknown reason, the following does not correctly maintain the selection: - // *********** - // int numberOfRows = [matrix numberOfRows]; - // [matrix renewRows:numberOfRows+1 columns:1]; - // cell = [matrix cellAtRow:numberOfRows column:0]; - // *********** - // We do the folowing instead: - // *********** - [matrix addRow]; - cell = [matrix cellAtRow:[matrix numberOfRows]-1 column:0]; - // *********** - - [cell setLeaf:NO]; - [cell setEnabled:YES]; - [cell setObjectValue:nil]; - [cell setObjectBrowserCellType:FSOBUNKNOWN]; - [cell setClassLabel:nil]; - [cell setLabel:nil]; - [cell setRepresentedObject:nil]; - return cell; -} - - -NSInteger FSCompareClassNamesForAlphabeticalOrder(NSString *className1, NSString *className2, void *context) -{ - if ([className1 hasPrefix:@"%"] && ![className2 hasPrefix:@"%"]) - return NSOrderedDescending; - else if ([className2 hasPrefix:@"%"] && ![className1 hasPrefix:@"%"]) - return NSOrderedAscending; - else - return [className1 caseInsensitiveCompare:className2]; -} - - -static NSInteger FSCompareMethodsNamesForAlphabeticalOrder(NSString *m1, NSString *m2, void *context) -{ - if ([m1 hasPrefix:@"_"] && ![m2 hasPrefix:@"_"]) - return NSOrderedDescending; - else if ([m2 hasPrefix:@"_"] && ![m1 hasPrefix:@"_"]) - return NSOrderedAscending; - else - return [m1 caseInsensitiveCompare:m2]; -} - -static NSString *printStringForObjectBrowser(id object) -{ - NSString *entityName; - NSString *result = nil; - - @try - { - if (NSManagedObjectClass && [object isKindOfClass:NSManagedObjectClass] && (entityName = [[object entity] name]) != nil) - { - result = [@"Managed object: " stringByAppendingString:entityName]; - } - } - @catch (id exception) - { - result = [NSString stringWithFormat:@"*** Non printable object. The following exception was raised when " - @"trying to get a textual representation of the object: %@" - ,FSErrorMessageFromException(exception)]; - } - - if (!result) - { - result = printStringLimited(object, 1000); - if ([result length] > 510) - result = [[result substringWithRange:NSMakeRange(0,500)] stringByAppendingString:@" ..."]; - } - - return result; -} - - -static NSString *humanReadableFScriptTypeDescriptionFromEncodedObjCType(const char *ptr) -{ - while (*ptr == 'r' || *ptr == 'n' || *ptr == 'N' || *ptr == 'o' || *ptr == 'O' || *ptr == 'R' || *ptr == 'V') - ptr++; - - if (strcmp(ptr,@encode(id)) == 0) return @""; - else if (strcmp(ptr,@encode(char)) == 0) return @""; - else if (strcmp(ptr,@encode(int)) == 0) return @"int"; - else if (strcmp(ptr,@encode(short)) == 0) return @"short"; - else if (strcmp(ptr,@encode(long)) == 0) return @"long"; - else if (strcmp(ptr,@encode(long long)) == 0) return @"long long"; - else if (strcmp(ptr,@encode(unsigned char)) == 0) return @"unsigned char"; - else if (strcmp(ptr,@encode(unsigned short)) == 0) return @"unsigned short"; - else if (strcmp(ptr,@encode(unsigned int)) == 0) return @"unsigned int"; - else if (strcmp(ptr,@encode(unsigned long)) == 0) return @"unsigned long"; - else if (strcmp(ptr,@encode(unsigned long long)) == 0) return @"unsigned long long"; - else if (strcmp(ptr,@encode(float)) == 0) return @"float"; - else if (strcmp(ptr,@encode(double)) == 0) return @"double"; - else if (strcmp(ptr,@encode(char *)) == 0) return @"pointer"; - else if (strcmp(ptr,@encode(SEL)) == 0) return @"SEL"; - else if (strcmp(ptr,@encode(Class)) == 0) return @"Class"; - else if (strcmp(ptr,@encode(NSRange)) == 0) return @"NSRange"; - else if (strcmp(ptr,@encode(NSPoint)) == 0) return @"NSPoint"; - else if (strcmp(ptr,@encode(NSSize)) == 0) return @"NSSize"; - else if (strcmp(ptr,@encode(NSRect)) == 0) return @"NSRect"; - else if (strcmp(ptr,@encode(CGPoint)) == 0) return @"CGPoint"; - else if (strcmp(ptr,@encode(CGSize)) == 0) return @"CGSize"; - else if (strcmp(ptr,@encode(CGRect)) == 0) return @"CGRect"; - else if (strcmp(ptr,@encode(CGAffineTransform)) == 0) return @"CGAffineTransform"; - else if (strcmp(ptr,@encode(_Bool)) == 0) return @"boolean"; - else if (*ptr == '{') - { - NSMutableString *structName = [NSMutableString string]; - ptr++; - while (isalnum(*ptr) || *ptr == '_') - { - [structName appendString:[[[NSString alloc] initWithBytes:ptr length:1 encoding:NSASCIIStringEncoding] autorelease]]; - ptr++; - } - if (*ptr == '=' && ![structName isEqualToString:@""]) - return [@"struct " stringByAppendingString:structName]; - else - return @""; - } - else if (*ptr == '^') - { - NSString *pointed = humanReadableFScriptTypeDescriptionFromEncodedObjCType(++ptr); - if ([pointed isEqualToString:@""]) - return @"pointer"; - else - return [@"pointer to " stringByAppendingString:pointed]; - } - else return @""; -} - -static NSString *FScriptObjectTemplateForEncodedObjCType(const char *ptr) -{ - while (*ptr == 'r' || *ptr == 'n' || *ptr == 'N' || *ptr == 'o' || *ptr == 'O' || *ptr == 'R' || *ptr == 'V') - ptr++; - -/* if (strcmp(ptr,@encode(id)) == 0) return @""; - else if (strcmp(ptr,@encode(char)) == 0) return @""; - else if (strcmp(ptr,@encode(int)) == 0) return @""; - else if (strcmp(ptr,@encode(short)) == 0) return @""; - else if (strcmp(ptr,@encode(long)) == 0) return @""; - else if (strcmp(ptr,@encode(long long)) == 0) return @""; - else if (strcmp(ptr,@encode(unsigned char)) == 0) return @""; - else if (strcmp(ptr,@encode(unsigned short)) == 0) return @""; - else if (strcmp(ptr,@encode(unsigned int)) == 0) return @""; - else if (strcmp(ptr,@encode(unsigned long)) == 0) return @""; - else if (strcmp(ptr,@encode(unsigned long long)) == 0) return @""; - else if (strcmp(ptr,@encode(float)) == 0) return @""; - else if (strcmp(ptr,@encode(double)) == 0) return @""; - else if (strcmp(ptr,@encode(char *)) == 0) return @""; -#warning 64BIT: Inspect use of @encode - else*/ if (strcmp(ptr,@encode(SEL)) == 0) return @"#selector"; - //else if (strcmp(ptr,@encode(Class)) == 0) return @""; - //else if (*ptr == '^') return @""; - else if (strcmp(ptr,@encode(NSRange)) == 0) return @"NSValue rangeWithLocation:0 length:0"; - else if (strcmp(ptr,@encode(NSPoint)) == 0) return @"0<>0"; - else if (strcmp(ptr,@encode(NSSize)) == 0) return @"NSValue sizeWithWidth:0 height:0"; - else if (strcmp(ptr,@encode(NSRect)) == 0) return @"0<>0 extent:0<>0"; - else if (strcmp(ptr,@encode(CGPoint)) == 0) return @"0<>0"; - else if (strcmp(ptr,@encode(CGSize)) == 0) return @"NSValue sizeWithWidth:0 height:0"; - else if (strcmp(ptr,@encode(CGRect)) == 0) return @"0<>0 extent:0<>0"; - //else if (strcmp(ptr,@encode(_Bool)) == 0) return @""; - else return @""; -} - -static NSMutableArray *customButtons = nil; - -@interface FSObjectBrowserView() // Methods declaration to let the compiler know - -- (void) fillMatrixForClassesBrowsing:(NSMatrix*)matrix; -- (void) fillMatrixForWorkspaceBrowsing:(NSMatrix*)matrix; -// - (void) fillMatrix:(NSMatrix *)matrix withMethodsAndPropertiesForObject:(id)object; -- (void) fillMatrix:(NSMatrix *)matrix withMethodsForObject:(id)object; -//- (void) fillMatrix:(NSMatrix *)matrix withPropertiesForObject:(id)object; -- (void) filter; -- (void) inspectAction:(id)sender; -- (id) selectedObject; -- (void) selectMethodNamed:(NSString *)methodName; -- (void) selfAction:(id)sender; -- (void) sendMessage:(SEL)selector withArguments:(FSArray *)arguments; -- (BOOL) sendMessageTo:(id)receiver selectorString:(NSString *)selectorStr arguments:(FSArray *)arguments putResultInMatrix:(NSMatrix *)matrix; -- (void) setFilterString:(NSString *)theFilterString; -- (void) setTitleOfLastColumn:(NSString *)title; -- (id) validSelectedObject; -@end +static FSObjectBrowserCell* addRowToMatrix(NSMatrix* matrix) +{ + // Since we reuse cells when filtering (because we use renewRows:columns:), we must + // ensure that they are correctly set-up when reused. This is the job of this function. + + FSObjectBrowserCell* cell; + + // For an unknown reason, the following does not correctly maintain the selection: + // *********** + // int numberOfRows = [matrix numberOfRows]; + // [matrix renewRows:numberOfRows+1 columns:1]; + // cell = [matrix cellAtRow:numberOfRows column:0]; + // *********** + // We do the folowing instead: + // *********** + [matrix addRow]; + cell = [matrix cellAtRow:[matrix numberOfRows] - 1 column:0]; + // *********** + + [cell setLeaf:NO]; + [cell setEnabled:YES]; + [cell setObjectValue:nil]; + [cell setObjectBrowserCellType:FSOBUNKNOWN]; + [cell setClassLabel:nil]; + [cell setLabel:nil]; + [cell setRepresentedObject:nil]; + return cell; +} -@implementation FSObjectBrowserView +NSInteger FSCompareClassNamesForAlphabeticalOrder(NSString* className1, NSString* className2, void* context) +{ + if ([className1 hasPrefix:@"%"] && ![className2 hasPrefix:@"%"]) + return NSOrderedDescending; + else if ([className2 hasPrefix:@"%"] && ![className1 hasPrefix:@"%"]) + return NSOrderedAscending; + else + return [className1 caseInsensitiveCompare:className2]; +} -+ (NSArray *)customButtons -{ - return customButtons; -} - -+ (void) initialize -{ - static BOOL tooLate = NO; - if ( !tooLate ) - { - int i; - NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; - NSMutableDictionary *registrationDict = [NSMutableDictionary dictionary]; - - [registrationDict setObject:[NSNumber numberWithDouble:[[NSFont userFixedPitchFontOfSize:-1] pointSize]] forKey:@"FScriptFontSize"]; - [defaults registerDefaults:registrationDict]; - - NSManagedObjectClass = NSClassFromString(@"NSManagedObject"); - - customButtons = [[NSMutableArray alloc] initWithCapacity:10]; - - for (i = 1; i < 11; i++) - { - FSObjectBrowserToolbarButton *button = [[FSObjectBrowserToolbarButton alloc] initWithFrame:NSMakeRect(0,0,80,20)]; - NSString *buttonName = [defaults stringForKey:[NSString stringWithFormat:@"BigBrowserToolbarButtonCustom%dName",i]]; - NSData *blockData = [defaults objectForKey:[NSString stringWithFormat:@"BigBrowserToolbarButtonCustom%dBlock",i]]; - FSBlock *block = nil; - - if (blockData) - { - @try - { - block = [[NSKeyedUnarchiver unarchiveObjectWithData:blockData] retain]; + +static NSInteger FSCompareMethodsNamesForAlphabeticalOrder(NSString* m1, NSString* m2, void* context) +{ + if ([m1 hasPrefix:@"_"] && ![m2 hasPrefix:@"_"]) + return NSOrderedDescending; + else if ([m2 hasPrefix:@"_"] && ![m1 hasPrefix:@"_"]) + return NSOrderedAscending; + else + return [m1 caseInsensitiveCompare:m2]; +} + +static NSString* printStringForObjectBrowser(id object) +{ + NSString* entityName; + NSString* result = nil; + + @try { + if (NSManagedObjectClass && [object isKindOfClass:NSManagedObjectClass] && (entityName = [[object entity] name]) != nil) { + result = [@"Managed object: " stringByAppendingString:entityName]; + } } @catch (id exception) { - NSLog(@"Problem while loading a block for an F-Script object browser custom button: %@", FSErrorMessageFromException(exception)); - block = nil; // We will fall back to the default block template + result = [NSString stringWithFormat:@"*** Non printable object. The following exception was raised when " + @"trying to get a textual representation of the object: %@", + FSErrorMessageFromException(exception)]; } - } - - if (!buttonName) buttonName = [NSString stringWithFormat:@"Custom%d", i]; - - if (!block) - { - NSString *blockSource; - - if (i == 1) - { - buttonName = @"Example1"; - blockSource = @"[:selectedObject|\n\n\"This block is an example illustrating the use of custom buttons in the object browser. This block prompts the user to save the selected object, and then returns a custom string.\"\n\nselectedObject save.\n'hello, I''m the result of the Example1 block !'\n]"; + + if (!result) { + result = printStringLimited(object, 1000); + if ([result length] > 510) + result = [[result substringWithRange:NSMakeRange(0, 500)] stringByAppendingString:@" ..."]; } - else if (i == 2) - { - buttonName = @"Example2"; - blockSource = @"#isEqual:"; + + return result; +} + + +static NSString* humanReadableFScriptTypeDescriptionFromEncodedObjCType(const char* ptr) +{ + while (*ptr == 'r' || *ptr == 'n' || *ptr == 'N' || *ptr == 'o' || *ptr == 'O' || *ptr == 'R' || *ptr == 'V') + ptr++; + + if (strcmp(ptr, @encode(id)) == 0) + return @""; + else if (strcmp(ptr, @encode(char)) == 0) + return @""; + else if (strcmp(ptr, @encode(int)) == 0) + return @"int"; + else if (strcmp(ptr, @encode(short)) == 0) + return @"short"; + else if (strcmp(ptr, @encode(long)) == 0) + return @"long"; + else if (strcmp(ptr, @encode(long long)) == 0) + return @"long long"; + else if (strcmp(ptr, @encode(unsigned char)) == 0) + return @"unsigned char"; + else if (strcmp(ptr, @encode(unsigned short)) == 0) + return @"unsigned short"; + else if (strcmp(ptr, @encode(unsigned int)) == 0) + return @"unsigned int"; + else if (strcmp(ptr, @encode(unsigned long)) == 0) + return @"unsigned long"; + else if (strcmp(ptr, @encode(unsigned long long)) == 0) + return @"unsigned long long"; + else if (strcmp(ptr, @encode(float)) == 0) + return @"float"; + else if (strcmp(ptr, @encode(double)) == 0) + return @"double"; + else if (strcmp(ptr, @encode(char*)) == 0) + return @"pointer"; + else if (strcmp(ptr, @encode(SEL)) == 0) + return @"SEL"; + else if (strcmp(ptr, @encode(Class)) == 0) + return @"Class"; + else if (strcmp(ptr, @encode(NSRange)) == 0) + return @"NSRange"; + else if (strcmp(ptr, @encode(NSPoint)) == 0) + return @"NSPoint"; + else if (strcmp(ptr, @encode(NSSize)) == 0) + return @"NSSize"; + else if (strcmp(ptr, @encode(NSRect)) == 0) + return @"NSRect"; + else if (strcmp(ptr, @encode(CGPoint)) == 0) + return @"CGPoint"; + else if (strcmp(ptr, @encode(CGSize)) == 0) + return @"CGSize"; + else if (strcmp(ptr, @encode(CGRect)) == 0) + return @"CGRect"; + else if (strcmp(ptr, @encode(CGAffineTransform)) == 0) + return @"CGAffineTransform"; + else if (strcmp(ptr, @encode(_Bool)) == 0) + return @"boolean"; + else if (*ptr == '{') { + NSMutableString* structName = [NSMutableString string]; + ptr++; + while (isalnum(*ptr) || *ptr == '_') { + [structName appendString:[[[NSString alloc] initWithBytes:ptr length:1 encoding:NSASCIIStringEncoding] autorelease]]; + ptr++; + } + if (*ptr == '=' && ![structName isEqualToString:@""]) + return [@"struct " stringByAppendingString:structName]; + else + return @""; } - else if (i == 3) - { - buttonName = @"Example3"; - blockSource = @"[\n\"This block is an example illustrating the use of custom buttons in the object browser. This block will simply open a standard about box.\"\n\nNSApplication sharedApplication orderFrontStandardAboutPanel:nil\n]"; + else if (*ptr == '^') { + NSString* pointed = humanReadableFScriptTypeDescriptionFromEncodedObjCType(++ptr); + if ([pointed isEqualToString:@""]) + return @"pointer"; + else + return [@"pointer to " stringByAppendingString:pointed]; } - else blockSource = @"[:selectedObject| selectedObject \"Define your custom block here.\"]"; - - block = [blockSource asBlock]; - } - - [button setIdentifier:[NSString stringWithFormat:@"Custom%d", i]]; - [button setName:buttonName]; - [button setBlock:block]; - [button setAction:@selector(applyBlockAction:)]; - [customButtons addObject:button]; - } - - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(saveCustomButtonsSettings:) name:NSApplicationWillTerminateNotification object:nil]; - } -} - -+ (void)saveCustomButtonsSettings -{ - int i; - NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; - - for (i = 0; i < 10; i++) - { - [defaults setObject:[[customButtons objectAtIndex:i] name] forKey:[NSString stringWithFormat:@"BigBrowserToolbarButtonCustom%dName",i+1]]; - [defaults setObject:[NSKeyedArchiver archivedDataWithRootObject:[[customButtons objectAtIndex:i] block]] forKey:[NSString stringWithFormat:@"BigBrowserToolbarButtonCustom%dBlock",i+1]]; - } - [defaults synchronize]; -} - -+ (void)saveCustomButtonsSettings:(NSNotification *)aNotification -{ - [self saveCustomButtonsSettings]; -} - -- (void)addBindingForObject:(id)object withName:(NSString *)name toMatrix:(NSMatrix *)matrix classLabel:(NSString *)classLabel selectedClassLabel:(NSString *)selectedClassLabel selectedLabel:(NSString *)selectedLabel selectedObject:(id)selectedObject -{ - NSDictionary *infoForBinding = [object infoForBinding:name]; - if (infoForBinding) - { - NSString *objectBoundLabel = @"Object bound"; - NSString *keyPathBoundLabel = @"Key path bound"; - NSString *valueClassLabel = @"Value class"; - NSString *valueLabel = @"Value"; - NSString *optionsLabel = @"Options"; - - id objectBound = [infoForBinding objectForKey:NSObservedObjectKey]; - NSString *keyPathBound = [infoForBinding objectForKey:NSObservedKeyPathKey]; - Class valueClass = [object respondsToSelector:@selector(valueClassForBinding:)] ? [object valueClassForBinding:name] : nil; - id value = [objectBound valueForKeyPath:keyPathBound]; - NSDictionary *options = [infoForBinding objectForKey:NSOptionsKey]; - - NSString *objectBoundString = printString(objectBound); - NSString *keyPathBoundString = keyPathBound; - NSString *valueClassString = printString(valueClass); - NSString *valueString = printString(value); - NSString *optionsString = printString(options); - - BOOL shouldDisplayBinding = [filterString isEqualToString:@""] - || containsString(name , filterString, NSCaseInsensitiveSearch) - || containsString(objectBoundLabel , filterString, NSCaseInsensitiveSearch) - || containsString(objectBoundString , filterString, NSCaseInsensitiveSearch) - || containsString(keyPathBoundLabel , filterString, NSCaseInsensitiveSearch) - || containsString(keyPathBoundString, filterString, NSCaseInsensitiveSearch) - || containsString(valueLabel , filterString, NSCaseInsensitiveSearch) - || containsString(valueString , filterString, NSCaseInsensitiveSearch) - || (valueClass != nil && containsString(valueClassLabel , filterString, NSCaseInsensitiveSearch)) - || (valueClass != nil && containsString(valueClassString , filterString, NSCaseInsensitiveSearch)) - || containsString(optionsLabel , filterString, NSCaseInsensitiveSearch) - || containsString(optionsString , filterString, NSCaseInsensitiveSearch) - || (selectedClassLabel == classLabel && ( (selectedObject == objectBound && selectedLabel == objectBoundLabel) - || (selectedObject == keyPathBound && selectedLabel == keyPathBoundLabel) - || (selectedObject == value && selectedLabel == valueLabel) - || (valueClass != nil && selectedObject == valueClass && selectedLabel == valueClassLabel) - || (selectedObject == options && selectedLabel == optionsLabel))); - - if (shouldDisplayBinding) - { - [self addLabel:[NSString stringWithFormat:@"Binding: %@",name] toMatrix:matrix]; - [self addObject:objectBound withLabel:objectBoundLabel toMatrix:matrix leaf:NO classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject indentationLevel:1]; - [self addObject:keyPathBound withLabel:keyPathBoundLabel toMatrix:matrix leaf:NO classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject indentationLevel:1]; - if (valueClass != nil) [self addObject:valueClass withLabel:valueClassLabel toMatrix:matrix leaf:NO classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject indentationLevel:1]; - [self addObject:value withLabel:valueLabel toMatrix:matrix leaf:NO classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject indentationLevel:1]; - [self addObject:options withLabel:optionsLabel toMatrix:matrix leaf:NO classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject indentationLevel:1]; - [self addBlankRowToMatrix:matrix]; - } - } -} - -- (void)addDictionary:(NSDictionary *)d withLabel:(NSString *)label toMatrix:(NSMatrix *)matrix classLabel:(NSString *)classLabel selectedClassLabel:(NSString *)selectedClassLabel selectedLabel:(NSString *)selectedLabel selectedObject:(id)selectedObject -{ - if (d) - { - NSEnumerator *enumerator = [d keyEnumerator]; - id key,value; - NSString *objectString; - NSUInteger count = [d count]; - FSObjectBrowserCell *cell; - - if (count != 0) - { - if ([self hasEmptyFilterString] || containsString(label, filterString, NSCaseInsensitiveSearch)) - { - [self addLabel:label toMatrix:matrix]; - - while ((key = [enumerator nextObject])) - { - //[matrix addRow]; - //cell = [matrix cellAtRow:[matrix numberOfRows]-1 column:0]; - cell = addRowToMatrix(matrix); - - value = [d objectForKey:key]; - [cell setRepresentedObject:[FSAssociation associationWithKey:key value:value]]; - objectString = [NSString stringWithFormat:@" %@ -> %@",printStringLimited(key,50),printStringLimited(value,1000)]; - if ([objectString length] > 510) - objectString = [[objectString substringWithRange:NSMakeRange(0,500)] stringByAppendingString:@" ..."]; - [cell setStringValue:objectString]; - [cell setObjectBrowserCellType:FSOBOBJECT]; - [cell setLabel:printString(key)]; - [cell setClassLabel:@""]; - if (value == selectedObject && [printString(key) isEqualToString:selectedLabel]) - [matrix selectCellAtRow:[matrix numberOfRows]-1 column:0]; + else + return @""; +} + +static NSString* FScriptObjectTemplateForEncodedObjCType(const char* ptr) +{ + while (*ptr == 'r' || *ptr == 'n' || *ptr == 'N' || *ptr == 'o' || *ptr == 'O' || *ptr == 'R' || *ptr == 'V') + ptr++; + if (strcmp(ptr, @encode(SEL)) == 0) + return @"#selector"; + else if (strcmp(ptr, @encode(NSRange)) == 0) + return @"NSValue rangeWithLocation:0 length:0"; + else if (strcmp(ptr, @encode(NSPoint)) == 0) + return @"0<>0"; + else if (strcmp(ptr, @encode(NSSize)) == 0) + return @"NSValue sizeWithWidth:0 height:0"; + else if (strcmp(ptr, @encode(NSRect)) == 0) + return @"0<>0 extent:0<>0"; + else if (strcmp(ptr, @encode(CGPoint)) == 0) + return @"0<>0"; + else if (strcmp(ptr, @encode(CGSize)) == 0) + return @"NSValue sizeWithWidth:0 height:0"; + else if (strcmp(ptr, @encode(CGRect)) == 0) + return @"0<>0 extent:0<>0"; + //else if (strcmp(ptr,@encode(_Bool)) == 0) return @""; + else + return @""; +} + +static NSMutableArray* customButtons = nil; + +@interface FSObjectBrowserView () // Methods declaration to let the compiler know + +- (void)fillMatrixForClassesBrowsing:(NSMatrix*)matrix; +- (void)fillMatrixForWorkspaceBrowsing:(NSMatrix*)matrix; +- (void)fillMatrix:(NSMatrix*)matrix withMethodsForObject:(id)object; +- (void)filter; +- (void)inspectAction:(id)sender; +- (id)selectedObject; +- (void)selectMethodNamed:(NSString*)methodName; +- (void)selfAction:(id)sender; +- (void)sendMessage:(SEL)selector withArguments:(FSArray*)arguments; +- (BOOL)sendMessageTo:(id)receiver selectorString:(NSString*)selectorStr arguments:(FSArray*)arguments putResultInMatrix:(NSMatrix*)matrix; +- (void)setFilterString:(NSString*)theFilterString; +- (void)setTitleOfLastColumn:(NSString*)title; +- (id)validSelectedObject; + +@end + + +@implementation FSObjectBrowserView + ++ (NSArray*)customButtons +{ + return customButtons; +} + ++ (void)initialize +{ + static BOOL tooLate = NO; + if (!tooLate) { + int i; + NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults]; + NSMutableDictionary* registrationDict = [NSMutableDictionary dictionary]; + + [registrationDict setObject:[NSNumber numberWithDouble:[[NSFont userFixedPitchFontOfSize:-1] pointSize]] forKey:@"FScriptFontSize"]; + [defaults registerDefaults:registrationDict]; + + NSManagedObjectClass = NSClassFromString(@"NSManagedObject"); + + customButtons = [[NSMutableArray alloc] initWithCapacity:10]; + + for (i = 1; i < 11; i++) { + FSObjectBrowserToolbarButton* button = [[FSObjectBrowserToolbarButton alloc] initWithFrame:NSMakeRect(0, 0, 80, 20)]; + NSString* buttonName = [defaults stringForKey:[NSString stringWithFormat:@"BigBrowserToolbarButtonCustom%dName", i]]; + NSData* blockData = [defaults objectForKey:[NSString stringWithFormat:@"BigBrowserToolbarButtonCustom%dBlock", i]]; + FSBlock* block = nil; + + if (blockData) { + @try { + block = [[NSKeyedUnarchiver unarchiveObjectWithData:blockData] retain]; + } + @catch (id exception) + { + NSLog(@"Problem while loading a block for an F-Script object browser custom button: %@", FSErrorMessageFromException(exception)); + block = nil; // We will fall back to the default block template + } + } + + if (!buttonName) + buttonName = [NSString stringWithFormat:@"Custom%d", i]; + + if (!block) { + NSString* blockSource; + + if (i == 1) { + buttonName = @"Example1"; + blockSource = @"[:selectedObject|\n\n\"This block is an example illustrating the use of custom buttons in the object browser. This block prompts the user to save the selected object, and then returns a custom string.\"\n\nselectedObject save.\n'hello, I''m the result of the Example1 block !'\n]"; + } + else if (i == 2) { + buttonName = @"Example2"; + blockSource = @"#isEqual:"; + } + else if (i == 3) { + buttonName = @"Example3"; + blockSource = @"[\n\"This block is an example illustrating the use of custom buttons in the object browser. This block will simply open a standard about box.\"\n\nNSApplication sharedApplication orderFrontStandardAboutPanel:nil\n]"; + } + else + blockSource = @"[:selectedObject| selectedObject \"Define your custom block here.\"]"; + + block = [blockSource asBlock]; + } + + [button setIdentifier:[NSString stringWithFormat:@"Custom%d", i]]; + [button setName:buttonName]; + [button setBlock:block]; + [button setAction:@selector(applyBlockAction:)]; + [customButtons addObject:button]; + } + + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(saveCustomButtonsSettings:) name:NSApplicationWillTerminateNotification object:nil]; } - } - else - { - while ((key = [enumerator nextObject]) && !containsString(printString(key), filterString, NSCaseInsensitiveSearch) && !containsString(printString([d objectForKey:key]), filterString, NSCaseInsensitiveSearch) && !([d objectForKey:key] == selectedObject && [printString(key) isEqualToString:selectedLabel])); +} - if (key) - { - [self addLabel:label toMatrix:matrix]; - while (key) - { - value = [d objectForKey:key]; - BOOL addingSelectedObject = (value == selectedObject && [printString(key) isEqualToString:selectedLabel]); - if (containsString(printString(value), filterString, NSCaseInsensitiveSearch) || containsString(printString(key), filterString, NSCaseInsensitiveSearch) || addingSelectedObject) - { - //[matrix addRow]; - //cell = [matrix cellAtRow:[matrix numberOfRows]-1 column:0]; - cell = addRowToMatrix(matrix); - - [cell setRepresentedObject:[FSAssociation associationWithKey:key value:value]]; - objectString = [NSString stringWithFormat:@" %@ -> %@",printStringLimited(key,50),printStringLimited(value,1000)]; - if ([objectString length] > 510) - objectString = [[objectString substringWithRange:NSMakeRange(0,500)] stringByAppendingString:@" ..."]; - [cell setStringValue:objectString]; - [cell setObjectBrowserCellType:FSOBOBJECT]; - [cell setLabel:printString(key)]; - [cell setClassLabel:@""]; - if (addingSelectedObject) - [matrix selectCellAtRow:[matrix numberOfRows]-1 column:0]; - } - key = [enumerator nextObject]; - } ++ (void)saveCustomButtonsSettings +{ + int i; + NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults]; + + for (i = 0; i < 10; i++) { + [defaults setObject:[[customButtons objectAtIndex:i] name] forKey:[NSString stringWithFormat:@"BigBrowserToolbarButtonCustom%dName", i + 1]]; + [defaults setObject:[NSKeyedArchiver archivedDataWithRootObject:[[customButtons objectAtIndex:i] block]] forKey:[NSString stringWithFormat:@"BigBrowserToolbarButtonCustom%dBlock", i + 1]]; } - } - } - } -} - -- (void) applyBlockAction:(id)sender -{ - FSBlock *block = [sender block]; - - @try - { - [block compilIfNeeded]; - } - @catch (id exception) - { - NSRunAlertPanel(@"Syntax Error", FSErrorMessageFromException(exception), @"OK", nil, nil,nil); - FSInspectBlocksInCallStackForException(exception); - return; - } - - if ([block isCompact]) - { - [self sendMessage:[block selector] withArguments:nil]; - } - else - { - FSObjectBrowserButtonCtxBlock *contextualizedBlock; - SEL messageToArgumentSelector; - - contextualizedBlock = [interpreter objectBrowserButtonCtxBlockFromString:[block printString]]; - [contextualizedBlock setMaster:block]; - - if ([contextualizedBlock argumentCount] == 0) - { - FSInterpreterResult *interpreterResult = [contextualizedBlock executeWithArguments:[NSArray array]]; - - if (![interpreterResult isOK]) - { - NSRunAlertPanel(@"Error", [interpreterResult errorMessage], @"OK", nil, nil,nil); - [interpreterResult inspectBlocksInCallStack]; - return; - } - } - else if ((messageToArgumentSelector = [contextualizedBlock messageToArgumentSelector]) != (SEL)0 && messageToArgumentSelector != @selector(alloc) && messageToArgumentSelector != @selector(allocWithZone:)) - { - NSString *methodName = [FSCompiler stringFromSelector:messageToArgumentSelector]; - id selectedObject; - FSInterpreterResult *interpreterResult; - - if ((selectedObject = [self validSelectedObject]) == nil) - { - NSBeep(); - return; - } - - [browser setDelegate:nil]; - [self selectMethodNamed:methodName]; - [browser setDelegate:self]; - - interpreterResult = [contextualizedBlock executeWithArguments:[NSArray arrayWithObject:selectedObject]]; - - if ([interpreterResult isOK]) - [self fillMatrix:[browser matrixInColumn:[browser lastColumn]] withObject:[interpreterResult result]]; - else - { - NSRunAlertPanel(@"Error", [interpreterResult errorMessage], @"OK", nil, nil,nil); - [interpreterResult inspectBlocksInCallStack]; - return; - } - } - else - [self sendMessage:@selector(applyBlock:) withArguments:[FSArray arrayWithObject:contextualizedBlock]]; - } - [browser scrollColumnToVisible:[browser lastColumn]]; - [browser scrollColumnsLeftBy:1]; // Workaround for the call above to scrollColumnToVisible: not working as expected. -} - -- (void)addBlankRowToMatrix:(NSMatrix *)matrix -{ - NSBrowserCell *cell; - //[matrix addRow]; - //cell = [matrix cellAtRow:[matrix numberOfRows]-1 column:0]; - cell = addRowToMatrix(matrix); - - [cell setLeaf:YES]; - [cell setEnabled:NO]; -} - -- (void)addClassWithName:(NSString *)className toMatrix:(NSMatrix *)matrix label:(NSString *)label classLabel:(NSString *)classLabel indentationLevel:(NSUInteger)indentationLevel -{ - FSObjectBrowserCell *cell = addRowToMatrix(matrix); - NSMutableString *cellString = [NSMutableString string]; - - [cell setLabel:label]; - [cell setClassLabel:classLabel]; - - for (NSUInteger i = 0; i < indentationLevel; i++) [cellString appendString:@" "]; - - [cellString appendString:className]; - [cell setStringValue:cellString]; - [cell setObjectBrowserCellType:FSOBCLASS]; -} - -// Not tested -/* -- (void)addClassWithName:(NSString *)className withLabel:(NSString *)label toMatrix:(NSMatrix *)matrix classLabel:(NSString *)classLabel selectedClassLabel:(NSString *)selectedClassLabel selectedLabel:(NSString *)selectedLabel selectedObject:(id)selectedObject -{ - BOOL hasEmptyFilterString = [filterString isEqualToString:@""]; - BOOL addingSelectedObject = (selectedObject != nil && [selectedObject class] == selectedObject && [NSStringFromClass(selectedObject) isEqualToString:className] && [label isEqualToString:selectedLabel] && [classLabel isEqualToString:selectedClassLabel]); - - if (hasEmptyFilterString || containsString(label, filterString, NSCaseInsensitiveSearch) || containsString(printString(object), filterString, NSCaseInsensitiveSearch) || addingSelectedObject) - { - [self addLabel:label toMatrix:matrix]; - [self addClassWithName:className toMatrix:matrix label:label classLabel:classLabel indentationLevel:1]; - if (addingSelectedObject) - [matrix selectCellAtRow:[matrix numberOfRows]-1 column:0]; - } -} -*/ - -- (void)addClassesWithNames:(NSArray *)classNames withLabel:(NSString *)label toMatrix:(NSMatrix *)matrix classLabel:(NSString *)classLabel selectedClassLabel:(NSString *)selectedClassLabel selectedLabel:(NSString *)selectedLabel selectedObject:(id)selectedObject -{ - if (classNames) - { - NSUInteger i; - NSUInteger count = [classNames count]; - - if (count != 0) - { - if ([self hasEmptyFilterString] || containsString(label, filterString, NSCaseInsensitiveSearch)) - { - [self addLabel:label toMatrix:matrix]; - for (i = 0; i < count; i++) - { - NSString *className = [classNames objectAtIndex:i]; - [self addClassWithName:className toMatrix:matrix label:label classLabel:classLabel indentationLevel:1]; - - if (selectedObject != nil && [selectedObject class] == selectedObject && [NSStringFromClass(selectedObject) isEqualToString:className] && [label isEqualToString:selectedLabel] && [classLabel isEqualToString:selectedClassLabel]) - [matrix selectCellAtRow:[matrix numberOfRows]-1 column:0]; + [defaults synchronize]; +} + ++ (void)saveCustomButtonsSettings:(NSNotification*)aNotification +{ + [self saveCustomButtonsSettings]; +} + +- (void)addBindingForObject:(id)object withName:(NSString*)name toMatrix:(NSMatrix*)matrix classLabel:(NSString*)classLabel selectedClassLabel:(NSString*)selectedClassLabel selectedLabel:(NSString*)selectedLabel selectedObject:(id)selectedObject +{ + NSDictionary* infoForBinding = [object infoForBinding:name]; + if (infoForBinding) { + NSString* objectBoundLabel = @"Object bound"; + NSString* keyPathBoundLabel = @"Key path bound"; + NSString* valueClassLabel = @"Value class"; + NSString* valueLabel = @"Value"; + NSString* optionsLabel = @"Options"; + + id objectBound = [infoForBinding objectForKey:NSObservedObjectKey]; + NSString* keyPathBound = [infoForBinding objectForKey:NSObservedKeyPathKey]; + Class valueClass = [object respondsToSelector:@selector(valueClassForBinding:)] ? [object valueClassForBinding:name] : nil; + id value = [objectBound valueForKeyPath:keyPathBound]; + NSDictionary* options = [infoForBinding objectForKey:NSOptionsKey]; + + NSString* objectBoundString = printString(objectBound); + NSString* keyPathBoundString = keyPathBound; + NSString* valueClassString = printString(valueClass); + NSString* valueString = printString(value); + NSString* optionsString = printString(options); + + BOOL shouldDisplayBinding = [filterString isEqualToString:@""] + || containsString(name, filterString, NSCaseInsensitiveSearch) + || containsString(objectBoundLabel, filterString, NSCaseInsensitiveSearch) + || containsString(objectBoundString, filterString, NSCaseInsensitiveSearch) + || containsString(keyPathBoundLabel, filterString, NSCaseInsensitiveSearch) + || containsString(keyPathBoundString, filterString, NSCaseInsensitiveSearch) + || containsString(valueLabel, filterString, NSCaseInsensitiveSearch) + || containsString(valueString, filterString, NSCaseInsensitiveSearch) + || (valueClass != nil && containsString(valueClassLabel, filterString, NSCaseInsensitiveSearch)) + || (valueClass != nil && containsString(valueClassString, filterString, NSCaseInsensitiveSearch)) + || containsString(optionsLabel, filterString, NSCaseInsensitiveSearch) + || containsString(optionsString, filterString, NSCaseInsensitiveSearch) + || (selectedClassLabel == classLabel && ((selectedObject == objectBound && selectedLabel == objectBoundLabel) + || (selectedObject == keyPathBound && selectedLabel == keyPathBoundLabel) + || (selectedObject == value && selectedLabel == valueLabel) + || (valueClass != nil && selectedObject == valueClass && selectedLabel == valueClassLabel) + || (selectedObject == options && selectedLabel == optionsLabel))); + + if (shouldDisplayBinding) { + [self addLabel:[NSString stringWithFormat:@"Binding: %@", name] toMatrix:matrix]; + [self addObject:objectBound withLabel:objectBoundLabel toMatrix:matrix leaf:NO classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject indentationLevel:1]; + [self addObject:keyPathBound withLabel:keyPathBoundLabel toMatrix:matrix leaf:NO classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject indentationLevel:1]; + if (valueClass != nil) + [self addObject:valueClass withLabel:valueClassLabel toMatrix:matrix leaf:NO classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject indentationLevel:1]; + [self addObject:value withLabel:valueLabel toMatrix:matrix leaf:NO classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject indentationLevel:1]; + [self addObject:options withLabel:optionsLabel toMatrix:matrix leaf:NO classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject indentationLevel:1]; + [self addBlankRowToMatrix:matrix]; + } } - } - else - { - i = 0; - while (i < count && !containsString([classNames objectAtIndex:i], filterString, NSCaseInsensitiveSearch) && !(selectedObject != nil && [selectedObject class] == selectedObject && [NSStringFromClass(selectedObject) isEqualToString:[classNames objectAtIndex:i]] && [label isEqualToString:selectedLabel] && [classLabel isEqualToString:selectedClassLabel])) - i++; - if (i < count) - { - [self addLabel:label toMatrix:matrix]; - for (; i < count; i++) - { - BOOL addingSelectedObject = (selectedObject != nil && [selectedObject class] == selectedObject && [NSStringFromClass(selectedObject) isEqualToString:[classNames objectAtIndex:i]] && [label isEqualToString:selectedLabel] && [classLabel isEqualToString:selectedClassLabel]); - if (containsString([classNames objectAtIndex:i], filterString, NSCaseInsensitiveSearch) || addingSelectedObject) - { - [self addClassWithName:[classNames objectAtIndex:i] toMatrix:matrix label:label classLabel:classLabel indentationLevel:1]; - if (addingSelectedObject) - [matrix selectCellAtRow:[matrix numberOfRows]-1 column:0]; - } - } +} + +- (void)addDictionary:(NSDictionary*)d withLabel:(NSString*)label toMatrix:(NSMatrix*)matrix classLabel:(NSString*)classLabel selectedClassLabel:(NSString*)selectedClassLabel selectedLabel:(NSString*)selectedLabel selectedObject:(id)selectedObject +{ + if (d) { + NSEnumerator* enumerator = [d keyEnumerator]; + id key, value; + NSString* objectString; + NSUInteger count = [d count]; + FSObjectBrowserCell* cell; + + if (count != 0) { + if ([self hasEmptyFilterString] || containsString(label, filterString, NSCaseInsensitiveSearch)) { + [self addLabel:label toMatrix:matrix]; + + while ((key = [enumerator nextObject])) { + cell = addRowToMatrix(matrix); + + value = [d objectForKey:key]; + [cell setRepresentedObject:[FSAssociation associationWithKey:key value:value]]; + objectString = [NSString stringWithFormat:@" %@ -> %@", printStringLimited(key, 50), printStringLimited(value, 1000)]; + if ([objectString length] > 510) + objectString = [[objectString substringWithRange:NSMakeRange(0, 500)] stringByAppendingString:@" ..."]; + [cell setStringValue:objectString]; + [cell setObjectBrowserCellType:FSOBOBJECT]; + [cell setLabel:printString(key)]; + [cell setClassLabel:@""]; + if (value == selectedObject && [printString(key) isEqualToString:selectedLabel]) + [matrix selectCellAtRow:[matrix numberOfRows] - 1 column:0]; + } + } + else { + while ((key = [enumerator nextObject]) && !containsString(printString(key), filterString, NSCaseInsensitiveSearch) && !containsString(printString([d objectForKey:key]), filterString, NSCaseInsensitiveSearch) && !([d objectForKey:key] == selectedObject && [printString(key) isEqualToString:selectedLabel])) + ; + + if (key) { + [self addLabel:label toMatrix:matrix]; + while (key) { + value = [d objectForKey:key]; + BOOL addingSelectedObject = (value == selectedObject && [printString(key) isEqualToString:selectedLabel]); + if (containsString(printString(value), filterString, NSCaseInsensitiveSearch) || containsString(printString(key), filterString, NSCaseInsensitiveSearch) || addingSelectedObject) { + cell = addRowToMatrix(matrix); + + [cell setRepresentedObject:[FSAssociation associationWithKey:key value:value]]; + objectString = [NSString stringWithFormat:@" %@ -> %@", printStringLimited(key, 50), printStringLimited(value, 1000)]; + if ([objectString length] > 510) + objectString = [[objectString substringWithRange:NSMakeRange(0, 500)] stringByAppendingString:@" ..."]; + [cell setStringValue:objectString]; + [cell setObjectBrowserCellType:FSOBOBJECT]; + [cell setLabel:printString(key)]; + [cell setClassLabel:@""]; + if (addingSelectedObject) + [matrix selectCellAtRow:[matrix numberOfRows] - 1 column:0]; + } + key = [enumerator nextObject]; + } + } + } + } } - } - } - } } -- (void)addClassLabel:(NSString *)label toMatrix:(NSMatrix *)matrix color:(NSColor *)color +- (void)applyBlockAction:(id)sender { - NSBrowserCell *cell; - NSDictionary *txtDict = [NSDictionary dictionaryWithObjectsAndKeys:[NSColor whiteColor], NSForegroundColorAttributeName, color, NSBackgroundColorAttributeName, nil]; - NSMutableAttributedString *attrStr = [[[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@" %@ ", label] attributes:txtDict] autorelease]; + FSBlock* block = [sender block]; - [self addBlankRowToMatrix:matrix]; + @try { + [block compilIfNeeded]; + } + @catch (id exception) + { + NSRunAlertPanel(@"Syntax Error", FSErrorMessageFromException(exception), @"OK", nil, nil, nil); + FSInspectBlocksInCallStackForException(exception); + return; + } - //[matrix addRow]; - //cell = [matrix cellAtRow:[matrix numberOfRows]-1 column:0]; - cell = addRowToMatrix(matrix); - - [cell setLeaf:YES]; - [cell setEnabled:NO]; - [attrStr setAlignment:NSCenterTextAlignment range:NSMakeRange(0,[attrStr length])]; - [cell setAttributedStringValue:attrStr]; + if ([block isCompact]) { + [self sendMessage:[block selector] withArguments:nil]; + } + else { + FSObjectBrowserButtonCtxBlock* contextualizedBlock; + SEL messageToArgumentSelector; + + contextualizedBlock = [interpreter objectBrowserButtonCtxBlockFromString:[block printString]]; + [contextualizedBlock setMaster:block]; + + if ([contextualizedBlock argumentCount] == 0) { + FSInterpreterResult* interpreterResult = [contextualizedBlock executeWithArguments:[NSArray array]]; + + if (![interpreterResult isOK]) { + NSRunAlertPanel(@"Error", [interpreterResult errorMessage], @"OK", nil, nil, nil); + [interpreterResult inspectBlocksInCallStack]; + return; + } + } + else if ((messageToArgumentSelector = [contextualizedBlock messageToArgumentSelector]) != (SEL)0 && messageToArgumentSelector != @selector(alloc) && messageToArgumentSelector != @selector(allocWithZone:)) { + NSString* methodName = [FSCompiler stringFromSelector:messageToArgumentSelector]; + id selectedObject; + FSInterpreterResult* interpreterResult; + + if ((selectedObject = [self validSelectedObject]) == nil) { + NSBeep(); + return; + } + + [browser setDelegate:nil]; + [self selectMethodNamed:methodName]; + [browser setDelegate:self]; + + interpreterResult = [contextualizedBlock executeWithArguments:[NSArray arrayWithObject:selectedObject]]; + + if ([interpreterResult isOK]) + [self fillMatrix:[browser matrixInColumn:[browser lastColumn]] withObject:[interpreterResult result]]; + else { + NSRunAlertPanel(@"Error", [interpreterResult errorMessage], @"OK", nil, nil, nil); + [interpreterResult inspectBlocksInCallStack]; + return; + } + } + else + [self sendMessage:@selector(applyBlock:) withArguments:[FSArray arrayWithObject:contextualizedBlock]]; + } + [browser scrollColumnToVisible:[browser lastColumn]]; + [browser scrollColumnsLeftBy:1]; // Workaround for the call above to scrollColumnToVisible: not working as expected. } -- (void)addClassLabel:(NSString *)label toMatrix:(NSMatrix *)matrix +- (void)addBlankRowToMatrix:(NSMatrix*)matrix { - [self addClassLabel:label toMatrix:matrix color:[NSColor colorWithCalibratedRed:0.1 green:0.65 blue:0.12 alpha:1]]; + NSBrowserCell* cell; + //[matrix addRow]; + //cell = [matrix cellAtRow:[matrix numberOfRows]-1 column:0]; + cell = addRowToMatrix(matrix); + + [cell setLeaf:YES]; + [cell setEnabled:NO]; } -- (void)addLabel:(NSString *)label toMatrix:(NSMatrix *)matrix indentationLevel:(NSUInteger)indentationLevel +- (void)addClassWithName:(NSString*)className toMatrix:(NSMatrix*)matrix label:(NSString*)label classLabel:(NSString*)classLabel indentationLevel:(NSUInteger)indentationLevel { - NSBrowserCell *cell; - NSMutableString *cellString = [NSMutableString string]; + FSObjectBrowserCell* cell = addRowToMatrix(matrix); + NSMutableString* cellString = [NSMutableString string]; + + [cell setLabel:label]; + [cell setClassLabel:classLabel]; + + for (NSUInteger i = 0; i < indentationLevel; i++) + [cellString appendString:@" "]; - //[matrix addRow]; - //cell = [matrix cellAtRow:[matrix numberOfRows]-1 column:0]; - cell = addRowToMatrix(matrix); - - [cell setLeaf:YES]; - [cell setEnabled:NO]; - for (NSUInteger i = 0; i < indentationLevel; i++) [cellString appendString:@" "]; - [cellString appendString:label]; - [cell setStringValue:cellString]; + [cellString appendString:className]; + [cell setStringValue:cellString]; + [cell setObjectBrowserCellType:FSOBCLASS]; } -- (void)addLabel:(NSString *)label toMatrix:(NSMatrix *)matrix + +- (void)addClassesWithNames:(NSArray*)classNames withLabel:(NSString*)label toMatrix:(NSMatrix*)matrix classLabel:(NSString*)classLabel selectedClassLabel:(NSString*)selectedClassLabel selectedLabel:(NSString*)selectedLabel selectedObject:(id)selectedObject { - [self addLabel:label toMatrix:matrix indentationLevel:0]; + if (classNames) { + NSUInteger i; + NSUInteger count = [classNames count]; + + if (count != 0) { + if ([self hasEmptyFilterString] || containsString(label, filterString, NSCaseInsensitiveSearch)) { + [self addLabel:label toMatrix:matrix]; + for (i = 0; i < count; i++) { + NSString* className = [classNames objectAtIndex:i]; + [self addClassWithName:className toMatrix:matrix label:label classLabel:classLabel indentationLevel:1]; + + if (selectedObject != nil && [selectedObject class] == selectedObject && [NSStringFromClass(selectedObject) isEqualToString:className] && [label isEqualToString:selectedLabel] && [classLabel isEqualToString:selectedClassLabel]) + [matrix selectCellAtRow:[matrix numberOfRows] - 1 column:0]; + } + } + else { + i = 0; + while (i < count && !containsString([classNames objectAtIndex:i], filterString, NSCaseInsensitiveSearch) && !(selectedObject != nil && [selectedObject class] == selectedObject && [NSStringFromClass(selectedObject) isEqualToString:[classNames objectAtIndex:i]] && [label isEqualToString:selectedLabel] && [classLabel isEqualToString:selectedClassLabel])) + i++; + if (i < count) { + [self addLabel:label toMatrix:matrix]; + for (; i < count; i++) { + BOOL addingSelectedObject = (selectedObject != nil && [selectedObject class] == selectedObject && [NSStringFromClass(selectedObject) isEqualToString:[classNames objectAtIndex:i]] && [label isEqualToString:selectedLabel] && [classLabel isEqualToString:selectedClassLabel]); + if (containsString([classNames objectAtIndex:i], filterString, NSCaseInsensitiveSearch) || addingSelectedObject) { + [self addClassWithName:[classNames objectAtIndex:i] toMatrix:matrix label:label classLabel:classLabel indentationLevel:1]; + if (addingSelectedObject) + [matrix selectCellAtRow:[matrix numberOfRows] - 1 column:0]; + } + } + } + } + } + } } -- (void)addLabelAlone:(NSString *)label toMatrix:(NSMatrix *)matrix +- (void)addClassLabel:(NSString*)label toMatrix:(NSMatrix*)matrix color:(NSColor*)color { - if ( [self hasEmptyFilterString] || containsString(label, filterString, NSCaseInsensitiveSearch) ) - { - [self addLabel:label toMatrix:matrix]; - } + NSBrowserCell* cell; + NSDictionary* txtDict = [NSDictionary dictionaryWithObjectsAndKeys:[NSColor whiteColor], NSForegroundColorAttributeName, color, NSBackgroundColorAttributeName, nil]; + NSMutableAttributedString* attrStr = [[[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@" %@ ", label] attributes:txtDict] autorelease]; + + [self addBlankRowToMatrix:matrix]; + cell = addRowToMatrix(matrix); + + [cell setLeaf:YES]; + [cell setEnabled:NO]; + [attrStr setAlignment:NSCenterTextAlignment range:NSMakeRange(0, [attrStr length])]; + [cell setAttributedStringValue:attrStr]; } +- (void)addClassLabel:(NSString*)label toMatrix:(NSMatrix*)matrix +{ + [self addClassLabel:label toMatrix:matrix color:[NSColor colorWithCalibratedRed:0.1 green:0.65 blue:0.12 alpha:1]]; +} +- (void)addLabel:(NSString*)label toMatrix:(NSMatrix*)matrix indentationLevel:(NSUInteger)indentationLevel +{ + NSBrowserCell* cell; + NSMutableString* cellString = [NSMutableString string]; + + cell = addRowToMatrix(matrix); + [cell setLeaf:YES]; + [cell setEnabled:NO]; + for (NSUInteger i = 0; i < indentationLevel; i++) + [cellString appendString:@" "]; + [cellString appendString:label]; + [cell setStringValue:cellString]; +} -- (void)addObject:(id)object - toMatrix:(NSMatrix *)matrix - label:(NSString *)label - classLabel:(NSString *)classLabel - indentationLevel:(NSUInteger)indentationLevel - leaf:(BOOL)leaf -{ - FSObjectBrowserCell *cell; - NSString *objectString = printStringForObjectBrowser(object); - - cell = addRowToMatrix(matrix); - - if ([object isKindOfClass:[FSObjectBrowserNamedObjectWrapper class]]) [cell setRepresentedObject:[object object]]; - else [cell setRepresentedObject:object]; - - [cell setLabel:label]; - [cell setClassLabel:classLabel]; - if (object == nil || leaf) - { - [cell setLeaf:YES]; - } - - NSMutableString *cellString = [NSMutableString string]; - for (NSUInteger i = 0; i < indentationLevel; i++) [cellString appendString:@" "]; - [cellString appendString:objectString]; - - if ([object isKindOfClass:[FSNewlyAllocatedObjectHolder class]]) - { - NSColor *txtColor = [NSColor purpleColor]; - NSDictionary *txtDict = [NSDictionary dictionaryWithObjectsAndKeys:txtColor, NSForegroundColorAttributeName, nil]; - NSAttributedString *attrStr = [[[NSMutableAttributedString alloc] initWithString:cellString attributes:txtDict] autorelease]; - [cell setAttributedStringValue:attrStr]; - } - else - { - [cell setStringValue:cellString]; - } - [cell setObjectBrowserCellType:FSOBOBJECT]; +- (void)addLabel:(NSString*)label toMatrix:(NSMatrix*)matrix +{ + [self addLabel:label toMatrix:matrix indentationLevel:0]; } +- (void)addLabelAlone:(NSString*)label toMatrix:(NSMatrix*)matrix +{ + if ([self hasEmptyFilterString] || containsString(label, filterString, NSCaseInsensitiveSearch)) { + [self addLabel:label toMatrix:matrix]; + } +} - (void)addObject:(id)object - toMatrix:(NSMatrix *)matrix - label:(NSString *)label - classLabel:(NSString *)classLabel - indentationLevel:(NSUInteger)indentationLevel + toMatrix:(NSMatrix*)matrix + label:(NSString*)label + classLabel:(NSString*)classLabel + indentationLevel:(NSUInteger)indentationLevel + leaf:(BOOL)leaf { - [self addObject:object toMatrix:matrix label:label classLabel:classLabel indentationLevel:indentationLevel leaf:NO]; + FSObjectBrowserCell* cell; + NSString* objectString = printStringForObjectBrowser(object); + + cell = addRowToMatrix(matrix); + + if ([object isKindOfClass:[FSObjectBrowserNamedObjectWrapper class]]) + [cell setRepresentedObject:[object object]]; + else + [cell setRepresentedObject:object]; + + [cell setLabel:label]; + [cell setClassLabel:classLabel]; + if (object == nil || leaf) { + [cell setLeaf:YES]; + } + + NSMutableString* cellString = [NSMutableString string]; + for (NSUInteger i = 0; i < indentationLevel; i++) + [cellString appendString:@" "]; + [cellString appendString:objectString]; + + if ([object isKindOfClass:[FSNewlyAllocatedObjectHolder class]]) { + NSColor* txtColor = [NSColor purpleColor]; + NSDictionary* txtDict = [NSDictionary dictionaryWithObjectsAndKeys:txtColor, NSForegroundColorAttributeName, nil]; + NSAttributedString* attrStr = [[[NSMutableAttributedString alloc] initWithString:cellString attributes:txtDict] autorelease]; + [cell setAttributedStringValue:attrStr]; + } + else { + [cell setStringValue:cellString]; + } + [cell setObjectBrowserCellType:FSOBOBJECT]; } +- (void)addObject:(id)object + toMatrix:(NSMatrix*)matrix + label:(NSString*)label + classLabel:(NSString*)classLabel + indentationLevel:(NSUInteger)indentationLevel +{ + [self addObject:object toMatrix:matrix label:label classLabel:classLabel indentationLevel:indentationLevel leaf:NO]; +} + - (void)addObject:(id)object - toMatrix:(NSMatrix *)matrix - label:(NSString *)label - classLabel:(NSString *)classLabel + toMatrix:(NSMatrix*)matrix + label:(NSString*)label + classLabel:(NSString*)classLabel { - [self addObject:object toMatrix:matrix label:label classLabel:classLabel indentationLevel:1]; + [self addObject:object toMatrix:matrix label:label classLabel:classLabel indentationLevel:1]; } +- (void)addObject:(id)object + withLabel:(NSString*)label + toMatrix:(NSMatrix*)matrix + leaf:(BOOL)leaf + classLabel:(NSString*)classLabel + selectedClassLabel:(NSString*)selectedClassLabel + selectedLabel:(NSString*)selectedLabel + selectedObject:(id)selectedObject + indentationLevel:(NSUInteger)indentationLevel +{ + BOOL addingSelectedObject = (object == selectedObject && [label isEqualToString:selectedLabel] && [classLabel isEqualToString:selectedClassLabel]); + + // Note the use of printStringLimited below. We limit our matching test to the first 10000 elements for performance reasons. + if ([self hasEmptyFilterString] || containsString(label, filterString, NSCaseInsensitiveSearch) || containsString(printString(object), filterString, NSCaseInsensitiveSearch) || addingSelectedObject) { + [self addLabel:label toMatrix:matrix indentationLevel:indentationLevel]; + [self addObject:object toMatrix:matrix label:label classLabel:classLabel indentationLevel:indentationLevel + 1 leaf:leaf]; + if (addingSelectedObject) + [matrix selectCellAtRow:[matrix numberOfRows] - 1 column:0]; + } +} + - (void)addObject:(id)object - withLabel:(NSString *)label - toMatrix:(NSMatrix *)matrix - leaf:(BOOL)leaf - classLabel:(NSString *)classLabel -selectedClassLabel:(NSString *)selectedClassLabel - selectedLabel:(NSString *)selectedLabel - selectedObject:(id)selectedObject - indentationLevel:(NSUInteger)indentationLevel -{ - BOOL addingSelectedObject = (object == selectedObject && [label isEqualToString:selectedLabel] && [classLabel isEqualToString:selectedClassLabel]); - - // Note the use of printStringLimited below. We limit our matching test to the first 10000 elements for performance reasons. - // if ([self hasEmptyFilterString] || containsString(label, filterString, NSCaseInsensitiveSearch) || containsString(printStringLimited(object, 10000), filterString, NSCaseInsensitiveSearch) || addingSelectedObject) - - if ([self hasEmptyFilterString] || containsString(label, filterString, NSCaseInsensitiveSearch) || containsString(printString(object), filterString, NSCaseInsensitiveSearch) || addingSelectedObject) - { - [self addLabel:label toMatrix:matrix indentationLevel:indentationLevel]; - [self addObject:object toMatrix:matrix label:label classLabel:classLabel indentationLevel:indentationLevel+1 leaf:leaf]; - if (addingSelectedObject) - [matrix selectCellAtRow:[matrix numberOfRows]-1 column:0]; - } + withLabel:(NSString*)label + toMatrix:(NSMatrix*)matrix + classLabel:(NSString*)classLabel + selectedClassLabel:(NSString*)selectedClassLabel + selectedLabel:(NSString*)selectedLabel + selectedObject:(id)selectedObject +{ + [self addObject:object withLabel:label toMatrix:matrix leaf:NO classLabel:(NSString*)classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject indentationLevel:0]; } +- (void)addObjects:(NSArray*)objects + withLabel:(NSString*)label + toMatrix:(NSMatrix*)matrix + classLabel:(NSString*)classLabel + selectedClassLabel:(NSString*)selectedClassLabel + selectedLabel:(NSString*)selectedLabel + selectedObject:(id)selectedObject +{ + if (objects) { + NSUInteger i; + NSUInteger count = [objects count]; + + if (count != 0) { + if ([self hasEmptyFilterString] || containsString(label, filterString, NSCaseInsensitiveSearch)) { + [self addLabel:label toMatrix:matrix]; + for (i = 0; i < count; i++) { + id object = [objects objectAtIndex:i]; + [self addObject:object toMatrix:matrix label:label classLabel:classLabel]; + if (object == selectedObject && [label isEqualToString:selectedLabel] && [classLabel isEqualToString:selectedClassLabel]) + [matrix selectCellAtRow:[matrix numberOfRows] - 1 column:0]; + } + } + else { + i = 0; + while (i < count && !containsString(printString([objects objectAtIndex:i]), filterString, NSCaseInsensitiveSearch) && !([objects objectAtIndex:i] == selectedObject && [label isEqualToString:selectedLabel] && [classLabel isEqualToString:selectedClassLabel])) + i++; + if (i < count) { + [self addLabel:label toMatrix:matrix]; + for (; i < count; i++) { + BOOL addingSelectedObject = ([objects objectAtIndex:i] == selectedObject && [label isEqualToString:selectedLabel] && [classLabel isEqualToString:selectedClassLabel]); + if (containsString(printString([objects objectAtIndex:i]), filterString, NSCaseInsensitiveSearch) || addingSelectedObject) { + [self addObject:[objects objectAtIndex:i] toMatrix:matrix label:label classLabel:classLabel]; + if (addingSelectedObject) + [matrix selectCellAtRow:[matrix numberOfRows] - 1 column:0]; + } + } + } + } + } + } +} -- (void)addObject:(id)object - withLabel:(NSString *)label - toMatrix:(NSMatrix *)matrix - classLabel:(NSString *)classLabel -selectedClassLabel:(NSString *)selectedClassLabel - selectedLabel:(NSString *)selectedLabel - selectedObject:(id)selectedObject -{ - [self addObject:object withLabel:label toMatrix:matrix leaf:NO classLabel:(NSString *)classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject indentationLevel:0]; -} - - - -- (void)addObjects:(NSArray *)objects - withLabel:(NSString *)label - toMatrix:(NSMatrix *)matrix - classLabel:(NSString *)classLabel -selectedClassLabel:(NSString *)selectedClassLabel - selectedLabel:(NSString *)selectedLabel - selectedObject:(id)selectedObject -{ - if (objects) - { - NSUInteger i; - NSUInteger count = [objects count]; - - if (count != 0) - { - if ([self hasEmptyFilterString] || containsString(label, filterString, NSCaseInsensitiveSearch)) - { - [self addLabel:label toMatrix:matrix]; - for (i = 0; i < count; i++) - { - id object = [objects objectAtIndex:i]; - [self addObject:object toMatrix:matrix label:label classLabel:classLabel]; - if (object == selectedObject && [label isEqualToString:selectedLabel] && [classLabel isEqualToString:selectedClassLabel]) - [matrix selectCellAtRow:[matrix numberOfRows]-1 column:0]; +- (void)addPropertyLabel:(NSString*)label toMatrix:(NSMatrix*)matrix +{ + NSBrowserCell* cell; + NSDictionary* txtDict = [NSDictionary dictionaryWithObjectsAndKeys:[NSColor whiteColor], NSForegroundColorAttributeName, [NSColor redColor], NSBackgroundColorAttributeName, nil]; + NSMutableAttributedString* attrStr = [[[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@" %@ ", label] attributes:txtDict] autorelease]; + + [self addBlankRowToMatrix:matrix]; + cell = addRowToMatrix(matrix); + + [cell setLeaf:YES]; + [cell setEnabled:NO]; + [attrStr setAlignment:NSCenterTextAlignment range:NSMakeRange(0, [attrStr length])]; + [cell setAttributedStringValue:attrStr]; +} + +- (IBAction)browseAction:(id)sender +{ + [interpreter browse:[self selectedObject]]; +} + +- (void)browser:(NSBrowser*)sender createRowsForColumn:(NSInteger)column inMatrix:(NSMatrix*)matrix // We are our own delegate +{ + [matrixes addObject:matrix]; + + if (column == 0) { + switch (browsingMode) { + case FSBrowsingWorkspace: + [self fillMatrixForWorkspaceBrowsing:matrix]; + break; + case FSBrowsingClasses: + [self fillMatrixForClassesBrowsing:matrix]; + break; + case FSBrowsingObject: + [self fillMatrix:matrix withObject:rootObject]; + break; + case FSBrowsingNothing: + break; + } } - } - else - { - i = 0; - while (i < count && !containsString(printString([objects objectAtIndex:i]), filterString, NSCaseInsensitiveSearch) && !([objects objectAtIndex:i] == selectedObject && [label isEqualToString:selectedLabel] && [classLabel isEqualToString:selectedClassLabel])) - i++; - if (i < count) - { - [self addLabel:label toMatrix:matrix]; - for (; i < count; i++) - { - BOOL addingSelectedObject = ([objects objectAtIndex:i] == selectedObject && [label isEqualToString:selectedLabel] && [classLabel isEqualToString:selectedClassLabel]); - if (containsString(printString([objects objectAtIndex:i]), filterString, NSCaseInsensitiveSearch) || addingSelectedObject) - { - [self addObject:[objects objectAtIndex:i] toMatrix:matrix label:label classLabel:classLabel]; - if (addingSelectedObject) - [matrix selectCellAtRow:[matrix numberOfRows]-1 column:0]; - } - } + else if ([[browser selectedCell] objectBrowserCellType] == FSOBOBJECT || [[browser selectedCell] objectBrowserCellType] == FSOBCLASS) { + [self fillMatrix:matrix withObject:[[browser selectedCell] representedObject]]; } - } - } - } -} - -- (void)addPropertyLabel:(NSString *)label toMatrix:(NSMatrix *)matrix -{ - NSBrowserCell *cell; - NSDictionary *txtDict = [NSDictionary dictionaryWithObjectsAndKeys:[NSColor whiteColor], NSForegroundColorAttributeName, [NSColor redColor], NSBackgroundColorAttributeName, nil]; - NSMutableAttributedString *attrStr = [[[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@" %@ ", label] attributes:txtDict] autorelease]; - - [self addBlankRowToMatrix:matrix]; - //[matrix addRow]; - //cell = [matrix cellAtRow:[matrix numberOfRows]-1 column:0]; - cell = addRowToMatrix(matrix); - - [cell setLeaf:YES]; - [cell setEnabled:NO]; - [attrStr setAlignment:NSCenterTextAlignment range:NSMakeRange(0,[attrStr length])]; - [cell setAttributedStringValue:attrStr]; -} - -- (IBAction)browseAction:(id)sender -{ - [interpreter browse:[self selectedObject]]; -} - -- (void)browser:(NSBrowser *)sender createRowsForColumn:(NSInteger)column inMatrix:(NSMatrix *)matrix // We are our own delegate -{ - [matrixes addObject:matrix]; - - if (column == 0) - { - switch (browsingMode) - { - case FSBrowsingWorkspace: [self fillMatrixForWorkspaceBrowsing:matrix]; break; - case FSBrowsingClasses: [self fillMatrixForClassesBrowsing:matrix]; break; - case FSBrowsingObject: [self fillMatrix:matrix withObject:rootObject]; break; - case FSBrowsingNothing: break; - } - } - else if ( [[browser selectedCell] objectBrowserCellType] == FSOBOBJECT || [[browser selectedCell] objectBrowserCellType] == FSOBCLASS) - { - [self fillMatrix:matrix withObject:[[browser selectedCell] representedObject]]; - // if ([browser selectedRowInColumn:[browser selectedColumn]] != 0 && (column != 1 || browsingMode == FSBrowsingObject)) [self performSelector:@selector(selfAction:) withObject:nil afterDelay:0]; - } - /*else if ([[browser selectedCell] objectBrowserCellType] == PROPERTY) - { - id selectedObject = [self selectedObject]; - [self sendMessageTo:selectedObject selectorString:@"valueForKey:" arguments:[NSArray arrayWithObject:[[browser selectedCell] stringValue]] putResultInMatrix:matrix]; - }*/ - else - { - NSString *selectedString = [[browser selectedCell] stringValue]; - - SEL selector = [FSCompiler selectorFromString:selectedString]; - NSArray *selectorComponents = [NSStringFromSelector(selector) componentsSeparatedByString:@":"]; - NSInteger nbarg = [selectorComponents count]-1; - id selectedObject = [self selectedObject]; - FSMsgContext *msgContext = [[[FSMsgContext alloc] init] autorelease]; - NSInteger unsupportedArgumentIndex; - - if ([selectedObject isKindOfClass:[FSNewlyAllocatedObjectHolder class]]) selectedObject = [selectedObject object]; - - [msgContext prepareForMessageWithReceiver:selectedObject selector:[FSCompiler selectorFromString:selectedString]]; - unsupportedArgumentIndex = [msgContext unsuportedArgumentIndex]; - - if (unsupportedArgumentIndex != -1) - { - NSString *errorString = [NSString stringWithFormat:@"Can't invoke method: the type expected for argument %ld is not supported by F-Script.", (long)unsupportedArgumentIndex+1]; - NSRunAlertPanel(@"Sorry", errorString, @"OK", nil, nil,nil); - return; - } - else if ([msgContext unsuportedReturnType]) - { - NSString *errorString = [NSString stringWithFormat:@"Can't invoke method: return type not supported by F-Script."]; - NSRunAlertPanel(@"Sorry", errorString, @"OK", nil, nil,nil); - return; - } - else if (nbarg == 0) - { - // NSBrowserCell *cell; - [self sendMessageTo:selectedObject selectorString:selectedString arguments:[NSArray array] putResultInMatrix:matrix]; - - /*if (cell = [matrix cellAtRow:0 column:0]) - { - [self performSelector:@selector(setTitleOfLastColumn:) withObject:printString([[cell representedObject] classOrMetaclass]) afterDelay:0]; - // We do this because at the time tis method is called, the new column is not yet created. - // Hence the need to delay the setTitle. - } */ - } - else - { - NSInteger i; - NSInteger baseWidth = 530; - NSInteger baseHeight = nbarg*(userFixedPitchFontSize()+17)+75; - NSButton *sendButton; - NSButton *cancelButton; - NSForm *f; - NSWindow *argumentsWindow; - NSMethodSignature *signature = [selectedObject methodSignatureForSelector:selector]; - - argumentsWindow = [[ArgumentsWindow alloc] initWithContentRect:NSMakeRect(100,100,baseWidth,baseHeight) styleMask:NSResizableWindowMask backing:NSBackingStoreBuffered defer:NO]; - [argumentsWindow setMinSize:NSMakeSize(240,baseHeight+22)]; - [argumentsWindow setMaxSize:NSMakeSize(1400,baseHeight+22)]; - - f = [[[NSForm alloc] initWithFrame:NSMakeRect(20,60,baseWidth-40,baseHeight-80)] autorelease]; - [f setAutoresizingMask:NSViewWidthSizable]; - [f setInterlineSpacing:8]; - [[argumentsWindow contentView] addSubview:f]; // The form must be the first subview - // (this is used by method sendMessageAction:) - [argumentsWindow setInitialFirstResponder:f]; - - sendButton = [[[NSButton alloc] initWithFrame:NSMakeRect(baseWidth/2,13,125,30)] autorelease]; - [sendButton setBezelStyle:1]; - [sendButton setTitle:@"Send Message"]; - [sendButton setAction:@selector(sendMessageAction:)]; - [sendButton setTarget:self]; - [sendButton setKeyEquivalent:@"\r"]; - [[argumentsWindow contentView] addSubview:sendButton]; - - cancelButton = [[[NSButton alloc] initWithFrame:NSMakeRect(baseWidth/2-95,13,95,30)] autorelease]; - [cancelButton setBezelStyle:1]; - [cancelButton setTitle:@"Cancel"]; - [cancelButton setAction:@selector(cancelArgumentsSheetAction:)]; - [cancelButton setTarget:self]; - [cancelButton setKeyEquivalent:@"\e"]; - [[argumentsWindow contentView] addSubview:cancelButton]; - - if (nbarg == 1 && [[selectorComponents objectAtIndex:0] hasPrefix:@"operator_"]) - { - const char *type = [signature getArgumentTypeAtIndex:2]; - NSString *typeDescription = humanReadableFScriptTypeDescriptionFromEncodedObjCType(type); - NSString *template = FScriptObjectTemplateForEncodedObjCType(type); - - if ([typeDescription length] > 0) typeDescription = [[@"(" stringByAppendingString:typeDescription] stringByAppendingString:@")"]; - - [f addEntry:[[selectedString stringByAppendingString:@" "] stringByAppendingString:typeDescription]]; - [[f cellAtIndex:0] setStringValue:template]; - } - else - for (i = 0; i < nbarg; i++) - { - const char *type = [signature getArgumentTypeAtIndex:i+2]; - NSString *typeDescription = humanReadableFScriptTypeDescriptionFromEncodedObjCType(type); - NSString *template = FScriptObjectTemplateForEncodedObjCType(type); - - if ([typeDescription length] > 0) typeDescription = [[@"(" stringByAppendingString:typeDescription] stringByAppendingString:@")"]; - - [f addEntry:[[[selectorComponents objectAtIndex:i] stringByAppendingString:@":"] stringByAppendingString:typeDescription]]; - [[f cellAtIndex:i] setStringValue:template]; + else { + NSString* selectedString = [[browser selectedCell] stringValue]; + + SEL selector = [FSCompiler selectorFromString:selectedString]; + NSArray* selectorComponents = [NSStringFromSelector(selector) componentsSeparatedByString:@":"]; + NSInteger nbarg = [selectorComponents count] - 1; + id selectedObject = [self selectedObject]; + FSMsgContext* msgContext = [[[FSMsgContext alloc] init] autorelease]; + NSInteger unsupportedArgumentIndex; + + if ([selectedObject isKindOfClass:[FSNewlyAllocatedObjectHolder class]]) + selectedObject = [selectedObject object]; + + [msgContext prepareForMessageWithReceiver:selectedObject selector:[FSCompiler selectorFromString:selectedString]]; + unsupportedArgumentIndex = [msgContext unsuportedArgumentIndex]; + + if (unsupportedArgumentIndex != -1) { + NSString* errorString = [NSString stringWithFormat:@"Can't invoke method: the type expected for argument %ld is not supported by F-Script.", (long)unsupportedArgumentIndex + 1]; + NSRunAlertPanel(@"Sorry", errorString, @"OK", nil, nil, nil); + return; + } + else if ([msgContext unsuportedReturnType]) { + NSString* errorString = [NSString stringWithFormat:@"Can't invoke method: return type not supported by F-Script."]; + NSRunAlertPanel(@"Sorry", errorString, @"OK", nil, nil, nil); + return; + } + else if (nbarg == 0) { + [self sendMessageTo:selectedObject selectorString:selectedString arguments:(FSArray*)[NSArray array] putResultInMatrix:matrix]; + } + else { + NSInteger i; + NSInteger baseWidth = 530; + NSInteger baseHeight = nbarg * (userFixedPitchFontSize() + 17) + 75; + NSButton* sendButton; + NSButton* cancelButton; + NSForm* f; + NSWindow* argumentsWindow; + NSMethodSignature* signature = [selectedObject methodSignatureForSelector:selector]; + + argumentsWindow = [[ArgumentsWindow alloc] initWithContentRect:NSMakeRect(100, 100, baseWidth, baseHeight) styleMask:NSResizableWindowMask backing:NSBackingStoreBuffered defer:NO]; + [argumentsWindow setMinSize:NSMakeSize(240, baseHeight + 22)]; + [argumentsWindow setMaxSize:NSMakeSize(1400, baseHeight + 22)]; + + f = [[[NSForm alloc] initWithFrame:NSMakeRect(20, 60, baseWidth - 40, baseHeight - 80)] autorelease]; + [f setAutoresizingMask:NSViewWidthSizable]; + [f setInterlineSpacing:8]; + [[argumentsWindow contentView] addSubview:f]; // The form must be the first subview + // (this is used by method sendMessageAction:) + [argumentsWindow setInitialFirstResponder:f]; + + sendButton = [[[NSButton alloc] initWithFrame:NSMakeRect(baseWidth / 2, 13, 125, 30)] autorelease]; + [sendButton setBezelStyle:1]; + [sendButton setTitle:@"Send Message"]; + [sendButton setAction:@selector(sendMessageAction:)]; + [sendButton setTarget:self]; + [sendButton setKeyEquivalent:@"\r"]; + [[argumentsWindow contentView] addSubview:sendButton]; + + cancelButton = [[[NSButton alloc] initWithFrame:NSMakeRect(baseWidth / 2 - 95, 13, 95, 30)] autorelease]; + [cancelButton setBezelStyle:1]; + [cancelButton setTitle:@"Cancel"]; + [cancelButton setAction:@selector(cancelArgumentsSheetAction:)]; + [cancelButton setTarget:self]; + [cancelButton setKeyEquivalent:@"\e"]; + [[argumentsWindow contentView] addSubview:cancelButton]; + + if (nbarg == 1 && [[selectorComponents objectAtIndex:0] hasPrefix:@"operator_"]) { + const char* type = [signature getArgumentTypeAtIndex:2]; + NSString* typeDescription = humanReadableFScriptTypeDescriptionFromEncodedObjCType(type); + NSString* template = FScriptObjectTemplateForEncodedObjCType(type); + + if ([typeDescription length] > 0) + typeDescription = [[@"(" stringByAppendingString:typeDescription] stringByAppendingString:@")"]; + + [f addEntry:[[selectedString stringByAppendingString:@" "] stringByAppendingString:typeDescription]]; + [[f cellAtIndex:0] setStringValue:template]; + } + else + for (i = 0; i < nbarg; i++) { + const char* type = [signature getArgumentTypeAtIndex:i + 2]; + NSString* typeDescription = humanReadableFScriptTypeDescriptionFromEncodedObjCType(type); + NSString* template = FScriptObjectTemplateForEncodedObjCType(type); + + if ([typeDescription length] > 0) + typeDescription = [[@"(" stringByAppendingString:typeDescription] stringByAppendingString:@")"]; + + [f addEntry:[[[selectorComponents objectAtIndex:i] stringByAppendingString:@":"] stringByAppendingString:typeDescription]]; + [[f cellAtIndex:i] setStringValue:template]; + } + + [f setTextFont:[NSFont userFixedPitchFontOfSize:userFixedPitchFontSize()]]; + [f setTitleFont:[NSFont systemFontOfSize:systemFontSize()]]; + + [f setAutosizesCells:YES]; + [f setTarget:sendButton]; + [f setAction:@selector(performClick:)]; + [f selectTextAtIndex:0]; + + [NSApp beginSheet:argumentsWindow modalForWindow:[self window] modalDelegate:self didEndSelector:NULL contextInfo:NULL]; + } } - - [f setTextFont:[NSFont userFixedPitchFontOfSize:userFixedPitchFontSize()]]; - [f setTitleFont:[NSFont systemFontOfSize:systemFontSize()]]; - - [f setAutosizesCells:YES]; - [f setTarget:sendButton]; - [f setAction:@selector(performClick:)]; - [f selectTextAtIndex:0]; - - [NSApp beginSheet:argumentsWindow modalForWindow:[self window] modalDelegate:self didEndSelector:NULL contextInfo:NULL]; - } - } - [browser tile]; + [browser tile]; } -- (void) browseNothing +- (void)browseNothing { - browsingMode = FSBrowsingNothing; - [rootObject release]; - rootObject = nil; - [browser loadColumnZero]; + browsingMode = FSBrowsingNothing; + [rootObject release]; + rootObject = nil; + [browser loadColumnZero]; } -- (void) browseWorkspace +- (void)browseWorkspace { - browsingMode = FSBrowsingWorkspace; - [rootObject release]; - rootObject = nil; - [browser loadColumnZero]; + browsingMode = FSBrowsingWorkspace; + [rootObject release]; + rootObject = nil; + [browser loadColumnZero]; } -- (void) cancelArgumentsSheetAction:(id)sender +- (void)cancelArgumentsSheetAction:(id)sender { - [NSApp endSheet:[sender window]]; - [[sender window] close]; - [[browser matrixInColumn:[browser lastColumn]-1] deselectAllCells]; + [NSApp endSheet:[sender window]]; + [[sender window] close]; + [[browser matrixInColumn:[browser lastColumn] - 1] deselectAllCells]; } -- (void) cancelNameSheetAction:(id)sender +- (void)cancelNameSheetAction:(id)sender { - [NSApp endSheet:[sender window]]; - [[sender window] close]; + [NSApp endSheet:[sender window]]; + [[sender window] close]; } -- (void) classesAction:(id)sender +- (void)classesAction:(id)sender { - browsingMode = FSBrowsingClasses; - [rootObject release]; - rootObject = nil; - [browser loadColumnZero]; + browsingMode = FSBrowsingClasses; + [rootObject release]; + rootObject = nil; + [browser loadColumnZero]; } -- (void) dealloc +- (void)dealloc { - // NSLog(@"FSObjectBrowserView dealloc"); - - [matrixes release]; - [rootObject release]; - [interpreter release]; - [browser release]; - [bottomBarTextDisplay release]; - [filterString release]; - [super dealloc]; + // NSLog(@"FSObjectBrowserView dealloc"); + + [matrixes release]; + [rootObject release]; + [interpreter release]; + [browser release]; + [bottomBarTextDisplay release]; + [filterString release]; + [super dealloc]; } -- (void) doubleClickAction:(id)sender +- (void)doubleClickAction:(id)sender { - enum FSObjectBrowserCellType cellType = [[browser selectedCell] objectBrowserCellType]; - if (cellType == FSOBOBJECT || cellType == FSOBCLASS) [self inspectAction:sender]; + enum FSObjectBrowserCellType cellType = [[browser selectedCell] objectBrowserCellType]; + if (cellType == FSOBOBJECT || cellType == FSOBCLASS) + [self inspectAction:sender]; } - (void)fillMatrixForClassesBrowsing:(NSMatrix*)matrix { - FSArray *classNames = allClassNames(); - NSUInteger count = [classNames count]; - FSObjectBrowserCell *cell; - FSObjectBrowserCell *selectedCell = [[[matrix selectedCell] retain] autorelease]; // retain and autorelease in order to avoid premature deallocation as a side effect of the removing of rows - NSString *selectedObjectName = [selectedCell objectBrowserCellType] == FSOBCLASS ? [selectedCell stringValue] : nil ; - - [classNames sortUsingFunction:FSCompareClassNamesForAlphabeticalOrder context:NULL]; - - // for (int i = [matrix numberOfRows]-1; i >= 0; i--) [matrix removeRow:i]; // Remove all rows. As a side effect, this will supress the selection. - [matrix renewRows:0 columns:1]; - - for (NSInteger i = 0; i < count; i++) - { - NSString *className = [classNames objectAtIndex:i]; - if ([self hasEmptyFilterString] || containsString(className, filterString, NSCaseInsensitiveSearch) || (selectedObjectName != nil && [className isEqualToString:selectedObjectName])) - { - cell = addRowToMatrix(matrix); - - [cell setStringValue:className]; - [cell setObjectBrowserCellType:FSOBCLASS]; - if (selectedObjectName != nil && [className isEqualToString:selectedObjectName]) - [matrix selectCellAtRow:[matrix numberOfRows]-1 column:0]; - } - } - [matrix sizeToCells]; // The NSMatrix doc advise to do that after calling addRow - [matrix scrollCellToVisibleAtRow:[matrix selectedRow] column:0]; - [matrix setNeedsDisplay]; // The NSMatrix doc advise to do that after calling addRow -} - -- (void)fillMatrixForWorkspaceBrowsing:(NSMatrix*)matrix -{ - NSArray *identifiers = [interpreter identifiers]; - NSUInteger count = [identifiers count]; - FSObjectBrowserCell *cell; - NSString *cellString; - id object; - FSObjectBrowserCell *selectedCell = [[[matrix selectedCell] retain] autorelease]; // retain and autorelease in order to avoid premature deallocation as a side effect of the removing of rows - NSString *selectedLabel = [[[selectedCell label] copy] autorelease]; // copy and autorelease in order to avoid prmature invalidation as a side effect of the removing of rows - id selectedObject = [selectedCell representedObject]; - - //for (int i = [matrix numberOfRows]-1; i >= 0; i--) [matrix removeRow:i]; // Remove all rows. As a side effect, this will supress the selection. - [matrix renewRows:0 columns:1]; - - for (NSInteger i = 0; i < count; i++) - { - NSString *identifier = [identifiers objectAtIndex:i]; - object = [interpreter objectForIdentifier:identifier found:NULL]; - NSString *objectPrintString = printStringForObjectBrowser(object); - if ([self hasEmptyFilterString] || containsString(identifier, filterString, NSCaseInsensitiveSearch) || containsString(objectPrintString, filterString, NSCaseInsensitiveSearch) || (object == selectedObject && [identifier isEqualToString:selectedLabel])) - { - //[matrix addRow]; - //cell = [matrix cellAtRow:[matrix numberOfRows]-1 column:0]; - cell = addRowToMatrix(matrix); - - [cell setRepresentedObject:object]; - if (object == nil) [cell setLeaf:YES]; - cellString = [NSString stringWithFormat:@"%@ = %@",identifier,objectPrintString]; - [cell setStringValue:cellString]; - [cell setObjectBrowserCellType:FSOBOBJECT]; - [cell setLabel:identifier]; - if (object == selectedObject && [identifier isEqualToString:selectedLabel]) - [matrix selectCellAtRow:[matrix numberOfRows]-1 column:0]; - } - } - - [matrix sizeToCells]; // The NSMatrix doc advise to do that after calling addRow - [matrix scrollCellToVisibleAtRow:[matrix selectedRow] column:0]; - [matrix setNeedsDisplay]; // The NSMatrix doc advise to do that after calling addRow -} - -- (void)fillMatrix:(NSMatrix *)matrix withMethod:(NSString *)method -{ - //[matrix addRow]; - //FSObjectBrowserCell *cell = [matrix cellAtRow:[matrix numberOfRows]-1 column:0]; - FSObjectBrowserCell *cell = addRowToMatrix(matrix); - - [cell setStringValue:method]; - [cell setObjectBrowserCellType:FSOBMETHOD]; -} - -/*- (void) fillMatrix:(NSMatrix *)matrix withMethodsAndPropertiesForObject:(id)object -{ - BOOL isHolder = NO; - - @try - { - if ([object isKindOfClass:[NewlyAllocatedObjectHolder class]]) isHolder = YES; - } - @catch (id exception) - { - // An exception may happend if the object is invalid (i.e. an invalid proxy) - NSBeep(); - return; - } - - if (isHolder) - { - object = [object object]; - [self fillMatrix:matrix withMethodsForObject:object]; - } - else - { - [self fillMatrix:matrix withPropertiesForObject:object]; - [self fillMatrix:matrix withMethodsForObject:object]; - } -} */ - -- (void)fillMatrix:(NSMatrix *)matrix withMethodsForObject:(id)object -{ - id cls; - BOOL doNotShowSelectorsStartingWithUnderscore = [[NSUserDefaults standardUserDefaults] boolForKey:@"FScriptDoNotShowSelectorsStartingWithUnderscore"]; - BOOL doNotShowSelectorsStartingWithAccessibility = [[NSUserDefaults standardUserDefaults] boolForKey:@"FScriptDoNotShowSelectorsStartingWithAccessibility"]; - BOOL isHolder = NO; - - @try - { - if ([object isKindOfClass:[FSNewlyAllocatedObjectHolder class]]) isHolder = YES; - } - @catch (id exception) - { - // An exception may happend if the object is invalid (i.e. an invalid proxy) - NSBeep(); - return; - } - - if (isHolder) object = [object object]; - - if (isKindOfClassNSProxy(object) && object != [object class]) // the second condition is used because NSProxy is instance of itself and thus the isKindOfClassNSProxy() function returns YES even for the classes in the NSProxy hierarchy - { - // We try to get the class of the real object - NSString *realObjectClassName = nil; - - @try - { - realObjectClassName = [object className]; - // HACK: className is a method implemented by NSObject, but not by NSProxy. - // Thus, this method should be forwarded to the real object. - // We do this inside an exception handler because the call to className may raise - // (for instance, if the real object is not in the NSObject hierarchy and does not responds to className, - // or if there is a communication problem during the distributed object call) - - cls = NSClassFromString(realObjectClassName); - } - @catch (id exception) - { - cls = nil; - } - - if (cls == nil) - { - if (realObjectClassName) NSBeginInformationalAlertSheet(@"Method list not available", @"OK", nil, nil, [self window], nil, NULL, NULL, NULL, @"Sorry, the method list for this object is not available. The class of the object (i.e. %@) is not loaded in the current application.", realObjectClassName); - else NSBeginInformationalAlertSheet(@"Method list not available", @"OK", nil, nil, [self window], nil, NULL, NULL, NULL, @"Sorry, the method list for this object is not available."); - } - } - else cls = [object classOrMetaclass]; - - while (cls) - { - NSInteger i,nb; - FSObjectBrowserCell *cell; - NSMutableArray *selectorStrings = [NSMutableArray arrayWithCapacity:400]; - NSDictionary *txtDict = [NSDictionary dictionaryWithObjectsAndKeys:[NSColor whiteColor], NSForegroundColorAttributeName, [NSColor blueColor], NSBackgroundColorAttributeName, nil]; - NSMutableAttributedString *attrStr = [[[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@" %@ Methods ", [cls printString]] attributes:txtDict] autorelease]; - [attrStr setAlignment:NSCenterTextAlignment range:NSMakeRange(0,[attrStr length])]; - - cell = addRowToMatrix(matrix); - - [cell setLeaf:YES]; - [cell setEnabled:NO]; - [cell setAttributedStringValue:attrStr]; - + FSArray* classNames = allClassNames(); + NSUInteger count = [classNames count]; + FSObjectBrowserCell* cell; + FSObjectBrowserCell* selectedCell = [[[matrix selectedCell] retain] autorelease]; // retain and autorelease in order to avoid premature deallocation as a side effect of the removing of rows + NSString* selectedObjectName = [selectedCell objectBrowserCellType] == FSOBCLASS ? [selectedCell stringValue] : nil; + + [classNames sortUsingFunction:FSCompareClassNamesForAlphabeticalOrder context:NULL]; + + [matrix renewRows:0 columns:1]; + + for (NSInteger i = 0; i < count; i++) { + NSString* className = [classNames objectAtIndex:i]; + if ([self hasEmptyFilterString] || containsString(className, filterString, NSCaseInsensitiveSearch) || (selectedObjectName != nil && [className isEqualToString:selectedObjectName])) { + cell = addRowToMatrix(matrix); + + [cell setStringValue:className]; + [cell setObjectBrowserCellType:FSOBCLASS]; + if (selectedObjectName != nil && [className isEqualToString:selectedObjectName]) + [matrix selectCellAtRow:[matrix numberOfRows] - 1 column:0]; + } + } + [matrix sizeToCells]; // The NSMatrix doc advise to do that after calling addRow + [matrix scrollCellToVisibleAtRow:[matrix selectedRow] column:0]; + [matrix setNeedsDisplay]; // The NSMatrix doc advise to do that after calling addRow +} + +- (void)fillMatrixForWorkspaceBrowsing:(NSMatrix*)matrix +{ + NSArray* identifiers = [interpreter identifiers]; + NSUInteger count = [identifiers count]; + FSObjectBrowserCell* cell; + NSString* cellString; + id object; + FSObjectBrowserCell* selectedCell = [[[matrix selectedCell] retain] autorelease]; // retain and autorelease in order to avoid premature deallocation as a side effect of the removing of rows + NSString* selectedLabel = [[[selectedCell label] copy] autorelease]; // copy and autorelease in order to avoid prmature invalidation as a side effect of the removing of rows + id selectedObject = [selectedCell representedObject]; + + [matrix renewRows:0 columns:1]; + + for (NSInteger i = 0; i < count; i++) { + NSString* identifier = [identifiers objectAtIndex:i]; + object = [interpreter objectForIdentifier:identifier found:NULL]; + NSString* objectPrintString = printStringForObjectBrowser(object); + if ([self hasEmptyFilterString] || containsString(identifier, filterString, NSCaseInsensitiveSearch) || containsString(objectPrintString, filterString, NSCaseInsensitiveSearch) || (object == selectedObject && [identifier isEqualToString:selectedLabel])) { + //[matrix addRow]; + //cell = [matrix cellAtRow:[matrix numberOfRows]-1 column:0]; + cell = addRowToMatrix(matrix); + + [cell setRepresentedObject:object]; + if (object == nil) + [cell setLeaf:YES]; + cellString = [NSString stringWithFormat:@"%@ = %@", identifier, objectPrintString]; + [cell setStringValue:cellString]; + [cell setObjectBrowserCellType:FSOBOBJECT]; + [cell setLabel:identifier]; + if (object == selectedObject && [identifier isEqualToString:selectedLabel]) + [matrix selectCellAtRow:[matrix numberOfRows] - 1 column:0]; + } + } + + [matrix sizeToCells]; // The NSMatrix doc advise to do that after calling addRow + [matrix scrollCellToVisibleAtRow:[matrix selectedRow] column:0]; + [matrix setNeedsDisplay]; // The NSMatrix doc advise to do that after calling addRow +} + +- (void)fillMatrix:(NSMatrix*)matrix withMethod:(NSString*)method +{ + //[matrix addRow]; + FSObjectBrowserCell* cell = addRowToMatrix(matrix); + + [cell setStringValue:method]; + [cell setObjectBrowserCellType:FSOBMETHOD]; +} + + +- (void)fillMatrix:(NSMatrix*)matrix withMethodsForObject:(id)object +{ + id cls; + BOOL doNotShowSelectorsStartingWithUnderscore = [[NSUserDefaults standardUserDefaults] boolForKey:@"FScriptDoNotShowSelectorsStartingWithUnderscore"]; + BOOL doNotShowSelectorsStartingWithAccessibility = [[NSUserDefaults standardUserDefaults] boolForKey:@"FScriptDoNotShowSelectorsStartingWithAccessibility"]; + BOOL isHolder = NO; + + @try { + if ([object isKindOfClass:[FSNewlyAllocatedObjectHolder class]]) + isHolder = YES; + } + @catch (id exception) + { + // An exception may happend if the object is invalid (i.e. an invalid proxy) + NSBeep(); + return; + } + + if (isHolder) + object = [object object]; + + if (isKindOfClassNSProxy(object) && object != [object class]) // the second condition is used because NSProxy is instance of itself and thus the isKindOfClassNSProxy() function returns YES even for the classes in the NSProxy hierarchy + { + // We try to get the class of the real object + NSString* realObjectClassName = nil; + + @try { + realObjectClassName = [object className]; + // HACK: className is a method implemented by NSObject, but not by NSProxy. + // Thus, this method should be forwarded to the real object. + // We do this inside an exception handler because the call to className may raise + // (for instance, if the real object is not in the NSObject hierarchy and does not responds to className, + // or if there is a communication problem during the distributed object call) + + cls = NSClassFromString(realObjectClassName); + } + @catch (id exception) + { + cls = nil; + } + + if (cls == nil) { + if (realObjectClassName) + NSBeginInformationalAlertSheet(@"Method list not available", @"OK", nil, nil, [self window], nil, NULL, NULL, NULL, @"Sorry, the method list for this object is not available. The class of the object (i.e. %@) is not loaded in the current application.", realObjectClassName); + else + NSBeginInformationalAlertSheet(@"Method list not available", @"OK", nil, nil, [self window], nil, NULL, NULL, NULL, @"Sorry, the method list for this object is not available."); + } + } + else + cls = [object classOrMetaclass]; + + while (cls) { + NSInteger i, nb; + FSObjectBrowserCell* cell; + NSMutableArray* selectorStrings = [NSMutableArray arrayWithCapacity:400]; + NSDictionary* txtDict = [NSDictionary dictionaryWithObjectsAndKeys:[NSColor whiteColor], NSForegroundColorAttributeName, [NSColor blueColor], NSBackgroundColorAttributeName, nil]; + NSMutableAttributedString* attrStr = [[[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@" %@ Methods ", [cls printString]] attributes:txtDict] autorelease]; + [attrStr setAlignment:NSCenterTextAlignment range:NSMakeRange(0, [attrStr length])]; + + cell = addRowToMatrix(matrix); + + [cell setLeaf:YES]; + [cell setEnabled:NO]; + [cell setAttributedStringValue:attrStr]; + #ifdef __LP64__ - unsigned methodCount; - Method *methods = class_copyMethodList(cls, &methodCount); - - for (i = 0; i < methodCount; i++) - { - NSString *methodName = [FSCompiler stringFromSelector:method_getName(methods[i])]; - if ( ([self hasEmptyFilterString] || containsString(methodName, filterString, NSCaseInsensitiveSearch)) - && (!doNotShowSelectorsStartingWithUnderscore || ![methodName hasPrefix:@"_"]) - && (!doNotShowSelectorsStartingWithAccessibility || ![methodName hasPrefix:@"accessibility"]) - && (![methodName isEqualToString:@""]) - && (![methodName hasPrefix:@"__F-ScriptGeneratedStub"]) - ) - [selectorStrings addObject:methodName]; - } - free(methods); + unsigned methodCount; + Method* methods = class_copyMethodList(cls, &methodCount); + + for (i = 0; i < methodCount; i++) { + NSString* methodName = [FSCompiler stringFromSelector:method_getName(methods[i])]; + if (([self hasEmptyFilterString] || containsString(methodName, filterString, NSCaseInsensitiveSearch)) + && (!doNotShowSelectorsStartingWithUnderscore || ![methodName hasPrefix:@"_"]) + && (!doNotShowSelectorsStartingWithAccessibility || ![methodName hasPrefix:@"accessibility"]) + && (![methodName isEqualToString:@""]) + && (![methodName hasPrefix:@"__F-ScriptGeneratedStub"])) + [selectorStrings addObject:methodName]; + } + free(methods); #else - struct objc_method_list *mlist; - void *iterator = 0; - - while ( (mlist = class_nextMethodList( cls, &iterator )) ) - { - for (i = 0; i < mlist->method_count; i++) - { - NSString *methodName = [FSCompiler stringFromSelector:mlist->method_list[i].method_name]; - if ( ([self hasEmptyFilterString] || containsString(methodName, filterString, NSCaseInsensitiveSearch)) - && (!doNotShowSelectorsStartingWithUnderscore || ![methodName hasPrefix:@"_"]) - && (!doNotShowSelectorsStartingWithAccessibility || ![methodName hasPrefix:@"accessibility"]) - && (![methodName isEqualToString:@""]) - && (![methodName hasPrefix:@"__F-ScriptGeneratedStub"]) - ) - [selectorStrings addObject:methodName]; - } - } -#endif - - [selectorStrings sortUsingFunction:FSCompareMethodsNamesForAlphabeticalOrder context:NULL]; - - for (i = 0, nb = [selectorStrings count]; i < nb; i++) [self fillMatrix:matrix withMethod:[selectorStrings objectAtIndex:i]]; - - if (cls == [cls superclass]) // The NSProxy class return itself when asked for its superclass. - // This would result in an infinite loop. This test work around this. - cls = nil; - else - cls = [cls superclass]; // TODO : test if it works ok now (see comment below) - // cls = ((struct {struct objc_class *isa; struct objc_class *super_class;}*)cls)->super_class; - // This direct access technique is used instead of the -superclass method because this method is broken in the NSProxy hierarchy (does not return the "real" superclass) (Mac OS X 10.1.2). - - if (cls) [self addBlankRowToMatrix:matrix]; - } + struct objc_method_list* mlist; + void* iterator = 0; + + while ((mlist = class_nextMethodList(cls, &iterator))) { + for (i = 0; i < mlist->method_count; i++) { + NSString* methodName = [FSCompiler stringFromSelector:mlist->method_list[i].method_name]; + if (([self hasEmptyFilterString] || containsString(methodName, filterString, NSCaseInsensitiveSearch)) + && (!doNotShowSelectorsStartingWithUnderscore || ![methodName hasPrefix:@"_"]) + && (!doNotShowSelectorsStartingWithAccessibility || ![methodName hasPrefix:@"accessibility"]) + && (![methodName isEqualToString:@""]) + && (![methodName hasPrefix:@"__F-ScriptGeneratedStub"])) + [selectorStrings addObject:methodName]; + } + } +#endif + + [selectorStrings sortUsingFunction:FSCompareMethodsNamesForAlphabeticalOrder context:NULL]; + + for (i = 0, nb = [selectorStrings count]; i < nb; i++) + [self fillMatrix:matrix withMethod:[selectorStrings objectAtIndex:i]]; + + if (cls == [cls superclass]) // The NSProxy class return itself when asked for its superclass. + // This would result in an infinite loop. This test work around this. + cls = nil; + else + cls = [cls superclass]; // TODO : test if it works ok now (see comment below) + // This direct access technique is used instead of the -superclass method because this method is broken in the NSProxy hierarchy (does not return the "real" superclass) (Mac OS X 10.1.2). + if (cls) + [self addBlankRowToMatrix:matrix]; + } } - (void)filter { - NSInteger i,j,columnCount,rowCount; - Class NSAttributedStringClass = [NSAttributedString class]; - - if (browsingMode == FSBrowsingWorkspace) [self fillMatrixForWorkspaceBrowsing:[browser matrixInColumn:0]]; - else if (browsingMode == FSBrowsingClasses) [self fillMatrixForClassesBrowsing:[browser matrixInColumn:0]]; - - i = 0; // In order to avoid a warning "may be used unintialized" - switch (browsingMode) - { - case FSBrowsingWorkspace: - case FSBrowsingClasses: i = 1; break; - case FSBrowsingNothing: - case FSBrowsingObject: i = 0; break; - } - - for (columnCount = [browser lastColumn]+1; i < columnCount; i++) - { - NSMatrix *matrix = [browser matrixInColumn:i]; - NSInteger selectedRow = [matrix selectedRow]; - enum FSObjectBrowserCellType cellType = FSOBMETHOD; // init in order to avoid a compiler warning "may be used uninitialized" - NSString *classLabelForSelectedRow = nil; // init to nil to avoid a compiler warning - NSString *selectedMethod = nil; // init to nil to avoid a compiler warning - - if (selectedRow != -1 && (cellType = [[matrix cellAtRow:selectedRow column:0] objectBrowserCellType]) == FSOBMETHOD) - { - selectedMethod = [[matrix cellAtRow:selectedRow column:0] stringValue]; - for (j = selectedRow-1; ![[[matrix cellAtRow:j column:0] objectValue] isKindOfClass:NSAttributedStringClass] ; j--); - classLabelForSelectedRow = [[matrix cellAtRow:j column:0] stringValue]; - } - - if ([matrix numberOfRows] > 0) [self fillMatrix:matrix withObject:[[matrix cellAtRow:0 column:0] representedObject]]; - - if (selectedRow != -1 && cellType == FSOBMETHOD) - { - for (j = 0, rowCount = [matrix numberOfRows]; j < rowCount; j++) - { - NSCell *cell = [matrix cellAtRow:j column:0]; - if ([[cell objectValue] isKindOfClass:NSAttributedStringClass] && [[cell stringValue] isEqualToString:classLabelForSelectedRow]) - { - j++; - break; - } - } - while (1) - { - if (j == rowCount) - { - //[matrix addRow]; - //[[matrix cellAtRow:j column:0] setStringValue:selectedMethod]; - //[[matrix cellAtRow:j column:0] setObjectBrowserCellType:cellType]; - //[matrix selectCellAtRow:j column:0]; - FSObjectBrowserCell *cell = addRowToMatrix(matrix); - [cell setStringValue:selectedMethod]; - [cell setObjectBrowserCellType:cellType]; - - [matrix selectCellAtRow:j column:0]; - //[matrix scrollCellToVisibleAtRow:j column:0]; - break; + NSInteger i, j, columnCount, rowCount; + Class NSAttributedStringClass = [NSAttributedString class]; + + if (browsingMode == FSBrowsingWorkspace) + [self fillMatrixForWorkspaceBrowsing:[browser matrixInColumn:0]]; + else if (browsingMode == FSBrowsingClasses) + [self fillMatrixForClassesBrowsing:[browser matrixInColumn:0]]; + + i = 0; // In order to avoid a warning "may be used unintialized" + switch (browsingMode) { + case FSBrowsingWorkspace: + case FSBrowsingClasses: + i = 1; + break; + case FSBrowsingNothing: + case FSBrowsingObject: + i = 0; + break; } - else - { - FSObjectBrowserCell *cell = [matrix cellAtRow:j column:0]; - NSString *stringValue = [cell stringValue]; - id objectValue = [cell objectValue]; - NSComparisonResult order = FSCompareMethodsNamesForAlphabeticalOrder(stringValue, selectedMethod, nil); - - if (order == NSOrderedSame && ![objectValue isKindOfClass:NSAttributedStringClass]) - { - [matrix selectCellAtRow:j column:0]; - //[matrix scrollCellToVisibleAtRow:j column:0]; - break; - } - else if (order == NSOrderedDescending) - { - [matrix insertRow:j]; - [[matrix cellAtRow:j column:0] setStringValue:selectedMethod]; - [[matrix cellAtRow:j column:0] setObjectBrowserCellType:cellType]; - [matrix selectCellAtRow:j column:0]; - //[matrix scrollCellToVisibleAtRow:j column:0]; - break; - } - else if ([objectValue isKindOfClass:NSAttributedStringClass]) - { - // Insert at j-1 to preserve the empty line before the line with the class name. - [matrix insertRow:j-1]; - [[matrix cellAtRow:j-1 column:0] setStringValue:selectedMethod]; - [[matrix cellAtRow:j-1 column:0] setObjectBrowserCellType:cellType]; - [matrix selectCellAtRow:j-1 column:0]; - //[matrix scrollCellToVisibleAtRow:j-1 column:0]; - break; - } - } - j++; - } - } - } - [browser tile]; -} + + for (columnCount = [browser lastColumn] + 1; i < columnCount; i++) { + NSMatrix* matrix = [browser matrixInColumn:i]; + NSInteger selectedRow = [matrix selectedRow]; + enum FSObjectBrowserCellType cellType = FSOBMETHOD; // init in order to avoid a compiler warning "may be used uninitialized" + NSString* classLabelForSelectedRow = nil; // init to nil to avoid a compiler warning + NSString* selectedMethod = nil; // init to nil to avoid a compiler warning + + if (selectedRow != -1 && (cellType = [[matrix cellAtRow:selectedRow column:0] objectBrowserCellType]) == FSOBMETHOD) { + selectedMethod = [[matrix cellAtRow:selectedRow column:0] stringValue]; + for (j = selectedRow - 1; ![[[matrix cellAtRow:j column:0] objectValue] isKindOfClass:NSAttributedStringClass]; j--) + ; + classLabelForSelectedRow = [[matrix cellAtRow:j column:0] stringValue]; + } + + if ([matrix numberOfRows] > 0) + [self fillMatrix:matrix withObject:[[matrix cellAtRow:0 column:0] representedObject]]; + + if (selectedRow != -1 && cellType == FSOBMETHOD) { + for (j = 0, rowCount = [matrix numberOfRows]; j < rowCount; j++) { + NSCell* cell = [matrix cellAtRow:j column:0]; + if ([[cell objectValue] isKindOfClass:NSAttributedStringClass] && [[cell stringValue] isEqualToString:classLabelForSelectedRow]) { + j++; + break; + } + } + while (1) { + if (j == rowCount) { + FSObjectBrowserCell* cell = addRowToMatrix(matrix); + [cell setStringValue:selectedMethod]; + [cell setObjectBrowserCellType:cellType]; + + [matrix selectCellAtRow:j column:0]; + break; + } + else { + FSObjectBrowserCell* cell = [matrix cellAtRow:j column:0]; + NSString* stringValue = [cell stringValue]; + id objectValue = [cell objectValue]; + NSComparisonResult order = FSCompareMethodsNamesForAlphabeticalOrder(stringValue, selectedMethod, nil); + + if (order == NSOrderedSame && ![objectValue isKindOfClass:NSAttributedStringClass]) { + [matrix selectCellAtRow:j column:0]; + break; + } + else if (order == NSOrderedDescending) { + [matrix insertRow:j]; + [[matrix cellAtRow:j column:0] setStringValue:selectedMethod]; + [[matrix cellAtRow:j column:0] setObjectBrowserCellType:cellType]; + [matrix selectCellAtRow:j column:0]; + break; + } + else if ([objectValue isKindOfClass:NSAttributedStringClass]) { + // Insert at j-1 to preserve the empty line before the line with the class name. + [matrix insertRow:j - 1]; + [[matrix cellAtRow:j - 1 column:0] setStringValue:selectedMethod]; + [[matrix cellAtRow:j - 1 column:0] setObjectBrowserCellType:cellType]; + [matrix selectCellAtRow:j - 1 column:0]; + break; + } + } + j++; + } + } + } + [browser tile]; +} - (void)filterAction:(id)sender -{ - [self setFilterString:[sender stringValue]]; - [self filter]; +{ + [self setFilterString:[sender stringValue]]; + [self filter]; } -- (BOOL) hasEmptyFilterString +- (BOOL)hasEmptyFilterString { - return [filterString isEqualToString:@""]; + return [filterString isEqualToString:@""]; } - (id)initWithFrame:(NSRect)frameRect { - self = [super initWithFrame:frameRect]; - if (self) - { - CGFloat baseWidth = NSWidth([self bounds]); - CGFloat baseHeight = NSHeight([self bounds]); - CGFloat fontSize; - - fontSize = systemFontSize(); - - browser = [[NSBrowser alloc] initWithFrame:NSMakeRect(0, FSObjectBrowserBottomBarHeight, baseWidth, baseHeight-FSObjectBrowserBottomBarHeight)]; - //[browser setMatrixClass:[FSObjectBrowserMatrix class]]; - [browser setCellClass:[FSObjectBrowserCell class]]; - [browser setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable]; - [browser setHasHorizontalScroller:YES]; - [browser setMinColumnWidth:145+(fontSize*6)]; - [browser setTakesTitleFromPreviousColumn:NO]; - [browser setTitled:NO]; - [browser setTarget:self]; - [browser setDoubleAction:@selector(doubleClickAction:)]; - [[browser cellPrototype] setFont:[NSFont systemFontOfSize:fontSize]]; - [browser setDelegate:self]; - [browser setFocusRingType:NSFocusRingTypeNone]; - [browser setAutohidesScroller:YES]; - //[browser setAcceptsArrowKeys:NO]; - - if ([browser respondsToSelector:@selector(setColumnResizingType:)]) [browser setColumnResizingType:2]; - - if ([browser respondsToSelector:@selector(setColumnsAutosaveName:)]) [browser setColumnsAutosaveName:@"Object browser columns autosave configuration"]; - - bottomBarTextDisplay = [[FSObjectBrowserBottomBarTextDisplay alloc] initWithFrame:NSMakeRect(0, 0, baseWidth, FSObjectBrowserBottomBarHeight)]; - - [self addSubview:browser]; - [self addSubview:bottomBarTextDisplay]; - - browsingMode = FSBrowsingWorkspace; - - filterString = @""; - - matrixes = [[NSMutableSet alloc] init]; - } - return self; -} - -- (void) inspectAction:(id)sender -{ - inspect([self selectedObject], interpreter, nil); -} - -- (void)menuWillSendAction:(NSNotification *)notification; -{ - NSMenuItem *item = [[notification userInfo] objectForKey: @"MenuItem"]; - selectedView = [item retain]; + self = [super initWithFrame:frameRect]; + if (self) { + CGFloat baseWidth = NSWidth([self bounds]); + CGFloat baseHeight = NSHeight([self bounds]); + CGFloat fontSize; + + fontSize = systemFontSize(); + + browser = [[NSBrowser alloc] initWithFrame:NSMakeRect(0, FSObjectBrowserBottomBarHeight, baseWidth, baseHeight - FSObjectBrowserBottomBarHeight)]; + [browser setCellClass:[FSObjectBrowserCell class]]; + [browser setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable]; + [browser setHasHorizontalScroller:YES]; + [browser setMinColumnWidth:145 + (fontSize * 6)]; + [browser setTakesTitleFromPreviousColumn:NO]; + [browser setTitled:NO]; + [browser setTarget:self]; + [browser setDoubleAction:@selector(doubleClickAction:)]; + [[browser cellPrototype] setFont:[NSFont systemFontOfSize:fontSize]]; + [browser setDelegate:self]; + [browser setFocusRingType:NSFocusRingTypeNone]; + [browser setAutohidesScroller:YES]; + + if ([browser respondsToSelector:@selector(setColumnResizingType:)]) + [browser setColumnResizingType:2]; + + if ([browser respondsToSelector:@selector(setColumnsAutosaveName:)]) + [browser setColumnsAutosaveName:@"Object browser columns autosave configuration"]; + + bottomBarTextDisplay = [[FSObjectBrowserBottomBarTextDisplay alloc] initWithFrame:NSMakeRect(0, 0, baseWidth, FSObjectBrowserBottomBarHeight)]; + + [self addSubview:browser]; + [self addSubview:bottomBarTextDisplay]; + + browsingMode = FSBrowsingWorkspace; + + filterString = @""; + + matrixes = [[NSMutableSet alloc] init]; + } + return self; +} + +- (void)inspectAction:(id)sender +{ + inspect([self selectedObject], interpreter, nil); +} + +- (void)menuWillSendAction:(NSNotification*)notification; +{ + NSMenuItem* item = [[notification userInfo] objectForKey:@"MenuItem"]; + selectedView = [item retain]; } @class FSObjectBrowser; -- (void)mouseMoved:(NSEvent *)theEvent -{ - NSInteger row, column; - NSPoint baseMouseLocation = [[self window] convertScreenToBase:[NSEvent mouseLocation]]; - NSView *view = [self hitTest:[[self superview] convertPoint:baseMouseLocation fromView:nil]]; - - if ([view isKindOfClass:[NSMatrix class]] && [(NSMatrix *)view getRow:&row column:&column forPoint:[view convertPoint:baseMouseLocation fromView:nil]]) - { - [bottomBarTextDisplay setString:[[(NSMatrix *)view cellAtRow:row column:column] stringValue]]; - } - else [bottomBarTextDisplay setTitle:@""]; - - [super mouseMoved:theEvent]; -} - -- (void) nameObjectAction:(id)sender -{ - CGFloat fontSize = systemFontSize(); - CGFloat baseWidth = 230; - CGFloat baseHeight = 15+fontSize+9+60; - NSWindow *nameSheet; - NSTextField *field; - NSButton *nameButton; - NSButton *cancelButton; - - if ([self selectedObject] == nil) - { - NSBeep(); - return; - } - - nameSheet = [[NSWindow alloc] initWithContentRect:NSMakeRect(0,0,baseWidth,baseHeight) styleMask:NSTitledWindowMask|NSClosableWindowMask backing:NSBackingStoreBuffered defer:NO]; - [nameSheet setMinSize:NSMakeSize(130,80)]; - - field = [[[NSTextField alloc] initWithFrame:NSMakeRect(20,baseHeight-(15+fontSize+9),baseWidth-40,fontSize+10)] autorelease]; - [field setFont:[NSFont systemFontOfSize:fontSize]]; - [field setTarget:self]; - [field setAction:@selector(okNameSheetAction:)]; - [field setFormatter:[[[FSIdentifierFormatter alloc] init] autorelease]]; - - [[nameSheet contentView] addSubview:field]; - - nameButton = [[[NSButton alloc] initWithFrame:NSMakeRect(baseWidth/2,13,95,30)] autorelease]; - [nameButton setBezelStyle:1]; - [nameButton setTitle:@"Name"]; - [nameButton setAction:@selector(performClick:)]; // Will make field to send its action message - [nameButton setTarget:field]; - [nameButton setKeyEquivalent:@"\r"]; - [[nameSheet contentView] addSubview:nameButton]; - - cancelButton = [[[NSButton alloc] initWithFrame:NSMakeRect(baseWidth/2-95,13,95,30)] autorelease]; - [cancelButton setBezelStyle:1]; - [cancelButton setTitle:@"Cancel"]; - [cancelButton setAction:@selector(cancelNameSheetAction:)]; - [cancelButton setTarget:self]; - [cancelButton setKeyEquivalent:@"\e"]; - [[nameSheet contentView] addSubview:cancelButton]; - - [NSApp beginSheet:nameSheet modalForWindow:[self window] modalDelegate:self didEndSelector:NULL contextInfo:NULL]; - [field selectText:nil]; -} - --(void)okNameSheetAction:(id)sender -{ - if ([[sender stringValue] length] == 0) - { - [NSApp endSheet:[sender window]]; - [[sender window] close]; - } - else if ([[sender stringValue] isEqualToString:@"sys"]) - { - // don't close the sheet - NSRunAlertPanel(@"Invalid name", @"Sorry, the name \"sys\" is reserved. Please, choose an other name.", @"OK", nil, nil,nil); - [[sender window] makeFirstResponder:sender]; - } - else if ([FSCompiler isValidIdentifier:[sender stringValue]]) - { - [interpreter setObject:[self selectedObject] forIdentifier:[sender stringValue]]; - [NSApp endSheet:[sender window]]; - [[sender window] close]; - } - else - { - // don't close the sheet - NSRunAlertPanel(@"Malformed Name", @"Sorry, an F-Script identifier must start with an alphabetic, non-accentuated, character or with an underscore (i.e. \"_\") and must only contains non-accentuated alphanumeric characters and underscores. Please, enter a well-formed name.", @"OK", nil, nil,nil); - [[sender window] makeFirstResponder:sender]; - } -} - --(id) selectedObject -{ - FSObjectBrowserCell *selectedCell = [browser selectedCell]; - enum FSObjectBrowserCellType selectedCellType = [selectedCell objectBrowserCellType]; - - if (selectedCellType == FSOBOBJECT || selectedCellType == FSOBCLASS) - return [selectedCell representedObject]; - else - { - if ([browser lastColumn] == 0) - { - switch (browsingMode) - { - case FSBrowsingWorkspace: return nil; - case FSBrowsingClasses: return nil; - case FSBrowsingNothing: return nil; - case FSBrowsingObject: break; - } - } - return [[browser loadedCellAtRow:0 column:[browser lastColumn]] representedObject]; - } -} - -- (void) selectMethodNamed:(NSString *)methodName -{ - NSInteger methodColumn = [browser lastColumn]; - NSInteger i = 0; - NSArray *methodCells = [[browser matrixInColumn:methodColumn] cells]; - NSInteger count = [methodCells count]; - - if (count == 0 && [methodName isEqualToString:@"applyBlock:"]) // may happend if the selected object is a proxy to an object in an app not linked against the F-Script framework. - { - NSMatrix *matrix = [browser matrixInColumn:methodColumn]; - - //[matrix addRow]; - //[[matrix cellAtRow:0 column:0] setStringValue:@"applyBlock:"]; - //[[matrix cellAtRow:0 column:0] setEnabled:NO]; - FSObjectBrowserCell *cell = addRowToMatrix(matrix); - [cell setStringValue:@"applyBlock:"]; - [cell setEnabled:NO]; - - count = 1; - methodCells = [[browser matrixInColumn:methodColumn] cells]; - } - - while (i < count && !([[[methodCells objectAtIndex:i] stringValue] isEqualToString:methodName] && [[methodCells objectAtIndex:i] objectBrowserCellType] == FSOBMETHOD)) i++; - - if (i < count) - [browser selectRow:i inColumn:methodColumn]; - else - { - NSString *oldFilterString = filterString; - BOOL oldDoNotShowSelectorsStartingWithUnderscore = [[NSUserDefaults standardUserDefaults] boolForKey:@"FScriptDoNotShowSelectorsStartingWithUnderscore"]; - BOOL oldDoNotShowSelectorsStartingWithAccessibility = [[NSUserDefaults standardUserDefaults] boolForKey:@"FScriptDoNotShowSelectorsStartingWithAccessibility"]; - - if (![oldFilterString isEqualToString:@""] || oldDoNotShowSelectorsStartingWithUnderscore == YES || oldDoNotShowSelectorsStartingWithAccessibility == YES) // Note that the method we are looking for might not exist. In this case, this test is important in order to avoid a infinite recursion. - { - filterString = @""; - [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"FScriptDoNotShowSelectorsStartingWithUnderscore"]; - [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"FScriptDoNotShowSelectorsStartingWithAccessibility"]; - - [self filter]; - [self selectMethodNamed:methodName]; - - filterString = oldFilterString; - [[NSUserDefaults standardUserDefaults] setBool:oldDoNotShowSelectorsStartingWithUnderscore forKey:@"FScriptDoNotShowSelectorsStartingWithUnderscore"]; - [[NSUserDefaults standardUserDefaults] setBool:oldDoNotShowSelectorsStartingWithAccessibility forKey:@"FScriptDoNotShowSelectorsStartingWithAccessibility"]; - - [self filter]; - } - } -} - - -/* -- (void)mouseMoved:(NSEvent *)theEvent -{ - NSInteger row, column; - NSPoint baseMouseLocation = [[self window] convertScreenToBase:[NSEvent mouseLocation]]; - NSView *view = [self hitTest:[[self superview] convertPoint:baseMouseLocation fromView:nil]]; - - if ([view isKindOfClass:[NSMatrix class]] && [(NSMatrix *)view getRow:&row column:&column forPoint:[view convertPoint:baseMouseLocation fromView:nil]]) - { - [statusBar setStringValue:[[(NSMatrix *)view cellAtRow:row column:column] stringValue]]; - } - else [statusBar setStringValue:@""]; - - [super mouseMoved:theEvent]; -} -*/ - -- (void) selectView:(id)dummy -{ - NSEvent *event; - id view; - NSCursor *cursor = [NSCursor crosshairCursor]; - NSDate *distantFuture = [NSDate distantFuture]; - - NSRect infoRect = NSMakeRect(0, 0, 290, 100); - NSTextView *infoView = [[[NSTextView alloc] initWithFrame:NSZeroRect] autorelease]; - [infoView setEditable:NO]; - [infoView setSelectable:NO]; - [infoView setDrawsBackground:NO]; - [infoView setTextColor:[NSColor whiteColor]]; - [infoView setFont:[NSFont controlContentFontOfSize:10]]; - [infoView setTextContainerInset:NSMakeSize(4, 4)]; - //[infoView setAutoresizingMask:NSViewHeightSizable|NSViewMinYMargin]; - [infoView setVerticallyResizable:NO]; - - NSMutableParagraphStyle *paragraphStyle = [[[NSParagraphStyle defaultParagraphStyle] mutableCopy] autorelease]; - [paragraphStyle setLineBreakMode:NSLineBreakByTruncatingTail]; - [infoView setDefaultParagraphStyle:paragraphStyle]; - - NSPanel *infoWindow = [[[NSPanel alloc] initWithContentRect:infoRect styleMask:NSHUDWindowMask /*| NSTitledWindowMask*/ | NSUtilityWindowMask backing:NSBackingStoreBuffered defer:NO] autorelease]; - [infoWindow setLevel:NSFloatingWindowLevel]; - [infoWindow setContentView:infoView]; - - // NSWindow *focusWindow = [[[NSWindow alloc] initWithContentRect:NSZeroRect styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:NO] autorelease]; - - NSWindow *focusWindow = [[NSWindow alloc] initWithContentRect:NSZeroRect styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:NO] ; - - [focusWindow setBackgroundColor:[NSColor selectedTextBackgroundColor]]; - [focusWindow setAlphaValue:0.7]; - [focusWindow setIgnoresMouseEvents:YES]; - - [cursor push]; - - selectedView = nil; - - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(menuWillSendAction:) name:NSMenuWillSendActionNotification object:nil]; - - do - { - [cursor push]; - event = [NSApp nextEventMatchingMask:~0 untilDate:distantFuture inMode:NSEventTrackingRunLoopMode dequeue:YES]; - [cursor pop]; - if ([event type] == NSMouseMoved) - { - NSInteger windowCount; - NSInteger *windows; - - view = nil; - - NSCountWindows(&windowCount); - windows = malloc(windowCount*sizeof(NSInteger)); - NSWindowList(windowCount, windows); - - for (unsigned i = 0; i < windowCount; i++) - { - NSWindow *window = [NSApp windowWithWindowNumber:windows[i]]; - if (window && window != focusWindow && window != infoWindow) - { - view = [[[window contentView] superview] hitTest:[window convertScreenToBase:[NSEvent mouseLocation]]]; - if (view) break; +- (void)mouseMoved:(NSEvent*)theEvent +{ + NSInteger row, column; + NSPoint baseMouseLocation = [[self window] convertScreenToBase:[NSEvent mouseLocation]]; + NSView* view = [self hitTest:[[self superview] convertPoint:baseMouseLocation fromView:nil]]; + + if ([view isKindOfClass:[NSMatrix class]] && [(NSMatrix*)view getRow:&row column:&column forPoint:[view convertPoint:baseMouseLocation fromView:nil]]) { + [bottomBarTextDisplay setString:[[(NSMatrix*)view cellAtRow:row column:column] stringValue]]; + } + else + [bottomBarTextDisplay setTitle:@""]; + + [super mouseMoved:theEvent]; +} + +- (void)nameObjectAction:(id)sender +{ + CGFloat fontSize = systemFontSize(); + CGFloat baseWidth = 230; + CGFloat baseHeight = 15 + fontSize + 9 + 60; + NSWindow* nameSheet; + NSTextField* field; + NSButton* nameButton; + NSButton* cancelButton; + + if ([self selectedObject] == nil) { + NSBeep(); + return; + } + + nameSheet = [[NSWindow alloc] initWithContentRect:NSMakeRect(0, 0, baseWidth, baseHeight) styleMask:NSTitledWindowMask | NSClosableWindowMask backing:NSBackingStoreBuffered defer:NO]; + [nameSheet setMinSize:NSMakeSize(130, 80)]; + + field = [[[NSTextField alloc] initWithFrame:NSMakeRect(20, baseHeight - (15 + fontSize + 9), baseWidth - 40, fontSize + 10)] autorelease]; + [field setFont:[NSFont systemFontOfSize:fontSize]]; + [field setTarget:self]; + [field setAction:@selector(okNameSheetAction:)]; + [field setFormatter:[[[FSIdentifierFormatter alloc] init] autorelease]]; + + [[nameSheet contentView] addSubview:field]; + + nameButton = [[[NSButton alloc] initWithFrame:NSMakeRect(baseWidth / 2, 13, 95, 30)] autorelease]; + [nameButton setBezelStyle:1]; + [nameButton setTitle:@"Name"]; + [nameButton setAction:@selector(performClick:)]; // Will make field to send its action message + [nameButton setTarget:field]; + [nameButton setKeyEquivalent:@"\r"]; + [[nameSheet contentView] addSubview:nameButton]; + + cancelButton = [[[NSButton alloc] initWithFrame:NSMakeRect(baseWidth / 2 - 95, 13, 95, 30)] autorelease]; + [cancelButton setBezelStyle:1]; + [cancelButton setTitle:@"Cancel"]; + [cancelButton setAction:@selector(cancelNameSheetAction:)]; + [cancelButton setTarget:self]; + [cancelButton setKeyEquivalent:@"\e"]; + [[nameSheet contentView] addSubview:cancelButton]; + + [NSApp beginSheet:nameSheet modalForWindow:[self window] modalDelegate:self didEndSelector:NULL contextInfo:NULL]; + [field selectText:nil]; +} + +- (void)okNameSheetAction:(id)sender +{ + if ([[sender stringValue] length] == 0) { + [NSApp endSheet:[sender window]]; + [[sender window] close]; } - } - - free(windows); - - if (view) - { - NSRect rectInWindowCoordinates = [view convertRect:[view visibleRect] toView:nil];; - NSRect rectInScreenCoordinates; - NSSize size = NSMakeSize(220,21); - rectInScreenCoordinates.size = rectInWindowCoordinates.size; - rectInScreenCoordinates.origin = [[view window] convertBaseToScreen:rectInWindowCoordinates.origin]; - - if ([focusWindow parentWindow] != [view window]) + else if ([[sender stringValue] isEqualToString:@"sys"]) { + // don't close the sheet + NSRunAlertPanel(@"Invalid name", @"Sorry, the name \"sys\" is reserved. Please, choose an other name.", @"OK", nil, nil, nil); + [[sender window] makeFirstResponder:sender]; + } + else if ([FSCompiler isValidIdentifier:[sender stringValue]]) { + [interpreter setObject:[self selectedObject] forIdentifier:[sender stringValue]]; + [NSApp endSheet:[sender window]]; + [[sender window] close]; + } + else { + // don't close the sheet + NSRunAlertPanel(@"Malformed Name", @"Sorry, an F-Script identifier must start with an alphabetic, non-accentuated, character or with an underscore (i.e. \"_\") and must only contains non-accentuated alphanumeric characters and underscores. Please, enter a well-formed name.", @"OK", nil, nil, nil); + [[sender window] makeFirstResponder:sender]; + } +} + +- (id)selectedObject +{ + FSObjectBrowserCell* selectedCell = [browser selectedCell]; + enum FSObjectBrowserCellType selectedCellType = [selectedCell objectBrowserCellType]; + + if (selectedCellType == FSOBOBJECT || selectedCellType == FSOBCLASS) + return [selectedCell representedObject]; + else { + if ([browser lastColumn] == 0) { + switch (browsingMode) { + case FSBrowsingWorkspace: + return nil; + case FSBrowsingClasses: + return nil; + case FSBrowsingNothing: + return nil; + case FSBrowsingObject: + break; + } + } + return [[browser loadedCellAtRow:0 column:[browser lastColumn]] representedObject]; + } +} + +- (void)selectMethodNamed:(NSString*)methodName +{ + NSInteger methodColumn = [browser lastColumn]; + NSInteger i = 0; + NSArray* methodCells = [[browser matrixInColumn:methodColumn] cells]; + NSInteger count = [methodCells count]; + + if (count == 0 && [methodName isEqualToString:@"applyBlock:"]) // may happend if the selected object is a proxy to an object in an app not linked against the F-Script framework. { - [[focusWindow parentWindow] removeChildWindow:focusWindow]; - [[view window] addChildWindow:focusWindow ordered:NSWindowAbove]; + NSMatrix* matrix = [browser matrixInColumn:methodColumn]; + + FSObjectBrowserCell* cell = addRowToMatrix(matrix); + [cell setStringValue:@"applyBlock:"]; + [cell setEnabled:NO]; + + count = 1; + methodCells = [[browser matrixInColumn:methodColumn] cells]; } - [focusWindow setFrame:rectInScreenCoordinates display:YES]; - - /* NSMutableString *infoString = [NSMutableString string]; - - [infoString appendFormat:@"Bounds:\t%@\n", printString([NSValue valueWithRect:[view bounds]])]; - [infoString appendFormat:@"Frame:\t%@\n", printString([NSValue valueWithRect:[view frame]])]; - [infoString appendFormat:@"Superview:\t%@\n", [[view superview] class]]; - [infoString appendString:@"Subviews:\n"]; - for (NSView *subview in [view subviews]) [infoString appendFormat:@"\t\t%@\n", [subview class]]; - - [infoView setString:infoString]; - - size = [[infoView textStorage] size]; - size.width += 15; - size.height += 10; - */ - - NSPoint origin = NSMakePoint([NSEvent mouseLocation].x+12, [NSEvent mouseLocation].y-size.height-9); - [infoWindow setFrame:NSMakeRect(origin.x, origin.y, size.width, size.height) display:YES animate:NO]; - //[infoWindow setTitle:[NSString stringWithFormat:@"%@: %p", [view class], view]]; - [infoView setString:[NSString stringWithFormat:@"%@: %p", [view class], view]]; - - [infoWindow orderFront:nil]; - } - else - { + + while (i < count && !([[[methodCells objectAtIndex:i] stringValue] isEqualToString:methodName] && [[methodCells objectAtIndex:i] objectBrowserCellType] == FSOBMETHOD)) + i++; + + if (i < count) + [browser selectRow:i inColumn:methodColumn]; + else { + NSString* oldFilterString = filterString; + BOOL oldDoNotShowSelectorsStartingWithUnderscore = [[NSUserDefaults standardUserDefaults] boolForKey:@"FScriptDoNotShowSelectorsStartingWithUnderscore"]; + BOOL oldDoNotShowSelectorsStartingWithAccessibility = [[NSUserDefaults standardUserDefaults] boolForKey:@"FScriptDoNotShowSelectorsStartingWithAccessibility"]; + + if (![oldFilterString isEqualToString:@""] || oldDoNotShowSelectorsStartingWithUnderscore == YES || oldDoNotShowSelectorsStartingWithAccessibility == YES) // Note that the method we are looking for might not exist. In this case, this test is important in order to avoid a infinite recursion. + { + filterString = @""; + [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"FScriptDoNotShowSelectorsStartingWithUnderscore"]; + [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"FScriptDoNotShowSelectorsStartingWithAccessibility"]; + + [self filter]; + [self selectMethodNamed:methodName]; + + filterString = oldFilterString; + [[NSUserDefaults standardUserDefaults] setBool:oldDoNotShowSelectorsStartingWithUnderscore forKey:@"FScriptDoNotShowSelectorsStartingWithUnderscore"]; + [[NSUserDefaults standardUserDefaults] setBool:oldDoNotShowSelectorsStartingWithAccessibility forKey:@"FScriptDoNotShowSelectorsStartingWithAccessibility"]; + + [self filter]; + } + } +} + + +- (void)selectView:(id)dummy +{ + NSEvent* event; + id view; + NSCursor* cursor = [NSCursor crosshairCursor]; + NSDate* distantFuture = [NSDate distantFuture]; + + NSRect infoRect = NSMakeRect(0, 0, 290, 100); + NSTextView* infoView = [[[NSTextView alloc] initWithFrame:NSZeroRect] autorelease]; + [infoView setEditable:NO]; + [infoView setSelectable:NO]; + [infoView setDrawsBackground:NO]; + [infoView setTextColor:[NSColor whiteColor]]; + [infoView setFont:[NSFont controlContentFontOfSize:10]]; + [infoView setTextContainerInset:NSMakeSize(4, 4)]; + //[infoView setAutoresizingMask:NSViewHeightSizable|NSViewMinYMargin]; + [infoView setVerticallyResizable:NO]; + + NSMutableParagraphStyle* paragraphStyle = [[[NSParagraphStyle defaultParagraphStyle] mutableCopy] autorelease]; + [paragraphStyle setLineBreakMode:NSLineBreakByTruncatingTail]; + [infoView setDefaultParagraphStyle:paragraphStyle]; + + NSPanel* infoWindow = [[[NSPanel alloc] initWithContentRect:infoRect styleMask:NSHUDWindowMask /*| NSTitledWindowMask*/ | NSUtilityWindowMask backing:NSBackingStoreBuffered defer:NO] autorelease]; + [infoWindow setLevel:NSFloatingWindowLevel]; + [infoWindow setContentView:infoView]; + + NSWindow* focusWindow = [[NSWindow alloc] initWithContentRect:NSZeroRect styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:NO]; + + [focusWindow setBackgroundColor:[NSColor selectedTextBackgroundColor]]; + [focusWindow setAlphaValue:0.7]; + [focusWindow setIgnoresMouseEvents:YES]; + + [cursor push]; + + selectedView = nil; + + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(menuWillSendAction:) name:NSMenuWillSendActionNotification object:nil]; + + do { + [cursor push]; + event = [NSApp nextEventMatchingMask:~0 untilDate:distantFuture inMode:NSEventTrackingRunLoopMode dequeue:YES]; + [cursor pop]; + if ([event type] == NSMouseMoved) { + NSInteger windowCount; + NSInteger* windows; + + view = nil; + + NSCountWindows(&windowCount); + windows = malloc(windowCount * sizeof(NSInteger)); + NSWindowList(windowCount, windows); + + for (unsigned i = 0; i < windowCount; i++) { + NSWindow* window = [NSApp windowWithWindowNumber:windows[i]]; + if (window && window != focusWindow && window != infoWindow) { + view = [[[window contentView] superview] hitTest:[window convertScreenToBase:[NSEvent mouseLocation]]]; + if (view) + break; + } + } + + free(windows); + + if (view) { + NSRect rectInWindowCoordinates = [view convertRect:[view visibleRect] toView:nil]; + ; + NSRect rectInScreenCoordinates; + NSSize size = NSMakeSize(220, 21); + rectInScreenCoordinates.size = rectInWindowCoordinates.size; + rectInScreenCoordinates.origin = [[view window] convertBaseToScreen:rectInWindowCoordinates.origin]; + + if ([focusWindow parentWindow] != [view window]) { + [[focusWindow parentWindow] removeChildWindow:focusWindow]; + [[view window] addChildWindow:focusWindow ordered:NSWindowAbove]; + } + [focusWindow setFrame:rectInScreenCoordinates display:YES]; + + NSPoint origin = NSMakePoint([NSEvent mouseLocation].x + 12, [NSEvent mouseLocation].y - size.height - 9); + [infoWindow setFrame:NSMakeRect(origin.x, origin.y, size.width, size.height) display:YES animate:NO]; + [infoView setString:[NSString stringWithFormat:@"%@: %p", [view class], view]]; + + [infoWindow orderFront:nil]; + } + else { + [[focusWindow parentWindow] removeChildWindow:focusWindow]; + [focusWindow orderOut:nil]; + [infoWindow orderOut:nil]; + } + } + + } while ([event type] != NSLeftMouseDown && selectedView == nil && !([event type] == NSKeyDown && [[event characters] characterAtIndex:0] == ESCAPE)); + + [[NSNotificationCenter defaultCenter] removeObserver:self name:NSMenuWillSendActionNotification object:nil]; + [cursor pop]; [[focusWindow parentWindow] removeChildWindow:focusWindow]; - [focusWindow orderOut:nil]; - [infoWindow orderOut:nil]; - //[self browseNothing]; - } - } - - } - while ( [event type] != NSLeftMouseDown && selectedView == nil && !([event type] == NSKeyDown && [[event characters] characterAtIndex:0] == ESCAPE) ); - - [[NSNotificationCenter defaultCenter] removeObserver:self name:NSMenuWillSendActionNotification object:nil]; - [cursor pop]; - [[focusWindow parentWindow] removeChildWindow:focusWindow]; - [focusWindow close]; - [infoWindow close]; - - if ( !([event type] == NSKeyDown && [[event characters] characterAtIndex:0] == ESCAPE) ) - { - // If Alt is held down, select the exact view shown in the floating window - if ((event.modifierFlags & NSAlternateKeyMask) && view != nil) { - selectedView = view; - } - if (selectedView == nil) - view = [[[[event window] contentView] superview] hitTest:[event locationInWindow]]; - else - view = selectedView; - - [self setRootObject:view]; - [selectedView release]; - [[self window] performSelector:@selector(makeKeyAndOrderFront:) withObject:nil afterDelay:0]; - [NSApp activateIgnoringOtherApps:YES]; - } -} - -- (void) selectViewAction:(id)sender -{ - [self performSelector:@selector(selectView:) withObject:nil afterDelay:0]; -} - -- (void) selfAction:(id)sender -{ - [self sendMessage:@selector(self) withArguments:nil]; -} - -- (void) sendMessage:(SEL)selector withArguments:(FSArray *)arguments // You can pass nil for "arguments" -{ - // Simulate the user invoking a method on the selected object through the browser. - - NSString *methodName = [FSCompiler stringFromSelector:selector]; - id selectedObject; - - if ((selectedObject = [self validSelectedObject]) == nil) - { - NSBeep(); - return; - } - - if (![selectedObject respondsToSelector:selector] && selector != @selector(applyBlock:)/* Account for a proxy to an object in an app not linked against the F-Script framework */) - { - NSBeginInformationalAlertSheet(@"Inavlid message", @"OK", nil, nil, [self window], nil, NULL, NULL, NULL, @"The selected object doesn't responds to \"%@\".", methodName); - return; - } - - if (arguments && [arguments count] > 0) [browser setDelegate:nil]; - - [self selectMethodNamed:methodName]; - - if (arguments && [arguments count] > 0) - { - [browser setDelegate:self]; - [self sendMessageTo:selectedObject selectorString:methodName arguments:arguments putResultInMatrix:[browser matrixInColumn:[browser lastColumn]]]; - } - - [browser scrollColumnToVisible:[browser lastColumn]]; - [browser scrollColumnsLeftBy:1]; // Workaround for the call above to scrollColumnToVisible: not working as expected. - //[browser tile]; + [focusWindow close]; + [infoWindow close]; + + if (!([event type] == NSKeyDown && [[event characters] characterAtIndex:0] == ESCAPE)) { + // If Alt is held down, select the exact view shown in the floating window + if ((event.modifierFlags & NSAlternateKeyMask) && view != nil) { + selectedView = view; + } + if (selectedView == nil) + view = [[[[event window] contentView] superview] hitTest:[event locationInWindow]]; + else + view = selectedView; + + [self setRootObject:view]; + [selectedView release]; + [[self window] performSelector:@selector(makeKeyAndOrderFront:) withObject:nil afterDelay:0]; + [NSApp activateIgnoringOtherApps:YES]; + } +} + +- (void)selectViewAction:(id)sender +{ + [self performSelector:@selector(selectView:) withObject:nil afterDelay:0]; +} + +- (void)selfAction:(id)sender +{ + [self sendMessage:@selector(self) withArguments:nil]; +} + +- (void)sendMessage:(SEL)selector withArguments:(FSArray*)arguments // You can pass nil for "arguments" +{ + // Simulate the user invoking a method on the selected object through the browser. + + NSString* methodName = [FSCompiler stringFromSelector:selector]; + id selectedObject; + + if ((selectedObject = [self validSelectedObject]) == nil) { + NSBeep(); + return; + } + + if (![selectedObject respondsToSelector:selector] && selector != @selector(applyBlock:) /* Account for a proxy to an object in an app not linked against the F-Script framework */) { + NSBeginInformationalAlertSheet(@"Inavlid message", @"OK", nil, nil, [self window], nil, NULL, NULL, NULL, @"The selected object doesn't responds to \"%@\".", methodName); + return; + } + + if (arguments && [arguments count] > 0) + [browser setDelegate:nil]; + + [self selectMethodNamed:methodName]; + + if (arguments && [arguments count] > 0) { + [browser setDelegate:self]; + [self sendMessageTo:selectedObject selectorString:methodName arguments:arguments putResultInMatrix:[browser matrixInColumn:[browser lastColumn]]]; + } + + [browser scrollColumnToVisible:[browser lastColumn]]; + [browser scrollColumnsLeftBy:1]; // Workaround for the call above to scrollColumnToVisible: not working as expected. + //[browser tile]; } - (void)sendMessageAction:(id)sender { - NSString *selectedString = [[browser selectedCell] stringValue]; - id selectedObject = [[browser loadedCellAtRow:0 column:[browser selectedColumn]] representedObject]; - NSForm *f = [[[[sender window] contentView] subviews] objectAtIndex:0]; - NSInteger nbarg = [f numberOfRows]; - FSArray *arguments = [FSArray arrayWithCapacity:nbarg]; // FSArray instead of NSMutableArray in order to support nil - NSInteger i; - - for (i = 0; i < nbarg; i++) - { - NSFormCell *cell = [f cellAtIndex:i]; - NSString *argumentString = [cell stringValue]; - FSInterpreterResult *result = [interpreter execute:argumentString]; - - if ([result isOK]) - [arguments addObject:[result result]]; - else - { - NSString *errorArgumentString = [NSString stringWithFormat:@"Argument %ld %@", (long)(i+1), [result errorMessage]]; - - [result inspectBlocksInCallStack]; - [f selectTextAtIndex:i]; - NSRunAlertPanel(@"ERROR", errorArgumentString, @"OK", nil, nil,nil); - - // An alternative for displaying the error message in a more Smalltalk-like way. Not yet functionnal. - /* - NSMutableString *errorArgumentString = [NSMutableString stringWithString:argumentString]; - NSBeep(); - [errorArgumentString insertString:[result errorMessage] atIndex:[result errorRange].location]; - [cell setStringValue:errorArgumentString]; - [cell selectWithFrame:NSMakeRect(0,0,[cell cellSize].width,[cell cellSize].height) inView:[cell controlView] editor:[f currentEditor] delegate:self start:[result errorRange].location length:[result errorRange].length]; */ - - break; - } - } - - if (i == nbarg) // There were no error evaluating the arguments - { - BOOL success; - NSMatrix *matrix = [browser matrixInColumn:[browser lastColumn]]; - //NSBrowserCell *cell; - - //[[sender window] orderOut:nil]; - //[NSApp endSheet:[sender window]]; - //[[sender window] close]; - - success = [self sendMessageTo:selectedObject selectorString:selectedString arguments:arguments putResultInMatrix:matrix]; - /*if (cell = [matrix cellAtRow:0 column:0]) - { - [browser setTitle:printString([[cell representedObject] classOrMetaclass]) ofColumn:[browser lastColumn]]; - }*/ - - //[[sender window] orderOut:nil]; - if (success) - { - [NSApp endSheet:[sender window]]; - [[sender window] close]; - [browser tile]; - } - } -} - -- (BOOL) sendMessageTo:(id)receiver selectorString:(NSString *)selectorStr arguments:(FSArray *)arguments putResultInMatrix:(NSMatrix *)matrix -{ - NSInteger nbarg = [arguments count]; - id args[nbarg+2]; - SEL selector = [FSCompiler selectorFromString:selectorStr]; - NSInteger i; - id result = nil; // To avoid a warning "might be used uninitialized" - - if ([receiver isKindOfClass:[FSNewlyAllocatedObjectHolder class]]) receiver = [receiver object]; - args[0] = receiver; - args[1] = (id)selector; - for (i = 0; i < nbarg; i++) args[i+2] = [arguments objectAtIndex:i]; - - @try - { - result = sendMsgNoPattern(receiver, selector, nbarg+2, args, [FSMsgContext msgContext], nil); - } - @catch (id exception) - { - FSInspectBlocksInCallStackForException(exception); - NSRunAlertPanel(@"Error", FSErrorMessageFromException(exception), @"OK", nil, nil,nil); - return NO; - } - - if (selector == @selector(alloc) || selector == @selector(allocWithZone:)) - result = [FSNewlyAllocatedObjectHolder newlyAllocatedObjectHolderWithObject:result]; - - if (FSEncode([[receiver methodSignatureForSelector:selector] methodReturnType]) != 'v') - [self fillMatrix:matrix withObject:result]; - - return YES; -} - --(void)setInterpreter:(FSInterpreter *)theInterpreter -{ - [theInterpreter retain]; - [interpreter release]; - interpreter = theInterpreter; -} - --(void)setFilterString:(NSString *)theFilterString -{ - [theFilterString retain]; - [filterString release]; - filterString = theFilterString; -} - --(void)setRootObject:(id)theRootObject -{ - [theRootObject retain]; - [rootObject release]; - rootObject = theRootObject; - browsingMode = FSBrowsingObject; - [browser loadColumnZero]; - //[browser displayColumn:0]; // may be unnecessary -} - -- (void)setTitleOfLastColumn:(NSString *)title -{ - [browser setTitle:title ofColumn:[browser lastColumn]]; + NSString* selectedString = [[browser selectedCell] stringValue]; + id selectedObject = [[browser loadedCellAtRow:0 column:[browser selectedColumn]] representedObject]; + NSForm* f = [[[[sender window] contentView] subviews] objectAtIndex:0]; + NSInteger nbarg = [f numberOfRows]; + FSArray* arguments = [FSArray arrayWithCapacity:nbarg]; // FSArray instead of NSMutableArray in order to support nil + NSInteger i; + + for (i = 0; i < nbarg; i++) { + NSFormCell* cell = [f cellAtIndex:i]; + NSString* argumentString = [cell stringValue]; + FSInterpreterResult* result = [interpreter execute:argumentString]; + + if ([result isOK]) + [arguments addObject:[result result]]; + else { + NSString* errorArgumentString = [NSString stringWithFormat:@"Argument %ld %@", (long)(i + 1), [result errorMessage]]; + + [result inspectBlocksInCallStack]; + [f selectTextAtIndex:i]; + NSRunAlertPanel(@"ERROR", errorArgumentString, @"OK", nil, nil, nil); + break; + } + } + + if (i == nbarg) // There were no error evaluating the arguments + { + BOOL success; + NSMatrix* matrix = [browser matrixInColumn:[browser lastColumn]]; + success = [self sendMessageTo:selectedObject selectorString:selectedString arguments:arguments putResultInMatrix:matrix]; + if (success) { + [NSApp endSheet:[sender window]]; + [[sender window] close]; + [browser tile]; + } + } } -- (void)updateAction:(id)sender +- (BOOL)sendMessageTo:(id)receiver selectorString:(NSString*)selectorStr arguments:(FSArray*)arguments putResultInMatrix:(NSMatrix*)matrix { - [self filter]; - /* int i, nb; - - for (i = 0, nb = [browser lastColumn]+1; i < nb; i +=2) - { - NSMatrix *matrix = [browser matrixInColumn:i]; - int selectedRow = [matrix selectedRow]; - id object = [[matrix cellAtRow:0 column:0] representedObject]; - - if ((i == 0 && (browsingMode == FSBrowsingWorkspace || browsingMode == FSBrowsingClasses)) || (selectedRow != 0 && ([object isKindOfClass:[NSArray class]] || [object isKindOfClass:[NSDictionary class]] || [object isKindOfClass:[NSSet class]])) ) - { - int j = 0; - int numberOfRows; - id selectedElement = [[matrix cellAtRow:selectedRow column:0] representedObject]; - - [selectedElement retain]; // (1) To ensure selectedElement will not be deallocated as a side effect of the following fillMatrix:withObject: message - - if (browsingMode == FSBrowsingWorkspace && i == 0) - [self fillMatrixForWorkspaceBrowsing:matrix]; // As a side effect, this will supress the selection - else if (browsingMode == FSBrowsingClasses && i == 0) - [self fillMatrixForClassesBrowsing:matrix]; // As a side effect, this will supress the selection - else - [self fillMatrix:matrix withObject:object]; // As a side effect, this will supress the selection - - //if (i == nb-2) [browser setLastColumn:i]; - - // Since the collection may have been modified, we search for - // the element of the collection that was selected (if still in the collection) - // in order to re-install the selection - numberOfRows = [matrix numberOfRows]; - while (1) - { - if (selectedRow+j >= numberOfRows && selectedRow-j < 0) break; - else if (selectedRow+j < numberOfRows && [[matrix cellAtRow:selectedRow+j column:0] representedObject] == selectedElement) + NSInteger nbarg = [arguments count]; + id args[nbarg + 2]; + SEL selector = [FSCompiler selectorFromString:selectorStr]; + NSInteger i; + id result = nil; // To avoid a warning "might be used uninitialized" + + if ([receiver isKindOfClass:[FSNewlyAllocatedObjectHolder class]]) + receiver = [receiver object]; + args[0] = receiver; + args[1] = (id)selector; + for (i = 0; i < nbarg; i++) + args[i + 2] = [arguments objectAtIndex:i]; + + @try { + result = sendMsgNoPattern(receiver, selector, nbarg + 2, args, [FSMsgContext msgContext], nil); + } + @catch (id exception) { - [matrix selectCellAtRow:selectedRow+j column:0]; - break; + FSInspectBlocksInCallStackForException(exception); + NSRunAlertPanel(@"Error", FSErrorMessageFromException(exception), @"OK", nil, nil, nil); + return NO; } - else if (selectedRow-j >= 0 && [[matrix cellAtRow:selectedRow-j column:0] representedObject] == selectedElement) + + if (selector == @selector(alloc) || selector == @selector(allocWithZone:)) + result = [FSNewlyAllocatedObjectHolder newlyAllocatedObjectHolderWithObject:result]; + + if (FSEncode([[receiver methodSignatureForSelector:selector] methodReturnType]) != 'v') + [self fillMatrix:matrix withObject:result]; + + return YES; +} + +- (void)setInterpreter:(FSInterpreter*)theInterpreter +{ + [theInterpreter retain]; + [interpreter release]; + interpreter = theInterpreter; +} + +- (void)setFilterString:(NSString*)theFilterString +{ + [theFilterString retain]; + [filterString release]; + filterString = theFilterString; +} + +- (void)setRootObject:(id)theRootObject +{ + [theRootObject retain]; + [rootObject release]; + rootObject = theRootObject; + browsingMode = FSBrowsingObject; + [browser loadColumnZero]; + //[browser displayColumn:0]; // may be unnecessary +} + +- (void)setTitleOfLastColumn:(NSString*)title +{ + [browser setTitle:title ofColumn:[browser lastColumn]]; +} + +- (void)updateAction:(id)sender +{ + [self filter]; +} + +- (id)validSelectedObject +{ + id selectedObject = [self selectedObject]; + + // We test wether the selectedObject object is valid (an invalid proxy will raise when sent -respondsToSelector:) + @try { + [selectedObject respondsToSelector:@selector(class)]; + } + @catch (id exception) { - [matrix selectCellAtRow:selectedRow-j column:0]; - break; + return nil; } - else - j++; - } - [selectedElement release]; // We can now match the retain in (1) - - // If no object is selected in the current matrix, then we "disable" the next matrix - // (which contains a method list), because we won't be able call a method from this matrix. - if ([matrix selectedRow] == -1 && i+1 <= [browser lastColumn]) - [[browser matrixInColumn:i+1] setEnabled:NO]; - } - else - { - [self fillMatrix:matrix withObject:object]; // As a side effect, this will supress the selection - if (selectedRow == 0) - [matrix selectCellAtRow:selectedRow column:0]; // I reinstall the selection - else - if (i+1 <= [browser lastColumn]) - [[browser matrixInColumn:i+1] setEnabled:NO]; - } - } - [[self window] display]; // To display the changes. Is there an other way ? */ -} - -- (id) validSelectedObject -{ - id selectedObject = [self selectedObject]; - - // We test wether the selectedObject object is valid (an invalid proxy will raise when sent -respondsToSelector:) - @try - { - [selectedObject respondsToSelector:@selector(class)]; - } - @catch (id exception) - { - return nil; - } - - return selectedObject; -} - -- (void) workspaceAction:(id)sender -{ - [self browseWorkspace]; -} - -//- (BOOL) isOpaque{return YES;} + + return selectedObject; +} + +- (void)workspaceAction:(id)sender +{ + [self browseWorkspace]; +} + @end diff --git a/FScriptFramework/FSObjectBrowserViewObjectInfo.m b/FScriptFramework/FSObjectBrowserViewObjectInfo.m index 819e521..7d8af6e 100644 --- a/FScriptFramework/FSObjectBrowserViewObjectInfo.m +++ b/FScriptFramework/FSObjectBrowserViewObjectInfo.m @@ -37,23 +37,22 @@ #import "FSCNDictionary.h" #import "FSAssociation.h" -@interface FSObjectBrowserViewObjectHelper : NSObject -{ - FSObjectBrowserCell *selectedCell; - NSString *selectedClassLabel; - NSString *selectedLabel; - id selectedObject; - NSString *classLabel; - NSMatrix *m; - FSObjectBrowserView *view; - NSMutableArray *baseClasses; +@interface FSObjectBrowserViewObjectHelper : NSObject { + FSObjectBrowserCell* selectedCell; + NSString* selectedClassLabel; + NSString* selectedLabel; + id selectedObject; + NSString* classLabel; + NSMatrix* m; + FSObjectBrowserView* view; + NSMutableArray* baseClasses; } -@property (nonatomic, retain) NSMutableArray *baseClasses; -@property (nonatomic, retain) FSObjectInspectorViewModelItem *rootViewModelItem; +@property (nonatomic, retain) NSMutableArray* baseClasses; +@property (nonatomic, retain) FSObjectInspectorViewModelItem* rootViewModelItem; -- (id)initWithObjectBrowserView:(FSObjectBrowserView *)view; -- (void)fillMatrix:(NSMatrix *)m withObject:(id)object; +- (id)initWithObjectBrowserView:(FSObjectBrowserView*)view; +- (void)fillMatrix:(NSMatrix*)m withObject:(id)object; - (void)addFSGenericPointer:(id)object; - (void)addFSObjectPointer:(id)object; @@ -125,24 +124,23 @@ - (void)processNSWindow:(id)object; @end - @implementation FSObjectBrowserView (FSObjectBrowserViewObjectInfo) -- (void)fillMatrix:(NSMatrix *)m withObject:(id)object +- (void)fillMatrix:(NSMatrix*)m withObject:(id)object { - - FSObjectBrowserViewObjectHelper *objectHelper = [[FSObjectBrowserViewObjectHelper alloc] initWithObjectBrowserView:self]; - [objectHelper fillMatrix:m withObject:object]; - - [self addBlankRowToMatrix:m]; - [self fillMatrix:m withMethodsForObject:object]; - - [m sizeToCells]; - //[m scrollCellToVisibleAtRow:[matrix selectedRow] column:0]; - [m setNeedsDisplay]; - - [objectHelper release]; + + FSObjectBrowserViewObjectHelper* objectHelper = [[FSObjectBrowserViewObjectHelper alloc] initWithObjectBrowserView:self]; + [objectHelper fillMatrix:m withObject:object]; + + [self addBlankRowToMatrix:m]; + [self fillMatrix:m withMethodsForObject:object]; + + [m sizeToCells]; + //[m scrollCellToVisibleAtRow:[matrix selectedRow] column:0]; + [m setNeedsDisplay]; + + [objectHelper release]; } @end @@ -150,2896 +148,2869 @@ - (void)fillMatrix:(NSMatrix *)m withObject:(id)object @implementation FSObjectBrowserViewObjectHelper -#define ADD_OBJECT(OBJECT,LABEL) @try { [view addObject:(OBJECT) withLabel:(LABEL) toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; } @catch (id exception) { NSLog(@"%@",exception); } - -#define ADD_OBJECT_NOT_NIL(OBJECT,LABEL) @try { id object = (OBJECT); if (object) [view addObject:object withLabel:(LABEL) toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; } @catch (id exception) { NSLog(@"%@",exception); } +#define ADD_OBJECT(OBJECT, LABEL) \ + @try { \ + [view addObject:(OBJECT)withLabel:(LABEL)toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; \ + } \ + @catch (id exception) { NSLog(@"%@", exception); } + +#define ADD_OBJECT_NOT_NIL(OBJECT, LABEL) \ + @try { \ + id object = (OBJECT); \ + if (object) \ + [view addObject:object withLabel:(LABEL)toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; \ + } \ + @catch (id exception) { NSLog(@"%@", exception); } + +#define ADD_DICTIONARY(OBJECTS, LABEL) \ + @try { \ + if ([(OBJECTS)count] <= 20) \ + [view addDictionary:(OBJECTS)withLabel:(LABEL)toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; \ + else \ + [view addObject:(OBJECTS)withLabel:(LABEL)toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; \ + } \ + @catch (id exception) { NSLog(@"%@", exception); } + +#define ADD_OBJECTS(OBJECTS, LABEL) \ + @try { \ + if ([(OBJECTS)count] <= 20) \ + [view addObjects:(OBJECTS)withLabel:(LABEL)toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; \ + else \ + [view addObject:(OBJECTS)withLabel:(LABEL)toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; \ + } \ + @catch (id exception) { NSLog(@"%@", exception); } + +#define ADD_BOOL(B, LABEL) \ + @try { \ + [view addObject:[FSBoolean booleanWithBool:(B)] withLabel:(LABEL)toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; \ + } \ + @catch (id exception) { NSLog(@"%@", exception); } + +#define ADD_NUMBER(NUMBER, LABEL) \ + @try { \ + [view addObject:[FSNumber numberWithDouble:(NUMBER)] withLabel:(LABEL)toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; \ + } \ + @catch (id exception) { NSLog(@"%@", exception); } + +#define ADD_SEL(S, LABEL) \ + @try { \ + [view addObject:[FSBlock blockWithSelector:(S)] withLabel:(LABEL)toMatrix:m leaf:YES classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject indentationLevel:0]; \ + } \ + @catch (id exception) { NSLog(@"%@", exception); } + +#define ADD_SEL_NOT_NULL(S, LABEL) \ + @try { \ + { \ + SEL selector = (S); \ + if (selector != (SEL)0) \ + [view addObject:[FSBlock blockWithSelector:selector] withLabel:(LABEL)toMatrix:m leaf:YES classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject indentationLevel:0]; \ + } \ + } \ + @catch (id exception) { NSLog(@"%@", exception); } + +#define ADD_SIZE(SIZE, LABEL) \ + @try { \ + [view addObject:[NSValue valueWithSize:(SIZE)] withLabel:(LABEL)toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; \ + } \ + @catch (id exception) { NSLog(@"%@", exception); } + +#define ADD_RECT(RECT, LABEL) \ + @try { \ + [view addObject:[NSValue valueWithRect:(RECT)] withLabel:(LABEL)toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; \ + } \ + @catch (id exception) { NSLog(@"%@", exception); } + +#define ADD_POINT(POINT, LABEL) \ + @try { \ + [view addObject:[NSValue valueWithPoint:(POINT)] withLabel:(LABEL)toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; \ + } \ + @catch (id exception) { NSLog(@"%@", exception); } + +#define ADD_POINTER(POINTER, LABEL) \ + @try { \ + if (POINTER == NULL) \ + ADD_OBJECT(nil, LABEL) else [view addObject:[[[FSGenericPointer alloc] initWithCPointer:(POINTER)freeWhenDone:NO type:@encode(void)] autorelease] withLabel:(LABEL)toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; \ + } \ + @catch (id exception) { NSLog(@"%@", exception); } + +#define ADD_RANGE(RANGE, LABEL) \ + @try { \ + [view addObject:[NSValue valueWithRange:(RANGE)] withLabel:(LABEL)toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; \ + } \ + @catch (id exception) { NSLog(@"%@", exception); } + +#define ADD_CLASS_LABEL(LABEL) \ + { \ + classLabel = (LABEL); \ + [view addClassLabel:classLabel toMatrix:m]; \ + } -#define ADD_DICTIONARY(OBJECTS,LABEL) @try { if ([(OBJECTS) count] <= 20) [view addDictionary:(OBJECTS) withLabel:(LABEL) toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; else [view addObject:(OBJECTS) withLabel:(LABEL) toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; } @catch (id exception) { NSLog(@"%@",exception); } +@synthesize baseClasses; -#define ADD_OBJECTS(OBJECTS,LABEL) @try { if ([(OBJECTS) count] <= 20) [view addObjects:(OBJECTS) withLabel:(LABEL) toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; else [view addObject:(OBJECTS) withLabel:(LABEL) toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; } @catch (id exception) { NSLog(@"%@",exception); } +- (id)init +{ + return [self initWithObjectBrowserView:nil]; +} -#define ADD_BOOL(B,LABEL) @try { [view addObject:[FSBoolean booleanWithBool:(B)] withLabel:(LABEL) toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; } @catch (id exception) { NSLog(@"%@",exception); } +- (id)initWithObjectBrowserView:(FSObjectBrowserView*)theView +{ + self = [super init]; + if (self) { -#define ADD_NUMBER(NUMBER,LABEL) @try { [view addObject:[FSNumber numberWithDouble:(NUMBER)] withLabel:(LABEL) toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; } @catch (id exception) { NSLog(@"%@",exception); } + if (!theView) { + return nil; + } -#define ADD_SEL(S,LABEL) @try { [view addObject:[FSBlock blockWithSelector:(S)] withLabel:(LABEL) toMatrix:m leaf:YES classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject indentationLevel:0]; } @catch (id exception) { NSLog(@"%@",exception); } + view = [[theView retain] autorelease]; + } -#define ADD_SEL_NOT_NULL(S,LABEL) @try { {SEL selector = (S); if (selector != (SEL)0) [view addObject:[FSBlock blockWithSelector:selector] withLabel:(LABEL) toMatrix:m leaf:YES classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject indentationLevel:0]; } } @catch (id exception) { NSLog(@"%@",exception); } + return self; +} -#define ADD_SIZE(SIZE,LABEL) @try { [view addObject:[NSValue valueWithSize:(SIZE)] withLabel:(LABEL) toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; } @catch (id exception) { NSLog(@"%@",exception); } +- (void)dealloc +{ + [baseClasses release]; + [super dealloc]; +} -#define ADD_RECT(RECT,LABEL) @try { [view addObject:[NSValue valueWithRect:(RECT)] withLabel:(LABEL) toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; } @catch (id exception) { NSLog(@"%@",exception); } +- (void)fillMatrix:(NSMatrix*)theMatrix withObject:(id)object +{ -#define ADD_POINT(POINT,LABEL) @try { [view addObject:[NSValue valueWithPoint:(POINT)] withLabel:(LABEL) toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; } @catch (id exception) { NSLog(@"%@",exception); } + [object retain]; // (1) To be sure object will not be deallocated as a side effect of the removing of rows -#define ADD_POINTER(POINTER,LABEL) @try { if (POINTER == NULL) ADD_OBJECT(nil,LABEL) else [view addObject:[[[FSGenericPointer alloc] initWithCPointer:(POINTER) freeWhenDone:NO type:@encode(void)] autorelease] withLabel:(LABEL) toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; } @catch (id exception) { NSLog(@"%@",exception); } + m = theMatrix; + selectedCell = [[[m selectedCell] retain] autorelease]; // retain and autorelease in order to avoid premature deallocation as a side effect of the removing of rows + selectedClassLabel = [[[selectedCell classLabel] copy] autorelease]; // copy and autorelease in order to avoid premature invalidation as a side effect of the removing of rows + selectedLabel = [[[selectedCell label] copy] autorelease]; // copy and autorelease in order to avoid premature invalidation as a side effect of the removing of rows + selectedObject = [selectedCell representedObject]; + classLabel = @""; -#define ADD_RANGE(RANGE,LABEL) @try { [view addObject:[NSValue valueWithRange:(RANGE)] withLabel:(LABEL) toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; } @catch (id exception) { NSLog(@"%@",exception); } + [m renewRows:0 columns:1]; -#define ADD_CLASS_LABEL(LABEL) {classLabel = (LABEL); [view addClassLabel:classLabel toMatrix:m];} + [view addObject:object toMatrix:m label:@"" classLabel:@"" indentationLevel:0 leaf:YES]; + [object release]; // It's now safe to match the retain in instruction (1) -@synthesize baseClasses; + if (selectedObject == object && [selectedClassLabel isEqualToString:@""] && [selectedLabel isEqualToString:@""]) + [m selectCellAtRow:[m numberOfRows] - 1 column:0]; -- (id)init -{ - return [self initWithObjectBrowserView:nil]; -} - -- (id)initWithObjectBrowserView:(FSObjectBrowserView *)theView -{ - self = [super init]; - if (self) { - - if (!theView) { - return nil; - } - - view = [[theView retain] autorelease]; - } - - return self; -} + if (object != nil && object == [object class]) // object is a class + { + NSMutableArray* classNames = [NSMutableArray array]; + NSUInteger count, i; + Class* classes = allClasses(&count); -- (void)dealloc -{ - [baseClasses release]; - [super dealloc]; -} - -- (void)fillMatrix:(NSMatrix *)theMatrix withObject:(id)object -{ - - [object retain]; // (1) To be sure object will not be deallocated as a side effect of the removing of rows - - m = theMatrix; - selectedCell = [[[m selectedCell] retain] autorelease]; // retain and autorelease in order to avoid premature deallocation as a side effect of the removing of rows - selectedClassLabel = [[[selectedCell classLabel] copy] autorelease]; // copy and autorelease in order to avoid premature invalidation as a side effect of the removing of rows - selectedLabel = [[[selectedCell label] copy] autorelease]; // copy and autorelease in order to avoid premature invalidation as a side effect of the removing of rows - selectedObject = [selectedCell representedObject]; - classLabel = @""; - - //for (int j = [m numberOfRows]-1; j >= 0; j--) [m removeRow:j]; // Remove all rows. As a side effect, this will supress the selection. - [m renewRows:0 columns:1]; - - [view addObject:object toMatrix:m label:@"" classLabel:@"" indentationLevel:0 leaf:YES]; - [object release]; // It's now safe to match the retain in instruction (1) - - if (selectedObject == object && [selectedClassLabel isEqualToString:@""] && [selectedLabel isEqualToString:@""]) - [m selectCellAtRow:[m numberOfRows]-1 column:0]; - - if (object != nil && object == [object class]) // object is a class - { - NSMutableArray *classNames = [NSMutableArray array]; - NSUInteger count, i; - Class *classes = allClasses(&count); - - @try - { - for (i = 0; i < count; i++) - { + @try { + for (i = 0; i < count; i++) { #ifdef __LP64__ - if (class_getSuperclass(classes[i]) == object) [classNames addObject:NSStringFromClass(classes[i])]; + if (class_getSuperclass(classes[i]) == object) + [classNames addObject:NSStringFromClass(classes[i])]; #else - if (classes[i]->super_class == object) [classNames addObject:NSStringFromClass(classes[i])]; + if (classes[i]->super_class == object) + [classNames addObject:NSStringFromClass(classes[i])]; #endif - } - } - @finally - { - free(classes); - } - [classNames sortUsingFunction:FSCompareClassNamesForAlphabeticalOrder context:NULL]; - - [view addBlankRowToMatrix:m]; - + } + } + @finally + { + free(classes); + } + [classNames sortUsingFunction:FSCompareClassNamesForAlphabeticalOrder context:NULL]; + + [view addBlankRowToMatrix:m]; + #ifdef __LP64__ - if (class_getSuperclass(object) == nil) [view addLabelAlone:@"This class is a root class" toMatrix:m]; - else [view addObject:class_getSuperclass((Class)object) withLabel:@"Superclass" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + if (class_getSuperclass(object) == nil) + [view addLabelAlone:@"This class is a root class" toMatrix:m]; + else + [view addObject:class_getSuperclass((Class)object) withLabel:@"Superclass" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; #else - if (((Class)object)->super_class == nil) [view addLabelAlone:@"This class is a root class" toMatrix:m]; - else [view addObject:((Class)object)->super_class withLabel:@"Superclass" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + if (((Class)object)->super_class == nil) + [view addLabelAlone:@"This class is a root class" toMatrix:m]; + else + [view addObject:((Class)object)->super_class withLabel:@"Superclass" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; #endif - - if ([classNames count] == 0) [view addLabelAlone:@"No subclasses" toMatrix:m]; - [view addClassesWithNames:classNames withLabel:@"Direct subclasses" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; - } - else if ([object isKindOfClass:[NSManagedObject class]]) - { - NSManagedObject *o = object; - classLabel = @"NSManagedObject Properties"; - NSArray *attributeKeys = [[[[o entity] attributesByName] allKeys] sortedArrayUsingSelector:@selector(compare:)]; - [view addPropertyLabel:@"Attributes" toMatrix:m]; - for (NSUInteger i = 0, count = [attributeKeys count]; i < count; i++) - { - NSString *key = [attributeKeys objectAtIndex:i]; - ADD_OBJECT([o valueForKey:key], key) - } - - NSArray *relationshipKeys = [[[[o entity] relationshipsByName] allKeys] sortedArrayUsingSelector:@selector(compare:)]; - [view addPropertyLabel:@"Relationships" toMatrix:m]; - for (NSUInteger i = 0, count = [relationshipKeys count]; i < count; i++) - { - NSString *key = [relationshipKeys objectAtIndex:i]; - ADD_OBJECT([o valueForKey:key], key) - } - - ADD_CLASS_LABEL(@"NSManagedObject Info"); - ADD_OBJECT( [o entity] ,@"Entity") - ADD_BOOL( [o isDeleted] ,@"Is deleted") - ADD_BOOL( [o isInserted] ,@"Is inserted") - ADD_BOOL( [o isUpdated] ,@"Is updated") - ADD_OBJECT( [o managedObjectContext] ,@"Managed object context") - ADD_OBJECT( [o objectID] ,@"Object ID") - } - else if (([object isKindOfClass:[NSArray class]] || [object isKindOfClass:[NSDictionary class]] || [object isKindOfClass:[NSSet class]]) - && [object count] < 500 ) // We display the elements only if there is less than a certain number of them - { - [view addBlankRowToMatrix:m]; - if ([object isKindOfClass:[NSArray class]]) - { - NSArray *o = object; - if ([o count] == 0) [view addLabelAlone:@"This array is empty" toMatrix:m]; - [view addObjects:o withLabel:@"Elements" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; - } - else if ([object isKindOfClass:[NSDictionary class]]) - { - NSDictionary *o = object; - if ([o count] == 0) [view addLabelAlone:@"This dictionary is empty" toMatrix:m]; - [view addDictionary:o withLabel:@"Entries" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; - } - else if ([object isKindOfClass:[NSSet class]]) - { - NSSet *o = object; - if ([o count] == 0) [view addLabelAlone:@"This set is empty" toMatrix:m]; - [view addObjects:[object allObjects] withLabel:@"Elements" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; - } - } - else if ([object isKindOfClass:[FSAssociation class]]) - { - FSAssociation *o = object; - [view addBlankRowToMatrix:m]; - [view addObject:[o key] withLabel:@"Key" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; - [view addObject:[o value] withLabel:@"Value" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; - } - else if ([object isKindOfClass:[NSView class]]) - { - NSView *o = object; - [view addBlankRowToMatrix:m]; - - [view addObject:[o superview] withLabel:@"Superview" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; - - if ([[o subviews] count] == 0) [view addLabelAlone:@"No subviews" toMatrix:m]; - else [view addObjects:[o subviews] withLabel:@"Subviews" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; - } - else if ([object isKindOfClass:[FSCNBase class]]) - { - [view addBlankRowToMatrix:m]; - - if ([object isKindOfClass:[FSCNArray class]]) - { - FSCNArray *o = object; - if (o->count == 0) [view addLabelAlone:@"An empty array" toMatrix:m]; - else [view addObjects:[NSArray arrayWithObjects:o->elements count:o->count] withLabel:@"Elements" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; - } - else if ([object isKindOfClass:[FSCNAssignment class]]) - { - FSCNAssignment *o = object; - [view addObject:o->left withLabel:@"lvalue" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; - [view addObject:o->right withLabel:@"rvalue" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; - } - else if ([object isKindOfClass:[FSCNBlock class]]) - { - FSCNBlock *o = object; - [view addObject:[o->blockRep ast] withLabel:@"Abstract syntax tree" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; - } - else if ([object isKindOfClass:[FSCNCascade class]]) - { - FSCNCascade *o = object; - [view addObject:o->receiver withLabel:@"Receiver" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; - [view addObjects:[NSArray arrayWithObjects:o->messages count:o->messageCount] withLabel:@"Message sends" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; - } - else if ([object isKindOfClass:[FSCNCategory class]]) - { - FSCNCategory *o = object; - [view addObject:o->className withLabel:@"Class name" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; - [view addObjects:o->methods withLabel:@"Methods" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; - } - else if ([object isKindOfClass:[FSCNClassDefinition class]]) - { - FSCNClassDefinition *o = object; - [view addObject:o->className withLabel:@"Class name" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; - [view addObject:o->superclassName withLabel:@"Superclass name" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; - [view addObjects:o->civarNames withLabel:@"Class instance variables names" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; - [view addObjects:o->ivarNames withLabel:@"Instance variables names" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; - [view addObjects:o->methods withLabel:@"Methods" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; - } - else if ([object isKindOfClass:[FSCNDictionary class]]) - { - FSCNDictionary *o = object; - if (o->count == 0) [view addLabelAlone:@"An empty dictionary" toMatrix:m]; - else [view addObjects:[NSArray arrayWithObjects:o->entries count:o->count] withLabel:@"Entries" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; - } - else if ([object isKindOfClass:[FSCNMethod class]]) - { - FSCNMethod *o = object; - [view addObject:o->method->code withLabel:@"Abstract syntax tree" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; - } - else if ([object isKindOfClass:[FSCNMessage class]]) - { - FSCNMessage *o = object; - [view addObject:o->receiver withLabel:@"Receiver" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; - - if ([object isKindOfClass:[FSCNBinaryMessage class]]) - { - FSCNBinaryMessage *o = object; - [view addObject:o->argument withLabel:@"Argument" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; - } - else if ([object isKindOfClass:[FSCNKeywordMessage class]]) - { - FSCNKeywordMessage *o = object; - [view addObjects:[NSArray arrayWithObjects:o->arguments count:o->argumentCount] withLabel:(o->argumentCount > 1 ? @"Arguments" : @"Argument") toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; - } - } - else if ([object isKindOfClass:[FSCNPrecomputedObject class]]) - { - FSCNPrecomputedObject *o = object; - [view addObject:o->object withLabel:@"Precomputed object" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; - } - else if ([object isKindOfClass:[FSCNStatementList class]]) - { - FSCNStatementList *o = object; - [view addObject:[NSNumber numberWithUnsignedInteger:o->statementCount] withLabel:@"Number of statements" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; - [view addObjects:[NSArray arrayWithObjects:o->statements count:o->statementCount] withLabel:@"Statements" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; - } - else if ([object isKindOfClass:[FSCNReturn class]]) - { - FSCNReturn *o = object; - [view addObject:o->expression withLabel:@"Expression" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; - } - - //FSCNBase *o = object; - //[self addObject:[NSNumber numberWithInteger:o->firstCharIndex] withLabel:@"Index of first character in source code" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; - //[self addObject:[NSNumber numberWithInteger:o->lastCharIndex] withLabel:@"Index of last character in source code" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; - } - - /////////////////// Objective-C 2.0 declared properties /////////////////// - if ([[NSUserDefaults standardUserDefaults] boolForKey:@"FScriptAutomaticallyIntrospectDeclaredProperties"]) - { - Class cls = [object classOrMetaclass]; - while (cls) - { - unsigned int i, count; - objc_property_t *properties = class_copyPropertyList(cls, &count); - if (properties != NULL && !(cls == [NSView class]) ) // Second part of condition is a quick fix to avoid bloating display for the NSView class with a "one property" section (10.5.0) or spurious properties (10.6). TODO: revise this. - { - classLabel = [NSString stringWithFormat:@"%@ Properties", [cls printString]]; - [view addClassLabel:classLabel toMatrix:m color:[NSColor magentaColor]]; - - for (i = 0; i < count; i++) - { - NSString *propertyName = [NSString stringWithUTF8String:property_getName(properties[i])]; - NSString* propertyEncoding = [ NSString stringWithUTF8String:property_getAttributes(properties[i])]; - NSError*error=nil; - NSRegularExpression* customGetterRegexp = [ NSRegularExpression regularExpressionWithPattern:@"(?:^G|,G)([^,]+)" options:0 error:&error ]; - NSTextCheckingResult* customGetterMatch = [ customGetterRegexp firstMatchInString:propertyEncoding options:0 range:NSMakeRange(0, propertyEncoding.length)]; - NSString* getter = propertyName; - if (customGetterMatch) { - getter = [ propertyEncoding substringWithRange:[customGetterMatch rangeAtIndex:1]]; - } - - id propertyValue = nil; // initialized to nil in order to shut down a spurious warning - NSString *errorMessage = nil; - - @try - { - propertyValue = [[[[@"[:object| object " stringByAppendingString:getter] stringByAppendingString:@"]"] asBlock] value:object]; - } - @catch (id exception) - { - errorMessage = [@"F-Script can't display the value of this property. " stringByAppendingString:FSErrorMessageFromException(exception)]; - [view addObject:errorMessage withLabel:propertyName toMatrix:m leaf:YES classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject indentationLevel:0]; - } - if (!errorMessage) ADD_OBJECT(propertyValue, propertyName) - } - free(properties); - } - if (cls == [cls superclass]) // Defensive programming against flawed class hierarchies with infinite loops. - cls = nil; - else - cls = [cls superclass]; - } - } - - /////////////////// Bindings /////////////////// - if ([object respondsToSelector:@selector(exposedBindings)] && [object respondsToSelector:@selector(infoForBinding:)]) - { - NSUInteger i, count; - NSArray *exposedBindings = nil; - - // Several Cocoa objects have a buggy implementation of the exposedBindings method (e.g. NSTextView), - // which leads to an exception being thrown when the method is called on certain *class* objects. - // We work around these bugs here by preventing the buggy exception to interupt the current method. - // Note: I'm writing this in Mac OS X 10.4.6. - // Update for 10.5: the exposedBindings method now crash for certain class objects. I work around this - // bellow by not calling it at all on class objects. - @try - { - if ([object class] != object) - exposedBindings = [object exposedBindings]; - } - @catch (id exeption) - {} - - if (exposedBindings) - { - for (i = 0, count = [exposedBindings count]; i < count; i++) - if ([object infoForBinding:[exposedBindings objectAtIndex:i]]) - break; - - if (i < count && count > 0) - { - classLabel = @"Bindings"; - [view addClassLabel:classLabel toMatrix:m color:[NSColor colorWithCalibratedRed:0 green:0.7098 blue:1 alpha:1]]; - - for (i = 0, count = [exposedBindings count]; i < count; i++) + + if ([classNames count] == 0) + [view addLabelAlone:@"No subclasses" toMatrix:m]; + [view addClassesWithNames:classNames withLabel:@"Direct subclasses" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + } + else if ([object isKindOfClass:[NSManagedObject class]]) { + NSManagedObject* o = object; + classLabel = @"NSManagedObject Properties"; + NSArray* attributeKeys = [[[[o entity] attributesByName] allKeys] sortedArrayUsingSelector:@selector(compare:)]; + [view addPropertyLabel:@"Attributes" toMatrix:m]; + for (NSUInteger i = 0, count = [attributeKeys count]; i < count; i++) { + NSString* key = [attributeKeys objectAtIndex:i]; + ADD_OBJECT([o valueForKey:key], key) + } + + NSArray* relationshipKeys = [[[[o entity] relationshipsByName] allKeys] sortedArrayUsingSelector:@selector(compare:)]; + [view addPropertyLabel:@"Relationships" toMatrix:m]; + for (NSUInteger i = 0, count = [relationshipKeys count]; i < count; i++) { + NSString* key = [relationshipKeys objectAtIndex:i]; + ADD_OBJECT([o valueForKey:key], key) + } + + ADD_CLASS_LABEL(@"NSManagedObject Info"); + ADD_OBJECT([o entity], @"Entity") + ADD_BOOL([o isDeleted], @"Is deleted") + ADD_BOOL([o isInserted], @"Is inserted") + ADD_BOOL([o isUpdated], @"Is updated") + ADD_OBJECT([o managedObjectContext], @"Managed object context") + ADD_OBJECT([o objectID], @"Object ID") + } + else if (([object isKindOfClass:[NSArray class]] || [object isKindOfClass:[NSDictionary class]] || [object isKindOfClass:[NSSet class]]) + && [object count] < 500) // We display the elements only if there is less than a certain number of them { - [view addBindingForObject:object withName:[exposedBindings objectAtIndex:i] toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; - } - - ADD_OBJECT(exposedBindings, @"Exposed Bindings"); - } - } - } - - for (Class baseClass in self.baseClasses) { - if ([object isKindOfClass:baseClass]) { - NSString *method = [NSString stringWithFormat:@"add%@:", [baseClass className]]; - SEL selector = NSSelectorFromString(method); - - NSAssert([self respondsToSelector:selector], @"Missing base class method"); - - [self performSelector:selector withObject:object]; - - break; - } - } -} - -- (NSMutableArray *)baseClasses -{ - if (!baseClasses) { - baseClasses = [[NSMutableArray alloc] initWithObjects: - [FSGenericPointer class], - [FSObjectPointer class], - [NSAffineTransform class], - [NSAlert class], - [NSAnimation class], - [NSAnimationContext class], - [NSAttributedString class], - [NSBezierPath class], - [NSCell class], - [NSCollectionViewItem class], - [NSComparisonPredicate class], - [NSCompoundPredicate class], - [NSController class], - [NSCursor class], - [NSDockTile class], - [NSDocument class], - [NSDocumentController class], - [NSEntityDescription class], - [NSEvent class], - [NSExpression class], - [NSFetchRequest class], - [NSFileWrapper class], - [NSFont class], - [NSFontDescriptor class], - [NSFontManager class], - [NSGlyphInfo class], - [NSGlyphGenerator class], - [NSGradient class], - [NSGraphicsContext class], - [NSImage class], - [NSImageRep class], - [NSLayoutManager class], - [NSManagedObjectContext class], - [NSManagedObjectID class], - [NSManagedObjectModel class], - [NSMenu class], - [NSMenuItem class], - [NSOpenGLContext class], - [NSOpenGLPixelBuffer class], - [NSOpenGLPixelFormat class], - [NSPageLayout class], - [NSParagraphStyle class], - [NSPersistentStoreCoordinator class], - [NSPredicateEditorRowTemplate class], - [NSPropertyDescription class], - [NSResponder class], - [NSRulerMarker class], - [NSScreen class], - [NSShadow class], - [NSStatusBar class], - [NSStatusItem class], - [NSTabViewItem class], - [NSTableColumn class], - [NSTextAttachment class], - [NSTextBlock class], - [NSTextContainer class], - [NSTextList class], - [NSTextTab class], - [NSToolbar class], - [NSToolbarItem class], - [NSTrackingArea class], - [NSUndoManager class], - [NSATSTypesetter class], - nil]; - } - return baseClasses; + [view addBlankRowToMatrix:m]; + if ([object isKindOfClass:[NSArray class]]) { + NSArray* o = object; + if ([o count] == 0) + [view addLabelAlone:@"This array is empty" toMatrix:m]; + [view addObjects:o withLabel:@"Elements" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + } + else if ([object isKindOfClass:[NSDictionary class]]) { + NSDictionary* o = object; + if ([o count] == 0) + [view addLabelAlone:@"This dictionary is empty" toMatrix:m]; + [view addDictionary:o withLabel:@"Entries" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + } + else if ([object isKindOfClass:[NSSet class]]) { + NSSet* o = object; + if ([o count] == 0) + [view addLabelAlone:@"This set is empty" toMatrix:m]; + [view addObjects:[object allObjects] withLabel:@"Elements" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + } + } + else if ([object isKindOfClass:[FSAssociation class]]) { + FSAssociation* o = object; + [view addBlankRowToMatrix:m]; + [view addObject:[o key] withLabel:@"Key" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + [view addObject:[o value] withLabel:@"Value" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + } + else if ([object isKindOfClass:[NSView class]]) { + NSView* o = object; + [view addBlankRowToMatrix:m]; + + [view addObject:[o superview] withLabel:@"Superview" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + + if ([[o subviews] count] == 0) + [view addLabelAlone:@"No subviews" toMatrix:m]; + else + [view addObjects:[o subviews] withLabel:@"Subviews" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + } + else if ([object isKindOfClass:[FSCNBase class]]) { + [view addBlankRowToMatrix:m]; + + if ([object isKindOfClass:[FSCNArray class]]) { + FSCNArray* o = object; + if (o->count == 0) + [view addLabelAlone:@"An empty array" toMatrix:m]; + else + [view addObjects:[NSArray arrayWithObjects:o->elements count:o->count] withLabel:@"Elements" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + } + else if ([object isKindOfClass:[FSCNAssignment class]]) { + FSCNAssignment* o = object; + [view addObject:o->left withLabel:@"lvalue" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + [view addObject:o->right withLabel:@"rvalue" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + } + else if ([object isKindOfClass:[FSCNBlock class]]) { + FSCNBlock* o = object; + [view addObject:[o->blockRep ast] withLabel:@"Abstract syntax tree" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + } + else if ([object isKindOfClass:[FSCNCascade class]]) { + FSCNCascade* o = object; + [view addObject:o->receiver withLabel:@"Receiver" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + [view addObjects:[NSArray arrayWithObjects:o->messages count:o->messageCount] withLabel:@"Message sends" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + } + else if ([object isKindOfClass:[FSCNCategory class]]) { + FSCNCategory* o = object; + [view addObject:o->className withLabel:@"Class name" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + [view addObjects:o->methods withLabel:@"Methods" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + } + else if ([object isKindOfClass:[FSCNClassDefinition class]]) { + FSCNClassDefinition* o = object; + [view addObject:o->className withLabel:@"Class name" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + [view addObject:o->superclassName withLabel:@"Superclass name" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + [view addObjects:o->civarNames withLabel:@"Class instance variables names" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + [view addObjects:o->ivarNames withLabel:@"Instance variables names" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + [view addObjects:o->methods withLabel:@"Methods" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + } + else if ([object isKindOfClass:[FSCNDictionary class]]) { + FSCNDictionary* o = object; + if (o->count == 0) + [view addLabelAlone:@"An empty dictionary" toMatrix:m]; + else + [view addObjects:[NSArray arrayWithObjects:o->entries count:o->count] withLabel:@"Entries" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + } + else if ([object isKindOfClass:[FSCNMethod class]]) { + FSCNMethod* o = object; + [view addObject:o->method->code withLabel:@"Abstract syntax tree" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + } + else if ([object isKindOfClass:[FSCNMessage class]]) { + FSCNMessage* o = object; + [view addObject:o->receiver withLabel:@"Receiver" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + + if ([object isKindOfClass:[FSCNBinaryMessage class]]) { + FSCNBinaryMessage* o = object; + [view addObject:o->argument withLabel:@"Argument" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + } + else if ([object isKindOfClass:[FSCNKeywordMessage class]]) { + FSCNKeywordMessage* o = object; + [view addObjects:[NSArray arrayWithObjects:o->arguments count:o->argumentCount] withLabel:(o->argumentCount > 1 ? @"Arguments" : @"Argument")toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + } + } + else if ([object isKindOfClass:[FSCNPrecomputedObject class]]) { + FSCNPrecomputedObject* o = object; + [view addObject:o->object withLabel:@"Precomputed object" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + } + else if ([object isKindOfClass:[FSCNStatementList class]]) { + FSCNStatementList* o = object; + [view addObject:[NSNumber numberWithUnsignedInteger:o->statementCount] withLabel:@"Number of statements" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + [view addObjects:[NSArray arrayWithObjects:o->statements count:o->statementCount] withLabel:@"Statements" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + } + else if ([object isKindOfClass:[FSCNReturn class]]) { + FSCNReturn* o = object; + [view addObject:o->expression withLabel:@"Expression" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + } + } + + /////////////////// Objective-C 2.0 declared properties /////////////////// + if ([[NSUserDefaults standardUserDefaults] boolForKey:@"FScriptAutomaticallyIntrospectDeclaredProperties"]) { + Class cls = [object classOrMetaclass]; + while (cls) { + unsigned int i, count; + objc_property_t* properties = class_copyPropertyList(cls, &count); + if (properties != NULL && !(cls == [NSView class])) // Second part of condition is a quick fix to avoid bloating display for the NSView class with a "one property" section (10.5.0) or spurious properties (10.6). TODO: revise this. + { + classLabel = [NSString stringWithFormat:@"%@ Properties", [cls printString]]; + [view addClassLabel:classLabel toMatrix:m color:[NSColor magentaColor]]; + + for (i = 0; i < count; i++) { + NSString* propertyName = [NSString stringWithUTF8String:property_getName(properties[i])]; + NSString* propertyEncoding = [NSString stringWithUTF8String:property_getAttributes(properties[i])]; + NSError* error = nil; + NSRegularExpression* customGetterRegexp = [NSRegularExpression regularExpressionWithPattern:@"(?:^G|,G)([^,]+)" options:0 error:&error]; + NSTextCheckingResult* customGetterMatch = [customGetterRegexp firstMatchInString:propertyEncoding options:0 range:NSMakeRange(0, propertyEncoding.length)]; + NSString* getter = propertyName; + if (customGetterMatch) { + getter = [propertyEncoding substringWithRange:[customGetterMatch rangeAtIndex:1]]; + } + + id propertyValue = nil; // initialized to nil in order to shut down a spurious warning + NSString* errorMessage = nil; + + @try { + propertyValue = [[[[@"[:object| object " stringByAppendingString:getter] stringByAppendingString:@"]"] asBlock] value:object]; + } + @catch (id exception) + { + errorMessage = [@"F-Script can't display the value of this property. " stringByAppendingString:FSErrorMessageFromException(exception)]; + [view addObject:errorMessage withLabel:propertyName toMatrix:m leaf:YES classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject indentationLevel:0]; + } + if (!errorMessage) + ADD_OBJECT(propertyValue, propertyName) + } + free(properties); + } + if (cls == [cls superclass]) // Defensive programming against flawed class hierarchies with infinite loops. + cls = nil; + else + cls = [cls superclass]; + } + } + + /////////////////// Bindings /////////////////// + if ([object respondsToSelector:@selector(exposedBindings)] && [object respondsToSelector:@selector(infoForBinding:)]) { + NSUInteger i, count; + NSArray* exposedBindings = nil; + + // Several Cocoa objects have a buggy implementation of the exposedBindings method (e.g. NSTextView), + // which leads to an exception being thrown when the method is called on certain *class* objects. + // We work around these bugs here by preventing the buggy exception to interupt the current method. + // Note: I'm writing this in Mac OS X 10.4.6. + // Update for 10.5: the exposedBindings method now crash for certain class objects. I work around this + // bellow by not calling it at all on class objects. + @try { + if ([object class] != object) + exposedBindings = [object exposedBindings]; + } + @catch (id exeption) + { + } + + if (exposedBindings) { + for (i = 0, count = [exposedBindings count]; i < count; i++) + if ([object infoForBinding:[exposedBindings objectAtIndex:i]]) + break; + + if (i < count && count > 0) { + classLabel = @"Bindings"; + [view addClassLabel:classLabel toMatrix:m color:[NSColor colorWithCalibratedRed:0 green:0.7098 blue:1 alpha:1]]; + + for (i = 0, count = [exposedBindings count]; i < count; i++) { + [view addBindingForObject:object withName:[exposedBindings objectAtIndex:i] toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + } + + ADD_OBJECT(exposedBindings, @"Exposed Bindings"); + } + } + } + + for (Class baseClass in self.baseClasses) { + if ([object isKindOfClass:baseClass]) { + NSString* method = [NSString stringWithFormat:@"add%@:", [baseClass className]]; + SEL selector = NSSelectorFromString(method); + + NSAssert([self respondsToSelector:selector], @"Missing base class method"); + + [self performSelector:selector withObject:object]; + + break; + } + } +} + +- (NSMutableArray*)baseClasses +{ + if (!baseClasses) { + baseClasses = [[NSMutableArray alloc] initWithObjects: + [FSGenericPointer class], + [FSObjectPointer class], + [NSAffineTransform class], + [NSAlert class], + [NSAnimation class], + [NSAnimationContext class], + [NSAttributedString class], + [NSBezierPath class], + [NSCell class], + [NSCollectionViewItem class], + [NSComparisonPredicate class], + [NSCompoundPredicate class], + [NSController class], + [NSCursor class], + [NSDockTile class], + [NSDocument class], + [NSDocumentController class], + [NSEntityDescription class], + [NSEvent class], + [NSExpression class], + [NSFetchRequest class], + [NSFileWrapper class], + [NSFont class], + [NSFontDescriptor class], + [NSFontManager class], + [NSGlyphInfo class], + [NSGlyphGenerator class], + [NSGradient class], + [NSGraphicsContext class], + [NSImage class], + [NSImageRep class], + [NSLayoutManager class], + [NSManagedObjectContext class], + [NSManagedObjectID class], + [NSManagedObjectModel class], + [NSMenu class], + [NSMenuItem class], + [NSOpenGLContext class], + [NSOpenGLPixelBuffer class], + [NSOpenGLPixelFormat class], + [NSPageLayout class], + [NSParagraphStyle class], + [NSPersistentStoreCoordinator class], + [NSPredicateEditorRowTemplate class], + [NSPropertyDescription class], + [NSResponder class], + [NSRulerMarker class], + [NSScreen class], + [NSShadow class], + [NSStatusBar class], + [NSStatusItem class], + [NSTabViewItem class], + [NSTableColumn class], + [NSTextAttachment class], + [NSTextBlock class], + [NSTextContainer class], + [NSTextList class], + [NSTextTab class], + [NSToolbar class], + [NSToolbarItem class], + [NSTrackingArea class], + [NSUndoManager class], + [NSATSTypesetter class], + nil]; + } + return baseClasses; } - (void)addFSGenericPointer:(id)object { - FSGenericPointer *o = object; - NSArray *memoryContent = [o memoryContent]; - - if (memoryContent) - { - ADD_CLASS_LABEL(@"FSGenericPointer Info"); - ADD_OBJECT( memoryContent ,@"Memory content") - ADD_OBJECT_NOT_NIL( [o memoryContentUTF8] ,@"Memory content as UTF8 string") - } + FSGenericPointer* o = object; + NSArray* memoryContent = [o memoryContent]; + + if (memoryContent) { + ADD_CLASS_LABEL(@"FSGenericPointer Info"); + ADD_OBJECT(memoryContent, @"Memory content") + ADD_OBJECT_NOT_NIL([o memoryContentUTF8], @"Memory content as UTF8 string") + } } - (void)addFSObjectPointer:(id)object { - FSObjectPointer *o = object; - NSArray *memoryContent = [o memoryContent]; - - if (memoryContent) - { - ADD_CLASS_LABEL(@"FSObjectPointer Info"); - ADD_OBJECT( memoryContent ,@"Memory content") - } + FSObjectPointer* o = object; + NSArray* memoryContent = [o memoryContent]; + + if (memoryContent) { + ADD_CLASS_LABEL(@"FSObjectPointer Info"); + ADD_OBJECT(memoryContent, @"Memory content") + } } - (void)addNSAffineTransform:(id)object { - NSAffineTransform *o = object; - NSAffineTransformStruct s = [o transformStruct]; - ADD_CLASS_LABEL(@"NSAffineTransform Info"); - ADD_NUMBER( s.m11 ,@"m11") - ADD_NUMBER( s.m12 ,@"m12") - ADD_NUMBER( s.m21 ,@"m21") - ADD_NUMBER( s.m22 ,@"m22") - ADD_NUMBER( s.tX ,@"tX") - ADD_NUMBER( s.tY ,@"tY") + NSAffineTransform* o = object; + NSAffineTransformStruct s = [o transformStruct]; + ADD_CLASS_LABEL(@"NSAffineTransform Info"); + ADD_NUMBER(s.m11, @"m11") + ADD_NUMBER(s.m12, @"m12") + ADD_NUMBER(s.m21, @"m21") + ADD_NUMBER(s.m22, @"m22") + ADD_NUMBER(s.tX, @"tX") + ADD_NUMBER(s.tY, @"tY") } - (void)addNSAlert:(id)object { - NSAlert *o = object; - ADD_CLASS_LABEL(@"NSAlert Info"); - ADD_OBJECT( [o accessoryView] ,@"Accessory view") - ADD_OBJECT( objectFromAlertStyle([o alertStyle]) ,@"Alert style") - ADD_OBJECTS( [o buttons] ,@"Buttons") - ADD_OBJECT_NOT_NIL( [o delegate] ,@"Delegate") - ADD_OBJECT_NOT_NIL( [o helpAnchor] ,@"Help anchor") - ADD_OBJECT( [o icon] ,@"Icon") - ADD_OBJECT( [o informativeText] ,@"Informative text") - ADD_OBJECT( [o messageText] ,@"Message text") - ADD_BOOL( [o showsHelp] ,@"Shows help") - ADD_BOOL( [o showsSuppressionButton] ,@"Shows suppression button") - ADD_OBJECT( [o suppressionButton] ,@"Suppression button") - ADD_OBJECT( [o window] ,@"Window") + NSAlert* o = object; + ADD_CLASS_LABEL(@"NSAlert Info"); + ADD_OBJECT([o accessoryView], @"Accessory view") + ADD_OBJECT(objectFromAlertStyle([o alertStyle]), @"Alert style") + ADD_OBJECTS([o buttons], @"Buttons") + ADD_OBJECT_NOT_NIL([o delegate], @"Delegate") + ADD_OBJECT_NOT_NIL([o helpAnchor], @"Help anchor") + ADD_OBJECT([o icon], @"Icon") + ADD_OBJECT([o informativeText], @"Informative text") + ADD_OBJECT([o messageText], @"Message text") + ADD_BOOL([o showsHelp], @"Shows help") + ADD_BOOL([o showsSuppressionButton], @"Shows suppression button") + ADD_OBJECT([o suppressionButton], @"Suppression button") + ADD_OBJECT([o window], @"Window") } - (void)addNSAnimation:(id)object { - if ([object isKindOfClass:[NSViewAnimation class]]) - { - NSViewAnimation *o = object; - - if ([o viewAnimations] != nil) - { - ADD_CLASS_LABEL(@"NSViewAnimation Info"); - ADD_OBJECTS( [o viewAnimations] ,@"View animations") - } - } - - NSAnimation *o = object; - ADD_CLASS_LABEL(@"NSAnimation Info"); - ADD_OBJECT(objectFromAnimationBlockingMode([o animationBlockingMode]),@"Animation blocking mode") - ADD_OBJECT(objectFromAnimationCurve([o animationCurve]) ,@"Animation curve") - ADD_NUMBER( [o currentProgress] ,@"Current progress") - ADD_NUMBER( [o currentValue] ,@"Current value") - ADD_OBJECT( [o delegate] ,@"Delegate") - ADD_NUMBER( [o duration] ,@"Duration (in seconds)") - ADD_NUMBER( [o frameRate] ,@"Frame rate") - ADD_BOOL( [o isAnimating] ,@"Is animating") - ADD_OBJECTS( [o progressMarks] ,@"Progress marks") - ADD_OBJECT( [o runLoopModesForAnimating] ,@"Run loop modes for animating") + if ([object isKindOfClass:[NSViewAnimation class]]) { + NSViewAnimation* o = object; + + if ([o viewAnimations] != nil) { + ADD_CLASS_LABEL(@"NSViewAnimation Info"); + ADD_OBJECTS([o viewAnimations], @"View animations") + } + } + + NSAnimation* o = object; + ADD_CLASS_LABEL(@"NSAnimation Info"); + ADD_OBJECT(objectFromAnimationBlockingMode([o animationBlockingMode]), @"Animation blocking mode") + ADD_OBJECT(objectFromAnimationCurve([o animationCurve]), @"Animation curve") + ADD_NUMBER([o currentProgress], @"Current progress") + ADD_NUMBER([o currentValue], @"Current value") + ADD_OBJECT([o delegate], @"Delegate") + ADD_NUMBER([o duration], @"Duration (in seconds)") + ADD_NUMBER([o frameRate], @"Frame rate") + ADD_BOOL([o isAnimating], @"Is animating") + ADD_OBJECTS([o progressMarks], @"Progress marks") + ADD_OBJECT([o runLoopModesForAnimating], @"Run loop modes for animating") } - (void)addNSAnimationContext:(id)object { - NSAnimationContext *o = object; - ADD_CLASS_LABEL(@"NSAnimationContext Info"); - ADD_NUMBER( [o duration] ,@"Duration (in seconds)") + NSAnimationContext* o = object; + ADD_CLASS_LABEL(@"NSAnimationContext Info"); + ADD_NUMBER([o duration], @"Duration (in seconds)") } - (void)addNSAttributedString:(id)object { - if ([object isKindOfClass:[NSMutableAttributedString class]]) - { - if ([object isKindOfClass:[NSTextStorage class]]) - { - NSTextStorage *o = object; - ADD_CLASS_LABEL(@"NSTextStorage Info"); - //ADD_OBJECT( [o attributeRuns] ,@"Attribute runs") - ADD_NUMBER( [o changeInLength] ,@"Change in length") - ADD_OBJECT_NOT_NIL( [o delegate] ,@"Delegate") - ADD_OBJECT(objectFromTextStorageEditedOptions([o editedMask]) ,@"Edited mask") - ADD_RANGE( [o editedRange] ,@"Edited range") - ADD_BOOL( [o fixesAttributesLazily] ,@"Fixes attributes lazily") - ADD_OBJECT( [o font] ,@"Font") - ADD_OBJECT( [o foregroundColor] ,@"Foreground color") - ADD_OBJECTS( [o layoutManagers] ,@"Layout managers") - //ADD_OBJECT( [o paragraphs] ,@"Paragraphs") // Note: invoking "paragraphs" and retaining the result cause the result of "layoutManager" to become trash ! - //ADD_OBJECT( [o words] ,@"Words") - } - //NSMutableAttributedString *o = object; - //[self addClassLabel:@"NSMutableAttributedString Info" toMatrix:m]; - } - - //NSAttributedString *o = object; - //[self addClassLabel:@"NSAttributedString Info" toMatrix:m]; + if ([object isKindOfClass:[NSMutableAttributedString class]]) { + if ([object isKindOfClass:[NSTextStorage class]]) { + NSTextStorage* o = object; + ADD_CLASS_LABEL(@"NSTextStorage Info"); + //ADD_OBJECT( [o attributeRuns] ,@"Attribute runs") + ADD_NUMBER([o changeInLength], @"Change in length") + ADD_OBJECT_NOT_NIL([o delegate], @"Delegate") + ADD_OBJECT(objectFromTextStorageEditedOptions([o editedMask]), @"Edited mask") + ADD_RANGE([o editedRange], @"Edited range") + ADD_BOOL([o fixesAttributesLazily], @"Fixes attributes lazily") + ADD_OBJECT([o font], @"Font") + ADD_OBJECT([o foregroundColor], @"Foreground color") + ADD_OBJECTS([o layoutManagers], @"Layout managers") + // Note: invoking "paragraphs" and retaining the result cause the result of "layoutManager" to become trash ! + } + } } - (void)addNSBezierPath:(id)object { - NSBezierPath *o = object; - ADD_CLASS_LABEL(@"NSBezierPath Info"); - ADD_RECT( [o bounds] ,@"Bounds") - ADD_RECT( [o controlPointBounds] ,@"Control point bounds") - if (![o isEmpty]) ADD_POINT([o currentPoint] ,@"Current point") - ADD_NUMBER( [o elementCount] ,@"Element count") - ADD_NUMBER( [o flatness] ,@"Flatness") - ADD_BOOL( [o isEmpty] ,@"Is empty") - ADD_OBJECT(objectFromLineCapStyle([o lineCapStyle]) ,@"Line cap style") - ADD_OBJECT(objectFromLineJoinStyle([o lineJoinStyle]) ,@"Line join style") - ADD_NUMBER( [o lineWidth] ,@"Line width") - ADD_NUMBER( [o miterLimit] ,@"Miter limit") - ADD_OBJECT(objectFromWindingRule([o windingRule]) ,@"Winding rule") - } + NSBezierPath* o = object; + ADD_CLASS_LABEL(@"NSBezierPath Info"); + ADD_RECT([o bounds], @"Bounds") + ADD_RECT([o controlPointBounds], @"Control point bounds") + if (![o isEmpty]) + ADD_POINT([o currentPoint], @"Current point") + ADD_NUMBER([o elementCount], @"Element count") + ADD_NUMBER([o flatness], @"Flatness") + ADD_BOOL([o isEmpty], @"Is empty") + ADD_OBJECT(objectFromLineCapStyle([o lineCapStyle]), @"Line cap style") + ADD_OBJECT(objectFromLineJoinStyle([o lineJoinStyle]), @"Line join style") + ADD_NUMBER([o lineWidth], @"Line width") + ADD_NUMBER([o miterLimit], @"Miter limit") + ADD_OBJECT(objectFromWindingRule([o windingRule]), @"Winding rule") +} - (void)addNSCell:(id)object { - if ([object isKindOfClass:[NSActionCell class]]) - { - if ([object isKindOfClass:[NSButtonCell class]]) - { - if ([object isKindOfClass:[NSMenuItemCell class]]) - { - if ([object isKindOfClass:[NSPopUpButtonCell class]]) - { - NSPopUpButtonCell *o = object; - ADD_CLASS_LABEL(@"NSPopUpButtonCell Info"); - ADD_BOOL( [o altersStateOfSelectedItem] ,@"Alters state of selected item") - ADD_OBJECT(objectFromPopUpArrowPosition([o arrowPosition]),@"Arrow position") - ADD_BOOL( [o autoenablesItems] ,@"Autoenables Items") - ADD_NUMBER( [o indexOfSelectedItem] ,@"Index of selected item") - ADD_OBJECTS( [o itemArray] ,@"Item array") - ADD_NUMBER( [o numberOfItems] ,@"Number of items") - ADD_OBJECT( [o objectValue] ,@"Object value") - ADD_OBJECT(objectFromRectEdge([o preferredEdge]) ,@"Preferred edge") - ADD_BOOL( [o pullsDown] ,@"Pulls down") - ADD_OBJECT( [o selectedItem] ,@"Selected item") - ADD_BOOL( [o usesItemFromMenu] ,@"Uses item from menu") - } - - NSMenuItemCell *o = object; - ADD_CLASS_LABEL(@"NSMenuItemCell Info"); - if ([[o menuItem] image]) - ADD_NUMBER( [o imageWidth] ,@"Image width") - ADD_BOOL( [o isHighlighted] ,@"Is highlighted") - if (![[[o menuItem] keyEquivalent] isEqualToString:@""]) - ADD_NUMBER( [o keyEquivalentWidth] ,@"Key equivalent width") - ADD_OBJECT( [o menuItem] ,@"Menu item") - ADD_BOOL( [o needsDisplay] ,@"Needs display") - ADD_BOOL( [o needsSizing] ,@"Needs sizing") - ADD_NUMBER( [o stateImageWidth] ,@"State image width") - ADD_NUMBER( [o titleWidth] ,@"Title width") - } - - NSButtonCell *o = object; - ADD_CLASS_LABEL(@"NSButtonCell Info"); - ADD_OBJECT_NOT_NIL( [o alternateImage] ,@"Alternate image") - ADD_OBJECT( [o alternateTitle] ,@"Alternate title") - ADD_OBJECT( [o attributedAlternateTitle] ,@"Attributed alternate title") - ADD_OBJECT( [o attributedTitle] ,@"Attributed title") - ADD_OBJECT( [o backgroundColor] ,@"Background color") - ADD_OBJECT(objectFromBezelStyle([o bezelStyle]) ,@"Bezel style") - ADD_OBJECT(objectFromGradientType([o gradientType]) ,@"Gradient type") - ADD_OBJECT(objectFromCellStyleMask([o highlightsBy]) ,@"Highlights by") - ADD_BOOL( [o imageDimsWhenDisabled] ,@"Image dims when disabled") - ADD_OBJECT(objectFromCellImagePosition([o imagePosition]) ,@"Image position") - ADD_OBJECT(objectFromImageScaling([o imageScaling]) ,@"Image scaling") - ADD_BOOL( [o isTransparent] ,@"Is transparent") - ADD_OBJECT_NOT_NIL( [o keyEquivalentFont] ,@"Key equivalent font") - ADD_OBJECT(objectFromKeyModifierMask([o keyEquivalentModifierMask]) , @"Key equivalent modifier mask") - ADD_BOOL( [o showsBorderOnlyWhileMouseInside] ,@"Shows border only while mouse inside") - ADD_OBJECT(objectFromCellStyleMask([o showsStateBy]) ,@"Shows state by") - ADD_OBJECT_NOT_NIL( [o sound] ,@"Sound") - ADD_OBJECT( [o title] ,@"Title") - } - else if ([object isKindOfClass:[NSDatePickerCell class]]) - { - NSDatePickerCell *o = object; - ADD_CLASS_LABEL(@"NSDatePickerCell Info"); - ADD_OBJECT( [o backgroundColor] ,@"Background color") - ADD_OBJECT( [o calendar] ,@"Calendar") - ADD_OBJECT(objectFromDatePickerElementFlags([o datePickerElements]),@"Date picker elements") - ADD_OBJECT(objectFromDatePickerMode([o datePickerMode]) ,@"Date picker mode") - ADD_OBJECT(objectFromDatePickerStyle([o datePickerStyle]) ,@"Date picker style") - ADD_OBJECT( [o dateValue] ,@"Date value") - ADD_OBJECT_NOT_NIL([o delegate] ,@"Delegate") - ADD_BOOL( [o drawsBackground] ,@"Draws background" ) - ADD_OBJECT_NOT_NIL([o locale] ,@"Locale") - ADD_OBJECT( [o maxDate] ,@"Max date") - ADD_OBJECT( [o minDate] ,@"Min date") - ADD_OBJECT( [o textColor] ,@"Text Color") - ADD_NUMBER( [o timeInterval] ,@"Time interval") - ADD_OBJECT( [o timeZone] ,@"Time zone") - } - else if ([object isKindOfClass:[NSFormCell class]]) - { - NSFormCell *o = object; - ADD_CLASS_LABEL(@"NSFormCell Info"); - ADD_OBJECT( [o attributedTitle] ,@"Attributed title") - ADD_OBJECT_NOT_NIL( [o placeholderAttributedString] ,@"Placeholder attributed string") - ADD_OBJECT_NOT_NIL( [o placeholderString] ,@"Placeholder string") - ADD_OBJECT(objectFromTextAlignment([o titleAlignment]) ,@"Title alignment") - ADD_OBJECT(objectFromWritingDirection([o titleBaseWritingDirection]),@"Title base writing direction") - ADD_OBJECT( [o titleFont] ,@"Title font") - ADD_NUMBER( [o titleWidth] ,@"Title width") - } - else if ([object isKindOfClass:[NSLevelIndicatorCell class]]) - { - NSLevelIndicatorCell *o = object; - ADD_CLASS_LABEL(@"NSLevelIndicatorCell Info"); - ADD_NUMBER( [o criticalValue] ,@"Critical value") - ADD_OBJECT(objectFromLevelIndicatorStyle([o levelIndicatorStyle]),@"Level indicator style") - ADD_NUMBER( [o maxValue] ,@"Max value") - ADD_NUMBER( [o minValue] ,@"Min value") - ADD_NUMBER( [o numberOfMajorTickMarks] ,@"Number of major tick marks") - ADD_NUMBER( [o numberOfTickMarks] ,@"Number of tick marks") - ADD_OBJECT(objectFromTickMarkPosition([o tickMarkPosition], NO),@"Tick mark position") - ADD_NUMBER( [o warningValue] ,@"Warning value") - } - else if ([object isKindOfClass:[NSPathCell class]]) - { - NSPathCell *o = object; - ADD_CLASS_LABEL(@"NSPathCell Info"); - ADD_OBJECTS( [o allowedTypes] ,@"Allowed types") - ADD_OBJECT_NOT_NIL([o backgroundColor] ,@"Background color") - ADD_OBJECT( [o delegate] ,@"Delegate") - ADD_SEL( [o doubleAction] ,@"Double action") - ADD_OBJECTS( [o pathComponentCells] ,@"Path component cells") - ADD_OBJECT(objectFromPathStyle([o pathStyle]) ,@"Path style") - ADD_OBJECT_NOT_NIL([o placeholderAttributedString] ,@"Placeholder attributed string") - ADD_OBJECT_NOT_NIL([o placeholderString] ,@"Placeholder string") - ADD_OBJECT_NOT_NIL([o URL] ,@"URL") - } - else if ([object isKindOfClass:[NSSegmentedCell class]]) - { - NSSegmentedCell *o = object; - NSInteger segmentCount = [o segmentCount]; - ADD_CLASS_LABEL(@"NSSegmentedCell Info"); - - ADD_NUMBER( segmentCount ,@"Segment count") - ADD_NUMBER( [o selectedSegment] ,@"Selected segment") - ADD_OBJECT(objectFromSegmentSwitchTracking([o trackingMode]),@"Tracking mode") - - for (NSInteger i = 0; i < segmentCount; i++) - { - ADD_OBJECT_NOT_NIL([o imageForSegment:i] ,([NSString stringWithFormat:@"Image for segment %ld",(long)i])) - ADD_OBJECT(objectFromImageScaling([o imageScalingForSegment:i]),([NSString stringWithFormat:@"Image scaling for segment %ld",(long)i])) - ADD_BOOL( [o isEnabledForSegment:i] ,([NSString stringWithFormat:@"Is enabled for segment %ld",(long)i])) - ADD_BOOL( [o isSelectedForSegment:i] ,([NSString stringWithFormat:@"Is selected for segment %ld",(long)i])) - ADD_OBJECT_NOT_NIL([o labelForSegment:i] ,([NSString stringWithFormat:@"Label for segment %ld",(long)i])) - ADD_OBJECT_NOT_NIL([o menuForSegment:i] ,([NSString stringWithFormat:@"Menu for segment %ld",(long)i])) - ADD_NUMBER( [o tagForSegment:i] ,([NSString stringWithFormat:@"Tag for segment %ld",(long)i])) - ADD_OBJECT_NOT_NIL([o toolTipForSegment:i] ,([NSString stringWithFormat:@"Tool tip for segment %ld",(long)i])) - ADD_NUMBER( [o widthForSegment:i] ,([NSString stringWithFormat:@"Width for segment %ld",(long)i])) - } - } - else if ([object isKindOfClass:[NSSliderCell class]]) - { - NSSliderCell *o = object; - ADD_CLASS_LABEL(@"NSSliderCell Info"); - ADD_BOOL( [o allowsTickMarkValuesOnly] ,@"Allows tick mark values only") - ADD_NUMBER( [o altIncrementValue] ,@"Alt increment value") - ADD_NUMBER( [(NSSliderCell*)o isVertical] ,@"Is vertical") - ADD_NUMBER( [o knobThickness] ,@"Knob thickness") - ADD_NUMBER( [o maxValue] ,@"Max value") - ADD_NUMBER( [o minValue] ,@"Min value") - ADD_NUMBER( [o numberOfTickMarks] ,@"Number of tick marks") - ADD_OBJECT( objectFromSliderType([o sliderType]) ,@"Slider type") - ADD_OBJECT(objectFromTickMarkPosition([o tickMarkPosition], [(NSSliderCell*)o isVertical] == 1),@"Tick mark position") - ADD_RECT( [o trackRect] ,@"Track rect") - } - else if ([object isKindOfClass:[NSStepperCell class]]) - { - NSStepperCell *o = object; - ADD_CLASS_LABEL(@"NSStepperCell Info"); - ADD_BOOL( [o autorepeat] ,@"Autorepeat") - ADD_NUMBER( [o increment] ,@"Increment") - ADD_NUMBER( [o maxValue] ,@"Max value") - ADD_NUMBER( [o minValue] ,@"Min value") - ADD_BOOL( [o valueWraps] ,@"Value wraps") - } - else if ([object isKindOfClass:[NSTextFieldCell class]]) - { - if ([object isKindOfClass:[NSComboBoxCell class]]) - { - NSComboBoxCell *o = object; - ADD_CLASS_LABEL(@"NSComboBoxCell Info"); - if ([o usesDataSource]) ADD_OBJECT([o dataSource] ,@"Data source") - ADD_BOOL( [o hasVerticalScroller] ,@"Has vertical scroller") - ADD_NUMBER( [o indexOfSelectedItem] ,@"Index of selected item") - ADD_SIZE( [o intercellSpacing] ,@"Intercell spacing") - ADD_BOOL( [o isButtonBordered] ,@"Is button bordered") - ADD_NUMBER( [o itemHeight] ,@"Item height") - ADD_NUMBER( [o numberOfItems] ,@"Number of items") - ADD_NUMBER( [o numberOfVisibleItems] ,@"Number of visible items") - if (![o usesDataSource] && [o indexOfSelectedItem] != -1) - ADD_OBJECT( [o objectValueOfSelectedItem] ,@"Object value of selected item") - if (![o usesDataSource]) - ADD_OBJECTS( [o objectValues] ,@"Object values") - ADD_BOOL( [o usesDataSource] ,@"Uses data source") - } - else if ([object isKindOfClass:[NSPathComponentCell class]]) - { - NSPathComponentCell *o = object; - ADD_CLASS_LABEL(@"NSPathComponentCell Info"); - ADD_OBJECT_NOT_NIL([o image] ,@"Image") - ADD_OBJECT_NOT_NIL([o URL] ,@"URL") - } - else if ([object isKindOfClass:[NSSearchFieldCell class]]) - { - NSSearchFieldCell *o = object; - ADD_CLASS_LABEL(@"NSSearchFieldCell Info"); - ADD_OBJECT( [o cancelButtonCell] ,@"Cancel button cell") - ADD_NUMBER( [o maximumRecents] ,@"Maximum recents") - ADD_OBJECTS( [o recentSearches] ,@"Recent searches") - ADD_OBJECT_NOT_NIL([o recentsAutosaveName] ,@"Recents autosave name") - ADD_OBJECT( [o searchButtonCell] ,@"Search button cell") - ADD_OBJECT_NOT_NIL([o searchMenuTemplate] ,@"Search menu template") - ADD_BOOL( [o sendsSearchStringImmediately] ,@"Sends search string immediately") - ADD_BOOL( [o sendsWholeSearchString] ,@"Sends whole search string") - } - else if ([object isKindOfClass:[NSTokenFieldCell class]]) - { - NSTokenField *o = object; - ADD_CLASS_LABEL(@"NSTokenField Info"); - ADD_NUMBER( [o completionDelay] ,@"Completion delay") - ADD_OBJECT_NOT_NIL([o delegate] ,@"Delegate") - ADD_OBJECT( [o tokenizingCharacterSet] ,@"Tokenizing character set") - ADD_OBJECT(objectFromTokenStyle([o tokenStyle]) ,@"Token style") - } - - NSTextFieldCell *o = object; - ADD_CLASS_LABEL(@"NSTextFieldCell Info"); - ADD_OBJECTS( [o allowedInputSourceLocales] ,@"Allowed input source locales") - ADD_OBJECT( [o backgroundColor] ,@"Background color") - ADD_OBJECT(objectFromTextFieldBezelStyle([o bezelStyle]) ,@"Bezel style") - ADD_BOOL( [o drawsBackground] ,@"Draws background") - ADD_OBJECT_NOT_NIL([o placeholderAttributedString] ,@"Placeholder attributed string") - ADD_OBJECT_NOT_NIL([o placeholderString] ,@"Placeholder string") - ADD_OBJECT( [o textColor] ,@"Text color") - } - } - else if ([object isKindOfClass:[NSBrowserCell class]]) - { - NSBrowserCell *o = object; - ADD_CLASS_LABEL(@"NSBrowserCell Info"); - ADD_OBJECT_NOT_NIL( [o alternateImage] ,@"Alternate image") - ADD_BOOL( [o isLeaf] ,@"Is leaf") - ADD_BOOL( [o isLoaded] ,@"Is loaded") - } - else if ([object isKindOfClass:[NSImageCell class]]) - { - NSImageCell *o = object; - ADD_CLASS_LABEL(@"NSImageCell Info"); - ADD_OBJECT(objectFromImageAlignment([o imageAlignment]) ,@"Image alignment") - ADD_OBJECT(objectFromImageScaling([o imageScaling]) ,@"Image scaling") - } - else if ([object isKindOfClass:[NSTextAttachmentCell class]]) - { - NSTextAttachmentCell *o = object; - ADD_CLASS_LABEL(@"NSTextAttachmentCell Info"); - ADD_OBJECT( [o attachment] ,@"Attachment") - ADD_POINT( [o cellBaselineOffset] ,@"Cell baseline offset") - ADD_SIZE( [o cellSize] ,@"Cell size") - ADD_BOOL( [o wantsToTrackMouse] ,@"Wants to track mouse") - } - - NSCell *o = object; - ADD_CLASS_LABEL(@"NSCell Info"); - ADD_BOOL( [o acceptsFirstResponder] ,@"Accepts first responder") - ADD_SEL_NOT_NULL( [o action] ,@"Action") - ADD_OBJECT( objectFromTextAlignment([o alignment]) ,@"Alignment") - ADD_BOOL( [o allowsEditingTextAttributes] ,@"Allows editing text attributes") - ADD_BOOL( [o allowsMixedState] ,@"Allows mixed state") - ADD_BOOL( [o allowsUndo] ,@"Allows undo") - //ADD_OBJECT( [o attributedStringValue] ,@"Attributed string value") - ADD_OBJECT(objectFromBackgroundStyle([o backgroundStyle]) ,@"Background style") - ADD_OBJECT(objectFromWritingDirection([o baseWritingDirection]) ,@"Base writing direction") - ADD_SIZE( [o cellSize] ,@"Cell size") - ADD_OBJECT(objectFromControlSize([o controlSize]) ,@"Control size") - ADD_OBJECT(objectFromControlTint([o controlTint]) ,@"Control tint") - ADD_OBJECT_NOT_NIL( [o controlView] ,@"Control view") - ADD_OBJECT(objectFromFocusRingType([o focusRingType]) ,@"Focus ring type") - ADD_OBJECT( [o font] ,@"Font") - ADD_OBJECT_NOT_NIL( [o formatter] ,@"Formatter") - ADD_OBJECT_NOT_NIL( [o image] ,@"Image") - if ([(NSCell *)o type] == NSTextCellType) ADD_BOOL([o importsGraphics] ,@"Imports graphics") - ADD_OBJECT(objectFromBackgroundStyle([o interiorBackgroundStyle]),@"Interior background style") - ADD_BOOL( [o isBezeled] ,@"Is bezeled") - ADD_BOOL( [o isBordered] ,@"Is bordered") - ADD_BOOL( [o isContinuous] ,@"Is continuous") - ADD_BOOL( [o isEditable] ,@"Is editable") - ADD_BOOL( [o isEnabled] ,@"Is enabled") - ADD_BOOL( [o isHighlighted] ,@"Is highlighted") - ADD_BOOL( [o isOpaque] ,@"Is opaque") - ADD_BOOL( [o isScrollable] ,@"Is scrollable") - ADD_BOOL( [o isSelectable] ,@"Is selectable") - if ([[o keyEquivalent] length]!=0) ADD_OBJECT([o keyEquivalent] ,@"Key equivalent") - ADD_OBJECT(objectFromLineBreakMode([o lineBreakMode]) ,@"Line break mode") - ADD_OBJECT_NOT_NIL( [o menu] ,@"Menu") - if ([[o mnemonic] length]!=0) ADD_OBJECT([o mnemonic] ,@"Mnemonic") - if ([o mnemonicLocation]!=NSNotFound) ADD_NUMBER([o mnemonicLocation],@"Mnemonic location") - ADD_OBJECT(objectFromCellStateValue([o nextState]) ,@"Next state") - //ADD_OBJECT( [o objectValue] ,@"Object value") - ADD_BOOL( [o refusesFirstResponder] ,@"Refuses first responder") - ADD_OBJECT_NOT_NIL( [o representedObject] ,@"Represented object") - ADD_BOOL( [o sendsActionOnEndEditing] ,@"Sends action on end editing") - ADD_BOOL( [o showsFirstResponder] ,@"Shows first responder") - ADD_OBJECT(objectFromCellStateValue([o state]) ,@"State") - ADD_NUMBER( [o tag] ,@"Tag") - ADD_OBJECT_NOT_NIL( [o target] ,@"Target") - ADD_OBJECT(objectFromCellType([(NSCell *)o type]) ,@"Type") - ADD_BOOL( [o wantsNotificationForMarkedText] ,@"Wants notification for marked text") - ADD_BOOL( [o wraps] ,@"Wraps") - } + if ([object isKindOfClass:[NSActionCell class]]) { + if ([object isKindOfClass:[NSButtonCell class]]) { + if ([object isKindOfClass:[NSMenuItemCell class]]) { + if ([object isKindOfClass:[NSPopUpButtonCell class]]) { + NSPopUpButtonCell* o = object; + ADD_CLASS_LABEL(@"NSPopUpButtonCell Info"); + ADD_BOOL([o altersStateOfSelectedItem], @"Alters state of selected item") + ADD_OBJECT(objectFromPopUpArrowPosition([o arrowPosition]), @"Arrow position") + ADD_BOOL([o autoenablesItems], @"Autoenables Items") + ADD_NUMBER([o indexOfSelectedItem], @"Index of selected item") + ADD_OBJECTS([o itemArray], @"Item array") + ADD_NUMBER([o numberOfItems], @"Number of items") + ADD_OBJECT([o objectValue], @"Object value") + ADD_OBJECT(objectFromRectEdge([o preferredEdge]), @"Preferred edge") + ADD_BOOL([o pullsDown], @"Pulls down") + ADD_OBJECT([o selectedItem], @"Selected item") + ADD_BOOL([o usesItemFromMenu], @"Uses item from menu") + } + + NSMenuItemCell* o = object; + ADD_CLASS_LABEL(@"NSMenuItemCell Info"); + if ([[o menuItem] image]) + ADD_NUMBER([o imageWidth], @"Image width") + ADD_BOOL([o isHighlighted], @"Is highlighted") + if (![[[o menuItem] keyEquivalent] isEqualToString:@""]) + ADD_NUMBER([o keyEquivalentWidth], @"Key equivalent width") + ADD_OBJECT([o menuItem], @"Menu item") + ADD_BOOL([o needsDisplay], @"Needs display") + ADD_BOOL([o needsSizing], @"Needs sizing") + ADD_NUMBER([o stateImageWidth], @"State image width") + ADD_NUMBER([o titleWidth], @"Title width") + } + + NSButtonCell* o = object; + ADD_CLASS_LABEL(@"NSButtonCell Info"); + ADD_OBJECT_NOT_NIL([o alternateImage], @"Alternate image") + ADD_OBJECT([o alternateTitle], @"Alternate title") + ADD_OBJECT([o attributedAlternateTitle], @"Attributed alternate title") + ADD_OBJECT([o attributedTitle], @"Attributed title") + ADD_OBJECT([o backgroundColor], @"Background color") + ADD_OBJECT(objectFromBezelStyle([o bezelStyle]), @"Bezel style") + ADD_OBJECT(objectFromGradientType([o gradientType]), @"Gradient type") + ADD_OBJECT(objectFromCellStyleMask([o highlightsBy]), @"Highlights by") + ADD_BOOL([o imageDimsWhenDisabled], @"Image dims when disabled") + ADD_OBJECT(objectFromCellImagePosition([o imagePosition]), @"Image position") + ADD_OBJECT(objectFromImageScaling([o imageScaling]), @"Image scaling") + ADD_BOOL([o isTransparent], @"Is transparent") + ADD_OBJECT_NOT_NIL([o keyEquivalentFont], @"Key equivalent font") + ADD_OBJECT(objectFromKeyModifierMask([o keyEquivalentModifierMask]), @"Key equivalent modifier mask") + ADD_BOOL([o showsBorderOnlyWhileMouseInside], @"Shows border only while mouse inside") + ADD_OBJECT(objectFromCellStyleMask([o showsStateBy]), @"Shows state by") + ADD_OBJECT_NOT_NIL([o sound], @"Sound") + ADD_OBJECT([o title], @"Title") + } + else if ([object isKindOfClass:[NSDatePickerCell class]]) { + NSDatePickerCell* o = object; + ADD_CLASS_LABEL(@"NSDatePickerCell Info"); + ADD_OBJECT([o backgroundColor], @"Background color") + ADD_OBJECT([o calendar], @"Calendar") + ADD_OBJECT(objectFromDatePickerElementFlags([o datePickerElements]), @"Date picker elements") + ADD_OBJECT(objectFromDatePickerMode([o datePickerMode]), @"Date picker mode") + ADD_OBJECT(objectFromDatePickerStyle([o datePickerStyle]), @"Date picker style") + ADD_OBJECT([o dateValue], @"Date value") + ADD_OBJECT_NOT_NIL([o delegate], @"Delegate") + ADD_BOOL([o drawsBackground], @"Draws background") + ADD_OBJECT_NOT_NIL([o locale], @"Locale") + ADD_OBJECT([o maxDate], @"Max date") + ADD_OBJECT([o minDate], @"Min date") + ADD_OBJECT([o textColor], @"Text Color") + ADD_NUMBER([o timeInterval], @"Time interval") + ADD_OBJECT([o timeZone], @"Time zone") + } + else if ([object isKindOfClass:[NSFormCell class]]) { + NSFormCell* o = object; + ADD_CLASS_LABEL(@"NSFormCell Info"); + ADD_OBJECT([o attributedTitle], @"Attributed title") + ADD_OBJECT_NOT_NIL([o placeholderAttributedString], @"Placeholder attributed string") + ADD_OBJECT_NOT_NIL([o placeholderString], @"Placeholder string") + ADD_OBJECT(objectFromTextAlignment([o titleAlignment]), @"Title alignment") + ADD_OBJECT(objectFromWritingDirection([o titleBaseWritingDirection]), @"Title base writing direction") + ADD_OBJECT([o titleFont], @"Title font") + ADD_NUMBER([o titleWidth], @"Title width") + } + else if ([object isKindOfClass:[NSLevelIndicatorCell class]]) { + NSLevelIndicatorCell* o = object; + ADD_CLASS_LABEL(@"NSLevelIndicatorCell Info"); + ADD_NUMBER([o criticalValue], @"Critical value") + ADD_OBJECT(objectFromLevelIndicatorStyle([o levelIndicatorStyle]), @"Level indicator style") + ADD_NUMBER([o maxValue], @"Max value") + ADD_NUMBER([o minValue], @"Min value") + ADD_NUMBER([o numberOfMajorTickMarks], @"Number of major tick marks") + ADD_NUMBER([o numberOfTickMarks], @"Number of tick marks") + ADD_OBJECT(objectFromTickMarkPosition([o tickMarkPosition], NO), @"Tick mark position") + ADD_NUMBER([o warningValue], @"Warning value") + } + else if ([object isKindOfClass:[NSPathCell class]]) { + NSPathCell* o = object; + ADD_CLASS_LABEL(@"NSPathCell Info"); + ADD_OBJECTS([o allowedTypes], @"Allowed types") + ADD_OBJECT_NOT_NIL([o backgroundColor], @"Background color") + ADD_OBJECT([o delegate], @"Delegate") + ADD_SEL([o doubleAction], @"Double action") + ADD_OBJECTS([o pathComponentCells], @"Path component cells") + ADD_OBJECT(objectFromPathStyle([o pathStyle]), @"Path style") + ADD_OBJECT_NOT_NIL([o placeholderAttributedString], @"Placeholder attributed string") + ADD_OBJECT_NOT_NIL([o placeholderString], @"Placeholder string") + ADD_OBJECT_NOT_NIL([o URL], @"URL") + } + else if ([object isKindOfClass:[NSSegmentedCell class]]) { + NSSegmentedCell* o = object; + NSInteger segmentCount = [o segmentCount]; + ADD_CLASS_LABEL(@"NSSegmentedCell Info"); + + ADD_NUMBER(segmentCount, @"Segment count") + ADD_NUMBER([o selectedSegment], @"Selected segment") + ADD_OBJECT(objectFromSegmentSwitchTracking([o trackingMode]), @"Tracking mode") + + for (NSInteger i = 0; i < segmentCount; i++) { + ADD_OBJECT_NOT_NIL([o imageForSegment:i], ([NSString stringWithFormat:@"Image for segment %ld", (long)i])) + ADD_OBJECT(objectFromImageScaling([o imageScalingForSegment:i]), ([NSString stringWithFormat:@"Image scaling for segment %ld", (long)i])) + ADD_BOOL([o isEnabledForSegment:i], ([NSString stringWithFormat:@"Is enabled for segment %ld", (long)i])) + ADD_BOOL([o isSelectedForSegment:i], ([NSString stringWithFormat:@"Is selected for segment %ld", (long)i])) + ADD_OBJECT_NOT_NIL([o labelForSegment:i], ([NSString stringWithFormat:@"Label for segment %ld", (long)i])) + ADD_OBJECT_NOT_NIL([o menuForSegment:i], ([NSString stringWithFormat:@"Menu for segment %ld", (long)i])) + ADD_NUMBER([o tagForSegment:i], ([NSString stringWithFormat:@"Tag for segment %ld", (long)i])) + ADD_OBJECT_NOT_NIL([o toolTipForSegment:i], ([NSString stringWithFormat:@"Tool tip for segment %ld", (long)i])) + ADD_NUMBER([o widthForSegment:i], ([NSString stringWithFormat:@"Width for segment %ld", (long)i])) + } + } + else if ([object isKindOfClass:[NSSliderCell class]]) { + NSSliderCell* o = object; + ADD_CLASS_LABEL(@"NSSliderCell Info"); + ADD_BOOL([o allowsTickMarkValuesOnly], @"Allows tick mark values only") + ADD_NUMBER([o altIncrementValue], @"Alt increment value") + ADD_NUMBER([(NSSliderCell*)o isVertical], @"Is vertical") + ADD_NUMBER([o knobThickness], @"Knob thickness") + ADD_NUMBER([o maxValue], @"Max value") + ADD_NUMBER([o minValue], @"Min value") + ADD_NUMBER([o numberOfTickMarks], @"Number of tick marks") + ADD_OBJECT(objectFromSliderType([o sliderType]), @"Slider type") + ADD_OBJECT(objectFromTickMarkPosition([o tickMarkPosition], [(NSSliderCell*)o isVertical] == 1), @"Tick mark position") + ADD_RECT([o trackRect], @"Track rect") + } + else if ([object isKindOfClass:[NSStepperCell class]]) { + NSStepperCell* o = object; + ADD_CLASS_LABEL(@"NSStepperCell Info"); + ADD_BOOL([o autorepeat], @"Autorepeat") + ADD_NUMBER([o increment], @"Increment") + ADD_NUMBER([o maxValue], @"Max value") + ADD_NUMBER([o minValue], @"Min value") + ADD_BOOL([o valueWraps], @"Value wraps") + } + else if ([object isKindOfClass:[NSTextFieldCell class]]) { + if ([object isKindOfClass:[NSComboBoxCell class]]) { + NSComboBoxCell* o = object; + ADD_CLASS_LABEL(@"NSComboBoxCell Info"); + if ([o usesDataSource]) + ADD_OBJECT([o dataSource], @"Data source") + ADD_BOOL([o hasVerticalScroller], @"Has vertical scroller") + ADD_NUMBER([o indexOfSelectedItem], @"Index of selected item") + ADD_SIZE([o intercellSpacing], @"Intercell spacing") + ADD_BOOL([o isButtonBordered], @"Is button bordered") + ADD_NUMBER([o itemHeight], @"Item height") + ADD_NUMBER([o numberOfItems], @"Number of items") + ADD_NUMBER([o numberOfVisibleItems], @"Number of visible items") + if (![o usesDataSource] && [o indexOfSelectedItem] != -1) + ADD_OBJECT([o objectValueOfSelectedItem], @"Object value of selected item") + if (![o usesDataSource]) + ADD_OBJECTS([o objectValues], @"Object values") + ADD_BOOL([o usesDataSource], @"Uses data source") + } + else if ([object isKindOfClass:[NSPathComponentCell class]]) { + NSPathComponentCell* o = object; + ADD_CLASS_LABEL(@"NSPathComponentCell Info"); + ADD_OBJECT_NOT_NIL([o image], @"Image") + ADD_OBJECT_NOT_NIL([o URL], @"URL") + } + else if ([object isKindOfClass:[NSSearchFieldCell class]]) { + NSSearchFieldCell* o = object; + ADD_CLASS_LABEL(@"NSSearchFieldCell Info"); + ADD_OBJECT([o cancelButtonCell], @"Cancel button cell") + ADD_NUMBER([o maximumRecents], @"Maximum recents") + ADD_OBJECTS([o recentSearches], @"Recent searches") + ADD_OBJECT_NOT_NIL([o recentsAutosaveName], @"Recents autosave name") + ADD_OBJECT([o searchButtonCell], @"Search button cell") + ADD_OBJECT_NOT_NIL([o searchMenuTemplate], @"Search menu template") + ADD_BOOL([o sendsSearchStringImmediately], @"Sends search string immediately") + ADD_BOOL([o sendsWholeSearchString], @"Sends whole search string") + } + else if ([object isKindOfClass:[NSTokenFieldCell class]]) { + NSTokenField* o = object; + ADD_CLASS_LABEL(@"NSTokenField Info"); + ADD_NUMBER([o completionDelay], @"Completion delay") + ADD_OBJECT_NOT_NIL([o delegate], @"Delegate") + ADD_OBJECT([o tokenizingCharacterSet], @"Tokenizing character set") + ADD_OBJECT(objectFromTokenStyle([o tokenStyle]), @"Token style") + } + + NSTextFieldCell* o = object; + ADD_CLASS_LABEL(@"NSTextFieldCell Info"); + ADD_OBJECTS([o allowedInputSourceLocales], @"Allowed input source locales") + ADD_OBJECT([o backgroundColor], @"Background color") + ADD_OBJECT(objectFromTextFieldBezelStyle([o bezelStyle]), @"Bezel style") + ADD_BOOL([o drawsBackground], @"Draws background") + ADD_OBJECT_NOT_NIL([o placeholderAttributedString], @"Placeholder attributed string") + ADD_OBJECT_NOT_NIL([o placeholderString], @"Placeholder string") + ADD_OBJECT([o textColor], @"Text color") + } + } + else if ([object isKindOfClass:[NSBrowserCell class]]) { + NSBrowserCell* o = object; + ADD_CLASS_LABEL(@"NSBrowserCell Info"); + ADD_OBJECT_NOT_NIL([o alternateImage], @"Alternate image") + ADD_BOOL([o isLeaf], @"Is leaf") + ADD_BOOL([o isLoaded], @"Is loaded") + } + else if ([object isKindOfClass:[NSImageCell class]]) { + NSImageCell* o = object; + ADD_CLASS_LABEL(@"NSImageCell Info"); + ADD_OBJECT(objectFromImageAlignment([o imageAlignment]), @"Image alignment") + ADD_OBJECT(objectFromImageScaling([o imageScaling]), @"Image scaling") + } + else if ([object isKindOfClass:[NSTextAttachmentCell class]]) { + NSTextAttachmentCell* o = object; + ADD_CLASS_LABEL(@"NSTextAttachmentCell Info"); + ADD_OBJECT([o attachment], @"Attachment") + ADD_POINT([o cellBaselineOffset], @"Cell baseline offset") + ADD_SIZE([o cellSize], @"Cell size") + ADD_BOOL([o wantsToTrackMouse], @"Wants to track mouse") + } + + NSCell* o = object; + ADD_CLASS_LABEL(@"NSCell Info"); + ADD_BOOL([o acceptsFirstResponder], @"Accepts first responder") + ADD_SEL_NOT_NULL([o action], @"Action") + ADD_OBJECT(objectFromTextAlignment([o alignment]), @"Alignment") + ADD_BOOL([o allowsEditingTextAttributes], @"Allows editing text attributes") + ADD_BOOL([o allowsMixedState], @"Allows mixed state") + ADD_BOOL([o allowsUndo], @"Allows undo") + //ADD_OBJECT( [o attributedStringValue] ,@"Attributed string value") + ADD_OBJECT(objectFromBackgroundStyle([o backgroundStyle]), @"Background style") + ADD_OBJECT(objectFromWritingDirection([o baseWritingDirection]), @"Base writing direction") + ADD_SIZE([o cellSize], @"Cell size") + ADD_OBJECT(objectFromControlSize([o controlSize]), @"Control size") + ADD_OBJECT(objectFromControlTint([o controlTint]), @"Control tint") + ADD_OBJECT_NOT_NIL([o controlView], @"Control view") + ADD_OBJECT(objectFromFocusRingType([o focusRingType]), @"Focus ring type") + ADD_OBJECT([o font], @"Font") + ADD_OBJECT_NOT_NIL([o formatter], @"Formatter") + ADD_OBJECT_NOT_NIL([o image], @"Image") + if ([(NSCell*)o type] == NSTextCellType) + ADD_BOOL([o importsGraphics], @"Imports graphics") + ADD_OBJECT(objectFromBackgroundStyle([o interiorBackgroundStyle]), @"Interior background style") + ADD_BOOL([o isBezeled], @"Is bezeled") + ADD_BOOL([o isBordered], @"Is bordered") + ADD_BOOL([o isContinuous], @"Is continuous") + ADD_BOOL([o isEditable], @"Is editable") + ADD_BOOL([o isEnabled], @"Is enabled") + ADD_BOOL([o isHighlighted], @"Is highlighted") + ADD_BOOL([o isOpaque], @"Is opaque") + ADD_BOOL([o isScrollable], @"Is scrollable") + ADD_BOOL([o isSelectable], @"Is selectable") + if ([[o keyEquivalent] length] != 0) + ADD_OBJECT([o keyEquivalent], @"Key equivalent") + ADD_OBJECT(objectFromLineBreakMode([o lineBreakMode]), @"Line break mode") + ADD_OBJECT_NOT_NIL([o menu], @"Menu") + if ([[o mnemonic] length] != 0) + ADD_OBJECT([o mnemonic], @"Mnemonic") + if ([o mnemonicLocation] != NSNotFound) + ADD_NUMBER([o mnemonicLocation], @"Mnemonic location") + ADD_OBJECT(objectFromCellStateValue([o nextState]), @"Next state") + //ADD_OBJECT( [o objectValue] ,@"Object value") + ADD_BOOL([o refusesFirstResponder], @"Refuses first responder") + ADD_OBJECT_NOT_NIL([o representedObject], @"Represented object") + ADD_BOOL([o sendsActionOnEndEditing], @"Sends action on end editing") + ADD_BOOL([o showsFirstResponder], @"Shows first responder") + ADD_OBJECT(objectFromCellStateValue([o state]), @"State") + ADD_NUMBER([o tag], @"Tag") + ADD_OBJECT_NOT_NIL([o target], @"Target") + ADD_OBJECT(objectFromCellType([(NSCell*)o type]), @"Type") + ADD_BOOL([o wantsNotificationForMarkedText], @"Wants notification for marked text") + ADD_BOOL([o wraps], @"Wraps") +} - (void)addNSCollectionViewItem:(id)object { - NSCollectionViewItem *o = object; - ADD_CLASS_LABEL(@"NSCollectionViewItem Info"); - ADD_OBJECT( [o collectionView] ,@"Collection view") - ADD_BOOL( [o isSelected] ,@"Is selected") - ADD_OBJECT( [o representedObject] ,@"Represented object") - ADD_OBJECT_NOT_NIL( [o view] ,@"View") + NSCollectionViewItem* o = object; + ADD_CLASS_LABEL(@"NSCollectionViewItem Info"); + ADD_OBJECT([o collectionView], @"Collection view") + ADD_BOOL([o isSelected], @"Is selected") + ADD_OBJECT([o representedObject], @"Represented object") + ADD_OBJECT_NOT_NIL([o view], @"View") } - (void)addNSComparisonPredicate:(id)object { - NSComparisonPredicate *o = object; - ADD_CLASS_LABEL(@"NSComparisonPredicate Info"); - ADD_OBJECT(objectFromComparisonPredicateModifier([o comparisonPredicateModifier]), @"Comparison predicate modifier") - ADD_SEL_NOT_NULL( [o customSelector] ,@"Custom selector") - ADD_OBJECT( [o leftExpression] ,@"Left expression") - ADD_OBJECT(objectFromPredicateOperatorType([o predicateOperatorType]), @"Predicate operator type") - ADD_OBJECT( [o rightExpression] ,@"Right expression") + NSComparisonPredicate* o = object; + ADD_CLASS_LABEL(@"NSComparisonPredicate Info"); + ADD_OBJECT(objectFromComparisonPredicateModifier([o comparisonPredicateModifier]), @"Comparison predicate modifier") + ADD_SEL_NOT_NULL([o customSelector], @"Custom selector") + ADD_OBJECT([o leftExpression], @"Left expression") + ADD_OBJECT(objectFromPredicateOperatorType([o predicateOperatorType]), @"Predicate operator type") + ADD_OBJECT([o rightExpression], @"Right expression") } - (void)addNSCompoundPredicate:(id)object { - NSCompoundPredicate *o = object; - ADD_CLASS_LABEL(@"NSCompoundPredicate Info") - ADD_OBJECT(objectFromCompoundPredicateType([o compoundPredicateType]) ,@"Compound predicate type") - ADD_OBJECTS( [o subpredicates] ,@"Subpredicates") + NSCompoundPredicate* o = object; + ADD_CLASS_LABEL(@"NSCompoundPredicate Info") + ADD_OBJECT(objectFromCompoundPredicateType([o compoundPredicateType]), @"Compound predicate type") + ADD_OBJECTS([o subpredicates], @"Subpredicates") } - (void)addNSController:(id)object { - if ([object isKindOfClass:[NSObjectController class]]) - { - if ([object isKindOfClass:[NSArrayController class]]) - { - if ([object isKindOfClass:[NSDictionaryController class]]) - { - NSDictionaryController *o = object; - ADD_CLASS_LABEL(@"NSDictionaryController Info"); - ADD_OBJECTS( [o excludedKeys] ,@"Excluded keys") - ADD_OBJECTS( [o includedKeys] ,@"Included keys") - ADD_OBJECT( [o initialKey] ,@"Initial key") - ADD_OBJECT( [o initialValue] ,@"Initial value") - ADD_DICTIONARY( [o localizedKeyDictionary] ,@"Localized key dictionary") - ADD_OBJECT_NOT_NIL( [o localizedKeyTable] ,@"Localized key table") - } - - NSArrayController *o = object; - ADD_CLASS_LABEL(@"NSArrayController Info"); - ADD_BOOL( [o alwaysUsesMultipleValuesMarker] ,@"Always uses multiple values marker") - ADD_BOOL( [o automaticallyRearrangesObjects] ,@"Automatically rearranges objects") - ADD_OBJECTS( [o automaticRearrangementKeyPaths] ,@"Automatic rearrangement key paths") - ADD_BOOL( [o avoidsEmptySelection] ,@"Avoids empty selection") - ADD_BOOL( [o clearsFilterPredicateOnInsertion] ,@"Clears filter predicate on insertion") - ADD_BOOL( [o canInsert] ,@"Can insert") - ADD_BOOL( [o canSelectNext] ,@"Can select next") - ADD_BOOL( [o canSelectPrevious] ,@"Can select previous") - ADD_OBJECT_NOT_NIL( [o filterPredicate] ,@"Filter predicate") - ADD_BOOL( [o preservesSelection] ,@"Preserves selection") - if ([o selectionIndex] != NSNotFound) ADD_NUMBER([o selectionIndex], @"Selection index") - ADD_OBJECT( [o selectionIndexes] ,@"Selection indexes") - ADD_BOOL( [o selectsInsertedObjects] ,@"Selects inserted Objects") - ADD_OBJECTS( [o sortDescriptors] ,@"Sort descriptors") - } - else if ([object isKindOfClass:[NSTreeController class]]) - { - NSTreeController *o = object; - ADD_CLASS_LABEL(@"NSTreeController Info"); - ADD_BOOL( [o alwaysUsesMultipleValuesMarker] ,@"Always uses multiple values marker") - ADD_BOOL( [o avoidsEmptySelection] ,@"Avoids empty selection") - ADD_BOOL( [o canAddChild] ,@"Can add child") - ADD_BOOL( [o canInsert] ,@"Can insert") - ADD_BOOL( [o canInsertChild] ,@"Can insert child") - ADD_OBJECT( [o childrenKeyPath] ,@"Children key path") - ADD_OBJECT( [o countKeyPath] ,@"Count key path") - ADD_OBJECT( [o leafKeyPath] ,@"Leaf key path") - ADD_BOOL( [o preservesSelection] ,@"Preserves selection") - ADD_OBJECTS( [o selectedNodes] ,@"Selected nodes") - ADD_OBJECTS( [o selectedObjects] ,@"Selected objects") - ADD_OBJECTS( [o selectionIndexPaths] ,@"Selection index paths") - ADD_BOOL( [o selectsInsertedObjects] ,@"Selects inserted Objects") - ADD_OBJECTS( [o sortDescriptors] ,@"Sort descriptors") - } - - NSObjectController *o = object; - ADD_CLASS_LABEL(@"NSObjectController Info"); - ADD_BOOL( [o automaticallyPreparesContent] ,@"Automatically prepares content") - ADD_BOOL( [o canAdd] ,@"Can add") - ADD_BOOL( [o canRemove] ,@"Can remove") - ADD_OBJECT( [o content] ,@"Content") - if ([o managedObjectContext] != nil) // Do not work when there is no managedObjectContext associated with the object - ADD_OBJECT_NOT_NIL( [o defaultFetchRequest] ,@"Default fetch request") - ADD_OBJECT_NOT_NIL( [o entityName] ,@"Entity name") - ADD_OBJECT_NOT_NIL( [o fetchPredicate] ,@"Fetch predicate") - ADD_BOOL( [o isEditable] ,@"Is editable") - ADD_OBJECT_NOT_NIL( [o managedObjectContext] ,@"Managed object context") - ADD_OBJECT( [o objectClass] ,@"Object class") - ADD_OBJECTS( [o selectedObjects] ,@"Selected objects") - ADD_OBJECT( [o selection] ,@"Selection") - ADD_BOOL( [o usesLazyFetching] ,@"Uses lazy fetching") - - } - else if ([object isKindOfClass:[NSUserDefaultsController class]]) - { - NSUserDefaultsController *o = object; - ADD_CLASS_LABEL(@"NSUserDefaultsController Info"); - ADD_BOOL( [o appliesImmediately] ,@"Applies immediately") - ADD_OBJECT( [o defaults] ,@"Defaults") - ADD_BOOL( [o hasUnappliedChanges] ,@"Has unapplied changes") - ADD_OBJECT( [o initialValues] ,@"Initial values") - ADD_OBJECT( [o values] ,@"Values") - } - - NSController *o = object; - ADD_CLASS_LABEL(@"NSController Info"); - ADD_BOOL( [o isEditing] ,@"Is editing") + if ([object isKindOfClass:[NSObjectController class]]) { + if ([object isKindOfClass:[NSArrayController class]]) { + if ([object isKindOfClass:[NSDictionaryController class]]) { + NSDictionaryController* o = object; + ADD_CLASS_LABEL(@"NSDictionaryController Info"); + ADD_OBJECTS([o excludedKeys], @"Excluded keys") + ADD_OBJECTS([o includedKeys], @"Included keys") + ADD_OBJECT([o initialKey], @"Initial key") + ADD_OBJECT([o initialValue], @"Initial value") + ADD_DICTIONARY([o localizedKeyDictionary], @"Localized key dictionary") + ADD_OBJECT_NOT_NIL([o localizedKeyTable], @"Localized key table") + } + + NSArrayController* o = object; + ADD_CLASS_LABEL(@"NSArrayController Info"); + ADD_BOOL([o alwaysUsesMultipleValuesMarker], @"Always uses multiple values marker") + ADD_BOOL([o automaticallyRearrangesObjects], @"Automatically rearranges objects") + ADD_OBJECTS([o automaticRearrangementKeyPaths], @"Automatic rearrangement key paths") + ADD_BOOL([o avoidsEmptySelection], @"Avoids empty selection") + ADD_BOOL([o clearsFilterPredicateOnInsertion], @"Clears filter predicate on insertion") + ADD_BOOL([o canInsert], @"Can insert") + ADD_BOOL([o canSelectNext], @"Can select next") + ADD_BOOL([o canSelectPrevious], @"Can select previous") + ADD_OBJECT_NOT_NIL([o filterPredicate], @"Filter predicate") + ADD_BOOL([o preservesSelection], @"Preserves selection") + if ([o selectionIndex] != NSNotFound) + ADD_NUMBER([o selectionIndex], @"Selection index") + ADD_OBJECT([o selectionIndexes], @"Selection indexes") + ADD_BOOL([o selectsInsertedObjects], @"Selects inserted Objects") + ADD_OBJECTS([o sortDescriptors], @"Sort descriptors") + } + else if ([object isKindOfClass:[NSTreeController class]]) { + NSTreeController* o = object; + ADD_CLASS_LABEL(@"NSTreeController Info"); + ADD_BOOL([o alwaysUsesMultipleValuesMarker], @"Always uses multiple values marker") + ADD_BOOL([o avoidsEmptySelection], @"Avoids empty selection") + ADD_BOOL([o canAddChild], @"Can add child") + ADD_BOOL([o canInsert], @"Can insert") + ADD_BOOL([o canInsertChild], @"Can insert child") + ADD_OBJECT([o childrenKeyPath], @"Children key path") + ADD_OBJECT([o countKeyPath], @"Count key path") + ADD_OBJECT([o leafKeyPath], @"Leaf key path") + ADD_BOOL([o preservesSelection], @"Preserves selection") + ADD_OBJECTS([o selectedNodes], @"Selected nodes") + ADD_OBJECTS([o selectedObjects], @"Selected objects") + ADD_OBJECTS([o selectionIndexPaths], @"Selection index paths") + ADD_BOOL([o selectsInsertedObjects], @"Selects inserted Objects") + ADD_OBJECTS([o sortDescriptors], @"Sort descriptors") + } + + NSObjectController* o = object; + ADD_CLASS_LABEL(@"NSObjectController Info"); + ADD_BOOL([o automaticallyPreparesContent], @"Automatically prepares content") + ADD_BOOL([o canAdd], @"Can add") + ADD_BOOL([o canRemove], @"Can remove") + ADD_OBJECT([o content], @"Content") + if ([o managedObjectContext] != nil) // Do not work when there is no managedObjectContext associated with the object + ADD_OBJECT_NOT_NIL([o defaultFetchRequest], @"Default fetch request") + ADD_OBJECT_NOT_NIL([o entityName], @"Entity name") + ADD_OBJECT_NOT_NIL([o fetchPredicate], @"Fetch predicate") + ADD_BOOL([o isEditable], @"Is editable") + ADD_OBJECT_NOT_NIL([o managedObjectContext], @"Managed object context") + ADD_OBJECT([o objectClass], @"Object class") + ADD_OBJECTS([o selectedObjects], @"Selected objects") + ADD_OBJECT([o selection], @"Selection") + ADD_BOOL([o usesLazyFetching], @"Uses lazy fetching") + } + else if ([object isKindOfClass:[NSUserDefaultsController class]]) { + NSUserDefaultsController* o = object; + ADD_CLASS_LABEL(@"NSUserDefaultsController Info"); + ADD_BOOL([o appliesImmediately], @"Applies immediately") + ADD_OBJECT([o defaults], @"Defaults") + ADD_BOOL([o hasUnappliedChanges], @"Has unapplied changes") + ADD_OBJECT([o initialValues], @"Initial values") + ADD_OBJECT([o values], @"Values") + } + + NSController* o = object; + ADD_CLASS_LABEL(@"NSController Info"); + ADD_BOOL([o isEditing], @"Is editing") } - (void)addNSCursor:(id)object { - NSCursor *o = object; - ADD_CLASS_LABEL(@"NSCursor Info"); - ADD_POINT( [o hotSpot] ,@"HotSpot") - ADD_OBJECT( [o image] ,@"Image") - ADD_BOOL( [o isSetOnMouseEntered] ,@"Is set on mouse entered") - ADD_BOOL( [o isSetOnMouseExited] ,@"Is set on mouse exited") + NSCursor* o = object; + ADD_CLASS_LABEL(@"NSCursor Info"); + ADD_POINT([o hotSpot], @"HotSpot") + ADD_OBJECT([o image], @"Image") + ADD_BOOL([o isSetOnMouseEntered], @"Is set on mouse entered") + ADD_BOOL([o isSetOnMouseExited], @"Is set on mouse exited") } - (void)addNSDockTile:(id)object { - NSDockTile *o = object; - ADD_CLASS_LABEL(@"NSDockTile Info"); - ADD_OBJECT( [o badgeLabel] ,@"Badge label") - ADD_OBJECT( [o contentView] ,@"Content view") - ADD_OBJECT( [o owner] ,@"Owner") - ADD_BOOL( [o showsApplicationBadge] ,@"Shows application badge") - ADD_SIZE( [o size] ,@"Size") + NSDockTile* o = object; + ADD_CLASS_LABEL(@"NSDockTile Info"); + ADD_OBJECT([o badgeLabel], @"Badge label") + ADD_OBJECT([o contentView], @"Content view") + ADD_OBJECT([o owner], @"Owner") + ADD_BOOL([o showsApplicationBadge], @"Shows application badge") + ADD_SIZE([o size], @"Size") } - (void)addNSDocument:(id)object { - /* - if ([object isKindOfClass:NSClassFromString(@"NSPersistentDocument")]) - { - NSPersistentDocument *o = object; - ADD_CLASS_LABEL(@"NSPersistentDocument Info"); - } - */ - - NSDocument *o = object; - ADD_CLASS_LABEL(@"NSDocument Info"); - ADD_OBJECT_NOT_NIL( [o autosavedContentsFileURL] ,@"Autosaved contents file URL") - ADD_OBJECT( [o autosavingFileType] ,@"Autosaving file type") - ADD_OBJECT( [o displayName] ,@"Display name") - ADD_OBJECT( [o fileModificationDate] ,@"File modification date") - ADD_BOOL( [o fileNameExtensionWasHiddenInLastRunSavePanel],@"File name extension was hidden in last run save panel") - ADD_OBJECT( [o fileType] ,@"File type") - ADD_OBJECT( [o fileTypeFromLastRunSavePanel] ,@"File type from last run save panel") - ADD_OBJECT_NOT_NIL( [o fileURL] ,@"File URL") - ADD_BOOL( [o hasUnautosavedChanges] ,@"Has unautosaved changes") - ADD_BOOL( [o hasUndoManager] ,@"Has undo manager") - ADD_BOOL( [o isDocumentEdited] ,@"Is document edited") - ADD_BOOL( [o keepBackupFile] ,@"Keep backup file") - ADD_OBJECT( [o fileTypeFromLastRunSavePanel] ,@"File type from last run save panel") - ADD_OBJECT( [o printInfo] ,@"Print info") - ADD_BOOL( [o shouldRunSavePanelWithAccessoryView] ,@"Should run save panel with accessory view") - ADD_OBJECTS( [o windowControllers] ,@"Window controllers") - ADD_OBJECT( [o windowForSheet] ,@"Window for sheet") - ADD_OBJECT( [o windowNibName] ,@"Window nib name") + NSDocument* o = object; + ADD_CLASS_LABEL(@"NSDocument Info"); + ADD_OBJECT_NOT_NIL([o autosavedContentsFileURL], @"Autosaved contents file URL") + ADD_OBJECT([o autosavingFileType], @"Autosaving file type") + ADD_OBJECT([o displayName], @"Display name") + ADD_OBJECT([o fileModificationDate], @"File modification date") + ADD_BOOL([o fileNameExtensionWasHiddenInLastRunSavePanel], @"File name extension was hidden in last run save panel") + ADD_OBJECT([o fileType], @"File type") + ADD_OBJECT([o fileTypeFromLastRunSavePanel], @"File type from last run save panel") + ADD_OBJECT_NOT_NIL([o fileURL], @"File URL") + ADD_BOOL([o hasUnautosavedChanges], @"Has unautosaved changes") + ADD_BOOL([o hasUndoManager], @"Has undo manager") + ADD_BOOL([o isDocumentEdited], @"Is document edited") + ADD_BOOL([o keepBackupFile], @"Keep backup file") + ADD_OBJECT([o fileTypeFromLastRunSavePanel], @"File type from last run save panel") + ADD_OBJECT([o printInfo], @"Print info") + ADD_BOOL([o shouldRunSavePanelWithAccessoryView], @"Should run save panel with accessory view") + ADD_OBJECTS([o windowControllers], @"Window controllers") + ADD_OBJECT([o windowForSheet], @"Window for sheet") + ADD_OBJECT([o windowNibName], @"Window nib name") } - (void)addNSDocumentController:(id)object { - NSDocumentController *o = object; - ADD_CLASS_LABEL(@"NSDocumentController Info"); - ADD_NUMBER( [o autosavingDelay] ,@"Autosaving delay") - ADD_OBJECT( [o currentDirectory] ,@"Current directory") - ADD_OBJECT( [o currentDocument] ,@"Current document") - ADD_OBJECT( [o defaultType] ,@"Default type") - ADD_OBJECTS( [o documentClassNames] ,@"Document class names") - ADD_OBJECTS( [o documents] ,@"Documents") - ADD_BOOL( [o hasEditedDocuments] ,@"Has edited documents") - ADD_NUMBER( [o maximumRecentDocumentCount] ,@"Maximum recent document count") - ADD_OBJECT( [o recentDocumentURLs] ,@"Recent document URLs") + NSDocumentController* o = object; + ADD_CLASS_LABEL(@"NSDocumentController Info"); + ADD_NUMBER([o autosavingDelay], @"Autosaving delay") + ADD_OBJECT([o currentDirectory], @"Current directory") + ADD_OBJECT([o currentDocument], @"Current document") + ADD_OBJECT([o defaultType], @"Default type") + ADD_OBJECTS([o documentClassNames], @"Document class names") + ADD_OBJECTS([o documents], @"Documents") + ADD_BOOL([o hasEditedDocuments], @"Has edited documents") + ADD_NUMBER([o maximumRecentDocumentCount], @"Maximum recent document count") + ADD_OBJECT([o recentDocumentURLs], @"Recent document URLs") } - (void)addNSEntityDescription:(id)object { - NSEntityDescription *o = object; - ADD_CLASS_LABEL(@"NSEntityDescription Info"); - ADD_DICTIONARY( [o attributesByName] ,@"Attributes by name") - ADD_BOOL( [o isAbstract] ,@"Is abstract") - ADD_OBJECT( [o managedObjectClassName] ,@"Managed object class name") - ADD_OBJECT( [o managedObjectModel] ,@"Managed object model") - ADD_OBJECT( [o name] ,@"Name") - ADD_DICTIONARY( [o relationshipsByName] ,@"Relationships by name") - if ([[o subentities] count] != 0) - { - ADD_DICTIONARY( [o subentitiesByName] ,@"Subentities by Name") - } - ADD_OBJECT( [o superentity] ,@"Superentity") - ADD_DICTIONARY( [o userInfo] ,@"User info") + NSEntityDescription* o = object; + ADD_CLASS_LABEL(@"NSEntityDescription Info"); + ADD_DICTIONARY([o attributesByName], @"Attributes by name") + ADD_BOOL([o isAbstract], @"Is abstract") + ADD_OBJECT([o managedObjectClassName], @"Managed object class name") + ADD_OBJECT([o managedObjectModel], @"Managed object model") + ADD_OBJECT([o name], @"Name") + ADD_DICTIONARY([o relationshipsByName], @"Relationships by name") + if ([[o subentities] count] != 0) { + ADD_DICTIONARY([o subentitiesByName], @"Subentities by Name") + } + ADD_OBJECT([o superentity], @"Superentity") + ADD_DICTIONARY([o userInfo], @"User info") } - (void)addNSEvent:(id)object { - NSEvent *o = object; - NSEventType type = [o type]; - ADD_CLASS_LABEL(@"NSEvent Info"); - - if (type == NSTabletPoint || ((type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) && [object subtype] == NSTabletPointEventSubtype) ) - { - ADD_NUMBER( [o absoluteX] ,@"Absolute x") - ADD_NUMBER( [o absoluteY] ,@"Absolute y") - ADD_NUMBER( [o absoluteZ] ,@"Absolute z") - ADD_OBJECT(objectFromEventButtonMask([o buttonMask]) ,@"Button mask") - } - if (type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp) - ADD_NUMBER( [o buttonNumber] ,@"Button number") - - if (type == NSTabletProximity || ((type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) && [object subtype] == NSTabletProximityEventSubtype) ) - ADD_NUMBER( [o capabilityMask] ,@"Capability mask") - - if (type == NSKeyDown || type == NSKeyUp) - { - ADD_OBJECT( [(NSEvent *)o characters] ,@"Characters") - ADD_OBJECT( [o charactersIgnoringModifiers] ,@"Characters ignoring modifiers") - } - if (type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp) - ADD_NUMBER( [o clickCount] ,@"Click count") - if (type == NSAppKitDefined || type == NSSystemDefined || type == NSApplicationDefined) - { - ADD_NUMBER( [o data1] ,@"Data1") - ADD_NUMBER( [o data2] ,@"Data2") - } - if (type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) - { - ADD_NUMBER( [o deltaX] ,@"Delta x") - ADD_NUMBER( [o deltaY] ,@"Delta y") - ADD_NUMBER( [o deltaZ] ,@"Delta z") - } - - if (type == NSTabletPoint || type == NSTabletProximity || ((type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) && ([object subtype] == NSTabletProximityEventSubtype || [object subtype] == NSTabletPointEventSubtype)) ) - ADD_NUMBER( [o deviceID] ,@"Device ID") - if (type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel || type == NSMouseEntered || type == NSMouseExited || type == NSCursorUpdate) - ADD_NUMBER( [o eventNumber] ,@"Event number") - if (type == NSKeyDown) - ADD_BOOL( [o isARepeat] ,@"Is a repeat") - if (type == NSTabletProximity || ((type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) && [object subtype] == NSTabletProximityEventSubtype) ) - ADD_BOOL( [o isEnteringProximity] ,@"Is entering proximity") - if (type == NSKeyDown || type == NSKeyUp) - ADD_NUMBER( [o keyCode] ,@"Key code") - if (type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) - ADD_POINT( [o locationInWindow] ,@"Location in window") - ADD_OBJECT(objectFromKeyModifierMask([o modifierFlags]) ,@"Modifier flags") - if (type == NSTabletProximity || ((type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) && [object subtype] == NSTabletProximityEventSubtype) ) - { - ADD_NUMBER( [o pointingDeviceID] ,@"Pointing device ID") - ADD_NUMBER( [o pointingDeviceSerialNumber] ,@"Pointing device serial number") - ADD_OBJECT(objectFromPointingDeviceType([o pointingDeviceType]),@"Pointing device type") - } - if (type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) - ADD_NUMBER( [o pressure] ,@"Pressure") - if (type == NSTabletPoint || ((type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) && [object subtype] == NSTabletPointEventSubtype) ) - ADD_NUMBER( [o rotation] ,@"Rotation") - if (type == NSAppKitDefined || type == NSSystemDefined || type == NSApplicationDefined || type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) - ADD_OBJECT(objectFromEventSubtype([o subtype]) ,@"Subtype") - if (type == NSTabletProximity || ((type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) && [object subtype] == NSTabletProximityEventSubtype) ) - { - ADD_NUMBER( [o systemTabletID] ,@"System tablet ID") - ADD_NUMBER( [o tabletID] ,@"Tablet ID") - } - if (type == NSTabletPoint || ((type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) && [object subtype] == NSTabletPointEventSubtype) ) - { - ADD_NUMBER( [o tangentialPressure] ,@"Tangential pressure") - ADD_POINT( [o tilt] ,@"Tilt") - } - ADD_NUMBER( [o timestamp] ,@"Timestamp") - if (type == NSMouseEntered || type == NSMouseExited || type == NSCursorUpdate) - { - ADD_OBJECT( [o trackingArea] ,@"Tracking area") - ADD_NUMBER( [o trackingNumber] ,@"Tracking number") - } - ADD_OBJECT(objectFromEventType([(NSEvent *)o type]) ,@"Type") - if (type == NSTabletProximity || ((type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) && [object subtype] == NSTabletProximityEventSubtype) ) - ADD_NUMBER( [o uniqueID] ,@"Unique ID") - if (type == NSMouseEntered || type == NSMouseExited || type == NSCursorUpdate) - { - void *userData = [o userData]; - if (userData) - ADD_POINTER( [o userData] ,@"User data") - } - if (type == NSTabletPoint || ((type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) && [object subtype] == NSTabletPointEventSubtype) ) - ADD_OBJECT( [o vendorDefined] ,@"Vendor defined") - if (type == NSTabletProximity || ((type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) && [object subtype] == NSTabletProximityEventSubtype) ) - { - ADD_NUMBER( [o vendorID] ,@"Vendor ID") - ADD_NUMBER( [o vendorPointingDeviceType] ,@"Vendor pointing device type") - } - if (type != NSPeriodic) - ADD_OBJECT( [o window] ,@"Window") - } + NSEvent* o = object; + NSEventType type = [o type]; + ADD_CLASS_LABEL(@"NSEvent Info"); + + if (type == NSTabletPoint || ((type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) && [object subtype] == NSTabletPointEventSubtype)) { + ADD_NUMBER([o absoluteX], @"Absolute x") + ADD_NUMBER([o absoluteY], @"Absolute y") + ADD_NUMBER([o absoluteZ], @"Absolute z") + ADD_OBJECT(objectFromEventButtonMask([o buttonMask]), @"Button mask") + } + if (type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp) + ADD_NUMBER([o buttonNumber], @"Button number") + + if (type == NSTabletProximity || ((type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) && [object subtype] == NSTabletProximityEventSubtype)) + ADD_NUMBER([o capabilityMask], @"Capability mask") + + if (type == NSKeyDown || type == NSKeyUp) { + ADD_OBJECT([(NSEvent*)o characters], @"Characters") + ADD_OBJECT([o charactersIgnoringModifiers], @"Characters ignoring modifiers") + } + if (type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp) + ADD_NUMBER([o clickCount], @"Click count") + if (type == NSAppKitDefined || type == NSSystemDefined || type == NSApplicationDefined) { + ADD_NUMBER([o data1], @"Data1") + ADD_NUMBER([o data2], @"Data2") + } + if (type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) { + ADD_NUMBER([o deltaX], @"Delta x") + ADD_NUMBER([o deltaY], @"Delta y") + ADD_NUMBER([o deltaZ], @"Delta z") + } + + if (type == NSTabletPoint || type == NSTabletProximity || ((type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) && ([object subtype] == NSTabletProximityEventSubtype || [object subtype] == NSTabletPointEventSubtype))) + ADD_NUMBER([o deviceID], @"Device ID") + if (type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel || type == NSMouseEntered || type == NSMouseExited || type == NSCursorUpdate) + ADD_NUMBER([o eventNumber], @"Event number") + if (type == NSKeyDown) + ADD_BOOL([o isARepeat], @"Is a repeat") + if (type == NSTabletProximity || ((type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) && [object subtype] == NSTabletProximityEventSubtype)) + ADD_BOOL([o isEnteringProximity], @"Is entering proximity") + if (type == NSKeyDown || type == NSKeyUp) + ADD_NUMBER([o keyCode], @"Key code") + if (type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) + ADD_POINT([o locationInWindow], @"Location in window") + ADD_OBJECT(objectFromKeyModifierMask([o modifierFlags]), @"Modifier flags") + if (type == NSTabletProximity || ((type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) && [object subtype] == NSTabletProximityEventSubtype)) { + ADD_NUMBER([o pointingDeviceID], @"Pointing device ID") + ADD_NUMBER([o pointingDeviceSerialNumber], @"Pointing device serial number") + ADD_OBJECT(objectFromPointingDeviceType([o pointingDeviceType]), @"Pointing device type") + } + if (type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) + ADD_NUMBER([o pressure], @"Pressure") + if (type == NSTabletPoint || ((type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) && [object subtype] == NSTabletPointEventSubtype)) + ADD_NUMBER([o rotation], @"Rotation") + if (type == NSAppKitDefined || type == NSSystemDefined || type == NSApplicationDefined || type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) + ADD_OBJECT(objectFromEventSubtype([o subtype]), @"Subtype") + if (type == NSTabletProximity || ((type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) && [object subtype] == NSTabletProximityEventSubtype)) { + ADD_NUMBER([o systemTabletID], @"System tablet ID") + ADD_NUMBER([o tabletID], @"Tablet ID") + } + if (type == NSTabletPoint || ((type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) && [object subtype] == NSTabletPointEventSubtype)) { + ADD_NUMBER([o tangentialPressure], @"Tangential pressure") + ADD_POINT([o tilt], @"Tilt") + } + ADD_NUMBER([o timestamp], @"Timestamp") + if (type == NSMouseEntered || type == NSMouseExited || type == NSCursorUpdate) { + ADD_OBJECT([o trackingArea], @"Tracking area") + ADD_NUMBER([o trackingNumber], @"Tracking number") + } + ADD_OBJECT(objectFromEventType([(NSEvent*)o type]), @"Type") + if (type == NSTabletProximity || ((type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) && [object subtype] == NSTabletProximityEventSubtype)) + ADD_NUMBER([o uniqueID], @"Unique ID") + if (type == NSMouseEntered || type == NSMouseExited || type == NSCursorUpdate) { + void* userData = [o userData]; + if (userData) + ADD_POINTER([o userData], @"User data") + } + if (type == NSTabletPoint || ((type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) && [object subtype] == NSTabletPointEventSubtype)) + ADD_OBJECT([o vendorDefined], @"Vendor defined") + if (type == NSTabletProximity || ((type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) && [object subtype] == NSTabletProximityEventSubtype)) { + ADD_NUMBER([o vendorID], @"Vendor ID") + ADD_NUMBER([o vendorPointingDeviceType], @"Vendor pointing device type") + } + if (type != NSPeriodic) + ADD_OBJECT([o window], @"Window") +} - (void)addNSExpression:(id)object { - NSExpression *o = object; - NSArray *arguments = nil; - id collection = nil; - id constantValue = nil; - NSExpressionType expressionType = 0; - NSString *function = nil; - NSString *keyPath = nil; - NSExpression *leftExpression = nil; - NSExpression *operand = nil; - NSPredicate *predicate = nil; - NSExpression *rightExpression = nil; - NSString *variable = nil; - - BOOL argumentsIsInitialized = NO; - BOOL collectionIsInitialized = NO; - BOOL constantValueIsInitialized = NO; - BOOL expressionTypeIsInitialized = NO; - BOOL functionIsInitialized = NO; - BOOL keyPathIsInitialized = NO; - BOOL leftExpressionIsInitialized = NO; - BOOL operandIsInitialized = NO; - BOOL predicateIsInitialized = NO; - BOOL rightExpressionIsInitialized = NO; - BOOL variableIsInitialized = NO; - - @try { arguments = [o arguments]; argumentsIsInitialized = YES; } @catch (id exception) {} - @try { collection = [o collection]; collectionIsInitialized = YES; } @catch (id exception) {} - @try { constantValue = [o constantValue]; constantValueIsInitialized = YES; } @catch (id exception) {} - @try { expressionType = [o expressionType]; expressionTypeIsInitialized = YES; } @catch (id exception) {} - @try { function = [o function]; functionIsInitialized = YES; } @catch (id exception) {} - @try { keyPath = [o keyPath]; keyPathIsInitialized = YES; } @catch (id exception) {} - @try { leftExpression = [o leftExpression]; leftExpressionIsInitialized = YES; } @catch (id exception) {} - @try { operand = [o operand]; operandIsInitialized = YES; } @catch (id exception) {} - @try { predicate = [o predicate]; predicateIsInitialized = YES; } @catch (id exception) {} - @try { rightExpression = [o rightExpression]; rightExpressionIsInitialized = YES; } @catch (id exception) {} - @try { variable = [o variable]; variableIsInitialized = YES; } @catch (id exception) {} - - ADD_CLASS_LABEL(@"NSExpression Info"); - - if (argumentsIsInitialized) ADD_OBJECTS(arguments ,@"Arguments"); - if (collectionIsInitialized) ADD_OBJECT(collection ,@"Collection"); - if (constantValueIsInitialized) ADD_OBJECT(constantValue ,@"Constant value"); - if (expressionTypeIsInitialized) ADD_OBJECT(objectFromExpressionType(expressionType) ,@"Expression type"); - if (functionIsInitialized) ADD_OBJECT(function ,@"Function"); - if (keyPathIsInitialized) ADD_OBJECT(keyPath ,@"Key path"); - if (leftExpressionIsInitialized) ADD_OBJECT(leftExpression ,@"Left expression"); - if (operandIsInitialized) ADD_OBJECT(operand ,@"Operand"); - if (predicateIsInitialized) ADD_OBJECT(predicate ,@"Predicate"); - if (rightExpressionIsInitialized) ADD_OBJECT(leftExpression ,@"Right expression"); - if (variableIsInitialized) ADD_OBJECT(variable ,@"Variable"); + NSExpression* o = object; + NSArray* arguments = nil; + id collection = nil; + id constantValue = nil; + NSExpressionType expressionType = 0; + NSString* function = nil; + NSString* keyPath = nil; + NSExpression* leftExpression = nil; + NSExpression* operand = nil; + NSPredicate* predicate = nil; + NSExpression* rightExpression = nil; + NSString* variable = nil; + + BOOL argumentsIsInitialized = NO; + BOOL collectionIsInitialized = NO; + BOOL constantValueIsInitialized = NO; + BOOL expressionTypeIsInitialized = NO; + BOOL functionIsInitialized = NO; + BOOL keyPathIsInitialized = NO; + BOOL leftExpressionIsInitialized = NO; + BOOL operandIsInitialized = NO; + BOOL predicateIsInitialized = NO; + BOOL rightExpressionIsInitialized = NO; + BOOL variableIsInitialized = NO; + + @try { + arguments = [o arguments]; + argumentsIsInitialized = YES; + } + @catch (id exception) {} + @try { + collection = [o collection]; + collectionIsInitialized = YES; + } + @catch (id exception) {} + @try { + constantValue = [o constantValue]; + constantValueIsInitialized = YES; + } + @catch (id exception) {} + @try { + expressionType = [o expressionType]; + expressionTypeIsInitialized = YES; + } + @catch (id exception) {} + @try { + function = [o function]; + functionIsInitialized = YES; + } + @catch (id exception) {} + @try { + keyPath = [o keyPath]; + keyPathIsInitialized = YES; + } + @catch (id exception) {} + @try { + leftExpression = [o leftExpression]; + leftExpressionIsInitialized = YES; + } + @catch (id exception) {} + @try { + operand = [o operand]; + operandIsInitialized = YES; + } + @catch (id exception) {} + @try { + predicate = [o predicate]; + predicateIsInitialized = YES; + } + @catch (id exception) {} + @try { + rightExpression = [o rightExpression]; + rightExpressionIsInitialized = YES; + } + @catch (id exception) {} + @try { + variable = [o variable]; + variableIsInitialized = YES; + } + @catch (id exception) {} + + ADD_CLASS_LABEL(@"NSExpression Info"); + + if (argumentsIsInitialized) + ADD_OBJECTS(arguments, @"Arguments"); + if (collectionIsInitialized) + ADD_OBJECT(collection, @"Collection"); + if (constantValueIsInitialized) + ADD_OBJECT(constantValue, @"Constant value"); + if (expressionTypeIsInitialized) + ADD_OBJECT(objectFromExpressionType(expressionType), @"Expression type"); + if (functionIsInitialized) + ADD_OBJECT(function, @"Function"); + if (keyPathIsInitialized) + ADD_OBJECT(keyPath, @"Key path"); + if (leftExpressionIsInitialized) + ADD_OBJECT(leftExpression, @"Left expression"); + if (operandIsInitialized) + ADD_OBJECT(operand, @"Operand"); + if (predicateIsInitialized) + ADD_OBJECT(predicate, @"Predicate"); + if (rightExpressionIsInitialized) + ADD_OBJECT(leftExpression, @"Right expression"); + if (variableIsInitialized) + ADD_OBJECT(variable, @"Variable"); } - (void)addNSFetchRequest:(id)object { - NSFetchRequest *o = object; - ADD_CLASS_LABEL(@"NSFetchRequest Info"); - ADD_OBJECTS( [o affectedStores] ,@"Affected stores") - ADD_OBJECT( [o entity] ,@"Entity") - ADD_NUMBER( [o fetchLimit] ,@"Fetch limit") - ADD_BOOL( [o includesPropertyValues] ,@"Includes property values") - ADD_BOOL( [o includesSubentities] ,@"Includes bubentities") - ADD_OBJECT( [o predicate] ,@"Predicate") - ADD_OBJECTS( [o relationshipKeyPathsForPrefetching] ,@"Relationship key paths for prefetching") - ADD_OBJECT(objectFromFetchRequestResultType([o resultType]) ,@"Result type") - ADD_BOOL( [o returnsObjectsAsFaults] ,@"Returns objects as faults") - ADD_OBJECTS( [o sortDescriptors] ,@"Sort descriptors") + NSFetchRequest* o = object; + ADD_CLASS_LABEL(@"NSFetchRequest Info"); + ADD_OBJECTS([o affectedStores], @"Affected stores") + ADD_OBJECT([o entity], @"Entity") + ADD_NUMBER([o fetchLimit], @"Fetch limit") + ADD_BOOL([o includesPropertyValues], @"Includes property values") + ADD_BOOL([o includesSubentities], @"Includes bubentities") + ADD_OBJECT([o predicate], @"Predicate") + ADD_OBJECTS([o relationshipKeyPathsForPrefetching], @"Relationship key paths for prefetching") + ADD_OBJECT(objectFromFetchRequestResultType([o resultType]), @"Result type") + ADD_BOOL([o returnsObjectsAsFaults], @"Returns objects as faults") + ADD_OBJECTS([o sortDescriptors], @"Sort descriptors") } - (void)addNSFileWrapper:(id)object { - NSFileWrapper *o = object; - ADD_CLASS_LABEL(@"NSFileWrapper Info"); - ADD_DICTIONARY( [o fileAttributes] ,@"File attributes") - ADD_OBJECT( [o filename] ,@"Filename") - ADD_OBJECT_NOT_NIL( [o icon] ,@"Icon") - ADD_BOOL( [o isDirectory] ,@"Is directory") - ADD_BOOL( [o isRegularFile] ,@"Is regularFile") - ADD_BOOL( [o isSymbolicLink] ,@"Is symbolic link") - ADD_OBJECT_NOT_NIL( [o preferredFilename] ,@"Preferred filename") - if ([o isSymbolicLink]) - ADD_OBJECT_NOT_NIL( [o symbolicLinkDestination] ,@"Symbolic link destination") - } + NSFileWrapper* o = object; + ADD_CLASS_LABEL(@"NSFileWrapper Info"); + ADD_DICTIONARY([o fileAttributes], @"File attributes") + ADD_OBJECT([o filename], @"Filename") + ADD_OBJECT_NOT_NIL([o icon], @"Icon") + ADD_BOOL([o isDirectory], @"Is directory") + ADD_BOOL([o isRegularFile], @"Is regularFile") + ADD_BOOL([o isSymbolicLink], @"Is symbolic link") + ADD_OBJECT_NOT_NIL([o preferredFilename], @"Preferred filename") + if ([o isSymbolicLink]) + ADD_OBJECT_NOT_NIL([o symbolicLinkDestination], @"Symbolic link destination") +} - (void)addNSFont:(id)object { - NSFont *o = object; - ADD_CLASS_LABEL(@"NSFont Info"); - ADD_NUMBER( [o ascender] ,@"Ascender") - ADD_RECT( [o boundingRectForFont] ,@"Bounding rect for font") - ADD_NUMBER( [o capHeight] ,@"Cap height") - ADD_OBJECT( [o coveredCharacterSet] ,@"Covered character set") - ADD_NUMBER( [o descender] ,@"Descender") - ADD_OBJECT( [o displayName] ,@"Display name") - ADD_OBJECT( [o familyName] ,@"Family name") - ADD_OBJECT( [o fontDescriptor] ,@"Font descriptor") - ADD_OBJECT( [o fontName] ,@"Font name") - ADD_BOOL( [o isFixedPitch] ,@"Is fixedPitch") - ADD_NUMBER( [o italicAngle] ,@"Italic angle") - ADD_NUMBER( [o leading] ,@"Leading") - - const CGFloat *matrix = [o matrix]; - NSString *matrixString = [NSString stringWithFormat:@"[%g %g %g %g %g %g]", (double)(matrix[0]), (double)(matrix[1]), (double)(matrix[2]), (double)(matrix[3]), (double)(matrix[4]), (double)(matrix[5])]; - [view addObject:matrixString withLabel:@"Matrix" toMatrix:m leaf:YES classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject indentationLevel:0]; - - ADD_SIZE( [o maximumAdvancement] ,@"Maximum advancement") - ADD_OBJECT(objectFromStringEncoding([o mostCompatibleStringEncoding]),@"Most compatible string encoding") - ADD_NUMBER( [o numberOfGlyphs] ,@"Number of glyphs") - ADD_NUMBER( [o pointSize] ,@"Point size") - ADD_OBJECT( [o printerFont] ,@"Printer font") - ADD_OBJECT(objectFromFontRenderingMode([o renderingMode]) ,@"Rendering mode") - ADD_OBJECT_NOT_NIL( [o screenFont] ,@"Screen font") - ADD_NUMBER( [o underlinePosition] ,@"Underline position") - ADD_NUMBER( [o underlineThickness] ,@"Underline thickness") - ADD_NUMBER( [o xHeight] ,@"xHeight") + NSFont* o = object; + ADD_CLASS_LABEL(@"NSFont Info"); + ADD_NUMBER([o ascender], @"Ascender") + ADD_RECT([o boundingRectForFont], @"Bounding rect for font") + ADD_NUMBER([o capHeight], @"Cap height") + ADD_OBJECT([o coveredCharacterSet], @"Covered character set") + ADD_NUMBER([o descender], @"Descender") + ADD_OBJECT([o displayName], @"Display name") + ADD_OBJECT([o familyName], @"Family name") + ADD_OBJECT([o fontDescriptor], @"Font descriptor") + ADD_OBJECT([o fontName], @"Font name") + ADD_BOOL([o isFixedPitch], @"Is fixedPitch") + ADD_NUMBER([o italicAngle], @"Italic angle") + ADD_NUMBER([o leading], @"Leading") + + const CGFloat* matrix = [o matrix]; + NSString* matrixString = [NSString stringWithFormat:@"[%g %g %g %g %g %g]", (double)(matrix[0]), (double)(matrix[1]), (double)(matrix[2]), (double)(matrix[3]), (double)(matrix[4]), (double)(matrix[5])]; + [view addObject:matrixString withLabel:@"Matrix" toMatrix:m leaf:YES classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject indentationLevel:0]; + + ADD_SIZE([o maximumAdvancement], @"Maximum advancement") + ADD_OBJECT(objectFromStringEncoding([o mostCompatibleStringEncoding]), @"Most compatible string encoding") + ADD_NUMBER([o numberOfGlyphs], @"Number of glyphs") + ADD_NUMBER([o pointSize], @"Point size") + ADD_OBJECT([o printerFont], @"Printer font") + ADD_OBJECT(objectFromFontRenderingMode([o renderingMode]), @"Rendering mode") + ADD_OBJECT_NOT_NIL([o screenFont], @"Screen font") + ADD_NUMBER([o underlinePosition], @"Underline position") + ADD_NUMBER([o underlineThickness], @"Underline thickness") + ADD_NUMBER([o xHeight], @"xHeight") } - (void)addNSFontDescriptor:(id)object { - NSFontDescriptor *o = object; - ADD_CLASS_LABEL(@"NSFontDescriptor Info"); - ADD_DICTIONARY( [o fontAttributes] ,@"Font attributes") - ADD_OBJECT( [o matrix] ,@"Matrix") - ADD_NUMBER( [o pointSize] ,@"Point size") - ADD_OBJECT( [o postscriptName] ,@"Postscript name") - ADD_NUMBER( [o symbolicTraits] ,@"Symbolic traits") + NSFontDescriptor* o = object; + ADD_CLASS_LABEL(@"NSFontDescriptor Info"); + ADD_DICTIONARY([o fontAttributes], @"Font attributes") + ADD_OBJECT([o matrix], @"Matrix") + ADD_NUMBER([o pointSize], @"Point size") + ADD_OBJECT([o postscriptName], @"Postscript name") + ADD_NUMBER([o symbolicTraits], @"Symbolic traits") } - (void)addNSFontManager:(id)object { - NSFontManager *o = object; - ADD_CLASS_LABEL(@"NSFontManager Info"); - ADD_SEL( [o action] ,@"Action") - ADD_OBJECTS( [o availableFontFamilies] ,@"Available font families") - ADD_OBJECTS( [o availableFonts] ,@"Available fonts") - ADD_OBJECTS( [o collectionNames] ,@"Collection names") - ADD_OBJECT_NOT_NIL( [o delegate] ,@"Delegate") - ADD_BOOL( [o isEnabled] ,@"Is enabled") - ADD_BOOL( [o isMultiple] ,@"IsMultiple") - ADD_OBJECT( [o selectedFont] ,@"Selected font") - ADD_OBJECT( [o target] ,@"Target") + NSFontManager* o = object; + ADD_CLASS_LABEL(@"NSFontManager Info"); + ADD_SEL([o action], @"Action") + ADD_OBJECTS([o availableFontFamilies], @"Available font families") + ADD_OBJECTS([o availableFonts], @"Available fonts") + ADD_OBJECTS([o collectionNames], @"Collection names") + ADD_OBJECT_NOT_NIL([o delegate], @"Delegate") + ADD_BOOL([o isEnabled], @"Is enabled") + ADD_BOOL([o isMultiple], @"IsMultiple") + ADD_OBJECT([o selectedFont], @"Selected font") + ADD_OBJECT([o target], @"Target") } - (void)addNSGlyphInfo:(id)object { - NSGlyphInfo *o = object; - ADD_CLASS_LABEL(@"NSGlyphInfo Info"); - ADD_OBJECT(objectFromCharacterCollection([o characterCollection]),@"Character collection") - if ([o characterIdentifier]) ADD_NUMBER( [o characterIdentifier],@"Character identifier"); - ADD_OBJECT_NOT_NIL( [o glyphName] ,@"Glyph name") + NSGlyphInfo* o = object; + ADD_CLASS_LABEL(@"NSGlyphInfo Info"); + ADD_OBJECT(objectFromCharacterCollection([o characterCollection]), @"Character collection") + if ([o characterIdentifier]) + ADD_NUMBER([o characterIdentifier], @"Character identifier"); + ADD_OBJECT_NOT_NIL([o glyphName], @"Glyph name") } - (void)addNSGlyphGenerator:(id)object { - //NSGlyphGenerator *o = object; - //ADD_CLASS_LABEL(@"NSGlyphGenerator Info"); + //NSGlyphGenerator *o = object; + //ADD_CLASS_LABEL(@"NSGlyphGenerator Info"); } - (void)addNSGradient:(id)object { - NSGradient *o = object; - ADD_CLASS_LABEL(@"NSGradient Info"); - ADD_OBJECT_NOT_NIL( [o colorSpace] ,@"Color space") - ADD_NUMBER( [o numberOfColorStops] ,@"Number of color stops") + NSGradient* o = object; + ADD_CLASS_LABEL(@"NSGradient Info"); + ADD_OBJECT_NOT_NIL([o colorSpace], @"Color space") + ADD_NUMBER([o numberOfColorStops], @"Number of color stops") } - (void)addNSGraphicsContext:(id)object { - NSGraphicsContext *o = object; - ADD_CLASS_LABEL(@"NSGraphicsContext Info"); - ADD_DICTIONARY( [o attributes] ,@"Attributes") - ADD_OBJECT(objectFromColorRenderingIntent([o colorRenderingIntent]),@"Color rendering intent") - ADD_OBJECT(objectFromCompositingOperation([o compositingOperation]),@"Compositing operation") - ADD_POINTER( [o graphicsPort] ,@"Graphics port") - ADD_OBJECT(objectFromImageInterpolation([o imageInterpolation]) ,@"Image interpolation") - ADD_BOOL( [o isDrawingToScreen] ,@"Is drawing to screen") - ADD_BOOL( [o isFlipped] ,@"Is flipped") - ADD_POINT( [o patternPhase] ,@"Pattern phase") - ADD_BOOL( [o shouldAntialias] ,@"Should antialias") + NSGraphicsContext* o = object; + ADD_CLASS_LABEL(@"NSGraphicsContext Info"); + ADD_DICTIONARY([o attributes], @"Attributes") + ADD_OBJECT(objectFromColorRenderingIntent([o colorRenderingIntent]), @"Color rendering intent") + ADD_OBJECT(objectFromCompositingOperation([o compositingOperation]), @"Compositing operation") + ADD_POINTER([o graphicsPort], @"Graphics port") + ADD_OBJECT(objectFromImageInterpolation([o imageInterpolation]), @"Image interpolation") + ADD_BOOL([o isDrawingToScreen], @"Is drawing to screen") + ADD_BOOL([o isFlipped], @"Is flipped") + ADD_POINT([o patternPhase], @"Pattern phase") + ADD_BOOL([o shouldAntialias], @"Should antialias") } - (void)addNSImage:(id)object { - NSImage *o = object; - ADD_CLASS_LABEL(@"NSImage Info"); - ADD_RECT( [o alignmentRect] ,@"Alignment rect") - ADD_OBJECT( [o backgroundColor] ,@"Background color") - ADD_BOOL( [o cacheDepthMatchesImageDepth] ,@"Cache depth matches image depth") - ADD_OBJECT(objectFromImageCacheMode([o cacheMode]) ,@"Cache mode") - ADD_OBJECT_NOT_NIL( [o delegate] ,@"Delegate") - ADD_BOOL( [o isCachedSeparately] ,@"Is cached separately") - ADD_BOOL( [o isDataRetained] ,@"Is data retained") - ADD_BOOL( [o isFlipped] ,@"Is flipped") - ADD_BOOL( [o isTemplate] ,@"Is template") - ADD_BOOL( [o isValid] ,@"Is valid") - ADD_BOOL( [o matchesOnMultipleResolution] ,@"Matches on multiple resolution") - ADD_OBJECT_NOT_NIL( [o name] ,@"Name") - ADD_BOOL( [o prefersColorMatch] ,@"Prefers color match") - ADD_OBJECTS( [o representations] ,@"Representations") - ADD_BOOL( [o scalesWhenResized] ,@"Scales when resized") - ADD_SIZE( [o size] ,@"Size") - ADD_BOOL( [o usesEPSOnResolutionMismatch] ,@"Uses EPS on resolution mismatch") + NSImage* o = object; + ADD_CLASS_LABEL(@"NSImage Info"); + ADD_RECT([o alignmentRect], @"Alignment rect") + ADD_OBJECT([o backgroundColor], @"Background color") + ADD_BOOL([o cacheDepthMatchesImageDepth], @"Cache depth matches image depth") + ADD_OBJECT(objectFromImageCacheMode([o cacheMode]), @"Cache mode") + ADD_OBJECT_NOT_NIL([o delegate], @"Delegate") + ADD_BOOL([o isCachedSeparately], @"Is cached separately") + ADD_BOOL([o isDataRetained], @"Is data retained") + ADD_BOOL([o isFlipped], @"Is flipped") + ADD_BOOL([o isTemplate], @"Is template") + ADD_BOOL([o isValid], @"Is valid") + ADD_BOOL([o matchesOnMultipleResolution], @"Matches on multiple resolution") + ADD_OBJECT_NOT_NIL([o name], @"Name") + ADD_BOOL([o prefersColorMatch], @"Prefers color match") + ADD_OBJECTS([o representations], @"Representations") + ADD_BOOL([o scalesWhenResized], @"Scales when resized") + ADD_SIZE([o size], @"Size") + ADD_BOOL([o usesEPSOnResolutionMismatch], @"Uses EPS on resolution mismatch") } - (void)addNSImageRep:(id)object { - if ([object isKindOfClass:[NSBitmapImageRep class]]) - { - NSBitmapImageRep *o = object; - ADD_CLASS_LABEL(@"NSBitmapImageRep Info"); - ADD_OBJECT( objectFromBitmapFormat([o bitmapFormat]),@"Bitmap format") - ADD_NUMBER( [o bitsPerPixel] ,@"Bits per pixel") - ADD_NUMBER( [o bytesPerPlane] ,@"Bytes per plane") - ADD_NUMBER( [o bytesPerRow] ,@"Bytes per row") - ADD_OBJECT_NOT_NIL([o valueForProperty:NSImageColorSyncProfileData],@"ColorSync profile data") - ADD_OBJECT_NOT_NIL([o valueForProperty:NSImageCompressionFactor],@"Compression factor") - { - id compressionMethod = [o valueForProperty:NSImageCompressionMethod]; - if ([compressionMethod isKindOfClass:[NSNumber class]]) - ADD_OBJECT(objectFromTIFFCompression([[o valueForProperty:NSImageCompressionMethod] longValue]),@"Compression method") - } - ADD_OBJECT_NOT_NIL([o valueForProperty:NSImageCurrentFrame] ,@"Current frame") - ADD_OBJECT_NOT_NIL([o valueForProperty:NSImageCurrentFrameDuration],@"Current frame duration") - ADD_OBJECT_NOT_NIL([o valueForProperty:NSImageDitherTransparency],@"Dither transparency") - ADD_OBJECT_NOT_NIL([o valueForProperty:NSImageEXIFData] ,@"EXIF data") - ADD_OBJECT_NOT_NIL([o valueForProperty:NSImageFallbackBackgroundColor],@"Fallback background color") - ADD_OBJECT_NOT_NIL([o valueForProperty:NSImageFrameCount] ,@"Frame count") - ADD_OBJECT_NOT_NIL([o valueForProperty:NSImageGamma] ,@"Gamma") - ADD_OBJECT_NOT_NIL([o valueForProperty:NSImageInterlaced] ,@"Interlaced") - ADD_BOOL( [o isPlanar] ,@"Is planar") - ADD_OBJECT_NOT_NIL([o valueForProperty:NSImageLoopCount] ,@"Loop count") - ADD_NUMBER( [o numberOfPlanes] ,@"Number of planes") - ADD_OBJECT_NOT_NIL([o valueForProperty:NSImageProgressive] ,@"Progressive") - ADD_OBJECT_NOT_NIL([o valueForProperty:NSImageRGBColorTable] ,@"RGB color table") - ADD_NUMBER( [o samplesPerPixel] ,@"Samples per pixel") - } - else if ([object isKindOfClass:[NSCIImageRep class]]) - { - NSCIImageRep *o = object; - ADD_CLASS_LABEL(@"NSCIImageRep Info"); - ADD_OBJECT( [o CIImage] ,@"CIImage") - } - else if ([object isKindOfClass:[NSCustomImageRep class]]) - { - NSCustomImageRep *o = object; - ADD_CLASS_LABEL(@"NSCustomImageRep Info"); - ADD_OBJECT( [o delegate] ,@"Delegate") - ADD_SEL( [o drawSelector] ,@"Draw selector") - } - else if ([object isKindOfClass:[NSEPSImageRep class]]) - { - NSEPSImageRep *o = object; - ADD_CLASS_LABEL(@"NSEPSImageRep Info"); - ADD_RECT( [o boundingBox] ,@"Bounding box") - } - else if ([object isKindOfClass:[NSPDFImageRep class]]) - { - NSPDFImageRep *o = object; - ADD_CLASS_LABEL(@"NSPDFImageRep Info"); - ADD_RECT( [o bounds] ,@"Bounding box") - ADD_NUMBER( [o currentPage] ,@"Current page") - ADD_NUMBER( [o pageCount] ,@"Page count") - } - else if ([object isKindOfClass:[NSPICTImageRep class]]) - { - NSPICTImageRep *o = object; - ADD_CLASS_LABEL(@"NSPICTImageRep Info"); - ADD_RECT( [o boundingBox] ,@"Bounding box") - } - - NSImageRep *o = object; - ADD_CLASS_LABEL(@"NSImageRep Info"); - ADD_NUMBER( [o bitsPerSample] ,@"Bits per sample") - ADD_OBJECT( [o colorSpaceName] ,@"Color space name") - ADD_BOOL( [o hasAlpha] ,@"Has alpha") - ADD_BOOL( [o isOpaque] ,@"Is opaque") - ADD_NUMBER( [o pixelsHigh] ,@"Pixels high") - ADD_NUMBER( [o pixelsWide] ,@"Pixels wide") - ADD_SIZE( [o size] ,@"Size") + if ([object isKindOfClass:[NSBitmapImageRep class]]) { + NSBitmapImageRep* o = object; + ADD_CLASS_LABEL(@"NSBitmapImageRep Info"); + ADD_OBJECT(objectFromBitmapFormat([o bitmapFormat]), @"Bitmap format") + ADD_NUMBER([o bitsPerPixel], @"Bits per pixel") + ADD_NUMBER([o bytesPerPlane], @"Bytes per plane") + ADD_NUMBER([o bytesPerRow], @"Bytes per row") + ADD_OBJECT_NOT_NIL([o valueForProperty:NSImageColorSyncProfileData], @"ColorSync profile data") + ADD_OBJECT_NOT_NIL([o valueForProperty:NSImageCompressionFactor], @"Compression factor") + { + id compressionMethod = [o valueForProperty:NSImageCompressionMethod]; + if ([compressionMethod isKindOfClass:[NSNumber class]]) + ADD_OBJECT(objectFromTIFFCompression([[o valueForProperty:NSImageCompressionMethod] longValue]), @"Compression method") + } + ADD_OBJECT_NOT_NIL([o valueForProperty:NSImageCurrentFrame], @"Current frame") + ADD_OBJECT_NOT_NIL([o valueForProperty:NSImageCurrentFrameDuration], @"Current frame duration") + ADD_OBJECT_NOT_NIL([o valueForProperty:NSImageDitherTransparency], @"Dither transparency") + ADD_OBJECT_NOT_NIL([o valueForProperty:NSImageEXIFData], @"EXIF data") + ADD_OBJECT_NOT_NIL([o valueForProperty:NSImageFallbackBackgroundColor], @"Fallback background color") + ADD_OBJECT_NOT_NIL([o valueForProperty:NSImageFrameCount], @"Frame count") + ADD_OBJECT_NOT_NIL([o valueForProperty:NSImageGamma], @"Gamma") + ADD_OBJECT_NOT_NIL([o valueForProperty:NSImageInterlaced], @"Interlaced") + ADD_BOOL([o isPlanar], @"Is planar") + ADD_OBJECT_NOT_NIL([o valueForProperty:NSImageLoopCount], @"Loop count") + ADD_NUMBER([o numberOfPlanes], @"Number of planes") + ADD_OBJECT_NOT_NIL([o valueForProperty:NSImageProgressive], @"Progressive") + ADD_OBJECT_NOT_NIL([o valueForProperty:NSImageRGBColorTable], @"RGB color table") + ADD_NUMBER([o samplesPerPixel], @"Samples per pixel") + } + else if ([object isKindOfClass:[NSCIImageRep class]]) { + NSCIImageRep* o = object; + ADD_CLASS_LABEL(@"NSCIImageRep Info"); + ADD_OBJECT([o CIImage], @"CIImage") + } + else if ([object isKindOfClass:[NSCustomImageRep class]]) { + NSCustomImageRep* o = object; + ADD_CLASS_LABEL(@"NSCustomImageRep Info"); + ADD_OBJECT([o delegate], @"Delegate") + ADD_SEL([o drawSelector], @"Draw selector") + } + else if ([object isKindOfClass:[NSEPSImageRep class]]) { + NSEPSImageRep* o = object; + ADD_CLASS_LABEL(@"NSEPSImageRep Info"); + ADD_RECT([o boundingBox], @"Bounding box") + } + else if ([object isKindOfClass:[NSPDFImageRep class]]) { + NSPDFImageRep* o = object; + ADD_CLASS_LABEL(@"NSPDFImageRep Info"); + ADD_RECT([o bounds], @"Bounding box") + ADD_NUMBER([o currentPage], @"Current page") + ADD_NUMBER([o pageCount], @"Page count") + } + else if ([object isKindOfClass:[NSPICTImageRep class]]) { + NSPICTImageRep* o = object; + ADD_CLASS_LABEL(@"NSPICTImageRep Info"); + ADD_RECT([o boundingBox], @"Bounding box") + } + + NSImageRep* o = object; + ADD_CLASS_LABEL(@"NSImageRep Info"); + ADD_NUMBER([o bitsPerSample], @"Bits per sample") + ADD_OBJECT([o colorSpaceName], @"Color space name") + ADD_BOOL([o hasAlpha], @"Has alpha") + ADD_BOOL([o isOpaque], @"Is opaque") + ADD_NUMBER([o pixelsHigh], @"Pixels high") + ADD_NUMBER([o pixelsWide], @"Pixels wide") + ADD_SIZE([o size], @"Size") } - (void)addNSLayoutManager:(id)object { - NSLayoutManager *o = object; - ADD_CLASS_LABEL(@"NSLayoutManager Info"); - ADD_BOOL( [o allowsNonContiguousLayout] ,@"Allows non contiguous layout") - ADD_BOOL( [o backgroundLayoutEnabled] ,@"Background layout enabled") - ADD_OBJECT(objectFromImageScaling([o defaultAttachmentScaling]) ,@"Default attachment scaling") - ADD_OBJECT_NOT_NIL( [o delegate] ,@"Delegate") - ADD_RECT( [o extraLineFragmentRect] ,@"Extra line fragment rect") - ADD_OBJECT_NOT_NIL( [o extraLineFragmentTextContainer] ,@"Extra line fragment text container") - ADD_RECT( [o extraLineFragmentUsedRect] ,@"Extra line fragment used rect") - ADD_OBJECT( [o firstTextView] ,@"First text view") - ADD_NUMBER( [o firstUnlaidCharacterIndex] ,@"First unlaid character index") - ADD_NUMBER( [o firstUnlaidGlyphIndex] ,@"First unlaid glyph index") - ADD_OBJECT( [o glyphGenerator] ,@"Glyph generator") - ADD_BOOL( [o hasNonContiguousLayout] ,@"Has non contiguous layout") - ADD_NUMBER( [o hyphenationFactor] ,@"Hyphenation factor") - ADD_OBJECT(objectFromGlyphStorageLayoutOptions([o layoutOptions]) ,@"Layout options") - ADD_BOOL( [o showsControlCharacters] ,@"Shows control characters") - ADD_BOOL( [o showsInvisibleCharacters] ,@"Shows invisible characters") - ADD_OBJECTS( [o textContainers] ,@"Text containers") - ADD_OBJECT( [o textStorage] ,@"Text storage") - ADD_OBJECT( [o textViewForBeginningOfSelection] ,@"Text view for beginning of selection") - ADD_OBJECT( [o typesetter] ,@"Typesetter") - ADD_OBJECT(objectFromTypesetterBehavior([o typesetterBehavior]) ,@"Typesetter behavior") - ADD_BOOL( [o usesFontLeading] ,@"Uses font leading") - ADD_BOOL( [o usesScreenFonts] ,@"Uses screen fonts") + NSLayoutManager* o = object; + ADD_CLASS_LABEL(@"NSLayoutManager Info"); + ADD_BOOL([o allowsNonContiguousLayout], @"Allows non contiguous layout") + ADD_BOOL([o backgroundLayoutEnabled], @"Background layout enabled") + ADD_OBJECT(objectFromImageScaling([o defaultAttachmentScaling]), @"Default attachment scaling") + ADD_OBJECT_NOT_NIL([o delegate], @"Delegate") + ADD_RECT([o extraLineFragmentRect], @"Extra line fragment rect") + ADD_OBJECT_NOT_NIL([o extraLineFragmentTextContainer], @"Extra line fragment text container") + ADD_RECT([o extraLineFragmentUsedRect], @"Extra line fragment used rect") + ADD_OBJECT([o firstTextView], @"First text view") + ADD_NUMBER([o firstUnlaidCharacterIndex], @"First unlaid character index") + ADD_NUMBER([o firstUnlaidGlyphIndex], @"First unlaid glyph index") + ADD_OBJECT([o glyphGenerator], @"Glyph generator") + ADD_BOOL([o hasNonContiguousLayout], @"Has non contiguous layout") + ADD_NUMBER([o hyphenationFactor], @"Hyphenation factor") + ADD_OBJECT(objectFromGlyphStorageLayoutOptions([o layoutOptions]), @"Layout options") + ADD_BOOL([o showsControlCharacters], @"Shows control characters") + ADD_BOOL([o showsInvisibleCharacters], @"Shows invisible characters") + ADD_OBJECTS([o textContainers], @"Text containers") + ADD_OBJECT([o textStorage], @"Text storage") + ADD_OBJECT([o textViewForBeginningOfSelection], @"Text view for beginning of selection") + ADD_OBJECT([o typesetter], @"Typesetter") + ADD_OBJECT(objectFromTypesetterBehavior([o typesetterBehavior]), @"Typesetter behavior") + ADD_BOOL([o usesFontLeading], @"Uses font leading") + ADD_BOOL([o usesScreenFonts], @"Uses screen fonts") } - (void)addNSManagedObjectContext:(id)object { - NSManagedObjectContext *o = object; - ADD_CLASS_LABEL(@"NSManagedObjectContext Info"); - ADD_OBJECT( [o deletedObjects] ,@"Deleted objects" ) - ADD_BOOL( [o hasChanges] ,@"Has changes") - ADD_OBJECT( [o insertedObjects] ,@"Inserted objects" ) - ADD_OBJECT( objectFromMergePolicy([o mergePolicy]) ,@"Merge policy" ) - ADD_OBJECT( [o persistentStoreCoordinator] ,@"Persistent store coordinator" ) - ADD_BOOL( [o propagatesDeletesAtEndOfEvent] ,@"Propagates deletes at end of event") - ADD_OBJECT( [o registeredObjects] ,@"Registered objects" ) - ADD_BOOL( [o retainsRegisteredObjects] ,@"Retains registered objects") - ADD_NUMBER( [o stalenessInterval] ,@"Staleness interval") - ADD_BOOL( [o tryLock] ,@"Try lock") - ADD_OBJECT( [o undoManager] ,@"Undo manager" ) - ADD_OBJECT( [o updatedObjects] ,@"Updated objects" ) + NSManagedObjectContext* o = object; + ADD_CLASS_LABEL(@"NSManagedObjectContext Info"); + ADD_OBJECT([o deletedObjects], @"Deleted objects") + ADD_BOOL([o hasChanges], @"Has changes") + ADD_OBJECT([o insertedObjects], @"Inserted objects") + ADD_OBJECT(objectFromMergePolicy([o mergePolicy]), @"Merge policy") + ADD_OBJECT([o persistentStoreCoordinator], @"Persistent store coordinator") + ADD_BOOL([o propagatesDeletesAtEndOfEvent], @"Propagates deletes at end of event") + ADD_OBJECT([o registeredObjects], @"Registered objects") + ADD_BOOL([o retainsRegisteredObjects], @"Retains registered objects") + ADD_NUMBER([o stalenessInterval], @"Staleness interval") + ADD_BOOL([o tryLock], @"Try lock") + ADD_OBJECT([o undoManager], @"Undo manager") + ADD_OBJECT([o updatedObjects], @"Updated objects") } - (void)addNSManagedObjectID:(id)object { - NSManagedObjectID *o = object; - ADD_CLASS_LABEL(@"NSManagedObjectID Info"); - ADD_OBJECT( [o entity] ,@"Entity" ) - ADD_BOOL( [o isTemporaryID] ,@"Is temporary ID") - ADD_OBJECT( [o persistentStore] ,@"Persistent store" ) - ADD_OBJECT( [o URIRepresentation] ,@"URI representation" ) + NSManagedObjectID* o = object; + ADD_CLASS_LABEL(@"NSManagedObjectID Info"); + ADD_OBJECT([o entity], @"Entity") + ADD_BOOL([o isTemporaryID], @"Is temporary ID") + ADD_OBJECT([o persistentStore], @"Persistent store") + ADD_OBJECT([o URIRepresentation], @"URI representation") } - (void)addNSManagedObjectModel:(id)object { - NSManagedObjectModel *o = object; - ADD_CLASS_LABEL(@"NSManagedObjectModel Info"); - ADD_OBJECTS( [o configurations] ,@"Configurations" ) - ADD_DICTIONARY( [o entitiesByName] ,@"Entities by name" ) - ADD_DICTIONARY( [o fetchRequestTemplatesByName] ,@"Fetch request templates by name") - ADD_OBJECTS( [[o versionIdentifiers] allObjects] ,@"Version identifiers") + NSManagedObjectModel* o = object; + ADD_CLASS_LABEL(@"NSManagedObjectModel Info"); + ADD_OBJECTS([o configurations], @"Configurations") + ADD_DICTIONARY([o entitiesByName], @"Entities by name") + ADD_DICTIONARY([o fetchRequestTemplatesByName], @"Fetch request templates by name") + ADD_OBJECTS([[o versionIdentifiers] allObjects], @"Version identifiers") } - (void)addNSMenu:(id)object { - NSMenu *o = object; - ADD_CLASS_LABEL(@"NSMenu Info"); - ADD_BOOL( [o autoenablesItems] ,@"Autoenables Items") - ADD_OBJECT_NOT_NIL( [o delegate] ,@"Delegate") - ADD_OBJECT_NOT_NIL( [o highlightedItem] ,@"Highlighted item") - ADD_BOOL( [o isTornOff] ,@"Is torn off") - ADD_OBJECTS( [o itemArray] ,@"Items" ) - ADD_BOOL( [o menuChangedMessagesEnabled] ,@"Menu changed messages enabled") - ADD_BOOL( [o showsStateColumn] ,@"Shows state column") - ADD_OBJECT_NOT_NIL( [o supermenu] ,@"Supermenu") - ADD_OBJECT( [o title] ,@"Title") + NSMenu* o = object; + ADD_CLASS_LABEL(@"NSMenu Info"); + ADD_BOOL([o autoenablesItems], @"Autoenables Items") + ADD_OBJECT_NOT_NIL([o delegate], @"Delegate") + ADD_OBJECT_NOT_NIL([o highlightedItem], @"Highlighted item") + ADD_BOOL([o isTornOff], @"Is torn off") + ADD_OBJECTS([o itemArray], @"Items") + ADD_BOOL([o menuChangedMessagesEnabled], @"Menu changed messages enabled") + ADD_BOOL([o showsStateColumn], @"Shows state column") + ADD_OBJECT_NOT_NIL([o supermenu], @"Supermenu") + ADD_OBJECT([o title], @"Title") } - (void)addNSMenuItem:(id)object { - NSMenuItem *o = object; - ADD_CLASS_LABEL(@"NSMenuItem Info") - ADD_SEL( [o action] ,@"Action") - ADD_OBJECT_NOT_NIL( [o attributedTitle] ,@"Attributed title") - ADD_BOOL( [o hasSubmenu] ,@"Has submenu") - ADD_OBJECT_NOT_NIL( [o image] ,@"Image") - ADD_NUMBER( [o indentationLevel] ,@"Indentation level") - ADD_BOOL( [o isAlternate] ,@"Is alternate") - ADD_BOOL( [o isEnabled] ,@"Is enabled") - ADD_BOOL( [o isHidden] ,@"Is hidden") - ADD_BOOL( [o isHiddenOrHasHiddenAncestor] ,@"Is hidden or has hidden ancestor") - ADD_BOOL( [o isHighlighted] ,@"Is highlighted") - ADD_BOOL( [o isSeparatorItem] ,@"Is separatorItem") - ADD_OBJECT( [o keyEquivalent] ,@"Key equivalent") - ADD_OBJECT(objectFromKeyModifierMask([o keyEquivalentModifierMask]),@"Key equivalent modifier mask") - ADD_OBJECT( [o menu] ,@"Menu") - ADD_OBJECT_NOT_NIL( [o mixedStateImage] ,@"Mixed state image") - ADD_OBJECT_NOT_NIL( [o offStateImage] ,@"Off state image") - ADD_OBJECT_NOT_NIL( [o onStateImage] ,@"On state image") - ADD_OBJECT_NOT_NIL( [o representedObject] ,@"Represented object") - ADD_OBJECT(objectFromCellStateValue([o state]) ,@"State") - ADD_OBJECT_NOT_NIL( [o submenu] ,@"Submenu") - ADD_NUMBER( [o tag] ,@"Tag") - ADD_OBJECT_NOT_NIL( [o target] ,@"Target") - ADD_OBJECT( [o title] ,@"Title") - ADD_OBJECT_NOT_NIL( [o toolTip] ,@"Tool tip") - ADD_OBJECT( [o userKeyEquivalent] ,@"User key equivalent") - ADD_OBJECT_NOT_NIL( [o view] ,@"View") + NSMenuItem* o = object; + ADD_CLASS_LABEL(@"NSMenuItem Info") + ADD_SEL([o action], @"Action") + ADD_OBJECT_NOT_NIL([o attributedTitle], @"Attributed title") + ADD_BOOL([o hasSubmenu], @"Has submenu") + ADD_OBJECT_NOT_NIL([o image], @"Image") + ADD_NUMBER([o indentationLevel], @"Indentation level") + ADD_BOOL([o isAlternate], @"Is alternate") + ADD_BOOL([o isEnabled], @"Is enabled") + ADD_BOOL([o isHidden], @"Is hidden") + ADD_BOOL([o isHiddenOrHasHiddenAncestor], @"Is hidden or has hidden ancestor") + ADD_BOOL([o isHighlighted], @"Is highlighted") + ADD_BOOL([o isSeparatorItem], @"Is separatorItem") + ADD_OBJECT([o keyEquivalent], @"Key equivalent") + ADD_OBJECT(objectFromKeyModifierMask([o keyEquivalentModifierMask]), @"Key equivalent modifier mask") + ADD_OBJECT([o menu], @"Menu") + ADD_OBJECT_NOT_NIL([o mixedStateImage], @"Mixed state image") + ADD_OBJECT_NOT_NIL([o offStateImage], @"Off state image") + ADD_OBJECT_NOT_NIL([o onStateImage], @"On state image") + ADD_OBJECT_NOT_NIL([o representedObject], @"Represented object") + ADD_OBJECT(objectFromCellStateValue([o state]), @"State") + ADD_OBJECT_NOT_NIL([o submenu], @"Submenu") + ADD_NUMBER([o tag], @"Tag") + ADD_OBJECT_NOT_NIL([o target], @"Target") + ADD_OBJECT([o title], @"Title") + ADD_OBJECT_NOT_NIL([o toolTip], @"Tool tip") + ADD_OBJECT([o userKeyEquivalent], @"User key equivalent") + ADD_OBJECT_NOT_NIL([o view], @"View") } - (void)addNSOpenGLContext:(id)object { - NSOpenGLContext *o = object; - ADD_CLASS_LABEL(@"NSOpenGLContext Info"); - ADD_POINTER( [o CGLContextObj] ,@"CGL context obj") - ADD_NUMBER( [o currentVirtualScreen] ,@"Current virtual screen") - ADD_OBJECT_NOT_NIL( [o pixelBuffer] ,@"Pixel buffer") - ADD_NUMBER( [o pixelBufferCubeMapFace] ,@"Pixel buffer cube map face") - ADD_NUMBER( [o pixelBufferMipMapLevel] ,@"Pixel buffer mipmap level") - ADD_OBJECT_NOT_NIL( [o view] ,@"View") + NSOpenGLContext* o = object; + ADD_CLASS_LABEL(@"NSOpenGLContext Info"); + ADD_POINTER([o CGLContextObj], @"CGL context obj") + ADD_NUMBER([o currentVirtualScreen], @"Current virtual screen") + ADD_OBJECT_NOT_NIL([o pixelBuffer], @"Pixel buffer") + ADD_NUMBER([o pixelBufferCubeMapFace], @"Pixel buffer cube map face") + ADD_NUMBER([o pixelBufferMipMapLevel], @"Pixel buffer mipmap level") + ADD_OBJECT_NOT_NIL([o view], @"View") } - (void)addNSOpenGLPixelBuffer:(id)object { - NSOpenGLPixelBuffer *o = object; - ADD_CLASS_LABEL(@"NSOpenGLPixelBuffer Info"); - ADD_NUMBER( [o pixelsHigh] ,@"Pixels high") - ADD_NUMBER( [o pixelsWide] ,@"Pixels wide") - ADD_NUMBER( [o textureInternalFormat] ,@"Texture internal format") - ADD_NUMBER( [o textureMaxMipMapLevel] ,@"Texture max mipmap level") - ADD_NUMBER( [o textureTarget] ,@"Texture target") + NSOpenGLPixelBuffer* o = object; + ADD_CLASS_LABEL(@"NSOpenGLPixelBuffer Info"); + ADD_NUMBER([o pixelsHigh], @"Pixels high") + ADD_NUMBER([o pixelsWide], @"Pixels wide") + ADD_NUMBER([o textureInternalFormat], @"Texture internal format") + ADD_NUMBER([o textureMaxMipMapLevel], @"Texture max mipmap level") + ADD_NUMBER([o textureTarget], @"Texture target") } - (void)addNSOpenGLPixelFormat:(id)object { - NSOpenGLPixelFormat *o = object; - ADD_CLASS_LABEL(@"NSOpenGLPixelFormat Info"); - ADD_POINTER( [o CGLPixelFormatObj] ,@"CGL pixel format obj") - ADD_NUMBER( [o numberOfVirtualScreens] ,@"Number of virtual screens") + NSOpenGLPixelFormat* o = object; + ADD_CLASS_LABEL(@"NSOpenGLPixelFormat Info"); + ADD_POINTER([o CGLPixelFormatObj], @"CGL pixel format obj") + ADD_NUMBER([o numberOfVirtualScreens], @"Number of virtual screens") } - (void)addNSPageLayout:(id)object { - NSPageLayout *o = object; - - if ([[o accessoryControllers] count] > 0 || [o printInfo] != nil) - { - ADD_CLASS_LABEL(@"NSPageLayout Info"); - ADD_OBJECTS( [o accessoryControllers] ,@"Accessory controllers") - ADD_OBJECT_NOT_NIL( [o printInfo] ,@"Print info") - } + NSPageLayout* o = object; + + if ([[o accessoryControllers] count] > 0 || [o printInfo] != nil) { + ADD_CLASS_LABEL(@"NSPageLayout Info"); + ADD_OBJECTS([o accessoryControllers], @"Accessory controllers") + ADD_OBJECT_NOT_NIL([o printInfo], @"Print info") + } } - (void)addNSParagraphStyle:(id)object { - if ([object isKindOfClass:[NSMutableParagraphStyle class]]) - { - //NSMutableParagraphStyle *o = object; - //ADD_CLASS_LABEL(@"NSMutableParagraphStyle Info") - } - - NSParagraphStyle *o = object; - ADD_CLASS_LABEL(@"NSParagraphStyle Info") - ADD_OBJECT(objectFromTextAlignment([o alignment]) ,@"Alignment") - ADD_OBJECT(objectFromWritingDirection([o baseWritingDirection]) ,@"Base writing direction") - ADD_NUMBER( [o defaultTabInterval] ,@"Default tab interval") - ADD_NUMBER( [o firstLineHeadIndent] ,@"First line head indent") - ADD_NUMBER( [o headerLevel] ,@"HeaderLevel") - ADD_NUMBER( [o headIndent] ,@"Head indent") - ADD_NUMBER( [o hyphenationFactor] ,@"hyphenationFactor") - ADD_OBJECT(objectFromLineBreakMode([o lineBreakMode]) ,@"Line break mode") - ADD_NUMBER( [o lineHeightMultiple] ,@"Line height multiple") - ADD_NUMBER( [o lineSpacing] ,@"Line spacing") - ADD_NUMBER( [o maximumLineHeight] ,@"Maximum line height") - ADD_NUMBER( [o minimumLineHeight] ,@"Minimum line height") - ADD_NUMBER( [o paragraphSpacing] ,@"Paragraph spacing") - ADD_NUMBER( [o paragraphSpacingBefore] ,@"Paragraph spacing before") - ADD_OBJECTS( [o tabStops] ,@"Tab stops") - ADD_NUMBER( [o tailIndent] ,@"Tail indent") - ADD_OBJECTS( [o textBlocks] ,@"Text blocks") - ADD_OBJECTS( [o textLists] ,@"Text lists") - ADD_NUMBER( [o tighteningFactorForTruncation] ,@"Tightening factor for truncation") + NSParagraphStyle* o = object; + ADD_CLASS_LABEL(@"NSParagraphStyle Info") + ADD_OBJECT(objectFromTextAlignment([o alignment]), @"Alignment") + ADD_OBJECT(objectFromWritingDirection([o baseWritingDirection]), @"Base writing direction") + ADD_NUMBER([o defaultTabInterval], @"Default tab interval") + ADD_NUMBER([o firstLineHeadIndent], @"First line head indent") + ADD_NUMBER([o headerLevel], @"HeaderLevel") + ADD_NUMBER([o headIndent], @"Head indent") + ADD_NUMBER([o hyphenationFactor], @"hyphenationFactor") + ADD_OBJECT(objectFromLineBreakMode([o lineBreakMode]), @"Line break mode") + ADD_NUMBER([o lineHeightMultiple], @"Line height multiple") + ADD_NUMBER([o lineSpacing], @"Line spacing") + ADD_NUMBER([o maximumLineHeight], @"Maximum line height") + ADD_NUMBER([o minimumLineHeight], @"Minimum line height") + ADD_NUMBER([o paragraphSpacing], @"Paragraph spacing") + ADD_NUMBER([o paragraphSpacingBefore], @"Paragraph spacing before") + ADD_OBJECTS([o tabStops], @"Tab stops") + ADD_NUMBER([o tailIndent], @"Tail indent") + ADD_OBJECTS([o textBlocks], @"Text blocks") + ADD_OBJECTS([o textLists], @"Text lists") + ADD_NUMBER([o tighteningFactorForTruncation], @"Tightening factor for truncation") } - (void)addNSPersistentStoreCoordinator:(id)object { - NSPersistentStoreCoordinator *o = object; - ADD_CLASS_LABEL(@"NSPersistentStoreCoordinator Info") - ADD_OBJECT( [o managedObjectModel] ,@"Managed object model") - ADD_OBJECTS( [o persistentStores] ,@"Persistent stores") + NSPersistentStoreCoordinator* o = object; + ADD_CLASS_LABEL(@"NSPersistentStoreCoordinator Info") + ADD_OBJECT([o managedObjectModel], @"Managed object model") + ADD_OBJECTS([o persistentStores], @"Persistent stores") } - (void)addNSPredicateEditorRowTemplate:(id)object { - NSPredicateEditorRowTemplate *o = object; - ADD_CLASS_LABEL(@"NSPredicateEditorRowTemplate Info") - ADD_OBJECTS( [o compoundTypes] ,@"Compound types") - ADD_OBJECTS( [o leftExpressions] ,@"Left expressions") - ADD_OBJECT(objectFromComparisonPredicateModifier([o modifier]) ,@"Modifier") - ADD_OBJECTS( [o operators] ,@"Operators") - ADD_OBJECT(objectFromComparisonPredicateOptions([o options]) ,@"Options") - ADD_OBJECT(objectFromAttributeType([o rightExpressionAttributeType]),@"Right expression attribute type") - ADD_OBJECTS( [o rightExpressions] ,@"Right expressions") - ADD_OBJECTS( [o templateViews] ,@"Template views") + NSPredicateEditorRowTemplate* o = object; + ADD_CLASS_LABEL(@"NSPredicateEditorRowTemplate Info") + ADD_OBJECTS([o compoundTypes], @"Compound types") + ADD_OBJECTS([o leftExpressions], @"Left expressions") + ADD_OBJECT(objectFromComparisonPredicateModifier([o modifier]), @"Modifier") + ADD_OBJECTS([o operators], @"Operators") + ADD_OBJECT(objectFromComparisonPredicateOptions([o options]), @"Options") + ADD_OBJECT(objectFromAttributeType([o rightExpressionAttributeType]), @"Right expression attribute type") + ADD_OBJECTS([o rightExpressions], @"Right expressions") + ADD_OBJECTS([o templateViews], @"Template views") } - (void)addNSPropertyDescription:(id)object { - if ([object isKindOfClass:[NSAttributeDescription class]]) - { - NSAttributeDescription *o = object; - ADD_CLASS_LABEL(@"NSAttributeDescription Info") - ADD_OBJECT(objectFromAttributeType([o attributeType]) ,@"Attribute type") - ADD_OBJECT( [o attributeValueClassName] ,@"Attribute value class name") - ADD_OBJECT( [o defaultValue] ,@"Default value") - - if ([o attributeType] == NSTransformableAttributeType) - ADD_OBJECT( [o valueTransformerName] ,@"Value transformer name") - - } - else if ([object isKindOfClass:[NSFetchedPropertyDescription class]]) - { - NSFetchedPropertyDescription *o = object; - ADD_CLASS_LABEL(@"NSFetchedPropertyDescription Info") - ADD_OBJECT( [o fetchRequest] ,@"Fetch request") - } - else if ([object isKindOfClass:[NSRelationshipDescription class]]) - { - NSRelationshipDescription *o = object; - ADD_CLASS_LABEL(@"NSRelationshipDescription Info") - ADD_OBJECT(objectFromDeleteRule([o deleteRule]) ,@"Delete rule") - ADD_OBJECT( [o destinationEntity] ,@"Destination entity") - ADD_OBJECT( [o inverseRelationship] ,@"Inverse relationship") - ADD_BOOL( [o isToMany] ,@"Is to many") - ADD_NUMBER( [o maxCount] ,@"Max count") - ADD_NUMBER( [o minCount] ,@"Min count") - } - - NSPropertyDescription *o = object; - ADD_CLASS_LABEL(@"NSPropertyDescription Info") - ADD_OBJECT( [o entity] ,@"Entity") - ADD_BOOL( [o isIndexed] ,@"Is indexed") - ADD_BOOL( [o isOptional] ,@"Is optional") - ADD_BOOL( [o isTransient] ,@"Is transient") - ADD_OBJECT( [o name] ,@"Name") - ADD_DICTIONARY( [o userInfo] ,@"User info") - ADD_OBJECTS( [o validationPredicates] ,@"Validation predicates") - ADD_OBJECTS( [o validationWarnings] ,@"Validation warnings") + if ([object isKindOfClass:[NSAttributeDescription class]]) { + NSAttributeDescription* o = object; + ADD_CLASS_LABEL(@"NSAttributeDescription Info") + ADD_OBJECT(objectFromAttributeType([o attributeType]), @"Attribute type") + ADD_OBJECT([o attributeValueClassName], @"Attribute value class name") + ADD_OBJECT([o defaultValue], @"Default value") + + if ([o attributeType] == NSTransformableAttributeType) + ADD_OBJECT([o valueTransformerName], @"Value transformer name") + } + else if ([object isKindOfClass:[NSFetchedPropertyDescription class]]) { + NSFetchedPropertyDescription* o = object; + ADD_CLASS_LABEL(@"NSFetchedPropertyDescription Info") + ADD_OBJECT([o fetchRequest], @"Fetch request") + } + else if ([object isKindOfClass:[NSRelationshipDescription class]]) { + NSRelationshipDescription* o = object; + ADD_CLASS_LABEL(@"NSRelationshipDescription Info") + ADD_OBJECT(objectFromDeleteRule([o deleteRule]), @"Delete rule") + ADD_OBJECT([o destinationEntity], @"Destination entity") + ADD_OBJECT([o inverseRelationship], @"Inverse relationship") + ADD_BOOL([o isToMany], @"Is to many") + ADD_NUMBER([o maxCount], @"Max count") + ADD_NUMBER([o minCount], @"Min count") + } + + NSPropertyDescription* o = object; + ADD_CLASS_LABEL(@"NSPropertyDescription Info") + ADD_OBJECT([o entity], @"Entity") + ADD_BOOL([o isIndexed], @"Is indexed") + ADD_BOOL([o isOptional], @"Is optional") + ADD_BOOL([o isTransient], @"Is transient") + ADD_OBJECT([o name], @"Name") + ADD_DICTIONARY([o userInfo], @"User info") + ADD_OBJECTS([o validationPredicates], @"Validation predicates") + ADD_OBJECTS([o validationWarnings], @"Validation warnings") } - (void)addNSResponder:(id)object { - if ([object isKindOfClass:[NSApplication class]]) - { - NSApplication *o = object; - ADD_CLASS_LABEL(@"NSApplication Info") - ADD_OBJECT_NOT_NIL( [o applicationIconImage] ,@"Application icon image") - ADD_OBJECT_NOT_NIL( [o context] ,@"Context") - ADD_OBJECT_NOT_NIL( [o currentEvent] ,@"Current event") - ADD_OBJECT_NOT_NIL( [o delegate] ,@"Delegate") - ADD_OBJECT_NOT_NIL( [o dockTile] ,@"Dock tile") - ADD_BOOL( [o isActive] ,@"Is active") - ADD_BOOL( [o isHidden] ,@"Is hidden") - ADD_BOOL( [o isRunning] ,@"Is running") - ADD_OBJECT_NOT_NIL( [o keyWindow] ,@"Key window") - ADD_OBJECT_NOT_NIL( [o mainMenu] ,@"Main menu") - ADD_OBJECT_NOT_NIL( [o mainWindow] ,@"Main window") - ADD_OBJECT_NOT_NIL( [o modalWindow] ,@"Modal window") - ADD_OBJECTS( [o orderedDocuments] ,@"Ordered documents") - ADD_OBJECTS( [o orderedWindows] ,@"Ordered windows") - ADD_OBJECT_NOT_NIL( [o servicesMenu] ,@"Services menu") - ADD_OBJECT_NOT_NIL( [o servicesProvider] ,@"Services provider") - ADD_OBJECTS( [o windows] ,@"Windows") - ADD_OBJECT_NOT_NIL( [o windowsMenu] ,@"Windows menu") - } - else if ([object isKindOfClass:[NSDrawer class]]) - { - NSDrawer *o = object; - ADD_CLASS_LABEL(@"NSDrawer Info"); - ADD_SIZE( [o contentSize] ,@"Content size") - ADD_OBJECT( [o contentView] ,@"Content view") - ADD_OBJECT( [o delegate] ,@"Delegate") - ADD_OBJECT(objectFromRectEdge([o edge]) ,@"Edge") - ADD_NUMBER( [o leadingOffset] ,@"Leading offset") - ADD_SIZE( [o maxContentSize] ,@"Max content size") - ADD_SIZE( [o minContentSize] ,@"Min content size") - ADD_OBJECT( [o parentWindow] ,@"Parent window") - ADD_OBJECT(objectFromRectEdge([o preferredEdge]) ,@"Preferred edge") - ADD_OBJECT(objectFromDrawerState([o state]) ,@"State") - ADD_NUMBER( [o trailingOffset] ,@"Trailing offset") - } - else if ([object isKindOfClass:[NSView class]]) - { - [self processNSView:object]; - } - - if ([object isKindOfClass:[NSViewController class]]) - { - NSViewController *o = object; - ADD_CLASS_LABEL(@"NSViewController Info") - ADD_OBJECT_NOT_NIL( [o nibBundle] ,@"Nib bundle") - ADD_OBJECT_NOT_NIL( [o nibName] ,@"Nib name") - ADD_OBJECT_NOT_NIL( [o representedObject] ,@"Represented object") - ADD_OBJECT_NOT_NIL( [o title] ,@"Title") - ADD_OBJECT_NOT_NIL( [o view] ,@"View") - } - else if ([object isKindOfClass:[NSWindow class]]) - { - [self processNSWindow:object]; - } - else if ([object isKindOfClass:[NSWindowController class]]) - { - NSWindowController *o = object; - ADD_CLASS_LABEL(@"NSWindowController Info"); - ADD_OBJECT( [o document] ,@"Document") - ADD_BOOL( [o isWindowLoaded] ,@"Is window loaded") - ADD_OBJECT( [o owner] ,@"Owner") - ADD_BOOL( [o shouldCascadeWindows] ,@"Should cascade windows") - ADD_BOOL( [o shouldCloseDocument] ,@"Should close document") - if ([o isWindowLoaded]) - ADD_OBJECT( [o window] ,@"Window") - ADD_OBJECT( [o windowFrameAutosaveName] ,@"Window frame autosave name") - ADD_OBJECT( [o windowNibName] ,@"Window nib name") - ADD_OBJECT( [o windowNibPath] ,@"Window nib path") - } - - NSResponder *o = object; - ADD_CLASS_LABEL(@"NSResponder Info") - ADD_BOOL( [o acceptsFirstResponder] ,@"Accepts first responder") - - @try - { - [view addObject:[o menu] withLabel:@"Menu" toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; - // The menu method might raise if not implemented in the actual NSResponder subclass - } - @catch (id exception) {} - - if ([o nextResponder]) - { - NSResponder *responder = o; - NSMutableArray *responders = [NSMutableArray array]; - while ((responder = [responder nextResponder])) [responders addObject:responder]; - [view addObjects:responders withLabel:@"Next responders" toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; - } - - ADD_OBJECT( [o undoManager] ,@"Undo Manager") + if ([object isKindOfClass:[NSApplication class]]) { + NSApplication* o = object; + ADD_CLASS_LABEL(@"NSApplication Info") + ADD_OBJECT_NOT_NIL([o applicationIconImage], @"Application icon image") + ADD_OBJECT_NOT_NIL([o context], @"Context") + ADD_OBJECT_NOT_NIL([o currentEvent], @"Current event") + ADD_OBJECT_NOT_NIL([o delegate], @"Delegate") + ADD_OBJECT_NOT_NIL([o dockTile], @"Dock tile") + ADD_BOOL([o isActive], @"Is active") + ADD_BOOL([o isHidden], @"Is hidden") + ADD_BOOL([o isRunning], @"Is running") + ADD_OBJECT_NOT_NIL([o keyWindow], @"Key window") + ADD_OBJECT_NOT_NIL([o mainMenu], @"Main menu") + ADD_OBJECT_NOT_NIL([o mainWindow], @"Main window") + ADD_OBJECT_NOT_NIL([o modalWindow], @"Modal window") + ADD_OBJECTS([o orderedDocuments], @"Ordered documents") + ADD_OBJECTS([o orderedWindows], @"Ordered windows") + ADD_OBJECT_NOT_NIL([o servicesMenu], @"Services menu") + ADD_OBJECT_NOT_NIL([o servicesProvider], @"Services provider") + ADD_OBJECTS([o windows], @"Windows") + ADD_OBJECT_NOT_NIL([o windowsMenu], @"Windows menu") + } + else if ([object isKindOfClass:[NSDrawer class]]) { + NSDrawer* o = object; + ADD_CLASS_LABEL(@"NSDrawer Info"); + ADD_SIZE([o contentSize], @"Content size") + ADD_OBJECT([o contentView], @"Content view") + ADD_OBJECT([o delegate], @"Delegate") + ADD_OBJECT(objectFromRectEdge([o edge]), @"Edge") + ADD_NUMBER([o leadingOffset], @"Leading offset") + ADD_SIZE([o maxContentSize], @"Max content size") + ADD_SIZE([o minContentSize], @"Min content size") + ADD_OBJECT([o parentWindow], @"Parent window") + ADD_OBJECT(objectFromRectEdge([o preferredEdge]), @"Preferred edge") + ADD_OBJECT(objectFromDrawerState([o state]), @"State") + ADD_NUMBER([o trailingOffset], @"Trailing offset") + } + else if ([object isKindOfClass:[NSView class]]) { + [self processNSView:object]; + } + + if ([object isKindOfClass:[NSViewController class]]) { + NSViewController* o = object; + ADD_CLASS_LABEL(@"NSViewController Info") + ADD_OBJECT_NOT_NIL([o nibBundle], @"Nib bundle") + ADD_OBJECT_NOT_NIL([o nibName], @"Nib name") + ADD_OBJECT_NOT_NIL([o representedObject], @"Represented object") + ADD_OBJECT_NOT_NIL([o title], @"Title") + ADD_OBJECT_NOT_NIL([o view], @"View") + } + else if ([object isKindOfClass:[NSWindow class]]) { + [self processNSWindow:object]; + } + else if ([object isKindOfClass:[NSWindowController class]]) { + NSWindowController* o = object; + ADD_CLASS_LABEL(@"NSWindowController Info"); + ADD_OBJECT([o document], @"Document") + ADD_BOOL([o isWindowLoaded], @"Is window loaded") + ADD_OBJECT([o owner], @"Owner") + ADD_BOOL([o shouldCascadeWindows], @"Should cascade windows") + ADD_BOOL([o shouldCloseDocument], @"Should close document") + if ([o isWindowLoaded]) + ADD_OBJECT([o window], @"Window") + ADD_OBJECT([o windowFrameAutosaveName], @"Window frame autosave name") + ADD_OBJECT([o windowNibName], @"Window nib name") + ADD_OBJECT([o windowNibPath], @"Window nib path") + } + + NSResponder* o = object; + ADD_CLASS_LABEL(@"NSResponder Info") + ADD_BOOL([o acceptsFirstResponder], @"Accepts first responder") + + @try { + [view addObject:[o menu] withLabel:@"Menu" toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + // The menu method might raise if not implemented in the actual NSResponder subclass + } + @catch (id exception) {} + + if ([o nextResponder]) { + NSResponder* responder = o; + NSMutableArray* responders = [NSMutableArray array]; + while ((responder = [responder nextResponder])) + [responders addObject:responder]; + [view addObjects:responders withLabel:@"Next responders" toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + } + + ADD_OBJECT([o undoManager], @"Undo Manager") } - (void)addNSRulerMarker:(id)object { - NSRulerMarker *o = object; - ADD_CLASS_LABEL(@"NSRulerMarker Info"); - ADD_OBJECT( [o image] ,@"Image") - ADD_POINT( [o imageOrigin] ,@"Image origin") - ADD_RECT( [o imageRectInRuler] ,@"Image rect in ruler") - ADD_BOOL( [o isDragging] ,@"Is dragging") - ADD_BOOL( [o isMovable] ,@"Is movable") - ADD_BOOL( [o isRemovable] ,@"Is removable") - ADD_NUMBER( [o markerLocation] ,@"Marker location") - ADD_OBJECT( [o representedObject] ,@"Represented object") - ADD_OBJECT( [o ruler] ,@"Ruler") - ADD_NUMBER( [o thicknessRequiredInRuler] ,@"Thickness required in ruler") - + NSRulerMarker* o = object; + ADD_CLASS_LABEL(@"NSRulerMarker Info"); + ADD_OBJECT([o image], @"Image") + ADD_POINT([o imageOrigin], @"Image origin") + ADD_RECT([o imageRectInRuler], @"Image rect in ruler") + ADD_BOOL([o isDragging], @"Is dragging") + ADD_BOOL([o isMovable], @"Is movable") + ADD_BOOL([o isRemovable], @"Is removable") + ADD_NUMBER([o markerLocation], @"Marker location") + ADD_OBJECT([o representedObject], @"Represented object") + ADD_OBJECT([o ruler], @"Ruler") + ADD_NUMBER([o thicknessRequiredInRuler], @"Thickness required in ruler") } - (void)addNSScreen:(id)object { - NSScreen *o = object; - ADD_CLASS_LABEL(@"NSScreen Info"); - ADD_NUMBER( [o depth] ,@"Depth") - ADD_DICTIONARY( [o deviceDescription] ,@"Device description") - ADD_RECT( [o frame] ,@"Frame") - ADD_NUMBER( [o userSpaceScaleFactor] ,@"User space scale factor") - ADD_RECT( [o visibleFrame] ,@"Visible frame") - + NSScreen* o = object; + ADD_CLASS_LABEL(@"NSScreen Info"); + ADD_NUMBER([o depth], @"Depth") + ADD_DICTIONARY([o deviceDescription], @"Device description") + ADD_RECT([o frame], @"Frame") + ADD_NUMBER([o userSpaceScaleFactor], @"User space scale factor") + ADD_RECT([o visibleFrame], @"Visible frame") } - (void)addNSShadow:(id)object { - NSShadow *o = object; - ADD_CLASS_LABEL(@"NSShadow Info"); - ADD_NUMBER( [o shadowBlurRadius] ,@"Shadow blur radius") - ADD_OBJECT( [o shadowColor] ,@"Shadow color") - ADD_SIZE( [o shadowOffset] ,@"Shadow offset") - + NSShadow* o = object; + ADD_CLASS_LABEL(@"NSShadow Info"); + ADD_NUMBER([o shadowBlurRadius], @"Shadow blur radius") + ADD_OBJECT([o shadowColor], @"Shadow color") + ADD_SIZE([o shadowOffset], @"Shadow offset") } - (void)addNSStatusBar:(id)object { - NSStatusBar *o = object; - ADD_CLASS_LABEL(@"NSStatusBar Info"); - ADD_BOOL( [o isVertical] ,@"Is vertical") - ADD_NUMBER( [o thickness] ,@"Thickness") - + NSStatusBar* o = object; + ADD_CLASS_LABEL(@"NSStatusBar Info"); + ADD_BOOL([o isVertical], @"Is vertical") + ADD_NUMBER([o thickness], @"Thickness") } - (void)addNSStatusItem:(id)object { - NSStatusItem *o = object; - ADD_CLASS_LABEL(@"NSStatusItem Info"); - ADD_SEL( [o action] ,@"Action") - ADD_OBJECT_NOT_NIL( [o alternateImage] ,@"Alternate image") - ADD_OBJECT_NOT_NIL( [o attributedTitle] ,@"Attributed title") - ADD_SEL( [o doubleAction] ,@"Double action") - ADD_BOOL( [o highlightMode] ,@"Highlight mode") - ADD_OBJECT_NOT_NIL( [o image] ,@"Image") - ADD_BOOL( [o isEnabled] ,@"Is enabled") - ADD_OBJECT(objectFromStatusItemLength([o length]) ,@"Length") - ADD_OBJECT_NOT_NIL( [o menu] ,@"Menu") - ADD_OBJECT( [o statusBar] ,@"Status bar") - ADD_OBJECT( [o target] ,@"Target") - ADD_OBJECT_NOT_NIL( [o title] ,@"Title") - ADD_OBJECT_NOT_NIL( [o toolTip] ,@"Tool tip") - ADD_OBJECT_NOT_NIL( [o view] ,@"View") - + NSStatusItem* o = object; + ADD_CLASS_LABEL(@"NSStatusItem Info"); + ADD_SEL([o action], @"Action") + ADD_OBJECT_NOT_NIL([o alternateImage], @"Alternate image") + ADD_OBJECT_NOT_NIL([o attributedTitle], @"Attributed title") + ADD_SEL([o doubleAction], @"Double action") + ADD_BOOL([o highlightMode], @"Highlight mode") + ADD_OBJECT_NOT_NIL([o image], @"Image") + ADD_BOOL([o isEnabled], @"Is enabled") + ADD_OBJECT(objectFromStatusItemLength([o length]), @"Length") + ADD_OBJECT_NOT_NIL([o menu], @"Menu") + ADD_OBJECT([o statusBar], @"Status bar") + ADD_OBJECT([o target], @"Target") + ADD_OBJECT_NOT_NIL([o title], @"Title") + ADD_OBJECT_NOT_NIL([o toolTip], @"Tool tip") + ADD_OBJECT_NOT_NIL([o view], @"View") } - (void)addNSTabViewItem:(id)object { - NSTabViewItem *o = object; - ADD_CLASS_LABEL(@"NSTabViewItem Info"); - ADD_OBJECT( [o color] ,@"Color") - ADD_OBJECT( [(NSTabViewItem *)o identifier] ,@"Identifier") - ADD_OBJECT( [o initialFirstResponder] ,@"Initial first responder") - ADD_OBJECT( [o label] ,@"Label") - ADD_OBJECT( objectFromTabState([o tabState]) ,@"Tab state") - ADD_OBJECT( [o tabView] ,@"Parent tab view") - ADD_OBJECT( [o view] ,@"View") - + NSTabViewItem* o = object; + ADD_CLASS_LABEL(@"NSTabViewItem Info"); + ADD_OBJECT([o color], @"Color") + ADD_OBJECT([(NSTabViewItem*)o identifier], @"Identifier") + ADD_OBJECT([o initialFirstResponder], @"Initial first responder") + ADD_OBJECT([o label], @"Label") + ADD_OBJECT(objectFromTabState([o tabState]), @"Tab state") + ADD_OBJECT([o tabView], @"Parent tab view") + ADD_OBJECT([o view], @"View") } - (void)addNSTableColumn:(id)object { - NSTableColumn *o = object; - ADD_CLASS_LABEL(@"NSTableColumn Info"); - ADD_OBJECT( [o dataCell] ,@"Data cell") - ADD_OBJECT( [o headerCell] ,@"Header cell") - ADD_OBJECT_NOT_NIL( [o headerToolTip] ,@"Header tool tip") - ADD_OBJECT( [(NSTableColumn*)o identifier] ,@"Identifier") - ADD_BOOL( [o isEditable] ,@"Is editable") - ADD_BOOL( [o isHidden] ,@"Is hidden") - ADD_NUMBER( [o maxWidth] ,@"Max width") - ADD_NUMBER( [o minWidth] ,@"Min width") - ADD_OBJECT(objectFromTableColumnResizingOptions([o resizingMask]) ,@"Resizing mask") - ADD_OBJECT_NOT_NIL( [o sortDescriptorPrototype] ,@"Sort descriptor prototype") - ADD_OBJECT( [o tableView] ,@"Table view") - ADD_NUMBER( [o width] ,@"Width") - + NSTableColumn* o = object; + ADD_CLASS_LABEL(@"NSTableColumn Info"); + ADD_OBJECT([o dataCell], @"Data cell") + ADD_OBJECT([o headerCell], @"Header cell") + ADD_OBJECT_NOT_NIL([o headerToolTip], @"Header tool tip") + ADD_OBJECT([(NSTableColumn*)o identifier], @"Identifier") + ADD_BOOL([o isEditable], @"Is editable") + ADD_BOOL([o isHidden], @"Is hidden") + ADD_NUMBER([o maxWidth], @"Max width") + ADD_NUMBER([o minWidth], @"Min width") + ADD_OBJECT(objectFromTableColumnResizingOptions([o resizingMask]), @"Resizing mask") + ADD_OBJECT_NOT_NIL([o sortDescriptorPrototype], @"Sort descriptor prototype") + ADD_OBJECT([o tableView], @"Table view") + ADD_NUMBER([o width], @"Width") } - (void)addNSTextAttachment:(id)object { - NSTextAttachment *o = object; - ADD_CLASS_LABEL(@"NSTextAttachment Info"); - ADD_OBJECT( [o attachmentCell] ,@"Attachment cell") - ADD_OBJECT( [o fileWrapper] ,@"File wrapper") - + NSTextAttachment* o = object; + ADD_CLASS_LABEL(@"NSTextAttachment Info"); + ADD_OBJECT([o attachmentCell], @"Attachment cell") + ADD_OBJECT([o fileWrapper], @"File wrapper") } - (void)addNSTextBlock:(id)object { - if ([object isKindOfClass:[NSTextTableBlock class]]) - { - NSTextTableBlock *o = object; - ADD_CLASS_LABEL(@"NSTextTableBlock Info"); - ADD_NUMBER( [o columnSpan] ,@"Column span") - ADD_NUMBER( [o rowSpan] ,@"Row span") - ADD_NUMBER( [o startingColumn] ,@"Starting column") - ADD_NUMBER( [o startingRow] ,@"Starting row") - ADD_OBJECT( [o table] ,@"Table") - } - else if ([object isKindOfClass:[NSTextTable class]]) - { - NSTextTable *o = object; - ADD_CLASS_LABEL(@"NSTextTable Info"); - ADD_BOOL( [o collapsesBorders] ,@"Collapses borders") - ADD_BOOL( [o hidesEmptyCells] ,@"Hides empty cells") - ADD_OBJECT(objectFromTextTableLayoutAlgorithm([o layoutAlgorithm]),@"Layout algorithm") - ADD_NUMBER( [o numberOfColumns] ,@"Number of columns") - } - - NSTextBlock *o = object; - ADD_CLASS_LABEL(@"NSTextBlock Info"); - ADD_OBJECT( [o backgroundColor] ,@"Background color") - ADD_NUMBER( [o contentWidth] ,@"Content width") - ADD_OBJECT(objectFromTextBlockValueType([o contentWidthValueType]),@"Content width value type") - ADD_OBJECT(objectFromTextBlockVerticalAlignment([o verticalAlignment]),@"Vertical alignment") + if ([object isKindOfClass:[NSTextTableBlock class]]) { + NSTextTableBlock* o = object; + ADD_CLASS_LABEL(@"NSTextTableBlock Info"); + ADD_NUMBER([o columnSpan], @"Column span") + ADD_NUMBER([o rowSpan], @"Row span") + ADD_NUMBER([o startingColumn], @"Starting column") + ADD_NUMBER([o startingRow], @"Starting row") + ADD_OBJECT([o table], @"Table") + } + else if ([object isKindOfClass:[NSTextTable class]]) { + NSTextTable* o = object; + ADD_CLASS_LABEL(@"NSTextTable Info"); + ADD_BOOL([o collapsesBorders], @"Collapses borders") + ADD_BOOL([o hidesEmptyCells], @"Hides empty cells") + ADD_OBJECT(objectFromTextTableLayoutAlgorithm([o layoutAlgorithm]), @"Layout algorithm") + ADD_NUMBER([o numberOfColumns], @"Number of columns") + } + + NSTextBlock* o = object; + ADD_CLASS_LABEL(@"NSTextBlock Info"); + ADD_OBJECT([o backgroundColor], @"Background color") + ADD_NUMBER([o contentWidth], @"Content width") + ADD_OBJECT(objectFromTextBlockValueType([o contentWidthValueType]), @"Content width value type") + ADD_OBJECT(objectFromTextBlockVerticalAlignment([o verticalAlignment]), @"Vertical alignment") } - (void)addNSTextContainer:(id)object { - NSTextContainer *o = object; - ADD_CLASS_LABEL(@"NSTextContainer Info"); - ADD_SIZE( [o containerSize] ,@"Container size") - ADD_BOOL( [o heightTracksTextView] ,@"Height tracks text view") - ADD_BOOL( [o isSimpleRectangularTextContainer] ,@"Is simple rectangular text container") - ADD_OBJECT_NOT_NIL( [o layoutManager] ,@"Layout manager") - ADD_NUMBER( [o lineFragmentPadding] ,@"Line fragment padding") - ADD_OBJECT_NOT_NIL( [o textView] ,@"Text view") - ADD_BOOL( [o widthTracksTextView] ,@"Width tracks text view") - + NSTextContainer* o = object; + ADD_CLASS_LABEL(@"NSTextContainer Info"); + ADD_SIZE([o containerSize], @"Container size") + ADD_BOOL([o heightTracksTextView], @"Height tracks text view") + ADD_BOOL([o isSimpleRectangularTextContainer], @"Is simple rectangular text container") + ADD_OBJECT_NOT_NIL([o layoutManager], @"Layout manager") + ADD_NUMBER([o lineFragmentPadding], @"Line fragment padding") + ADD_OBJECT_NOT_NIL([o textView], @"Text view") + ADD_BOOL([o widthTracksTextView], @"Width tracks text view") } - (void)addNSTextList:(id)object { - NSTextList *o = object; - ADD_CLASS_LABEL(@"NSTextList Info"); - ADD_OBJECT(objectFromTextListOptions([o listOptions]) ,@"List options") - ADD_OBJECT( [o markerFormat] ,@"Marker format") - + NSTextList* o = object; + ADD_CLASS_LABEL(@"NSTextList Info"); + ADD_OBJECT(objectFromTextListOptions([o listOptions]), @"List options") + ADD_OBJECT([o markerFormat], @"Marker format") } - (void)addNSTextTab:(id)object { - NSTextTab *o = object; - ADD_CLASS_LABEL(@"NSTextTab Info"); - ADD_OBJECT( objectFromTextAlignment([o alignment]) ,@"Alignment") - ADD_NUMBER( [o location] ,@"Location") - ADD_OBJECT( [o options] ,@"Options") - ADD_OBJECT(objectFromTextTabType([o tabStopType]) ,@"Tab stop type") - + NSTextTab* o = object; + ADD_CLASS_LABEL(@"NSTextTab Info"); + ADD_OBJECT(objectFromTextAlignment([o alignment]), @"Alignment") + ADD_NUMBER([o location], @"Location") + ADD_OBJECT([o options], @"Options") + ADD_OBJECT(objectFromTextTabType([o tabStopType]), @"Tab stop type") } - (void)addNSToolbar:(id)object { - NSToolbar *o = object; - ADD_CLASS_LABEL(@"NSToolbar Info"); - ADD_BOOL( [o allowsUserCustomization] ,@"Allows user customization") - ADD_BOOL( [o autosavesConfiguration] ,@"Autosaves configuration") - ADD_DICTIONARY( [o configurationDictionary] ,@"Configuration dictionary") - ADD_BOOL( [o customizationPaletteIsRunning] ,@"Customization palette is running") - ADD_OBJECT( [o delegate] ,@"Delegate") - ADD_OBJECT(objectFromToolbarDisplayMode([o displayMode]) ,@"Display mode") - ADD_OBJECT( [(NSToolbar*)o identifier] ,@"Identifier") - ADD_BOOL( [o isVisible] ,@"Is visible") - ADD_OBJECTS( [o items] ,@"Items") - ADD_OBJECT_NOT_NIL( [o selectedItemIdentifier] ,@"Selected item identifier") - ADD_BOOL( [o showsBaselineSeparator] ,@"Shows baseline separator") - ADD_OBJECT(objectFromToolbarSizeMode([o sizeMode]) ,@"Identifier") - ADD_OBJECTS( [o visibleItems] ,@"Visible items") + NSToolbar* o = object; + ADD_CLASS_LABEL(@"NSToolbar Info"); + ADD_BOOL([o allowsUserCustomization], @"Allows user customization") + ADD_BOOL([o autosavesConfiguration], @"Autosaves configuration") + ADD_DICTIONARY([o configurationDictionary], @"Configuration dictionary") + ADD_BOOL([o customizationPaletteIsRunning], @"Customization palette is running") + ADD_OBJECT([o delegate], @"Delegate") + ADD_OBJECT(objectFromToolbarDisplayMode([o displayMode]), @"Display mode") + ADD_OBJECT([(NSToolbar*)o identifier], @"Identifier") + ADD_BOOL([o isVisible], @"Is visible") + ADD_OBJECTS([o items], @"Items") + ADD_OBJECT_NOT_NIL([o selectedItemIdentifier], @"Selected item identifier") + ADD_BOOL([o showsBaselineSeparator], @"Shows baseline separator") + ADD_OBJECT(objectFromToolbarSizeMode([o sizeMode]), @"Identifier") + ADD_OBJECTS([o visibleItems], @"Visible items") } - (void)addNSToolbarItem:(id)object { - if ([object isKindOfClass:[NSToolbarItemGroup class]]) - { - NSToolbarItemGroup *o = object; - ADD_CLASS_LABEL(@"NSToolbarItemGroup Info"); - ADD_OBJECTS( [o subitems] ,@"Subitems") - } - - NSToolbarItem *o = object; - ADD_CLASS_LABEL(@"NSToolbarItem Info"); - ADD_SEL( [o action] ,@"Action") - ADD_BOOL( [o allowsDuplicatesInToolbar] ,@"Allows duplicates in toolbar") - ADD_BOOL( [o autovalidates] ,@"Autovalidates") - ADD_OBJECT( [o image] ,@"Image") - ADD_BOOL( [o isEnabled] ,@"Is enabled") - ADD_OBJECT( [(NSToolbarItem*)o itemIdentifier] ,@"Item identifier") - ADD_OBJECT( [o label] ,@"Label") - ADD_SIZE( [o maxSize] ,@"Max size") - ADD_OBJECT_NOT_NIL( [o menuFormRepresentation] ,@"Menu form representation") - ADD_SIZE( [o minSize] ,@"Min size") - ADD_OBJECT( [o paletteLabel] ,@"Palette label") - ADD_NUMBER( [o tag] ,@"Tag") - ADD_OBJECT( [o target] ,@"Target") - ADD_OBJECT( [o toolbar] ,@"Toolbar") - ADD_OBJECT_NOT_NIL( [o toolTip] ,@"Tool tip") - ADD_OBJECT( [o view] ,@"View") - ADD_OBJECT(objectFromToolbarItemVisibilityPriority([o visibilityPriority]),@"Visibility priority") - + if ([object isKindOfClass:[NSToolbarItemGroup class]]) { + NSToolbarItemGroup* o = object; + ADD_CLASS_LABEL(@"NSToolbarItemGroup Info"); + ADD_OBJECTS([o subitems], @"Subitems") + } + + NSToolbarItem* o = object; + ADD_CLASS_LABEL(@"NSToolbarItem Info"); + ADD_SEL([o action], @"Action") + ADD_BOOL([o allowsDuplicatesInToolbar], @"Allows duplicates in toolbar") + ADD_BOOL([o autovalidates], @"Autovalidates") + ADD_OBJECT([o image], @"Image") + ADD_BOOL([o isEnabled], @"Is enabled") + ADD_OBJECT([(NSToolbarItem*)o itemIdentifier], @"Item identifier") + ADD_OBJECT([o label], @"Label") + ADD_SIZE([o maxSize], @"Max size") + ADD_OBJECT_NOT_NIL([o menuFormRepresentation], @"Menu form representation") + ADD_SIZE([o minSize], @"Min size") + ADD_OBJECT([o paletteLabel], @"Palette label") + ADD_NUMBER([o tag], @"Tag") + ADD_OBJECT([o target], @"Target") + ADD_OBJECT([o toolbar], @"Toolbar") + ADD_OBJECT_NOT_NIL([o toolTip], @"Tool tip") + ADD_OBJECT([o view], @"View") + ADD_OBJECT(objectFromToolbarItemVisibilityPriority([o visibilityPriority]), @"Visibility priority") } - (void)addNSTrackingArea:(id)object { - NSTrackingArea *o = object; - ADD_CLASS_LABEL(@"NSTrackingArea Info"); - ADD_OBJECT(objectFromTrackingAreaOptions([o options]) ,@"Options") - ADD_OBJECT( [o owner] ,@"Owner") - ADD_RECT( [o rect] ,@"Rect") - ADD_DICTIONARY( [o userInfo] ,@"User info") - + NSTrackingArea* o = object; + ADD_CLASS_LABEL(@"NSTrackingArea Info"); + ADD_OBJECT(objectFromTrackingAreaOptions([o options]), @"Options") + ADD_OBJECT([o owner], @"Owner") + ADD_RECT([o rect], @"Rect") + ADD_DICTIONARY([o userInfo], @"User info") } - (void)addNSUndoManager:(id)object { - NSUndoManager *o = object; - ADD_CLASS_LABEL(@"NSUndoManager Info"); - ADD_NUMBER( [o groupingLevel] ,@"Grouping level") - ADD_BOOL( [o groupsByEvent] ,@"Groups by event") - ADD_BOOL( [o isUndoRegistrationEnabled] ,@"Is undo registration enabled") - ADD_NUMBER( [o levelsOfUndo] ,@"Levels of undo") - ADD_OBJECT_NOT_NIL( [o redoActionName] ,@"Redo action name") - ADD_OBJECT_NOT_NIL( [o redoMenuItemTitle] ,@"Redo menu item title") - ADD_OBJECTS( [o runLoopModes] ,@"Run loop modes") - ADD_OBJECT_NOT_NIL( [o undoActionName] ,@"Undo action name") - ADD_OBJECT_NOT_NIL( [o undoMenuItemTitle] ,@"Undo menu item title") -} - --(void)addNSATSTypesetter:(id)object -{ - if ([object isKindOfClass:NSClassFromString(@"NSATSTypesetter")]) - { - // NSATSTypesetter *o = object; - // ADD_CLASS_LABEL(@"NSATSTypesetter Info"); - } - - NSTypesetter *o = object; - ADD_CLASS_LABEL(@"NSTypesetter Info"); - //ADD_OBJECT( [o attributedString] ,@"Attributed string") - ADD_DICTIONARY( [o attributesForExtraLineFragment] ,@"Attributes for extra line fragment") - ADD_BOOL( [o bidiProcessingEnabled] ,@"Bidi processing enabled") - ADD_OBJECT_NOT_NIL( [o currentTextContainer] ,@"Current text container") - ADD_NUMBER( [o hyphenationFactor] ,@"Hyphenation factor") - ADD_OBJECT_NOT_NIL( [o layoutManager] ,@"Layout manager") - ADD_NUMBER( [o lineFragmentPadding] ,@"Line fragment padding") - ADD_OBJECT(objectFromTypesetterBehavior([o typesetterBehavior]) ,@"Typesetter behavior") - ADD_BOOL( [o usesFontLeading] ,@"Uses font leading") + NSUndoManager* o = object; + ADD_CLASS_LABEL(@"NSUndoManager Info"); + ADD_NUMBER([o groupingLevel], @"Grouping level") + ADD_BOOL([o groupsByEvent], @"Groups by event") + ADD_BOOL([o isUndoRegistrationEnabled], @"Is undo registration enabled") + ADD_NUMBER([o levelsOfUndo], @"Levels of undo") + ADD_OBJECT_NOT_NIL([o redoActionName], @"Redo action name") + ADD_OBJECT_NOT_NIL([o redoMenuItemTitle], @"Redo menu item title") + ADD_OBJECTS([o runLoopModes], @"Run loop modes") + ADD_OBJECT_NOT_NIL([o undoActionName], @"Undo action name") + ADD_OBJECT_NOT_NIL([o undoMenuItemTitle], @"Undo menu item title") +} + +- (void)addNSATSTypesetter:(id)object +{ + if ([object isKindOfClass:NSClassFromString(@"NSATSTypesetter")]) { + // NSATSTypesetter *o = object; + // ADD_CLASS_LABEL(@"NSATSTypesetter Info"); + } + + NSTypesetter* o = object; + ADD_CLASS_LABEL(@"NSTypesetter Info"); + //ADD_OBJECT( [o attributedString] ,@"Attributed string") + ADD_DICTIONARY([o attributesForExtraLineFragment], @"Attributes for extra line fragment") + ADD_BOOL([o bidiProcessingEnabled], @"Bidi processing enabled") + ADD_OBJECT_NOT_NIL([o currentTextContainer], @"Current text container") + ADD_NUMBER([o hyphenationFactor], @"Hyphenation factor") + ADD_OBJECT_NOT_NIL([o layoutManager], @"Layout manager") + ADD_NUMBER([o lineFragmentPadding], @"Line fragment padding") + ADD_OBJECT(objectFromTypesetterBehavior([o typesetterBehavior]), @"Typesetter behavior") + ADD_BOOL([o usesFontLeading], @"Uses font leading") } - (void)processNSView:(id)object { - - if ([object isKindOfClass:[NSBox class]]) - { - NSBox *o = object; - ADD_CLASS_LABEL(@"NSBox Info"); - ADD_OBJECT( [o borderColor] ,@"Border color" ) - ADD_RECT( [o borderRect] ,@"Border rect") - ADD_OBJECT(objectFromBorderType([o borderType]) ,@"Border type" ) - ADD_NUMBER( [o borderWidth] ,@"Border width") - ADD_OBJECT(objectFromBoxType([o boxType]) ,@"Box type" ) - ADD_OBJECT( [o contentView] ,@"Content view" ) - ADD_SIZE( [o contentViewMargins] ,@"Content view margins") - ADD_NUMBER( [o cornerRadius] ,@"Corner radius") - ADD_OBJECT( [o fillColor] ,@"Fill color" ) - ADD_BOOL( [o isTransparent] ,@"Is transparent") - ADD_OBJECT( [o title] ,@"Title" ) - ADD_OBJECT( [o titleCell] ,@"Title cell" ) - ADD_OBJECT( [o titleFont] ,@"Title font" ) - ADD_OBJECT(objectFromTitlePosition([o titlePosition]) ,@"Title position" ) - ADD_RECT( [o titleRect] ,@"Title rect") - } - if ([object isKindOfClass:[NSCollectionView class]]) - { - NSCollectionView *o = object; - ADD_CLASS_LABEL(@"NSCollectionView Info"); - ADD_BOOL( [o allowsMultipleSelection] ,@"Allows multiple selection") - ADD_OBJECTS( [o backgroundColors] ,@"Background colors" ) - ADD_OBJECT( [o content] ,@"Content" ) - ADD_BOOL( [o isFirstResponder] ,@"Is first responder") - ADD_BOOL( [o isSelectable] ,@"Is selectable") - ADD_OBJECT_NOT_NIL( [o itemPrototype] ,@"Item prototype" ) - ADD_SIZE( [o maxItemSize] ,@"Max item size") - ADD_NUMBER( [o maxNumberOfColumns] ,@"Max number of columns") - ADD_NUMBER( [o maxNumberOfRows] ,@"Max number of rows") - ADD_SIZE( [o minItemSize] ,@"Min item size") - ADD_OBJECT_NOT_NIL( [o selectionIndexes] ,@"Selection indexes" ) - } - else if ([object isKindOfClass:[NSControl class]]) - { - [self processNSControl:object]; - } - else if ([object isKindOfClass:[NSClipView class]]) - { - NSClipView *o = object; - ADD_CLASS_LABEL(@"NSClipView Info"); - ADD_OBJECT( [o backgroundColor] ,@"Background color") - ADD_BOOL( [o copiesOnScroll] ,@"Copies on scroll") - ADD_OBJECT( [o documentCursor] ,@"Document cursor") - ADD_RECT( [o documentRect] ,@"Document rect") - ADD_OBJECT( [o documentView] ,@"Document view") - ADD_RECT( [o documentVisibleRect] ,@"Document visible rect") - ADD_BOOL( [o drawsBackground] ,@"Draws background") - } - else if ([object isKindOfClass:[NSOpenGLView class]]) - { - NSOpenGLView *o = object; - ADD_CLASS_LABEL(@"NSOpenGLView Info"); - ADD_OBJECT( [o openGLContext] ,@"OpenGL context") - ADD_OBJECT( [o pixelFormat] ,@"Pixel format") - } - else if ([object isKindOfClass:[NSProgressIndicator class]]) - { - NSProgressIndicator *o = object; - ADD_CLASS_LABEL(@"NSProgressIndicator Info"); - ADD_OBJECT( objectFromControlSize([o controlSize]) ,@"Control size") - ADD_OBJECT( objectFromControlTint([o controlTint]) ,@"Control tint") - if ([o style] == NSProgressIndicatorBarStyle && ![o isIndeterminate]) - ADD_NUMBER( [o doubleValue] ,@"Double value") - ADD_BOOL( [o isBezeled] ,@"Is bezeled") - ADD_BOOL( [o isDisplayedWhenStopped] ,@"Is displayed when stopped") - if ([o style] == NSProgressIndicatorBarStyle && ![o isIndeterminate]) - { - ADD_NUMBER( [o maxValue] ,@"Max value") - ADD_NUMBER( [o minValue] ,@"Min value") - } - ADD_OBJECT(objectFromProgressIndicatorStyle([o style]) ,@"Style") - ADD_BOOL( [o usesThreadedAnimation] ,@"Uses threaded animation") - } - else if ([object isKindOfClass:[NSRulerView class]]) - { - NSRulerView *o = object; - ADD_CLASS_LABEL(@"NSRulerView Info"); - ADD_OBJECT_NOT_NIL( [o accessoryView] ,@"Accessory view") - ADD_NUMBER( [o baselineLocation] ,@"Baseline location") - ADD_OBJECT( [o clientView] ,@"Client view") - ADD_BOOL( [o isFlipped] ,@"Is flipped") - ADD_OBJECTS( [o markers] ,@"Markers") - ADD_OBJECT( [o measurementUnits] ,@"Measurement units") - ADD_OBJECT(objectFromRulerOrientation([o orientation]) ,@"Orientation") - ADD_NUMBER( [o originOffset] ,@"Origin offset") - ADD_NUMBER( [o requiredThickness] ,@"Required thickness") - ADD_NUMBER( [o reservedThicknessForAccessoryView] ,@"Reserved thickness for accessory view") - ADD_NUMBER( [o reservedThicknessForMarkers] ,@"Reserved thickness for markers") - ADD_NUMBER( [o ruleThickness] ,@"Rule thickness") - ADD_OBJECT( [o scrollView] ,@"ScrollView") - } - else if ([object isKindOfClass:[NSScrollView class]]) - { - NSScrollView *o = object; - ADD_CLASS_LABEL(@"NSScrollView Info"); - ADD_BOOL( [o autohidesScrollers] ,@"Autohides scrollers") - ADD_OBJECT( [o backgroundColor] ,@"Background color") - ADD_OBJECT( objectFromBorderType([o borderType]) ,@"Border type") - ADD_SIZE( [o contentSize] ,@"Content size") - ADD_OBJECT( [o contentView] ,@"Content view") - ADD_OBJECT( [o documentCursor] ,@"Document cursor") - ADD_OBJECT( [o documentView] ,@"Document view") - ADD_RECT( [o documentVisibleRect] ,@"Document visible rect") - ADD_BOOL( [o drawsBackground] ,@"Draws background") - ADD_BOOL( [o hasHorizontalRuler] ,@"Has horizontal ruler") - ADD_BOOL( [o hasHorizontalScroller] ,@"Has horizontal scroller") - ADD_BOOL( [o hasVerticalRuler] ,@"Has vertical ruler") - ADD_BOOL( [o hasVerticalScroller] ,@"Has vertical scroller") - ADD_NUMBER( [o horizontalLineScroll] ,@"Horizontal line scroll") - ADD_NUMBER( [o horizontalPageScroll] ,@"Horizontal page scroll") - ADD_OBJECT( [o horizontalRulerView] ,@"Horizontal ruler view") - ADD_OBJECT( [o horizontalScroller] ,@"Horizontal scroller") - ADD_NUMBER( [o lineScroll] ,@"Line scroll") - ADD_NUMBER( [o pageScroll] ,@"Page scroll") - ADD_BOOL( [o rulersVisible] ,@"Ruller visible") - ADD_BOOL( [o scrollsDynamically] ,@"Scrolls dynamically") - ADD_NUMBER( [o verticalLineScroll] ,@"Vertical line scroll") - ADD_NUMBER( [o verticalPageScroll] ,@"Vertical page scroll") - ADD_OBJECT( [o verticalRulerView] ,@"Vertical ruler view") - ADD_OBJECT( [o verticalScroller] ,@"Vertical scroller") - } - else if ([object isKindOfClass:[NSSplitView class]]) - { - NSSplitView *o = object; - ADD_CLASS_LABEL(@"NSSplitView Info"); - ADD_OBJECT_NOT_NIL( [o delegate] ,@"Delegate") - ADD_NUMBER( [o dividerThickness] ,@"Divider thickness") - ADD_BOOL( [o isVertical] ,@"Is vertical") - ADD_OBJECT_NOT_NIL( [o autosaveName] ,@"Autosave name") - } - else if ([object isKindOfClass:[NSTabView class]]) - { - NSTabView *o = object; - ADD_CLASS_LABEL(@"NSTabView Info"); - ADD_BOOL( [o allowsTruncatedLabels] ,@"Allows truncated labels") - ADD_RECT( [o contentRect] ,@"Content rect") - ADD_OBJECT( objectFromControlSize([o controlSize]) ,@"Control size") - ADD_OBJECT( objectFromControlTint([o controlTint]) ,@"Control tint") - ADD_OBJECT( [o delegate] ,@"Delegate") - ADD_BOOL( [o drawsBackground] ,@"Draws background") - ADD_OBJECT( [o font] ,@"Font") - ADD_SIZE( [o minimumSize] ,@"Minimum size") - ADD_OBJECT( [o selectedTabViewItem] ,@"Selected tab view item") - ADD_OBJECTS( [o tabViewItems] ,@"Tab view items") - ADD_OBJECT( objectFromTabViewType([o tabViewType]) ,@"Tab view type") - } - else if ([object isKindOfClass:[NSTableHeaderView class]]) - { - NSTableHeaderView *o = object; - ADD_CLASS_LABEL(@"NSTableHeaderView Info"); - ADD_OBJECT( [o tableView] ,@"Table view") - } - else if ([object isKindOfClass:[NSText class]]) - { - if ([object isKindOfClass:[NSTextView class]]) - { - NSTextView *o = object; - ADD_CLASS_LABEL(@"NSTextView Info"); - ADD_OBJECTS( [o acceptableDragTypes] ,@"Acceptable drag types") - ADD_BOOL( [o acceptsGlyphInfo] ,@"Accepts glyph info") - ADD_OBJECTS( [o allowedInputSourceLocales] ,@"Allowed input source locales") - ADD_BOOL( [o allowsImageEditing] ,@"Allows image editing") - ADD_BOOL( [o allowsDocumentBackgroundColorChange],@"Allows document background color change") - ADD_BOOL( [o allowsUndo] ,@"Allows undo") - ADD_OBJECT_NOT_NIL([o defaultParagraphStyle] ,@"Default paragraph style") - ADD_BOOL( [o displaysLinkToolTips] ,@"Displays link tool tips") - ADD_OBJECT( [o insertionPointColor] ,@"Insertion point color") - ADD_BOOL( [o isAutomaticLinkDetectionEnabled] ,@"Is automatic link detection enabled") - ADD_BOOL( [o isAutomaticQuoteSubstitutionEnabled],@"Is automatic quote substitution enabled") - ADD_BOOL( [o isContinuousSpellCheckingEnabled] ,@"Is continuous spell checking enabled") - ADD_BOOL( [o isGrammarCheckingEnabled] ,@"Is grammar checking enabled") - ADD_OBJECT_NOT_NIL([o layoutManager] ,@"Layout manager") - ADD_DICTIONARY( [o linkTextAttributes] ,@"Link text attributes") - ADD_DICTIONARY([o markedTextAttributes] ,@"Marked text attributes") - ADD_RANGE( [o rangeForUserCompletion] ,@"Range for user completion") - ADD_OBJECTS( [o rangesForUserCharacterAttributeChange],@"Ranges for user character attribute change") - ADD_OBJECTS( [o rangesForUserParagraphAttributeChange],@"Ranges for user paragraph attribute change") - ADD_OBJECTS( [o rangesForUserTextChange] ,@"Ranges for user text change") - ADD_OBJECTS( [o readablePasteboardTypes] ,@"Readable pasteboard types") - ADD_OBJECTS( [o selectedRanges] ,@"Selected ranges") - ADD_DICTIONARY( [o selectedTextAttributes] ,@"Selected text attributes") - ADD_OBJECT(objectFromSelectionAffinity([o selectionAffinity]),@"Selection affinity") - ADD_OBJECT(objectFromSelectionGranularity([o selectionGranularity]),@"Selection granularity") - ADD_BOOL( [o shouldDrawInsertionPoint] ,@"Should draw insertion point") - ADD_BOOL( [o smartInsertDeleteEnabled] ,@"Smart insert delete enabled") - ADD_NUMBER( [o spellCheckerDocumentTag] ,@"Spell checker document tag") - ADD_OBJECT( [o textContainer] ,@"Text container") - ADD_SIZE( [o textContainerInset] ,@"Text container inset") - ADD_POINT( [o textContainerOrigin] ,@"Text container origin") - ADD_OBJECT( [o textStorage] ,@"Text storage") - ADD_DICTIONARY( [o typingAttributes] ,@"Typing attributes") - ADD_BOOL( [o usesFindPanel] ,@"Uses find panel") - ADD_BOOL( [o usesFontPanel] ,@"Uses font panel") - ADD_BOOL( [o usesRuler] ,@"Uses ruler") - ADD_OBJECT( [o writablePasteboardTypes] ,@"Writable pasteboard types") - } - - NSText *o = object; - ADD_CLASS_LABEL(@"NSText Info"); - ADD_OBJECT( objectFromTextAlignment([o alignment]) ,@"Alignment") - ADD_OBJECT( [o backgroundColor] ,@"Background color") - ADD_OBJECT(objectFromWritingDirection([o baseWritingDirection]),@"Base writing direction") - ADD_OBJECT_NOT_NIL( [o delegate] ,@"Delegate") - ADD_BOOL( [o drawsBackground] ,@"Draws background") - ADD_OBJECT( [o font] ,@"Font") - ADD_BOOL( [o importsGraphics] ,@"Imports graphics") - ADD_BOOL( [o isEditable] ,@"Is editable") - ADD_BOOL( [o isFieldEditor] ,@"Is field editor") - ADD_BOOL( [o isHorizontallyResizable] ,@"Is horizontally resizable") - ADD_BOOL( [o isRichText] ,@"Is rich text") - ADD_BOOL( [o isRulerVisible] ,@"Is ruler visible") - ADD_BOOL( [o isSelectable] ,@"Is selectable") - ADD_BOOL( [o isVerticallyResizable] ,@"Is vertically resizable") - ADD_SIZE( [o maxSize] ,@"Max size") - ADD_SIZE( [o minSize] ,@"Min size") - ADD_RANGE( [o selectedRange] ,@"Selected range") - ADD_OBJECT( [o string] ,@"String") - ADD_OBJECT_NOT_NIL( [o textColor] ,@"Text color") - ADD_BOOL( [o usesFontPanel] ,@"Uses font panel") - } - - NSView *o = object; - ADD_CLASS_LABEL(@"NSView Info"); - ADD_OBJECT(objectFromAutoresizingMaskOptions([o autoresizingMask]) ,@"Autoresizing mask") - ADD_BOOL( [o autoresizesSubviews] ,@"Autoresizes subviews") - ADD_RECT( [o bounds] ,@"Bounds") - ADD_NUMBER( [o boundsRotation] ,@"Bounds rotation") - ADD_BOOL( [o canBecomeKeyView] ,@"Can become key view") - ADD_BOOL( [o canDraw] ,@"Can draw") - ADD_OBJECT_NOT_NIL( [o enclosingMenuItem] ,@"Enclosing menu item") - ADD_OBJECT_NOT_NIL( [o enclosingScrollView] ,@"Enclosing scroll view") - ADD_RECT( [o frame] ,@"Frame") - ADD_NUMBER( [o frameRotation] ,@"Frame rotation") - ADD_OBJECT( objectFromFocusRingType([o focusRingType]) ,@"Focus ring type") - ADD_NUMBER( [o gState] ,@"gState") - ADD_NUMBER( [o heightAdjustLimit] ,@"Height adjust limit") - ADD_BOOL( [o isFlipped] ,@"Is flipped") - ADD_BOOL( [o isHidden] ,@"Is hidden") - ADD_BOOL( [o isHiddenOrHasHiddenAncestor] ,@"Is hidden or has hidden ancestor" ) - ADD_BOOL( [o isInFullScreenMode] ,@"Is in full screen mode") - ADD_BOOL( [o isOpaque] ,@"Is opaque") - ADD_BOOL( [o isRotatedFromBase] ,@"Is rotated from base") - ADD_BOOL( [o isRotatedOrScaledFromBase] ,@"Is rotated or scaled from base") - ADD_OBJECT( [o layer] ,@"Layer") - ADD_BOOL( [o mouseDownCanMoveWindow] ,@"Mouse down can move window") - ADD_BOOL( [o needsDisplay] ,@"Needs display") - ADD_BOOL( [o needsPanelToBecomeKey] ,@"Needs panel to become key") - ADD_OBJECT( [o nextKeyView] ,@"Next key view") - ADD_OBJECT( [o nextValidKeyView] ,@"Next valid key view") - ADD_OBJECT( [o opaqueAncestor] ,@"Opaque ancestor") - ADD_BOOL( [o preservesContentDuringLiveResize] ,@"Preserves content during live resize") - ADD_BOOL( [o postsBoundsChangedNotifications] ,@"Posts bounds changed notifications") - ADD_BOOL( [o postsFrameChangedNotifications] ,@"Posts frame changed notifications") - ADD_OBJECT( [o previousKeyView] ,@"Previous key view") - ADD_OBJECT( [o previousValidKeyView] ,@"Previous valid key view") - ADD_OBJECT( [o printJobTitle] ,@"Print job title") - ADD_OBJECTS( [o registeredDraggedTypes] ,@"Registered dragged types") - ADD_BOOL( [o shouldDrawColor] ,@"Should draw color") - ADD_NUMBER( [o tag] ,@"Tag") - ADD_OBJECTS( [o trackingAreas] ,@"Tracking areas") - ADD_RECT( [o visibleRect] ,@"Visible rect") - ADD_BOOL( [o wantsDefaultClipping] ,@"Wants default clipping") - ADD_BOOL( [o wantsLayer] ,@"Wants layer") - ADD_NUMBER( [o widthAdjustLimit] ,@"Width adjust limit") - ADD_OBJECT( [o window] ,@"Window") + + if ([object isKindOfClass:[NSBox class]]) { + NSBox* o = object; + ADD_CLASS_LABEL(@"NSBox Info"); + ADD_OBJECT([o borderColor], @"Border color") + ADD_RECT([o borderRect], @"Border rect") + ADD_OBJECT(objectFromBorderType([o borderType]), @"Border type") + ADD_NUMBER([o borderWidth], @"Border width") + ADD_OBJECT(objectFromBoxType([o boxType]), @"Box type") + ADD_OBJECT([o contentView], @"Content view") + ADD_SIZE([o contentViewMargins], @"Content view margins") + ADD_NUMBER([o cornerRadius], @"Corner radius") + ADD_OBJECT([o fillColor], @"Fill color") + ADD_BOOL([o isTransparent], @"Is transparent") + ADD_OBJECT([o title], @"Title") + ADD_OBJECT([o titleCell], @"Title cell") + ADD_OBJECT([o titleFont], @"Title font") + ADD_OBJECT(objectFromTitlePosition([o titlePosition]), @"Title position") + ADD_RECT([o titleRect], @"Title rect") + } + if ([object isKindOfClass:[NSCollectionView class]]) { + NSCollectionView* o = object; + ADD_CLASS_LABEL(@"NSCollectionView Info"); + ADD_BOOL([o allowsMultipleSelection], @"Allows multiple selection") + ADD_OBJECTS([o backgroundColors], @"Background colors") + ADD_OBJECT([o content], @"Content") + ADD_BOOL([o isFirstResponder], @"Is first responder") + ADD_BOOL([o isSelectable], @"Is selectable") + ADD_OBJECT_NOT_NIL([o itemPrototype], @"Item prototype") + ADD_SIZE([o maxItemSize], @"Max item size") + ADD_NUMBER([o maxNumberOfColumns], @"Max number of columns") + ADD_NUMBER([o maxNumberOfRows], @"Max number of rows") + ADD_SIZE([o minItemSize], @"Min item size") + ADD_OBJECT_NOT_NIL([o selectionIndexes], @"Selection indexes") + } + else if ([object isKindOfClass:[NSControl class]]) { + [self processNSControl:object]; + } + else if ([object isKindOfClass:[NSClipView class]]) { + NSClipView* o = object; + ADD_CLASS_LABEL(@"NSClipView Info"); + ADD_OBJECT([o backgroundColor], @"Background color") + ADD_BOOL([o copiesOnScroll], @"Copies on scroll") + ADD_OBJECT([o documentCursor], @"Document cursor") + ADD_RECT([o documentRect], @"Document rect") + ADD_OBJECT([o documentView], @"Document view") + ADD_RECT([o documentVisibleRect], @"Document visible rect") + ADD_BOOL([o drawsBackground], @"Draws background") + } + else if ([object isKindOfClass:[NSOpenGLView class]]) { + NSOpenGLView* o = object; + ADD_CLASS_LABEL(@"NSOpenGLView Info"); + ADD_OBJECT([o openGLContext], @"OpenGL context") + ADD_OBJECT([o pixelFormat], @"Pixel format") + } + else if ([object isKindOfClass:[NSProgressIndicator class]]) { + NSProgressIndicator* o = object; + ADD_CLASS_LABEL(@"NSProgressIndicator Info"); + ADD_OBJECT(objectFromControlSize([o controlSize]), @"Control size") + ADD_OBJECT(objectFromControlTint([o controlTint]), @"Control tint") + if ([o style] == NSProgressIndicatorBarStyle && ![o isIndeterminate]) + ADD_NUMBER([o doubleValue], @"Double value") + ADD_BOOL([o isBezeled], @"Is bezeled") + ADD_BOOL([o isDisplayedWhenStopped], @"Is displayed when stopped") + if ([o style] == NSProgressIndicatorBarStyle && ![o isIndeterminate]) { + ADD_NUMBER([o maxValue], @"Max value") + ADD_NUMBER([o minValue], @"Min value") + } + ADD_OBJECT(objectFromProgressIndicatorStyle([o style]), @"Style") + ADD_BOOL([o usesThreadedAnimation], @"Uses threaded animation") + } + else if ([object isKindOfClass:[NSRulerView class]]) { + NSRulerView* o = object; + ADD_CLASS_LABEL(@"NSRulerView Info"); + ADD_OBJECT_NOT_NIL([o accessoryView], @"Accessory view") + ADD_NUMBER([o baselineLocation], @"Baseline location") + ADD_OBJECT([o clientView], @"Client view") + ADD_BOOL([o isFlipped], @"Is flipped") + ADD_OBJECTS([o markers], @"Markers") + ADD_OBJECT([o measurementUnits], @"Measurement units") + ADD_OBJECT(objectFromRulerOrientation([o orientation]), @"Orientation") + ADD_NUMBER([o originOffset], @"Origin offset") + ADD_NUMBER([o requiredThickness], @"Required thickness") + ADD_NUMBER([o reservedThicknessForAccessoryView], @"Reserved thickness for accessory view") + ADD_NUMBER([o reservedThicknessForMarkers], @"Reserved thickness for markers") + ADD_NUMBER([o ruleThickness], @"Rule thickness") + ADD_OBJECT([o scrollView], @"ScrollView") + } + else if ([object isKindOfClass:[NSScrollView class]]) { + NSScrollView* o = object; + ADD_CLASS_LABEL(@"NSScrollView Info"); + ADD_BOOL([o autohidesScrollers], @"Autohides scrollers") + ADD_OBJECT([o backgroundColor], @"Background color") + ADD_OBJECT(objectFromBorderType([o borderType]), @"Border type") + ADD_SIZE([o contentSize], @"Content size") + ADD_OBJECT([o contentView], @"Content view") + ADD_OBJECT([o documentCursor], @"Document cursor") + ADD_OBJECT([o documentView], @"Document view") + ADD_RECT([o documentVisibleRect], @"Document visible rect") + ADD_BOOL([o drawsBackground], @"Draws background") + ADD_BOOL([o hasHorizontalRuler], @"Has horizontal ruler") + ADD_BOOL([o hasHorizontalScroller], @"Has horizontal scroller") + ADD_BOOL([o hasVerticalRuler], @"Has vertical ruler") + ADD_BOOL([o hasVerticalScroller], @"Has vertical scroller") + ADD_NUMBER([o horizontalLineScroll], @"Horizontal line scroll") + ADD_NUMBER([o horizontalPageScroll], @"Horizontal page scroll") + ADD_OBJECT([o horizontalRulerView], @"Horizontal ruler view") + ADD_OBJECT([o horizontalScroller], @"Horizontal scroller") + ADD_NUMBER([o lineScroll], @"Line scroll") + ADD_NUMBER([o pageScroll], @"Page scroll") + ADD_BOOL([o rulersVisible], @"Ruller visible") + ADD_BOOL([o scrollsDynamically], @"Scrolls dynamically") + ADD_NUMBER([o verticalLineScroll], @"Vertical line scroll") + ADD_NUMBER([o verticalPageScroll], @"Vertical page scroll") + ADD_OBJECT([o verticalRulerView], @"Vertical ruler view") + ADD_OBJECT([o verticalScroller], @"Vertical scroller") + } + else if ([object isKindOfClass:[NSSplitView class]]) { + NSSplitView* o = object; + ADD_CLASS_LABEL(@"NSSplitView Info"); + ADD_OBJECT_NOT_NIL([o delegate], @"Delegate") + ADD_NUMBER([o dividerThickness], @"Divider thickness") + ADD_BOOL([o isVertical], @"Is vertical") + ADD_OBJECT_NOT_NIL([o autosaveName], @"Autosave name") + } + else if ([object isKindOfClass:[NSTabView class]]) { + NSTabView* o = object; + ADD_CLASS_LABEL(@"NSTabView Info"); + ADD_BOOL([o allowsTruncatedLabels], @"Allows truncated labels") + ADD_RECT([o contentRect], @"Content rect") + ADD_OBJECT(objectFromControlSize([o controlSize]), @"Control size") + ADD_OBJECT(objectFromControlTint([o controlTint]), @"Control tint") + ADD_OBJECT([o delegate], @"Delegate") + ADD_BOOL([o drawsBackground], @"Draws background") + ADD_OBJECT([o font], @"Font") + ADD_SIZE([o minimumSize], @"Minimum size") + ADD_OBJECT([o selectedTabViewItem], @"Selected tab view item") + ADD_OBJECTS([o tabViewItems], @"Tab view items") + ADD_OBJECT(objectFromTabViewType([o tabViewType]), @"Tab view type") + } + else if ([object isKindOfClass:[NSTableHeaderView class]]) { + NSTableHeaderView* o = object; + ADD_CLASS_LABEL(@"NSTableHeaderView Info"); + ADD_OBJECT([o tableView], @"Table view") + } + else if ([object isKindOfClass:[NSText class]]) { + if ([object isKindOfClass:[NSTextView class]]) { + NSTextView* o = object; + ADD_CLASS_LABEL(@"NSTextView Info"); + ADD_OBJECTS([o acceptableDragTypes], @"Acceptable drag types") + ADD_BOOL([o acceptsGlyphInfo], @"Accepts glyph info") + ADD_OBJECTS([o allowedInputSourceLocales], @"Allowed input source locales") + ADD_BOOL([o allowsImageEditing], @"Allows image editing") + ADD_BOOL([o allowsDocumentBackgroundColorChange], @"Allows document background color change") + ADD_BOOL([o allowsUndo], @"Allows undo") + ADD_OBJECT_NOT_NIL([o defaultParagraphStyle], @"Default paragraph style") + ADD_BOOL([o displaysLinkToolTips], @"Displays link tool tips") + ADD_OBJECT([o insertionPointColor], @"Insertion point color") + ADD_BOOL([o isAutomaticLinkDetectionEnabled], @"Is automatic link detection enabled") + ADD_BOOL([o isAutomaticQuoteSubstitutionEnabled], @"Is automatic quote substitution enabled") + ADD_BOOL([o isContinuousSpellCheckingEnabled], @"Is continuous spell checking enabled") + ADD_BOOL([o isGrammarCheckingEnabled], @"Is grammar checking enabled") + ADD_OBJECT_NOT_NIL([o layoutManager], @"Layout manager") + ADD_DICTIONARY([o linkTextAttributes], @"Link text attributes") + ADD_DICTIONARY([o markedTextAttributes], @"Marked text attributes") + ADD_RANGE([o rangeForUserCompletion], @"Range for user completion") + ADD_OBJECTS([o rangesForUserCharacterAttributeChange], @"Ranges for user character attribute change") + ADD_OBJECTS([o rangesForUserParagraphAttributeChange], @"Ranges for user paragraph attribute change") + ADD_OBJECTS([o rangesForUserTextChange], @"Ranges for user text change") + ADD_OBJECTS([o readablePasteboardTypes], @"Readable pasteboard types") + ADD_OBJECTS([o selectedRanges], @"Selected ranges") + ADD_DICTIONARY([o selectedTextAttributes], @"Selected text attributes") + ADD_OBJECT(objectFromSelectionAffinity([o selectionAffinity]), @"Selection affinity") + ADD_OBJECT(objectFromSelectionGranularity([o selectionGranularity]), @"Selection granularity") + ADD_BOOL([o shouldDrawInsertionPoint], @"Should draw insertion point") + ADD_BOOL([o smartInsertDeleteEnabled], @"Smart insert delete enabled") + ADD_NUMBER([o spellCheckerDocumentTag], @"Spell checker document tag") + ADD_OBJECT([o textContainer], @"Text container") + ADD_SIZE([o textContainerInset], @"Text container inset") + ADD_POINT([o textContainerOrigin], @"Text container origin") + ADD_OBJECT([o textStorage], @"Text storage") + ADD_DICTIONARY([o typingAttributes], @"Typing attributes") + ADD_BOOL([o usesFindPanel], @"Uses find panel") + ADD_BOOL([o usesFontPanel], @"Uses font panel") + ADD_BOOL([o usesRuler], @"Uses ruler") + ADD_OBJECT([o writablePasteboardTypes], @"Writable pasteboard types") + } + + NSText* o = object; + ADD_CLASS_LABEL(@"NSText Info"); + ADD_OBJECT(objectFromTextAlignment([o alignment]), @"Alignment") + ADD_OBJECT([o backgroundColor], @"Background color") + ADD_OBJECT(objectFromWritingDirection([o baseWritingDirection]), @"Base writing direction") + ADD_OBJECT_NOT_NIL([o delegate], @"Delegate") + ADD_BOOL([o drawsBackground], @"Draws background") + ADD_OBJECT([o font], @"Font") + ADD_BOOL([o importsGraphics], @"Imports graphics") + ADD_BOOL([o isEditable], @"Is editable") + ADD_BOOL([o isFieldEditor], @"Is field editor") + ADD_BOOL([o isHorizontallyResizable], @"Is horizontally resizable") + ADD_BOOL([o isRichText], @"Is rich text") + ADD_BOOL([o isRulerVisible], @"Is ruler visible") + ADD_BOOL([o isSelectable], @"Is selectable") + ADD_BOOL([o isVerticallyResizable], @"Is vertically resizable") + ADD_SIZE([o maxSize], @"Max size") + ADD_SIZE([o minSize], @"Min size") + ADD_RANGE([o selectedRange], @"Selected range") + ADD_OBJECT([o string], @"String") + ADD_OBJECT_NOT_NIL([o textColor], @"Text color") + ADD_BOOL([o usesFontPanel], @"Uses font panel") + } + + NSView* o = object; + ADD_CLASS_LABEL(@"NSView Info"); + ADD_OBJECT(objectFromAutoresizingMaskOptions([o autoresizingMask]), @"Autoresizing mask") + ADD_BOOL([o autoresizesSubviews], @"Autoresizes subviews") + ADD_RECT([o bounds], @"Bounds") + ADD_NUMBER([o boundsRotation], @"Bounds rotation") + ADD_BOOL([o canBecomeKeyView], @"Can become key view") + ADD_BOOL([o canDraw], @"Can draw") + ADD_OBJECT_NOT_NIL([o enclosingMenuItem], @"Enclosing menu item") + ADD_OBJECT_NOT_NIL([o enclosingScrollView], @"Enclosing scroll view") + ADD_RECT([o frame], @"Frame") + ADD_NUMBER([o frameRotation], @"Frame rotation") + ADD_OBJECT(objectFromFocusRingType([o focusRingType]), @"Focus ring type") + ADD_NUMBER([o gState], @"gState") + ADD_NUMBER([o heightAdjustLimit], @"Height adjust limit") + ADD_BOOL([o isFlipped], @"Is flipped") + ADD_BOOL([o isHidden], @"Is hidden") + ADD_BOOL([o isHiddenOrHasHiddenAncestor], @"Is hidden or has hidden ancestor") + ADD_BOOL([o isInFullScreenMode], @"Is in full screen mode") + ADD_BOOL([o isOpaque], @"Is opaque") + ADD_BOOL([o isRotatedFromBase], @"Is rotated from base") + ADD_BOOL([o isRotatedOrScaledFromBase], @"Is rotated or scaled from base") + ADD_OBJECT([o layer], @"Layer") + ADD_BOOL([o mouseDownCanMoveWindow], @"Mouse down can move window") + ADD_BOOL([o needsDisplay], @"Needs display") + ADD_BOOL([o needsPanelToBecomeKey], @"Needs panel to become key") + ADD_OBJECT([o nextKeyView], @"Next key view") + ADD_OBJECT([o nextValidKeyView], @"Next valid key view") + ADD_OBJECT([o opaqueAncestor], @"Opaque ancestor") + ADD_BOOL([o preservesContentDuringLiveResize], @"Preserves content during live resize") + ADD_BOOL([o postsBoundsChangedNotifications], @"Posts bounds changed notifications") + ADD_BOOL([o postsFrameChangedNotifications], @"Posts frame changed notifications") + ADD_OBJECT([o previousKeyView], @"Previous key view") + ADD_OBJECT([o previousValidKeyView], @"Previous valid key view") + ADD_OBJECT([o printJobTitle], @"Print job title") + ADD_OBJECTS([o registeredDraggedTypes], @"Registered dragged types") + ADD_BOOL([o shouldDrawColor], @"Should draw color") + ADD_NUMBER([o tag], @"Tag") + ADD_OBJECTS([o trackingAreas], @"Tracking areas") + ADD_RECT([o visibleRect], @"Visible rect") + ADD_BOOL([o wantsDefaultClipping], @"Wants default clipping") + ADD_BOOL([o wantsLayer], @"Wants layer") + ADD_NUMBER([o widthAdjustLimit], @"Width adjust limit") + ADD_OBJECT([o window], @"Window") } - (void)processNSControl:(id)object { - { - if ([object isKindOfClass:[NSBrowser class]]) - { - NSBrowser *o = object; - ADD_CLASS_LABEL(@"NSBrowser Info"); - ADD_BOOL( [o allowsBranchSelection] ,@"Allows branch selection") - ADD_BOOL( [o allowsEmptySelection] ,@"Allows empty selection") - ADD_BOOL( [o allowsMultipleSelection] ,@"Allows multiple selection") - ADD_BOOL( [o allowsTypeSelect] ,@"Allows type select") - ADD_OBJECT( [o backgroundColor] ,@"Background color" ) - ADD_OBJECT( [o cellPrototype] ,@"Cell prototype" ) - ADD_OBJECT(objectFromBrowserColumnResizingType([o columnResizingType]) ,@"Column resizing type") - ADD_OBJECT( [o columnsAutosaveName] ,@"Columns autosave name") - ADD_OBJECT( [o delegate] ,@"Delegate") - ADD_SEL( [o doubleAction] ,@"Double action") - ADD_NUMBER( [o firstVisibleColumn] ,@"First visible column") - ADD_BOOL( [o hasHorizontalScroller] ,@"Has horizontal scroller") - ADD_BOOL( [o isLoaded] ,@"Is loaded") - ADD_BOOL( [o isTitled] ,@"Is titled") - ADD_NUMBER( [o lastColumn] ,@"Last column") - ADD_NUMBER( [o lastVisibleColumn] ,@"Last visible column") - ADD_OBJECT( [o matrixClass] ,@"Matrix class") - ADD_NUMBER( [o maxVisibleColumns] ,@"Max visible columns") - ADD_NUMBER( [o minColumnWidth] ,@"Min column width") - ADD_NUMBER( [o numberOfVisibleColumns] ,@"Number of visible columns" ) - ADD_OBJECT( [o path] ,@"Path") - ADD_OBJECT( [o pathSeparator] ,@"Path separator") - ADD_BOOL( [o prefersAllColumnUserResizing] ,@"Prefers all column user resizing" ) - ADD_BOOL( [o reusesColumns] ,@"Reuses columns") - ADD_OBJECTS( [o selectedCells] ,@"Selected cells") - ADD_NUMBER( [o selectedColumn] ,@"Selected column") - ADD_BOOL( [o sendsActionOnArrowKeys] ,@"Sends action on arrow keys") - ADD_BOOL( [o separatesColumns] ,@"Separates columns") - ADD_BOOL( [o takesTitleFromPreviousColumn] ,@"Takes title from previous column" ) - ADD_NUMBER( [o titleHeight] ,@"Title height") - } - else if ([object isKindOfClass:[NSButton class]]) - { - if ([object isKindOfClass:[NSPopUpButton class]]) - { - NSPopUpButton *o = object; - ADD_CLASS_LABEL(@"NSPopUpButton Info"); - ADD_BOOL( [o autoenablesItems] ,@"Autoenables Items") - ADD_NUMBER( [o indexOfSelectedItem] ,@"Index of selected item") - ADD_OBJECTS( [o itemArray] ,@"Item array") - ADD_NUMBER( [o numberOfItems] ,@"Number of items") - ADD_OBJECT( [o objectValue] ,@"Object value") - ADD_OBJECT(objectFromRectEdge([o preferredEdge]) ,@"Preferred edge") - ADD_BOOL( [o pullsDown] ,@"Pulls down") - ADD_OBJECT( [o selectedItem] ,@"Selected item") - } - - NSButton *o = object; - ADD_CLASS_LABEL(@"NSButton Info"); - ADD_BOOL( [o allowsMixedState] ,@"Allows mixed state") - ADD_OBJECT_NOT_NIL([o alternateImage] ,@"Alternate image" ) - ADD_OBJECT( [o alternateTitle] ,@"Alternate title") - ADD_OBJECT( [o attributedAlternateTitle] ,@"Attributed alternate title") - ADD_OBJECT( [o attributedTitle] ,@"Attributed title") - ADD_OBJECT(objectFromBezelStyle([o bezelStyle]) ,@"Bezel style") - ADD_OBJECT( [o image] ,@"Image") - ADD_OBJECT(objectFromCellImagePosition([o imagePosition]) ,@"Image position") - ADD_BOOL( [o isBordered] ,@"Is bordered") - ADD_BOOL( [o isTransparent] ,@"Is transparent" ) - ADD_OBJECT( [o keyEquivalent] ,@"Key equivalent") - ADD_OBJECT(objectFromKeyModifierMask([o keyEquivalentModifierMask]) , @"Key equivalent modifier mask") - ADD_BOOL( [o showsBorderOnlyWhileMouseInside] ,@"Shows border only while mouse inside") - ADD_OBJECT_NOT_NIL([o sound] ,@"Sound") - ADD_OBJECT(objectFromCellStateValue([o state]) ,@"State") - ADD_OBJECT( [o title] ,@"Title") - } - else if ([object isKindOfClass:[NSColorWell class]]) - { - NSColorWell *o = object; - ADD_CLASS_LABEL(@"NSColorWell Info"); - ADD_OBJECT( [o color] ,@"Color") - ADD_BOOL( [o isActive] ,@"Is active" ) - ADD_BOOL( [o isBordered] ,@"Is bordered") - } - else if ([object isKindOfClass:[NSDatePicker class]]) - { - NSDatePicker *o = object; - ADD_CLASS_LABEL(@"NSDatePicker Info"); - ADD_OBJECT( [o backgroundColor] ,@"Background color") - ADD_OBJECT( [o calendar] ,@"Calendar") - ADD_OBJECT(objectFromDatePickerElementFlags([o datePickerElements]),@"Date picker elements") - ADD_OBJECT(objectFromDatePickerMode([o datePickerMode]) ,@"Date picker mode") - ADD_OBJECT(objectFromDatePickerStyle([o datePickerStyle]) ,@"Date picker style") - ADD_OBJECT( [o dateValue] ,@"Date value") - ADD_OBJECT_NOT_NIL([o delegate] ,@"Delegate") - ADD_BOOL( [o drawsBackground] ,@"Draws background" ) - ADD_BOOL( [o isBezeled] ,@"Is bezeled" ) - ADD_BOOL( [o isBordered] ,@"Is bordered" ) - ADD_OBJECT_NOT_NIL([o locale] ,@"Locale") - ADD_OBJECT( [o maxDate] ,@"Max date") - ADD_OBJECT( [o minDate] ,@"Min date") - ADD_OBJECT( [o textColor] ,@"Text Color") - ADD_NUMBER( [o timeInterval] ,@"Time interval") - ADD_OBJECT( [o timeZone] ,@"Time zone") - } - else if ([object isKindOfClass:[NSImageView class]]) - { - NSImageView *o = object; - ADD_CLASS_LABEL(@"NSImageView Info"); - ADD_BOOL( [o allowsCutCopyPaste] ,@"Allows cut copy paste") - ADD_BOOL( [o animates] ,@"Animates") - ADD_OBJECT( [o image] ,@"Image") - ADD_OBJECT(objectFromImageAlignment([o imageAlignment]) ,@"Image alignment") - ADD_OBJECT(objectFromImageFrameStyle([o imageFrameStyle]) ,@"Image frame style") - ADD_OBJECT(objectFromImageScaling([o imageScaling]) ,@"Image scaling") - ADD_BOOL( [o isEditable] ,@"Is editable") - } - else if ([object isKindOfClass:[NSLevelIndicator class]]) - { - NSLevelIndicator *o = object; - ADD_CLASS_LABEL(@"NSLevelIndicator Info"); - ADD_NUMBER( [o criticalValue] ,@"Critical value") - ADD_NUMBER( [o maxValue] ,@"Max value") - ADD_NUMBER( [o minValue] ,@"Min value") - ADD_NUMBER( [o numberOfMajorTickMarks] ,@"Number of major tick marks") - ADD_NUMBER( [o numberOfTickMarks] ,@"Number of tick marks") - ADD_OBJECT(objectFromTickMarkPosition([o tickMarkPosition], NO),@"Tick mark position") - ADD_NUMBER( [o warningValue] ,@"Warning value") - } - else if ([object isKindOfClass:[NSMatrix class]]) - { - NSMatrix *o = object; - ADD_CLASS_LABEL(@"NSMatrix Info"); - ADD_BOOL( [o allowsEmptySelection] ,@"Allows empty selection") - ADD_BOOL( [o autosizesCells] ,@"Autosizes cells") - ADD_OBJECT( [o backgroundColor] ,@"Background color") - ADD_OBJECT( [o cellBackgroundColor] ,@"Cell background color") - ADD_OBJECT( [o cellClass] ,@"Cell class") - ADD_SIZE( [o cellSize] ,@"Cell size"); - - NSInteger numberOfColumns = [o numberOfColumns]; - NSInteger numberOfRows = [o numberOfRows]; - - if (numberOfRows != 0) - { - for (NSInteger column = 0; column < numberOfColumns; column++) { - NSMutableArray *columnArray = [NSMutableArray arrayWithCapacity:numberOfRows]; - for (NSInteger row = 0; row < numberOfRows; row++) [columnArray addObject:[o cellAtRow:row column:column]]; - ADD_OBJECT( [NSArray arrayWithArray:columnArray] ,([NSString stringWithFormat:@"Column %ld",(long)column])) - } - } - - ADD_OBJECT( [o delegate] ,@"Delegate") - ADD_SEL( [o doubleAction] ,@"Double action") - ADD_BOOL( [o drawsBackground] ,@"Draws background") - ADD_BOOL( [o drawsCellBackground] ,@"Draws cell background") - ADD_SIZE( [o intercellSpacing] ,@"Intercell spacing") - ADD_BOOL( [o isAutoscroll] ,@"Is autoscroll") - ADD_BOOL( [o isSelectionByRect] ,@"Is selection by rect") - ADD_OBJECT( [o keyCell] ,@"Key cell") - ADD_OBJECT(objectFromMatrixMode([(NSMatrix *)o mode]) ,@"Mode") - ADD_NUMBER( [o numberOfColumns] ,@"Number of columns") - ADD_NUMBER( [o numberOfRows] ,@"Number of rows") - ADD_OBJECT( [o prototype] ,@"Prototype") - ADD_OBJECTS( [o selectedCells] ,@"Selected cells") - ADD_NUMBER( [o selectedColumn] ,@"Selected column") - ADD_NUMBER( [o selectedRow] ,@"Selected row") - ADD_BOOL( [o tabKeyTraversesCells] ,@"Tab key traverses cells") - } - else if ([object isKindOfClass:[NSPathControl class]]) - { - NSPathControl *o = object; - ADD_CLASS_LABEL(@"NSPathControl Info"); - ADD_OBJECT_NOT_NIL([o backgroundColor] ,@"Background color") - ADD_OBJECT( [o delegate] ,@"Delegate") - ADD_SEL( [o doubleAction] ,@"Double action") - ADD_OBJECTS( [o pathComponentCells] ,@"Path component cells") - ADD_OBJECT(objectFromPathStyle([o pathStyle]) ,@"Path style") - ADD_OBJECT( [o URL] ,@"URL") - } - else if ([object isKindOfClass:[NSRuleEditor class]]) - { - if ([object isKindOfClass:[NSPredicateEditor class]]) - { - NSPredicateEditor *o = object; - ADD_CLASS_LABEL(@"NSPredicateEditor Info"); - ADD_OBJECTS( [o rowTemplates] ,@"Row templates") - } - - NSRuleEditor *o = object; - ADD_CLASS_LABEL(@"NSRuleEditor Info"); - ADD_BOOL( [o canRemoveAllRows] ,@"Can remove all rows") - ADD_OBJECT_NOT_NIL([o criteriaKeyPath] ,@"Criteria key path") - ADD_OBJECT( [o delegate] ,@"Delegate") - ADD_OBJECT_NOT_NIL([o displayValuesKeyPath] ,@"Display values key path") - ADD_DICTIONARY( [o formattingDictionary] ,@"Formatting dictionary") - ADD_OBJECT_NOT_NIL([o formattingStringsFilename] ,@"Formatting strings filename") - ADD_BOOL( [o isEditable] ,@"Is editable") - ADD_OBJECT(objectFromRuleEditorNestingMode([o nestingMode]) ,@"Nesting mode") - ADD_NUMBER( [o numberOfRows] ,@"Number of rows") - ADD_OBJECT( [o predicate] ,@"Predicate") - ADD_OBJECT( [o rowClass] ,@"Row class") - ADD_NUMBER( [o rowHeight] ,@"Row height") - ADD_OBJECT_NOT_NIL([o rowTypeKeyPath] ,@"Row type key path") - ADD_OBJECT_NOT_NIL([o selectedRowIndexes] ,@"Selected row indexes") - ADD_OBJECT_NOT_NIL([o subrowsKeyPath] ,@"Subrows key path") - } - else if ([object isKindOfClass:[NSScroller class]]) - { - NSScroller *o = object; - ADD_CLASS_LABEL(@"NSScroller Info"); - ADD_OBJECT(objectFromScrollArrowPosition([o arrowsPosition]),@"Arrows position") - ADD_OBJECT(objectFromControlSize([o controlSize]) ,@"Control size") - ADD_OBJECT(objectFromControlTint([o controlTint]) ,@"Control tint") - ADD_NUMBER( [o doubleValue] ,@"Double value") - ADD_OBJECT(objectFromScrollerPart([o hitPart]) ,@"Hit part") - ADD_NUMBER( [o knobProportion] ,@"Knob proportion") - ADD_OBJECT(objectFromUsableScrollerParts([o usableParts]) ,@"Usable parts") - } - else if ([object isKindOfClass:[NSSegmentedControl class]]) - { - NSSegmentedControl *o = object; - NSInteger segmentCount = [o segmentCount]; - ADD_CLASS_LABEL(@"NSSegmentedControl Info"); - - ADD_NUMBER( segmentCount ,@"Segment count") - ADD_NUMBER( [o selectedSegment] ,@"Selected segment") - - for (NSInteger i = 0; i < segmentCount; i++) - { - ADD_OBJECT_NOT_NIL([o imageForSegment:i] ,([NSString stringWithFormat:@"Image for segment %ld",(long)i])) - ADD_BOOL( [o isEnabledForSegment:i] ,([NSString stringWithFormat:@"Is enabled for segment %ld",(long)i])) - ADD_BOOL( [o isSelectedForSegment:i] ,([NSString stringWithFormat:@"Is selected for segment %ld",(long)i])) - ADD_OBJECT_NOT_NIL([o labelForSegment:i] ,([NSString stringWithFormat:@"Label for segment %ld",(long)i])) - ADD_OBJECT_NOT_NIL([o menuForSegment:i] ,([NSString stringWithFormat:@"Menu for segment %ld",(long)i])) - if ([o widthForSegment:i] != 0) - ADD_NUMBER( [o widthForSegment:i] ,([NSString stringWithFormat:@"Width for segment %ld",(long)i])) - } - } - else if ([object isKindOfClass:[NSSlider class]]) - { - NSSlider *o = object; - ADD_CLASS_LABEL(@"NSSlider Info"); - ADD_BOOL( [o allowsTickMarkValuesOnly] ,@"Allows tick mark values only") - ADD_NUMBER( [o altIncrementValue] ,@"Alt increment value") - ADD_NUMBER( [(NSSlider*)o isVertical] ,@"Is vertical") - ADD_NUMBER( [o knobThickness] ,@"Knob thickness") - ADD_NUMBER( [o maxValue] ,@"Max value") - ADD_NUMBER( [o minValue] ,@"Min value") - ADD_NUMBER( [o numberOfTickMarks] ,@"Number of tick marks") - ADD_OBJECT(objectFromTickMarkPosition([o tickMarkPosition], [(NSSlider*)o isVertical] == 1),@"Tick mark position") - ADD_OBJECT( [o title] ,@"title") - } - else if ([object isKindOfClass:[NSTableView class]]) - { - if ([object isKindOfClass:[NSOutlineView class]]) - { - NSOutlineView *o = object; - ADD_CLASS_LABEL(@"NSOutlineView Info"); - ADD_BOOL( [o autoresizesOutlineColumn] ,@"Autoresizes outline column") - ADD_BOOL( [o autosaveExpandedItems] ,@"Autosave expanded items") - ADD_BOOL( [o indentationMarkerFollowsCell] ,@"Indentation marker follows cell") - ADD_NUMBER( [o indentationPerLevel] ,@"Indentation per level") - ADD_OBJECT( [o outlineTableColumn] ,@"Outline table column") - } - - NSTableView *o = object; - ADD_CLASS_LABEL(@"NSTableView Info"); - ADD_BOOL( [o allowsColumnReordering] ,@"Allows column reordering") - ADD_BOOL( [o allowsColumnResizing] ,@"Allows column resizing") - ADD_BOOL( [o allowsColumnSelection] ,@"Allows column selection") - ADD_BOOL( [o allowsEmptySelection] ,@"Allows empty selection") - ADD_BOOL( [o allowsMultipleSelection] ,@"Allows multiple selection") - ADD_BOOL( [o allowsTypeSelect] ,@"Allows type select") - ADD_OBJECT_NOT_NIL([o autosaveName] ,@"Autosave name") - ADD_BOOL( [o autosaveTableColumns] ,@"Autosave table columns") - ADD_OBJECT( [o backgroundColor] ,@"Background color") - ADD_OBJECT(objectFromTableViewColumnAutoresizingStyle([o columnAutoresizingStyle]),@"Column autoresizing style") - ADD_OBJECT( [o cornerView] ,@"Corner view") - ADD_OBJECT( [o dataSource] ,@"Data source") - ADD_OBJECT( [o delegate] ,@"Delegate") - ADD_SEL( [o doubleAction] ,@"Double action") - ADD_OBJECT( [o gridColor] ,@"Grid color") - ADD_OBJECT( objectFromTableViewGridLineStyle([o gridStyleMask]),@"Grid style mask") - ADD_OBJECT( [o headerView] ,@"Header view") - ADD_OBJECT_NOT_NIL([o highlightedTableColumn] ,@"Highlighted table column") - ADD_SIZE( [o intercellSpacing] ,@"Intercell spacing") - ADD_NUMBER( [o numberOfColumns] ,@"Number of columns") - ADD_NUMBER( [o numberOfRows] ,@"Number of rows") - ADD_NUMBER( [o numberOfSelectedColumns] ,@"Number of selected columns") - ADD_NUMBER( [o numberOfSelectedRows] ,@"Number of selected rows") - ADD_NUMBER( [o rowHeight] ,@"Row height") - ADD_NUMBER( [o selectedColumn] ,@"Selected column") - ADD_OBJECT( [o selectedColumnIndexes] ,@"Selected column indexes") - ADD_NUMBER( [o selectedRow] ,@"Selected row") - ADD_OBJECT( [o selectedRowIndexes] ,@"Selected row indexes") - ADD_OBJECT(objectFromTableViewSelectionHighlightStyle([o selectionHighlightStyle]),@"Selection highlight style") - ADD_OBJECTS( [o sortDescriptors] ,@"Sort descriptors") - ADD_OBJECTS( [o tableColumns] ,@"Table columns") - ADD_BOOL( [o usesAlternatingRowBackgroundColors] ,@"Uses alternating row background colors" ) - ADD_BOOL( [o verticalMotionCanBeginDrag] ,@"Vertical motion can begin drag" ) - } - else if ([object isKindOfClass:[NSStepper class]]) - { - NSStepper *o = object; - ADD_CLASS_LABEL(@"NSStepper Info"); - ADD_BOOL( [o autorepeat] ,@"Autorepeat") - ADD_NUMBER( [o increment] ,@"Increment") - ADD_NUMBER( [o maxValue] ,@"Max value") - ADD_NUMBER( [o minValue] ,@"Min value") - ADD_BOOL( [o valueWraps] ,@"Value wraps") - } - else if ([object isKindOfClass:[NSTextField class]]) - { - if ([object isKindOfClass:[NSComboBox class]]) - { - NSComboBox *o = object; - ADD_CLASS_LABEL(@"NSComboBox Info"); - if ([o usesDataSource]) ADD_OBJECT([o dataSource] ,@"Data source") - ADD_BOOL( [o hasVerticalScroller] ,@"Has vertical scroller") - ADD_NUMBER( [o indexOfSelectedItem] ,@"Index of selected item") - ADD_SIZE( [o intercellSpacing] ,@"Intercell spacing") - ADD_BOOL( [o isButtonBordered] ,@"Is button bordered") - ADD_NUMBER( [o itemHeight] ,@"Item height") - ADD_NUMBER( [o numberOfItems] ,@"Number of items") - ADD_NUMBER( [o numberOfVisibleItems] ,@"Number of visible items") - if (![o usesDataSource] && [o indexOfSelectedItem] != -1) - ADD_OBJECT( [o objectValueOfSelectedItem] ,@"Object value of selected item") - if (![o usesDataSource]) - ADD_OBJECTS( [o objectValues] ,@"Object values") - ADD_BOOL( [o usesDataSource] ,@"Uses data source") - } - else if ([object isKindOfClass:[NSSearchField class]]) - { - NSSearchField *o = object; - if ([[o recentSearches] count] != 0 || [o recentsAutosaveName] != nil) - ADD_CLASS_LABEL(@"NSSearchField Info"); - ADD_OBJECTS( [o recentSearches] ,@"Recent searches") - ADD_OBJECT_NOT_NIL([o recentsAutosaveName] ,@"Recents autosave name") - } - else if ([object isKindOfClass:[NSTokenField class]]) - { - NSTokenField *o = object; - ADD_CLASS_LABEL(@"NSTokenField Info"); - ADD_NUMBER( [o completionDelay] ,@"Completion delay") - ADD_OBJECT( [o tokenizingCharacterSet] ,@"Tokenizing character set") - ADD_OBJECT(objectFromTokenStyle([o tokenStyle]) ,@"Token style") - } - - NSTextField *o = object; - ADD_CLASS_LABEL(@"NSTextField Info"); - ADD_BOOL( [o allowsEditingTextAttributes] ,@"Allows editing text attributes") - ADD_OBJECT( [o backgroundColor] ,@"Background color") - ADD_OBJECT(objectFromTextFieldBezelStyle([o bezelStyle]) ,@"Bezel style") - ADD_OBJECT_NOT_NIL([o delegate] ,@"Delegate") - ADD_BOOL( [o drawsBackground] ,@"Draws background") - ADD_BOOL( [o importsGraphics] ,@"Imports graphics") - ADD_BOOL( [o isBezeled] ,@"Is bezeled") - ADD_BOOL( [o isBordered] ,@"Is bordered") - ADD_BOOL( [o isEditable] ,@"Is editable") - ADD_BOOL( [o isSelectable] ,@"Is selectable") - ADD_OBJECT( [o textColor] ,@"Text color") - } - - NSControl *o = object; - ADD_CLASS_LABEL(@"NSControl Info"); - ADD_SEL( [o action] ,@"Action") - ADD_OBJECT( objectFromTextAlignment([o alignment]) ,@"Alignment") - ADD_OBJECT(objectFromWritingDirection([o baseWritingDirection]) ,@"Base writing direction") - ADD_OBJECT( [o cell] ,@"Cell") - ADD_OBJECT(objectFromControlSize([o controlSize]) ,@"Control size") - ADD_OBJECT_NOT_NIL( [o currentEditor] ,@"Current editor") - ADD_OBJECT( [o font] ,@"Font") - ADD_OBJECT( [o formatter] ,@"Formatter") - ADD_BOOL( [o ignoresMultiClick] ,@"Ignores multiclick") - ADD_BOOL( [o isContinuous] ,@"Is continuous") - ADD_BOOL( [o isEnabled] ,@"Is enabled") - if ([o currentEditor] == nil) ADD_OBJECT([o objectValue] ,@"Object value") // To avoid side-effects, we only call objectValue if the control is not being edited, which is determined with the currentEditor call. - ADD_BOOL( [o refusesFirstResponder] ,@"Refuses first responder") - ADD_OBJECT( [o selectedCell] ,@"Selected cell") - ADD_NUMBER( [o selectedTag] ,@"Selected tag") - ADD_OBJECT( [o target] ,@"Target") - } + if ([object isKindOfClass:[NSBrowser class]]) { + NSBrowser* o = object; + ADD_CLASS_LABEL(@"NSBrowser Info"); + ADD_BOOL([o allowsBranchSelection], @"Allows branch selection") + ADD_BOOL([o allowsEmptySelection], @"Allows empty selection") + ADD_BOOL([o allowsMultipleSelection], @"Allows multiple selection") + ADD_BOOL([o allowsTypeSelect], @"Allows type select") + ADD_OBJECT([o backgroundColor], @"Background color") + ADD_OBJECT([o cellPrototype], @"Cell prototype") + ADD_OBJECT(objectFromBrowserColumnResizingType([o columnResizingType]), @"Column resizing type") + ADD_OBJECT([o columnsAutosaveName], @"Columns autosave name") + ADD_OBJECT([o delegate], @"Delegate") + ADD_SEL([o doubleAction], @"Double action") + ADD_NUMBER([o firstVisibleColumn], @"First visible column") + ADD_BOOL([o hasHorizontalScroller], @"Has horizontal scroller") + ADD_BOOL([o isLoaded], @"Is loaded") + ADD_BOOL([o isTitled], @"Is titled") + ADD_NUMBER([o lastColumn], @"Last column") + ADD_NUMBER([o lastVisibleColumn], @"Last visible column") + ADD_OBJECT([o matrixClass], @"Matrix class") + ADD_NUMBER([o maxVisibleColumns], @"Max visible columns") + ADD_NUMBER([o minColumnWidth], @"Min column width") + ADD_NUMBER([o numberOfVisibleColumns], @"Number of visible columns") + ADD_OBJECT([o path], @"Path") + ADD_OBJECT([o pathSeparator], @"Path separator") + ADD_BOOL([o prefersAllColumnUserResizing], @"Prefers all column user resizing") + ADD_BOOL([o reusesColumns], @"Reuses columns") + ADD_OBJECTS([o selectedCells], @"Selected cells") + ADD_NUMBER([o selectedColumn], @"Selected column") + ADD_BOOL([o sendsActionOnArrowKeys], @"Sends action on arrow keys") + ADD_BOOL([o separatesColumns], @"Separates columns") + ADD_BOOL([o takesTitleFromPreviousColumn], @"Takes title from previous column") + ADD_NUMBER([o titleHeight], @"Title height") + } + else if ([object isKindOfClass:[NSButton class]]) { + if ([object isKindOfClass:[NSPopUpButton class]]) { + NSPopUpButton* o = object; + ADD_CLASS_LABEL(@"NSPopUpButton Info"); + ADD_BOOL([o autoenablesItems], @"Autoenables Items") + ADD_NUMBER([o indexOfSelectedItem], @"Index of selected item") + ADD_OBJECTS([o itemArray], @"Item array") + ADD_NUMBER([o numberOfItems], @"Number of items") + ADD_OBJECT([o objectValue], @"Object value") + ADD_OBJECT(objectFromRectEdge([o preferredEdge]), @"Preferred edge") + ADD_BOOL([o pullsDown], @"Pulls down") + ADD_OBJECT([o selectedItem], @"Selected item") + } + + NSButton* o = object; + ADD_CLASS_LABEL(@"NSButton Info"); + ADD_BOOL([o allowsMixedState], @"Allows mixed state") + ADD_OBJECT_NOT_NIL([o alternateImage], @"Alternate image") + ADD_OBJECT([o alternateTitle], @"Alternate title") + ADD_OBJECT([o attributedAlternateTitle], @"Attributed alternate title") + ADD_OBJECT([o attributedTitle], @"Attributed title") + ADD_OBJECT(objectFromBezelStyle([o bezelStyle]), @"Bezel style") + ADD_OBJECT([o image], @"Image") + ADD_OBJECT(objectFromCellImagePosition([o imagePosition]), @"Image position") + ADD_BOOL([o isBordered], @"Is bordered") + ADD_BOOL([o isTransparent], @"Is transparent") + ADD_OBJECT([o keyEquivalent], @"Key equivalent") + ADD_OBJECT(objectFromKeyModifierMask([o keyEquivalentModifierMask]), @"Key equivalent modifier mask") + ADD_BOOL([o showsBorderOnlyWhileMouseInside], @"Shows border only while mouse inside") + ADD_OBJECT_NOT_NIL([o sound], @"Sound") + ADD_OBJECT(objectFromCellStateValue([o state]), @"State") + ADD_OBJECT([o title], @"Title") + } + else if ([object isKindOfClass:[NSColorWell class]]) { + NSColorWell* o = object; + ADD_CLASS_LABEL(@"NSColorWell Info"); + ADD_OBJECT([o color], @"Color") + ADD_BOOL([o isActive], @"Is active") + ADD_BOOL([o isBordered], @"Is bordered") + } + else if ([object isKindOfClass:[NSDatePicker class]]) { + NSDatePicker* o = object; + ADD_CLASS_LABEL(@"NSDatePicker Info"); + ADD_OBJECT([o backgroundColor], @"Background color") + ADD_OBJECT([o calendar], @"Calendar") + ADD_OBJECT(objectFromDatePickerElementFlags([o datePickerElements]), @"Date picker elements") + ADD_OBJECT(objectFromDatePickerMode([o datePickerMode]), @"Date picker mode") + ADD_OBJECT(objectFromDatePickerStyle([o datePickerStyle]), @"Date picker style") + ADD_OBJECT([o dateValue], @"Date value") + ADD_OBJECT_NOT_NIL([o delegate], @"Delegate") + ADD_BOOL([o drawsBackground], @"Draws background") + ADD_BOOL([o isBezeled], @"Is bezeled") + ADD_BOOL([o isBordered], @"Is bordered") + ADD_OBJECT_NOT_NIL([o locale], @"Locale") + ADD_OBJECT([o maxDate], @"Max date") + ADD_OBJECT([o minDate], @"Min date") + ADD_OBJECT([o textColor], @"Text Color") + ADD_NUMBER([o timeInterval], @"Time interval") + ADD_OBJECT([o timeZone], @"Time zone") + } + else if ([object isKindOfClass:[NSImageView class]]) { + NSImageView* o = object; + ADD_CLASS_LABEL(@"NSImageView Info"); + ADD_BOOL([o allowsCutCopyPaste], @"Allows cut copy paste") + ADD_BOOL([o animates], @"Animates") + ADD_OBJECT([o image], @"Image") + ADD_OBJECT(objectFromImageAlignment([o imageAlignment]), @"Image alignment") + ADD_OBJECT(objectFromImageFrameStyle([o imageFrameStyle]), @"Image frame style") + ADD_OBJECT(objectFromImageScaling([o imageScaling]), @"Image scaling") + ADD_BOOL([o isEditable], @"Is editable") + } + else if ([object isKindOfClass:[NSLevelIndicator class]]) { + NSLevelIndicator* o = object; + ADD_CLASS_LABEL(@"NSLevelIndicator Info"); + ADD_NUMBER([o criticalValue], @"Critical value") + ADD_NUMBER([o maxValue], @"Max value") + ADD_NUMBER([o minValue], @"Min value") + ADD_NUMBER([o numberOfMajorTickMarks], @"Number of major tick marks") + ADD_NUMBER([o numberOfTickMarks], @"Number of tick marks") + ADD_OBJECT(objectFromTickMarkPosition([o tickMarkPosition], NO), @"Tick mark position") + ADD_NUMBER([o warningValue], @"Warning value") + } + else if ([object isKindOfClass:[NSMatrix class]]) { + NSMatrix* o = object; + ADD_CLASS_LABEL(@"NSMatrix Info"); + ADD_BOOL([o allowsEmptySelection], @"Allows empty selection") + ADD_BOOL([o autosizesCells], @"Autosizes cells") + ADD_OBJECT([o backgroundColor], @"Background color") + ADD_OBJECT([o cellBackgroundColor], @"Cell background color") + ADD_OBJECT([o cellClass], @"Cell class") + ADD_SIZE([o cellSize], @"Cell size"); + + NSInteger numberOfColumns = [o numberOfColumns]; + NSInteger numberOfRows = [o numberOfRows]; + + if (numberOfRows != 0) { + for (NSInteger column = 0; column < numberOfColumns; column++) { + NSMutableArray* columnArray = [NSMutableArray arrayWithCapacity:numberOfRows]; + for (NSInteger row = 0; row < numberOfRows; row++) + [columnArray addObject:[o cellAtRow:row column:column]]; + ADD_OBJECT([NSArray arrayWithArray:columnArray], ([NSString stringWithFormat:@"Column %ld", (long)column])) + } + } + + ADD_OBJECT([o delegate], @"Delegate") + ADD_SEL([o doubleAction], @"Double action") + ADD_BOOL([o drawsBackground], @"Draws background") + ADD_BOOL([o drawsCellBackground], @"Draws cell background") + ADD_SIZE([o intercellSpacing], @"Intercell spacing") + ADD_BOOL([o isAutoscroll], @"Is autoscroll") + ADD_BOOL([o isSelectionByRect], @"Is selection by rect") + ADD_OBJECT([o keyCell], @"Key cell") + ADD_OBJECT(objectFromMatrixMode([(NSMatrix*)o mode]), @"Mode") + ADD_NUMBER([o numberOfColumns], @"Number of columns") + ADD_NUMBER([o numberOfRows], @"Number of rows") + ADD_OBJECT([o prototype], @"Prototype") + ADD_OBJECTS([o selectedCells], @"Selected cells") + ADD_NUMBER([o selectedColumn], @"Selected column") + ADD_NUMBER([o selectedRow], @"Selected row") + ADD_BOOL([o tabKeyTraversesCells], @"Tab key traverses cells") + } + else if ([object isKindOfClass:[NSPathControl class]]) { + NSPathControl* o = object; + ADD_CLASS_LABEL(@"NSPathControl Info"); + ADD_OBJECT_NOT_NIL([o backgroundColor], @"Background color") + ADD_OBJECT([o delegate], @"Delegate") + ADD_SEL([o doubleAction], @"Double action") + ADD_OBJECTS([o pathComponentCells], @"Path component cells") + ADD_OBJECT(objectFromPathStyle([o pathStyle]), @"Path style") + ADD_OBJECT([o URL], @"URL") + } + else if ([object isKindOfClass:[NSRuleEditor class]]) { + if ([object isKindOfClass:[NSPredicateEditor class]]) { + NSPredicateEditor* o = object; + ADD_CLASS_LABEL(@"NSPredicateEditor Info"); + ADD_OBJECTS([o rowTemplates], @"Row templates") + } + + NSRuleEditor* o = object; + ADD_CLASS_LABEL(@"NSRuleEditor Info"); + ADD_BOOL([o canRemoveAllRows], @"Can remove all rows") + ADD_OBJECT_NOT_NIL([o criteriaKeyPath], @"Criteria key path") + ADD_OBJECT([o delegate], @"Delegate") + ADD_OBJECT_NOT_NIL([o displayValuesKeyPath], @"Display values key path") + ADD_DICTIONARY([o formattingDictionary], @"Formatting dictionary") + ADD_OBJECT_NOT_NIL([o formattingStringsFilename], @"Formatting strings filename") + ADD_BOOL([o isEditable], @"Is editable") + ADD_OBJECT(objectFromRuleEditorNestingMode([o nestingMode]), @"Nesting mode") + ADD_NUMBER([o numberOfRows], @"Number of rows") + ADD_OBJECT([o predicate], @"Predicate") + ADD_OBJECT([o rowClass], @"Row class") + ADD_NUMBER([o rowHeight], @"Row height") + ADD_OBJECT_NOT_NIL([o rowTypeKeyPath], @"Row type key path") + ADD_OBJECT_NOT_NIL([o selectedRowIndexes], @"Selected row indexes") + ADD_OBJECT_NOT_NIL([o subrowsKeyPath], @"Subrows key path") + } + else if ([object isKindOfClass:[NSScroller class]]) { + NSScroller* o = object; + ADD_CLASS_LABEL(@"NSScroller Info"); + ADD_OBJECT(objectFromScrollArrowPosition([o arrowsPosition]), @"Arrows position") + ADD_OBJECT(objectFromControlSize([o controlSize]), @"Control size") + ADD_OBJECT(objectFromControlTint([o controlTint]), @"Control tint") + ADD_NUMBER([o doubleValue], @"Double value") + ADD_OBJECT(objectFromScrollerPart([o hitPart]), @"Hit part") + ADD_NUMBER([o knobProportion], @"Knob proportion") + ADD_OBJECT(objectFromUsableScrollerParts([o usableParts]), @"Usable parts") + } + else if ([object isKindOfClass:[NSSegmentedControl class]]) { + NSSegmentedControl* o = object; + NSInteger segmentCount = [o segmentCount]; + ADD_CLASS_LABEL(@"NSSegmentedControl Info"); + + ADD_NUMBER(segmentCount, @"Segment count") + ADD_NUMBER([o selectedSegment], @"Selected segment") + + for (NSInteger i = 0; i < segmentCount; i++) { + ADD_OBJECT_NOT_NIL([o imageForSegment:i], ([NSString stringWithFormat:@"Image for segment %ld", (long)i])) + ADD_BOOL([o isEnabledForSegment:i], ([NSString stringWithFormat:@"Is enabled for segment %ld", (long)i])) + ADD_BOOL([o isSelectedForSegment:i], ([NSString stringWithFormat:@"Is selected for segment %ld", (long)i])) + ADD_OBJECT_NOT_NIL([o labelForSegment:i], ([NSString stringWithFormat:@"Label for segment %ld", (long)i])) + ADD_OBJECT_NOT_NIL([o menuForSegment:i], ([NSString stringWithFormat:@"Menu for segment %ld", (long)i])) + if ([o widthForSegment:i] != 0) + ADD_NUMBER([o widthForSegment:i], ([NSString stringWithFormat:@"Width for segment %ld", (long)i])) + } + } + else if ([object isKindOfClass:[NSSlider class]]) { + NSSlider* o = object; + ADD_CLASS_LABEL(@"NSSlider Info"); + ADD_BOOL([o allowsTickMarkValuesOnly], @"Allows tick mark values only") + ADD_NUMBER([o altIncrementValue], @"Alt increment value") + ADD_NUMBER([(NSSlider*)o isVertical], @"Is vertical") + ADD_NUMBER([o knobThickness], @"Knob thickness") + ADD_NUMBER([o maxValue], @"Max value") + ADD_NUMBER([o minValue], @"Min value") + ADD_NUMBER([o numberOfTickMarks], @"Number of tick marks") + ADD_OBJECT(objectFromTickMarkPosition([o tickMarkPosition], [(NSSlider*)o isVertical] == 1), @"Tick mark position") + ADD_OBJECT([o title], @"title") + } + else if ([object isKindOfClass:[NSTableView class]]) { + if ([object isKindOfClass:[NSOutlineView class]]) { + NSOutlineView* o = object; + ADD_CLASS_LABEL(@"NSOutlineView Info"); + ADD_BOOL([o autoresizesOutlineColumn], @"Autoresizes outline column") + ADD_BOOL([o autosaveExpandedItems], @"Autosave expanded items") + ADD_BOOL([o indentationMarkerFollowsCell], @"Indentation marker follows cell") + ADD_NUMBER([o indentationPerLevel], @"Indentation per level") + ADD_OBJECT([o outlineTableColumn], @"Outline table column") + } + + NSTableView* o = object; + ADD_CLASS_LABEL(@"NSTableView Info"); + ADD_BOOL([o allowsColumnReordering], @"Allows column reordering") + ADD_BOOL([o allowsColumnResizing], @"Allows column resizing") + ADD_BOOL([o allowsColumnSelection], @"Allows column selection") + ADD_BOOL([o allowsEmptySelection], @"Allows empty selection") + ADD_BOOL([o allowsMultipleSelection], @"Allows multiple selection") + ADD_BOOL([o allowsTypeSelect], @"Allows type select") + ADD_OBJECT_NOT_NIL([o autosaveName], @"Autosave name") + ADD_BOOL([o autosaveTableColumns], @"Autosave table columns") + ADD_OBJECT([o backgroundColor], @"Background color") + ADD_OBJECT(objectFromTableViewColumnAutoresizingStyle([o columnAutoresizingStyle]), @"Column autoresizing style") + ADD_OBJECT([o cornerView], @"Corner view") + ADD_OBJECT([o dataSource], @"Data source") + ADD_OBJECT([o delegate], @"Delegate") + ADD_SEL([o doubleAction], @"Double action") + ADD_OBJECT([o gridColor], @"Grid color") + ADD_OBJECT(objectFromTableViewGridLineStyle([o gridStyleMask]), @"Grid style mask") + ADD_OBJECT([o headerView], @"Header view") + ADD_OBJECT_NOT_NIL([o highlightedTableColumn], @"Highlighted table column") + ADD_SIZE([o intercellSpacing], @"Intercell spacing") + ADD_NUMBER([o numberOfColumns], @"Number of columns") + ADD_NUMBER([o numberOfRows], @"Number of rows") + ADD_NUMBER([o numberOfSelectedColumns], @"Number of selected columns") + ADD_NUMBER([o numberOfSelectedRows], @"Number of selected rows") + ADD_NUMBER([o rowHeight], @"Row height") + ADD_NUMBER([o selectedColumn], @"Selected column") + ADD_OBJECT([o selectedColumnIndexes], @"Selected column indexes") + ADD_NUMBER([o selectedRow], @"Selected row") + ADD_OBJECT([o selectedRowIndexes], @"Selected row indexes") + ADD_OBJECT(objectFromTableViewSelectionHighlightStyle([o selectionHighlightStyle]), @"Selection highlight style") + ADD_OBJECTS([o sortDescriptors], @"Sort descriptors") + ADD_OBJECTS([o tableColumns], @"Table columns") + ADD_BOOL([o usesAlternatingRowBackgroundColors], @"Uses alternating row background colors") + ADD_BOOL([o verticalMotionCanBeginDrag], @"Vertical motion can begin drag") + } + else if ([object isKindOfClass:[NSStepper class]]) { + NSStepper* o = object; + ADD_CLASS_LABEL(@"NSStepper Info"); + ADD_BOOL([o autorepeat], @"Autorepeat") + ADD_NUMBER([o increment], @"Increment") + ADD_NUMBER([o maxValue], @"Max value") + ADD_NUMBER([o minValue], @"Min value") + ADD_BOOL([o valueWraps], @"Value wraps") + } + else if ([object isKindOfClass:[NSTextField class]]) { + if ([object isKindOfClass:[NSComboBox class]]) { + NSComboBox* o = object; + ADD_CLASS_LABEL(@"NSComboBox Info"); + if ([o usesDataSource]) + ADD_OBJECT([o dataSource], @"Data source") + ADD_BOOL([o hasVerticalScroller], @"Has vertical scroller") + ADD_NUMBER([o indexOfSelectedItem], @"Index of selected item") + ADD_SIZE([o intercellSpacing], @"Intercell spacing") + ADD_BOOL([o isButtonBordered], @"Is button bordered") + ADD_NUMBER([o itemHeight], @"Item height") + ADD_NUMBER([o numberOfItems], @"Number of items") + ADD_NUMBER([o numberOfVisibleItems], @"Number of visible items") + if (![o usesDataSource] && [o indexOfSelectedItem] != -1) + ADD_OBJECT([o objectValueOfSelectedItem], @"Object value of selected item") + if (![o usesDataSource]) + ADD_OBJECTS([o objectValues], @"Object values") + ADD_BOOL([o usesDataSource], @"Uses data source") + } + else if ([object isKindOfClass:[NSSearchField class]]) { + NSSearchField* o = object; + if ([[o recentSearches] count] != 0 || [o recentsAutosaveName] != nil) + ADD_CLASS_LABEL(@"NSSearchField Info"); + ADD_OBJECTS([o recentSearches], @"Recent searches") + ADD_OBJECT_NOT_NIL([o recentsAutosaveName], @"Recents autosave name") + } + else if ([object isKindOfClass:[NSTokenField class]]) { + NSTokenField* o = object; + ADD_CLASS_LABEL(@"NSTokenField Info"); + ADD_NUMBER([o completionDelay], @"Completion delay") + ADD_OBJECT([o tokenizingCharacterSet], @"Tokenizing character set") + ADD_OBJECT(objectFromTokenStyle([o tokenStyle]), @"Token style") + } + + NSTextField* o = object; + ADD_CLASS_LABEL(@"NSTextField Info"); + ADD_BOOL([o allowsEditingTextAttributes], @"Allows editing text attributes") + ADD_OBJECT([o backgroundColor], @"Background color") + ADD_OBJECT(objectFromTextFieldBezelStyle([o bezelStyle]), @"Bezel style") + ADD_OBJECT_NOT_NIL([o delegate], @"Delegate") + ADD_BOOL([o drawsBackground], @"Draws background") + ADD_BOOL([o importsGraphics], @"Imports graphics") + ADD_BOOL([o isBezeled], @"Is bezeled") + ADD_BOOL([o isBordered], @"Is bordered") + ADD_BOOL([o isEditable], @"Is editable") + ADD_BOOL([o isSelectable], @"Is selectable") + ADD_OBJECT([o textColor], @"Text color") + } + + NSControl* o = object; + ADD_CLASS_LABEL(@"NSControl Info"); + ADD_SEL([o action], @"Action") + ADD_OBJECT(objectFromTextAlignment([o alignment]), @"Alignment") + ADD_OBJECT(objectFromWritingDirection([o baseWritingDirection]), @"Base writing direction") + ADD_OBJECT([o cell], @"Cell") + ADD_OBJECT(objectFromControlSize([o controlSize]), @"Control size") + ADD_OBJECT_NOT_NIL([o currentEditor], @"Current editor") + ADD_OBJECT([o font], @"Font") + ADD_OBJECT([o formatter], @"Formatter") + ADD_BOOL([o ignoresMultiClick], @"Ignores multiclick") + ADD_BOOL([o isContinuous], @"Is continuous") + ADD_BOOL([o isEnabled], @"Is enabled") + if ([o currentEditor] == nil) + ADD_OBJECT([o objectValue], @"Object value") // To avoid side-effects, we only call objectValue if the control is not being edited, which is determined with the currentEditor call. + ADD_BOOL([o refusesFirstResponder], @"Refuses first responder") + ADD_OBJECT([o selectedCell], @"Selected cell") + ADD_NUMBER([o selectedTag], @"Selected tag") + ADD_OBJECT([o target], @"Target") + } } - (void)processNSWindow:(id)object { - { - if ([object isKindOfClass:[NSPanel class]]) - { - if ([object isKindOfClass:[NSColorPanel class]]) - { - NSColorPanel *o = object; - ADD_CLASS_LABEL(@"NSColorPanel Info"); - ADD_OBJECT_NOT_NIL([o accessoryView] ,@"Accessory view") - ADD_NUMBER( [o alpha] ,@"Alpha") - ADD_OBJECT( [o color] ,@"Color") - ADD_BOOL( [o isContinuous] ,@"Is continuous") - ADD_OBJECT( objectFromColorPanelMode([o mode]) ,@"Mode") - ADD_BOOL( [o showsAlpha] ,@"Shows alpha") - } - else if ([object isKindOfClass:[NSFontPanel class]]) - { - NSFontPanel *o = object; - ADD_CLASS_LABEL(@"NSFontPanel Info"); - ADD_OBJECT_NOT_NIL([o accessoryView] ,@"Accessory view") - ADD_BOOL( [o isEnabled] ,@"Is enabled") - } - else if ([object isKindOfClass:[NSSavePanel class]]) - { - if ([object isKindOfClass:[NSOpenPanel class]]) { - NSOpenPanel *o = object; - ADD_CLASS_LABEL(@"NSOpenPanel Info"); - ADD_BOOL( [o allowsMultipleSelection] ,@"Allows multiple selection") - ADD_BOOL( [o canChooseDirectories] ,@"Can choose directories") - ADD_BOOL( [o canChooseFiles] ,@"Can choose files") - ADD_OBJECTS( [o filenames] ,@"Filenames") - ADD_BOOL( [o resolvesAliases] ,@"Resolves aliases") - ADD_OBJECTS( [o URLs] ,@"URLs") - } - - NSSavePanel *o = object; - ADD_CLASS_LABEL(@"NSSavePanel Info"); - ADD_OBJECT_NOT_NIL([o accessoryView] ,@"Accessory view") - ADD_OBJECTS( [o allowedFileTypes] ,@"Allowed file types") - ADD_BOOL( [o allowsOtherFileTypes] ,@"Allows other file types") - ADD_BOOL( [o canCreateDirectories] ,@"Can create directories") - ADD_BOOL( [o canSelectHiddenExtension] ,@"Can select hidden extension") - ADD_OBJECT_NOT_NIL([o delegate] ,@"Delegate") - ADD_OBJECT( [o directory] ,@"Directory") - ADD_OBJECT( [o filename] ,@"Filename") - ADD_BOOL( [o isExpanded] ,@"Is expanded") - ADD_BOOL( [o isExtensionHidden] ,@"Is extension hidden") - ADD_OBJECT( [o message] ,@"Message") - ADD_OBJECT( [o nameFieldLabel] ,@"nameFieldLabel") - ADD_OBJECT( [o prompt] ,@"Prompt") - ADD_BOOL( [o treatsFilePackagesAsDirectories] ,@"Treats file packages as directories") - ADD_OBJECT( [o URL] ,@"URL") - } - - - NSPanel *o = object; - ADD_CLASS_LABEL(@"NSPanel Info"); - ADD_BOOL( [o becomesKeyOnlyIfNeeded] ,@"Becomes key only if needed") - ADD_BOOL( [o isFloatingPanel] ,@"Is floating panel") - } - - NSWindow *o = object; - ADD_CLASS_LABEL(@"NSWindow Info"); - ADD_BOOL( [o acceptsMouseMovedEvents] ,@"Accepts mouse moved events") - ADD_BOOL( [o allowsToolTipsWhenApplicationIsInactive] ,@"Allows tool tips when application is inactive") - ADD_NUMBER( [o alphaValue] ,@"Alpha value") - ADD_BOOL( [o areCursorRectsEnabled] ,@"Are cursor rects enabled") - ADD_SIZE( [o aspectRatio] ,@"Aspect ratio") - ADD_OBJECT_NOT_NIL( [o attachedSheet] ,@"Attached sheet") - ADD_BOOL( [o autorecalculatesKeyViewLoop] ,@"Autorecalculates key view loop") - ADD_OBJECT(objectFromWindowBackingLocation([o backingLocation]),@"Backing location") - ADD_OBJECT( [o backgroundColor] ,@"Background color") - ADD_OBJECT(objectFromBackingStoreType([o backingType]) ,@"Backing type") - ADD_BOOL( [o canBecomeKeyWindow] ,@"Can become key window") - ADD_BOOL( [o canBecomeMainWindow] ,@"Can become main window") - ADD_BOOL( [o canBecomeVisibleWithoutLogin] ,@"Can become visible without login") - ADD_BOOL( [o canHide] ,@"Can hide") - ADD_BOOL( [o canStoreColor] ,@"Can store color") - ADD_OBJECT(objectFromWindowCollectionBehavior([o collectionBehavior]),@"Collection behavior") - ADD_OBJECTS( [o childWindows] ,@"Child windows") - ADD_SIZE( [o contentAspectRatio] ,@"Content aspect ratio") - ADD_SIZE( [o contentMaxSize] ,@"Content max size") - ADD_SIZE( [o contentMinSize] ,@"Content min size") - ADD_SIZE( [o contentResizeIncrements] ,@"Content resize increments") - ADD_OBJECT( [o contentView] ,@"Content view") - ADD_OBJECT_NOT_NIL( [o deepestScreen] ,@"Deepest screen") - ADD_OBJECT( [o defaultButtonCell] ,@"Default button cell") - ADD_OBJECT( [o delegate] ,@"Delegate") - ADD_NUMBER( [o depthLimit] ,@"Depth limit") - ADD_DICTIONARY( [o deviceDescription] ,@"Device description") - ADD_BOOL( [o displaysWhenScreenProfileChanges] ,@"Displays when screen profile changes") - ADD_OBJECTS( [o drawers] ,@"Drawers") - ADD_OBJECT( [o firstResponder] ,@"First responder") - ADD_RECT( [o frame] ,@"Frame") - ADD_OBJECT_NOT_NIL( [o frameAutosaveName] ,@"Frame autosave name") - ADD_OBJECT( [o graphicsContext] ,@"Graphics context") - // Call to gState fails when the window in miniaturized - //ADD_NUMBER( [o gState] ,@"gState") - ADD_BOOL( [o hasDynamicDepthLimit] ,@"Has dynamic depth limit") - ADD_BOOL( [o hasShadow] ,@"Has shadow") - ADD_BOOL( [o hidesOnDeactivate] ,@"Hides on deactivate") - ADD_BOOL( [o ignoresMouseEvents] ,@"Ignores mouse events") - ADD_OBJECT( [o initialFirstResponder] ,@"Initial first responder") - ADD_BOOL( [o isAutodisplay] ,@"Is autodisplay") - ADD_BOOL( [o isDocumentEdited] ,@"Is document edited") - ADD_BOOL( [o isExcludedFromWindowsMenu] ,@"Is exclude from windowsmenu") - ADD_BOOL( [o isFlushWindowDisabled] ,@"Is flush window disabled") - ADD_BOOL( [o isMiniaturized] ,@"Is miniaturized") - ADD_BOOL( [o isMovableByWindowBackground] ,@"Is movable by window background") - ADD_BOOL( [o isOneShot] ,@"Is oneShot") - ADD_BOOL( [o isOpaque] ,@"Is opaque") - ADD_BOOL( [o isReleasedWhenClosed] ,@"Is released when closed") - ADD_BOOL( [o isSheet] ,@"Is sheet") - ADD_BOOL( [o isVisible] ,@"Is visible") - ADD_BOOL( [o isZoomed] ,@"Is zoomed") - ADD_OBJECT(objectFromSelectionDirection([o keyViewSelectionDirection]), @"Key view selection direction") - ADD_OBJECT(objectFromWindowLevel([o level]) , @"Level") - ADD_SIZE( [o maxSize] ,@"Max size") - ADD_SIZE( [o minSize] ,@"Min size") - ADD_OBJECT_NOT_NIL( [o miniwindowImage] ,@"Miniwindow image") - ADD_OBJECT( [o miniwindowTitle] ,@"Miniwindow title") - ADD_OBJECT_NOT_NIL( [o parentWindow] ,@"Parent window") - ADD_OBJECT(objectFromWindowBackingLocation([o preferredBackingLocation]),@"Preferred backing location") - ADD_BOOL( [o preservesContentDuringLiveResize] ,@"Preserves content during live resize") - ADD_OBJECT_NOT_NIL( [o representedFilename] ,@"Represented filename") - ADD_OBJECT_NOT_NIL( [o representedURL] ,@"Represented URL") - ADD_SIZE( [o resizeIncrements] ,@"Resize increments") - ADD_OBJECT( [o screen] ,@"Screen") - ADD_OBJECT(objectFromWindowSharingType([o sharingType]) ,@"Sharing type") - ADD_BOOL( [o showsResizeIndicator] ,@"Shows resize indicator") - ADD_BOOL( [o showsToolbarButton] ,@"Shows toolbar button") - ADD_OBJECT(objectFromWindowMask([o styleMask]) ,@"Style mask") - ADD_OBJECT( [o title] ,@"Title") - ADD_OBJECT_NOT_NIL( [o toolbar] ,@"Toolbar") - ADD_NUMBER( [o userSpaceScaleFactor] ,@"User space scale factor") - ADD_BOOL( [o viewsNeedDisplay] ,@"Views need display") - ADD_OBJECT_NOT_NIL( [o windowController] ,@"Window controller") - ADD_NUMBER( [o windowNumber] ,@"Window number") - ADD_BOOL( [o worksWhenModal] ,@"Works when modal") - } + if ([object isKindOfClass:[NSPanel class]]) { + if ([object isKindOfClass:[NSColorPanel class]]) { + NSColorPanel* o = object; + ADD_CLASS_LABEL(@"NSColorPanel Info"); + ADD_OBJECT_NOT_NIL([o accessoryView], @"Accessory view") + ADD_NUMBER([o alpha], @"Alpha") + ADD_OBJECT([o color], @"Color") + ADD_BOOL([o isContinuous], @"Is continuous") + ADD_OBJECT(objectFromColorPanelMode([o mode]), @"Mode") + ADD_BOOL([o showsAlpha], @"Shows alpha") + } + else if ([object isKindOfClass:[NSFontPanel class]]) { + NSFontPanel* o = object; + ADD_CLASS_LABEL(@"NSFontPanel Info"); + ADD_OBJECT_NOT_NIL([o accessoryView], @"Accessory view") + ADD_BOOL([o isEnabled], @"Is enabled") + } + else if ([object isKindOfClass:[NSSavePanel class]]) { + if ([object isKindOfClass:[NSOpenPanel class]]) { + NSOpenPanel* o = object; + ADD_CLASS_LABEL(@"NSOpenPanel Info"); + ADD_BOOL([o allowsMultipleSelection], @"Allows multiple selection") + ADD_BOOL([o canChooseDirectories], @"Can choose directories") + ADD_BOOL([o canChooseFiles], @"Can choose files") + ADD_OBJECTS([o filenames], @"Filenames") + ADD_BOOL([o resolvesAliases], @"Resolves aliases") + ADD_OBJECTS([o URLs], @"URLs") + } + + NSSavePanel* o = object; + ADD_CLASS_LABEL(@"NSSavePanel Info"); + ADD_OBJECT_NOT_NIL([o accessoryView], @"Accessory view") + ADD_OBJECTS([o allowedFileTypes], @"Allowed file types") + ADD_BOOL([o allowsOtherFileTypes], @"Allows other file types") + ADD_BOOL([o canCreateDirectories], @"Can create directories") + ADD_BOOL([o canSelectHiddenExtension], @"Can select hidden extension") + ADD_OBJECT_NOT_NIL([o delegate], @"Delegate") + ADD_OBJECT([o directory], @"Directory") + ADD_OBJECT([o filename], @"Filename") + ADD_BOOL([o isExpanded], @"Is expanded") + ADD_BOOL([o isExtensionHidden], @"Is extension hidden") + ADD_OBJECT([o message], @"Message") + ADD_OBJECT([o nameFieldLabel], @"nameFieldLabel") + ADD_OBJECT([o prompt], @"Prompt") + ADD_BOOL([o treatsFilePackagesAsDirectories], @"Treats file packages as directories") + ADD_OBJECT([o URL], @"URL") + } + + + NSPanel* o = object; + ADD_CLASS_LABEL(@"NSPanel Info"); + ADD_BOOL([o becomesKeyOnlyIfNeeded], @"Becomes key only if needed") + ADD_BOOL([o isFloatingPanel], @"Is floating panel") + } + + NSWindow* o = object; + ADD_CLASS_LABEL(@"NSWindow Info"); + ADD_BOOL([o acceptsMouseMovedEvents], @"Accepts mouse moved events") + ADD_BOOL([o allowsToolTipsWhenApplicationIsInactive], @"Allows tool tips when application is inactive") + ADD_NUMBER([o alphaValue], @"Alpha value") + ADD_BOOL([o areCursorRectsEnabled], @"Are cursor rects enabled") + ADD_SIZE([o aspectRatio], @"Aspect ratio") + ADD_OBJECT_NOT_NIL([o attachedSheet], @"Attached sheet") + ADD_BOOL([o autorecalculatesKeyViewLoop], @"Autorecalculates key view loop") + ADD_OBJECT(objectFromWindowBackingLocation([o backingLocation]), @"Backing location") + ADD_OBJECT([o backgroundColor], @"Background color") + ADD_OBJECT(objectFromBackingStoreType([o backingType]), @"Backing type") + ADD_BOOL([o canBecomeKeyWindow], @"Can become key window") + ADD_BOOL([o canBecomeMainWindow], @"Can become main window") + ADD_BOOL([o canBecomeVisibleWithoutLogin], @"Can become visible without login") + ADD_BOOL([o canHide], @"Can hide") + ADD_BOOL([o canStoreColor], @"Can store color") + ADD_OBJECT(objectFromWindowCollectionBehavior([o collectionBehavior]), @"Collection behavior") + ADD_OBJECTS([o childWindows], @"Child windows") + ADD_SIZE([o contentAspectRatio], @"Content aspect ratio") + ADD_SIZE([o contentMaxSize], @"Content max size") + ADD_SIZE([o contentMinSize], @"Content min size") + ADD_SIZE([o contentResizeIncrements], @"Content resize increments") + ADD_OBJECT([o contentView], @"Content view") + ADD_OBJECT_NOT_NIL([o deepestScreen], @"Deepest screen") + ADD_OBJECT([o defaultButtonCell], @"Default button cell") + ADD_OBJECT([o delegate], @"Delegate") + ADD_NUMBER([o depthLimit], @"Depth limit") + ADD_DICTIONARY([o deviceDescription], @"Device description") + ADD_BOOL([o displaysWhenScreenProfileChanges], @"Displays when screen profile changes") + ADD_OBJECTS([o drawers], @"Drawers") + ADD_OBJECT([o firstResponder], @"First responder") + ADD_RECT([o frame], @"Frame") + ADD_OBJECT_NOT_NIL([o frameAutosaveName], @"Frame autosave name") + ADD_OBJECT([o graphicsContext], @"Graphics context") + // Call to gState fails when the window in miniaturized + //ADD_NUMBER( [o gState] ,@"gState") + ADD_BOOL([o hasDynamicDepthLimit], @"Has dynamic depth limit") + ADD_BOOL([o hasShadow], @"Has shadow") + ADD_BOOL([o hidesOnDeactivate], @"Hides on deactivate") + ADD_BOOL([o ignoresMouseEvents], @"Ignores mouse events") + ADD_OBJECT([o initialFirstResponder], @"Initial first responder") + ADD_BOOL([o isAutodisplay], @"Is autodisplay") + ADD_BOOL([o isDocumentEdited], @"Is document edited") + ADD_BOOL([o isExcludedFromWindowsMenu], @"Is exclude from windowsmenu") + ADD_BOOL([o isFlushWindowDisabled], @"Is flush window disabled") + ADD_BOOL([o isMiniaturized], @"Is miniaturized") + ADD_BOOL([o isMovableByWindowBackground], @"Is movable by window background") + ADD_BOOL([o isOneShot], @"Is oneShot") + ADD_BOOL([o isOpaque], @"Is opaque") + ADD_BOOL([o isReleasedWhenClosed], @"Is released when closed") + ADD_BOOL([o isSheet], @"Is sheet") + ADD_BOOL([o isVisible], @"Is visible") + ADD_BOOL([o isZoomed], @"Is zoomed") + ADD_OBJECT(objectFromSelectionDirection([o keyViewSelectionDirection]), @"Key view selection direction") + ADD_OBJECT(objectFromWindowLevel([o level]), @"Level") + ADD_SIZE([o maxSize], @"Max size") + ADD_SIZE([o minSize], @"Min size") + ADD_OBJECT_NOT_NIL([o miniwindowImage], @"Miniwindow image") + ADD_OBJECT([o miniwindowTitle], @"Miniwindow title") + ADD_OBJECT_NOT_NIL([o parentWindow], @"Parent window") + ADD_OBJECT(objectFromWindowBackingLocation([o preferredBackingLocation]), @"Preferred backing location") + ADD_BOOL([o preservesContentDuringLiveResize], @"Preserves content during live resize") + ADD_OBJECT_NOT_NIL([o representedFilename], @"Represented filename") + ADD_OBJECT_NOT_NIL([o representedURL], @"Represented URL") + ADD_SIZE([o resizeIncrements], @"Resize increments") + ADD_OBJECT([o screen], @"Screen") + ADD_OBJECT(objectFromWindowSharingType([o sharingType]), @"Sharing type") + ADD_BOOL([o showsResizeIndicator], @"Shows resize indicator") + ADD_BOOL([o showsToolbarButton], @"Shows toolbar button") + ADD_OBJECT(objectFromWindowMask([o styleMask]), @"Style mask") + ADD_OBJECT([o title], @"Title") + ADD_OBJECT_NOT_NIL([o toolbar], @"Toolbar") + ADD_NUMBER([o userSpaceScaleFactor], @"User space scale factor") + ADD_BOOL([o viewsNeedDisplay], @"Views need display") + ADD_OBJECT_NOT_NIL([o windowController], @"Window controller") + ADD_NUMBER([o windowNumber], @"Window number") + ADD_BOOL([o worksWhenModal], @"Works when modal") + } } @end From a261fa163ffd1e6120a2df81468e97e0d3b00477 Mon Sep 17 00:00:00 2001 From: Ant Date: Mon, 17 Nov 2014 11:06:58 +0000 Subject: [PATCH 12/33] Continuing development of view inspector --- FScript.xcodeproj/project.pbxproj | 2 +- .../FSObjectBrowserViewObjectInfo.m | 64 +++++++++---------- 2 files changed, 33 insertions(+), 33 deletions(-) diff --git a/FScript.xcodeproj/project.pbxproj b/FScript.xcodeproj/project.pbxproj index 3e1e22a..4b5ec4c 100644 --- a/FScript.xcodeproj/project.pbxproj +++ b/FScript.xcodeproj/project.pbxproj @@ -3030,7 +3030,7 @@ 8F4822020D2C317700754A4E /* FSTestObjCClass2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSTestObjCClass2.h; sourceTree = ""; }; 8F4822030D2C317700754A4E /* FSTestObjCClass2.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FSTestObjCClass2.m; sourceTree = ""; }; 8F4E294C075B8E5600F8DCDB /* FSObjectBrowserViewObjectInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSObjectBrowserViewObjectInfo.h; sourceTree = ""; }; - 8F4E294D075B8E5600F8DCDB /* FSObjectBrowserViewObjectInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FSObjectBrowserViewObjectInfo.m; sourceTree = ""; }; + 8F4E294D075B8E5600F8DCDB /* FSObjectBrowserViewObjectInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 8; lastKnownFileType = sourcecode.c.objc; path = FSObjectBrowserViewObjectInfo.m; sourceTree = ""; tabWidth = 8; }; 8F5189E707F072EA00A50735 /* FSNSManagedObjectContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSNSManagedObjectContext.h; sourceTree = ""; }; 8F5189E807F072EA00A50735 /* FSNSManagedObjectContext.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FSNSManagedObjectContext.m; sourceTree = ""; }; 8F552A780C00A6D4002B6067 /* CalendarStore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CalendarStore.framework; path = /System/Library/Frameworks/CalendarStore.framework; sourceTree = ""; }; diff --git a/FScriptFramework/FSObjectBrowserViewObjectInfo.m b/FScriptFramework/FSObjectBrowserViewObjectInfo.m index 7d8af6e..1912e14 100644 --- a/FScriptFramework/FSObjectBrowserViewObjectInfo.m +++ b/FScriptFramework/FSObjectBrowserViewObjectInfo.m @@ -148,6 +148,24 @@ - (void)fillMatrix:(NSMatrix*)m withObject:(id)object @implementation FSObjectBrowserViewObjectHelper +- (void)addObject:(id)object withLabel:(NSString*)label toMatrix:(NSMatrix*)matrix notNil:(BOOL)notNil +{ + @try { + if (!notNil || object) { + [view addObject:object withLabel:label toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + } + } + @catch (id exception) + { + NSLog(@"%@", exception); + } +} +#define ADD_ENUM(OBJECT, LABEL) \ + [self addObject:(OBJECT)withLabel:(LABEL)toMatrix:m notNil:NO]; + +#define ADD_ENUM_NOT_NIL(OBJECT, LABEL) \ + [self addObject:(OBJECT)withLabel:(LABEL)toMatrix:m notNil:YES]; + #define ADD_OBJECT(OBJECT, LABEL) \ @try { \ [view addObject:(OBJECT)withLabel:(LABEL)toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; \ @@ -167,7 +185,7 @@ @implementation FSObjectBrowserViewObjectHelper if ([(OBJECTS)count] <= 20) \ [view addDictionary:(OBJECTS)withLabel:(LABEL)toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; \ else \ - [view addObject:(OBJECTS)withLabel:(LABEL)toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; \ + [self addObject:(OBJECTS)withLabel:(LABEL)toMatrix:m notNil:NO]; \ } \ @catch (id exception) { NSLog(@"%@", exception); } @@ -176,21 +194,15 @@ @implementation FSObjectBrowserViewObjectHelper if ([(OBJECTS)count] <= 20) \ [view addObjects:(OBJECTS)withLabel:(LABEL)toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; \ else \ - [view addObject:(OBJECTS)withLabel:(LABEL)toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; \ + [self addObject:(OBJECTS)withLabel:(LABEL)toMatrix:m notNil:NO]; \ } \ @catch (id exception) { NSLog(@"%@", exception); } -#define ADD_BOOL(B, LABEL) \ - @try { \ - [view addObject:[FSBoolean booleanWithBool:(B)] withLabel:(LABEL)toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; \ - } \ - @catch (id exception) { NSLog(@"%@", exception); } +#define ADD_BOOL(B, LABEL) \ + [self addObject:[FSBoolean booleanWithBool:(B)] withLabel:(LABEL)toMatrix:m notNil:NO]; -#define ADD_NUMBER(NUMBER, LABEL) \ - @try { \ - [view addObject:[FSNumber numberWithDouble:(NUMBER)] withLabel:(LABEL)toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; \ - } \ - @catch (id exception) { NSLog(@"%@", exception); } +#define ADD_NUMBER(NUMBER, LABEL) \ + [self addObject:[FSNumber numberWithDouble:(NUMBER)] withLabel:(LABEL)toMatrix:m notNil:NO]; #define ADD_SEL(S, LABEL) \ @try { \ @@ -208,23 +220,14 @@ @implementation FSObjectBrowserViewObjectHelper } \ @catch (id exception) { NSLog(@"%@", exception); } -#define ADD_SIZE(SIZE, LABEL) \ - @try { \ - [view addObject:[NSValue valueWithSize:(SIZE)] withLabel:(LABEL)toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; \ - } \ - @catch (id exception) { NSLog(@"%@", exception); } +#define ADD_SIZE(SIZE, LABEL) \ + [self addObject:[NSValue valueWithSize:(SIZE)] withLabel:(LABEL)toMatrix:m notNil:NO]; -#define ADD_RECT(RECT, LABEL) \ - @try { \ - [view addObject:[NSValue valueWithRect:(RECT)] withLabel:(LABEL)toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; \ - } \ - @catch (id exception) { NSLog(@"%@", exception); } +#define ADD_RECT(RECT, LABEL) \ + [self addObject:[NSValue valueWithRect:(RECT)] withLabel:(LABEL)toMatrix:m notNil:NO]; -#define ADD_POINT(POINT, LABEL) \ - @try { \ - [view addObject:[NSValue valueWithPoint:(POINT)] withLabel:(LABEL)toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; \ - } \ - @catch (id exception) { NSLog(@"%@", exception); } +#define ADD_POINT(POINT, LABEL) \ + [self addObject:[NSValue valueWithPoint:(POINT)] withLabel:(LABEL)toMatrix:m notNil:NO]; #define ADD_POINTER(POINTER, LABEL) \ @try { \ @@ -233,11 +236,8 @@ @implementation FSObjectBrowserViewObjectHelper } \ @catch (id exception) { NSLog(@"%@", exception); } -#define ADD_RANGE(RANGE, LABEL) \ - @try { \ - [view addObject:[NSValue valueWithRange:(RANGE)] withLabel:(LABEL)toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; \ - } \ - @catch (id exception) { NSLog(@"%@", exception); } +#define ADD_RANGE(RANGE, LABEL) \ + [self addObject:[NSValue valueWithRange:(RANGE)] withLabel:(LABEL)toMatrix:m notNil:NO]; #define ADD_CLASS_LABEL(LABEL) \ { \ From 857ad977964a217bda78cc39a580e5aaf0eea27e Mon Sep 17 00:00:00 2001 From: Ant Date: Mon, 17 Nov 2014 22:22:11 +0000 Subject: [PATCH 13/33] Initial draft of detailed object inspectors --- F-Script 10.9 copy-Info.plist | 109 + FScript.xcodeproj/project.pbxproj | 2042 ++++++++++++++++- FScriptFramework 10.9 copy-Info.plist | 28 + FScriptFramework/FSDetailedObjectInspector.h | 17 + FScriptFramework/FSDetailedObjectInspector.m | 62 + FScriptFramework/FSMiscTools.m | 40 +- FScriptFramework/FSObjectBrowserMatrix.h | 6 +- FScriptFramework/FSObjectBrowserMatrix.m | 104 +- FScriptFramework/FSObjectBrowserView.h | 3 + FScriptFramework/FSObjectBrowserView.m | 36 +- .../FSObjectBrowserViewObjectInfo.h | 2 +- .../FSObjectBrowserViewObjectInfo.m | 325 +-- .../FSObjectInspectorBackgroundView.h | 13 + .../FSObjectInspectorBackgroundView.m | 20 + .../FSObjectInspectorViewController.h | 16 + .../FSObjectInspectorViewController.m | 37 + .../FSObjectInspectorViewController.xib | 150 ++ .../FSObjectInspectorViewModelItem.h | 15 +- .../FSObjectInspectorViewModelItem.m | 44 + 19 files changed, 2763 insertions(+), 306 deletions(-) create mode 100644 F-Script 10.9 copy-Info.plist create mode 100644 FScriptFramework 10.9 copy-Info.plist create mode 100644 FScriptFramework/FSDetailedObjectInspector.h create mode 100644 FScriptFramework/FSDetailedObjectInspector.m create mode 100644 FScriptFramework/FSObjectInspectorBackgroundView.h create mode 100644 FScriptFramework/FSObjectInspectorBackgroundView.m create mode 100644 FScriptFramework/FSObjectInspectorViewController.h create mode 100644 FScriptFramework/FSObjectInspectorViewController.m create mode 100644 FScriptFramework/FSObjectInspectorViewController.xib diff --git a/F-Script 10.9 copy-Info.plist b/F-Script 10.9 copy-Info.plist new file mode 100644 index 0000000..b2d8a89 --- /dev/null +++ b/F-Script 10.9 copy-Info.plist @@ -0,0 +1,109 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + F-Script + CFBundleGetInfoString + + CFBundleIconFile + fs.icns + CFBundleIdentifier + org.fscript.fscriptapp + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + F-Script + CFBundlePackageType + APPL + CFBundleShortVersionString + 2.2 + CFBundleSignature + ???? + CFBundleVersion + 2.2 + LSEnvironment + + NSAppleScriptEnabled + YES + NSHumanReadableCopyright + Copyright © 1998-2010 Philippe Mougin. + NSMainNibFile + fs.nib + NSPrincipalClass + NSApplication + NSServices + + + NSMenuItem + + default + F-Script/Execute Selection + + NSMessage + execute + NSPortName + F-Script + NSReturnTypes + + NSStringPboardType + + NSSendTypes + + NSStringPboardType + + + + NSMenuItem + + default + F-Script/View/Put Command + + NSMessage + putCommand + NSPortName + F-Script + NSSendTypes + + NSStringPboardType + + + + NSMenuItem + + default + F-Script/View/Put Command (Ret=execute) + + NSMessage + putCommand + NSPortName + F-Script + NSSendTypes + + NSStringPboardType + + NSUserData + DECOMPOSE + + + NSMenuItem + + default + F-Script/View/Put Command (Ret=newline) + + NSMessage + putCommand + NSPortName + F-Script + NSSendTypes + + NSStringPboardType + + NSUserData + NO_DECOMPOSE + + + + diff --git a/FScript.xcodeproj/project.pbxproj b/FScript.xcodeproj/project.pbxproj index 4b5ec4c..ee45bc7 100644 --- a/FScript.xcodeproj/project.pbxproj +++ b/FScript.xcodeproj/project.pbxproj @@ -96,7 +96,7 @@ 8F0CBC420BDB94AD002B0AD7 /* FSNSAttributedString.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FDCCDC005C0A23000747C0A /* FSNSAttributedString.m */; }; 8F0CBC430BDB94AD002B0AD7 /* FScriptMenuItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F0B66FC05C5639E0099180D /* FScriptMenuItem.m */; }; 8F0CBC440BDB94AD002B0AD7 /* FSNSFont.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F658B2805C9694F0040FB24 /* FSNSFont.m */; }; - 8F0CBC450BDB94AD002B0AD7 /* FSObjectBrowserMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FB5060005D53C8600153B33 /* FSObjectBrowserMatrix.m */; }; + 8F0CBC450BDB94AD002B0AD7 /* FSObjectBrowserMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FB5060005D53C8600153B33 /* FSObjectBrowserMatrix.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; 8F0CBC460BDB94AD002B0AD7 /* FSSymbolTable.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F17C07E06B1309C00F07862 /* FSSymbolTable.m */; }; 8F0CBC480BDB94AD002B0AD7 /* FSObjectBrowserViewObjectInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F4E294D075B8E5600F8DCDB /* FSObjectBrowserViewObjectInfo.m */; }; 8F0CBC490BDB94AD002B0AD7 /* FSCollectionInspectorView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FA8EDD307735B3B001BEC7B /* FSCollectionInspectorView.m */; }; @@ -1025,11 +1025,11 @@ 8FAE79F80DA109C500CB6E14 /* FSCNAssignment.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FAE79F10DA109C500CB6E14 /* FSCNAssignment.h */; }; 8FAE79F90DA109C500CB6E14 /* FSCNAssignment.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FAE79F20DA109C500CB6E14 /* FSCNAssignment.m */; }; 8FB5060305D53C8600153B33 /* FSObjectBrowserMatrix.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FB505FF05D53C8600153B33 /* FSObjectBrowserMatrix.h */; }; - 8FB5060405D53C8600153B33 /* FSObjectBrowserMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FB5060005D53C8600153B33 /* FSObjectBrowserMatrix.m */; }; + 8FB5060405D53C8600153B33 /* FSObjectBrowserMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FB5060005D53C8600153B33 /* FSObjectBrowserMatrix.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; 8FB5060505D53C8600153B33 /* FSObjectBrowserMatrix.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FB505FF05D53C8600153B33 /* FSObjectBrowserMatrix.h */; }; - 8FB5060605D53C8600153B33 /* FSObjectBrowserMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FB5060005D53C8600153B33 /* FSObjectBrowserMatrix.m */; }; + 8FB5060605D53C8600153B33 /* FSObjectBrowserMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FB5060005D53C8600153B33 /* FSObjectBrowserMatrix.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; 8FB5060705D53C8600153B33 /* FSObjectBrowserMatrix.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FB505FF05D53C8600153B33 /* FSObjectBrowserMatrix.h */; }; - 8FB5060805D53C8600153B33 /* FSObjectBrowserMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FB5060005D53C8600153B33 /* FSObjectBrowserMatrix.m */; }; + 8FB5060805D53C8600153B33 /* FSObjectBrowserMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FB5060005D53C8600153B33 /* FSObjectBrowserMatrix.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; 8FB523970C21FE030028B297 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8F85274707F6016900E706F5 /* Cocoa.framework */; }; 8FB5239B0C21FE330028B297 /* ExceptionHandling.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F51B24640271980D01DB4759 /* ExceptionHandling.framework */; }; 8FB524190C2205C20028B297 /* FScriptIBPluginInspector.nib in Resources */ = {isa = PBXBuildFile; fileRef = 8FB524150C2205C20028B297 /* FScriptIBPluginInspector.nib */; }; @@ -1505,7 +1505,7 @@ BA2232B8189FA403002C5B6A /* FSNSAttributedString.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FDCCDC005C0A23000747C0A /* FSNSAttributedString.m */; }; BA2232B9189FA403002C5B6A /* FScriptMenuItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F0B66FC05C5639E0099180D /* FScriptMenuItem.m */; }; BA2232BA189FA403002C5B6A /* FSNSFont.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F658B2805C9694F0040FB24 /* FSNSFont.m */; }; - BA2232BB189FA403002C5B6A /* FSObjectBrowserMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FB5060005D53C8600153B33 /* FSObjectBrowserMatrix.m */; }; + BA2232BB189FA403002C5B6A /* FSObjectBrowserMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FB5060005D53C8600153B33 /* FSObjectBrowserMatrix.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; BA2232BC189FA403002C5B6A /* FSNSString.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E36800D7DFE17BE9C1BD /* FSNSString.m */; }; BA2232BD189FA403002C5B6A /* FSSymbolTable.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F17C07E06B1309C00F07862 /* FSSymbolTable.m */; }; BA2232BE189FA403002C5B6A /* TestFS.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E3A000D7DFE17BE9C1BD /* TestFS.m */; }; @@ -1927,7 +1927,7 @@ BA223478189FA412002C5B6A /* FSNSAttributedString.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FDCCDC005C0A23000747C0A /* FSNSAttributedString.m */; }; BA223479189FA412002C5B6A /* FScriptMenuItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F0B66FC05C5639E0099180D /* FScriptMenuItem.m */; }; BA22347A189FA412002C5B6A /* FSNSFont.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F658B2805C9694F0040FB24 /* FSNSFont.m */; }; - BA22347B189FA412002C5B6A /* FSObjectBrowserMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FB5060005D53C8600153B33 /* FSObjectBrowserMatrix.m */; }; + BA22347B189FA412002C5B6A /* FSObjectBrowserMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FB5060005D53C8600153B33 /* FSObjectBrowserMatrix.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; BA22347C189FA412002C5B6A /* FSNSString.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E36800D7DFE17BE9C1BD /* FSNSString.m */; }; BA22347D189FA412002C5B6A /* FSSymbolTable.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F17C07E06B1309C00F07862 /* FSSymbolTable.m */; }; BA22347E189FA412002C5B6A /* TestFS.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E3A000D7DFE17BE9C1BD /* TestFS.m */; }; @@ -2342,7 +2342,7 @@ BA223629189FA429002C5B6A /* FSNSAttributedString.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FDCCDC005C0A23000747C0A /* FSNSAttributedString.m */; }; BA22362A189FA429002C5B6A /* FScriptMenuItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F0B66FC05C5639E0099180D /* FScriptMenuItem.m */; }; BA22362B189FA429002C5B6A /* FSNSFont.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F658B2805C9694F0040FB24 /* FSNSFont.m */; }; - BA22362C189FA429002C5B6A /* FSObjectBrowserMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FB5060005D53C8600153B33 /* FSObjectBrowserMatrix.m */; }; + BA22362C189FA429002C5B6A /* FSObjectBrowserMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FB5060005D53C8600153B33 /* FSObjectBrowserMatrix.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; BA22362D189FA429002C5B6A /* FSSymbolTable.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F17C07E06B1309C00F07862 /* FSSymbolTable.m */; }; BA22362E189FA429002C5B6A /* FSObjectBrowserViewObjectInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F4E294D075B8E5600F8DCDB /* FSObjectBrowserViewObjectInfo.m */; }; BA22362F189FA429002C5B6A /* FSCollectionInspectorView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FA8EDD307735B3B001BEC7B /* FSCollectionInspectorView.m */; }; @@ -2656,7 +2656,7 @@ BA223771189FA431002C5B6A /* FSNSAttributedString.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FDCCDC005C0A23000747C0A /* FSNSAttributedString.m */; }; BA223772189FA431002C5B6A /* FScriptMenuItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F0B66FC05C5639E0099180D /* FScriptMenuItem.m */; }; BA223773189FA431002C5B6A /* FSNSFont.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F658B2805C9694F0040FB24 /* FSNSFont.m */; }; - BA223774189FA431002C5B6A /* FSObjectBrowserMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FB5060005D53C8600153B33 /* FSObjectBrowserMatrix.m */; }; + BA223774189FA431002C5B6A /* FSObjectBrowserMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FB5060005D53C8600153B33 /* FSObjectBrowserMatrix.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; BA223775189FA431002C5B6A /* FSSymbolTable.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F17C07E06B1309C00F07862 /* FSSymbolTable.m */; }; BA223776189FA431002C5B6A /* FSObjectBrowserViewObjectInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F4E294D075B8E5600F8DCDB /* FSObjectBrowserViewObjectInfo.m */; }; BA223777189FA431002C5B6A /* FSCollectionInspectorView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FA8EDD307735B3B001BEC7B /* FSCollectionInspectorView.m */; }; @@ -2713,6 +2713,24 @@ BA2237AB189FA432002C5B6A /* ExceptionHandling.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F51B24640271980D01DB4759 /* ExceptionHandling.framework */; }; BA2237B2189FAC75002C5B6A /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E2DBA32D161CA7180035A675 /* AVFoundation.framework */; }; BA2237B3189FAC75002C5B6A /* AVKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA223099189F9976002C5B6A /* AVKit.framework */; }; + ED3004E81A1A86EF00675D94 /* FSObjectInspectorViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = ED3004E51A1A86EF00675D94 /* FSObjectInspectorViewController.h */; }; + ED3004E91A1A86EF00675D94 /* FSObjectInspectorViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = ED3004E51A1A86EF00675D94 /* FSObjectInspectorViewController.h */; }; + ED3004EA1A1A86EF00675D94 /* FSObjectInspectorViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = ED3004E51A1A86EF00675D94 /* FSObjectInspectorViewController.h */; }; + ED3004EB1A1A86EF00675D94 /* FSObjectInspectorViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = ED3004E51A1A86EF00675D94 /* FSObjectInspectorViewController.h */; }; + ED3004EC1A1A86EF00675D94 /* FSObjectInspectorViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = ED3004E51A1A86EF00675D94 /* FSObjectInspectorViewController.h */; }; + ED3004ED1A1A86EF00675D94 /* FSObjectInspectorViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = ED3004E51A1A86EF00675D94 /* FSObjectInspectorViewController.h */; }; + ED3004EE1A1A86EF00675D94 /* FSObjectInspectorViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = ED3004E61A1A86EF00675D94 /* FSObjectInspectorViewController.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; + ED3004EF1A1A86EF00675D94 /* FSObjectInspectorViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = ED3004E61A1A86EF00675D94 /* FSObjectInspectorViewController.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; + ED3004F01A1A86EF00675D94 /* FSObjectInspectorViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = ED3004E61A1A86EF00675D94 /* FSObjectInspectorViewController.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; + ED3004F11A1A86EF00675D94 /* FSObjectInspectorViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = ED3004E61A1A86EF00675D94 /* FSObjectInspectorViewController.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; + ED3004F21A1A86EF00675D94 /* FSObjectInspectorViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = ED3004E61A1A86EF00675D94 /* FSObjectInspectorViewController.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; + ED3004F31A1A86EF00675D94 /* FSObjectInspectorViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = ED3004E61A1A86EF00675D94 /* FSObjectInspectorViewController.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; + ED3004F41A1A86EF00675D94 /* FSObjectInspectorViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = ED3004E71A1A86EF00675D94 /* FSObjectInspectorViewController.xib */; }; + ED3004F51A1A86EF00675D94 /* FSObjectInspectorViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = ED3004E71A1A86EF00675D94 /* FSObjectInspectorViewController.xib */; }; + ED3004F61A1A86EF00675D94 /* FSObjectInspectorViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = ED3004E71A1A86EF00675D94 /* FSObjectInspectorViewController.xib */; }; + ED3004F71A1A86EF00675D94 /* FSObjectInspectorViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = ED3004E71A1A86EF00675D94 /* FSObjectInspectorViewController.xib */; }; + ED3004F81A1A86EF00675D94 /* FSObjectInspectorViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = ED3004E71A1A86EF00675D94 /* FSObjectInspectorViewController.xib */; }; + ED3004F91A1A86EF00675D94 /* FSObjectInspectorViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = ED3004E71A1A86EF00675D94 /* FSObjectInspectorViewController.xib */; }; ED8222D61A194FD600C42C72 /* FSObjectInspectorViewModelItem.h in Headers */ = {isa = PBXBuildFile; fileRef = ED8222D41A194FD600C42C72 /* FSObjectInspectorViewModelItem.h */; }; ED8222D71A194FD600C42C72 /* FSObjectInspectorViewModelItem.h in Headers */ = {isa = PBXBuildFile; fileRef = ED8222D41A194FD600C42C72 /* FSObjectInspectorViewModelItem.h */; }; ED8222D81A194FD600C42C72 /* FSObjectInspectorViewModelItem.h in Headers */ = {isa = PBXBuildFile; fileRef = ED8222D41A194FD600C42C72 /* FSObjectInspectorViewModelItem.h */; }; @@ -2720,14 +2738,14 @@ ED8222DA1A194FD600C42C72 /* FSObjectInspectorViewModelItem.h in Headers */ = {isa = PBXBuildFile; fileRef = ED8222D41A194FD600C42C72 /* FSObjectInspectorViewModelItem.h */; }; ED8222DB1A194FD600C42C72 /* FSObjectInspectorViewModelItem.h in Headers */ = {isa = PBXBuildFile; fileRef = ED8222D41A194FD600C42C72 /* FSObjectInspectorViewModelItem.h */; }; ED8222DC1A194FD600C42C72 /* FSObjectInspectorViewModelItem.h in Headers */ = {isa = PBXBuildFile; fileRef = ED8222D41A194FD600C42C72 /* FSObjectInspectorViewModelItem.h */; }; - ED8222DD1A194FD600C42C72 /* FSObjectInspectorViewModelItem.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8222D51A194FD600C42C72 /* FSObjectInspectorViewModelItem.m */; }; - ED8222DE1A194FD600C42C72 /* FSObjectInspectorViewModelItem.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8222D51A194FD600C42C72 /* FSObjectInspectorViewModelItem.m */; }; - ED8222DF1A194FD600C42C72 /* FSObjectInspectorViewModelItem.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8222D51A194FD600C42C72 /* FSObjectInspectorViewModelItem.m */; }; - ED8222E01A194FD600C42C72 /* FSObjectInspectorViewModelItem.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8222D51A194FD600C42C72 /* FSObjectInspectorViewModelItem.m */; }; - ED8222E11A194FD600C42C72 /* FSObjectInspectorViewModelItem.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8222D51A194FD600C42C72 /* FSObjectInspectorViewModelItem.m */; }; - ED8222E21A194FD600C42C72 /* FSObjectInspectorViewModelItem.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8222D51A194FD600C42C72 /* FSObjectInspectorViewModelItem.m */; }; - ED8222E31A194FD600C42C72 /* FSObjectInspectorViewModelItem.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8222D51A194FD600C42C72 /* FSObjectInspectorViewModelItem.m */; }; - ED8222E41A194FD600C42C72 /* FSObjectInspectorViewModelItem.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8222D51A194FD600C42C72 /* FSObjectInspectorViewModelItem.m */; }; + ED8222DD1A194FD600C42C72 /* FSObjectInspectorViewModelItem.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8222D51A194FD600C42C72 /* FSObjectInspectorViewModelItem.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; + ED8222DE1A194FD600C42C72 /* FSObjectInspectorViewModelItem.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8222D51A194FD600C42C72 /* FSObjectInspectorViewModelItem.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; + ED8222DF1A194FD600C42C72 /* FSObjectInspectorViewModelItem.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8222D51A194FD600C42C72 /* FSObjectInspectorViewModelItem.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; + ED8222E01A194FD600C42C72 /* FSObjectInspectorViewModelItem.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8222D51A194FD600C42C72 /* FSObjectInspectorViewModelItem.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; + ED8222E11A194FD600C42C72 /* FSObjectInspectorViewModelItem.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8222D51A194FD600C42C72 /* FSObjectInspectorViewModelItem.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; + ED8222E21A194FD600C42C72 /* FSObjectInspectorViewModelItem.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8222D51A194FD600C42C72 /* FSObjectInspectorViewModelItem.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; + ED8222E31A194FD600C42C72 /* FSObjectInspectorViewModelItem.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8222D51A194FD600C42C72 /* FSObjectInspectorViewModelItem.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; + ED8222E41A194FD600C42C72 /* FSObjectInspectorViewModelItem.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8222D51A194FD600C42C72 /* FSObjectInspectorViewModelItem.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; ED8222E71A19554F00C42C72 /* FSObjectEnumInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = ED8222E51A19554F00C42C72 /* FSObjectEnumInfo.h */; }; ED8222E81A19554F00C42C72 /* FSObjectEnumInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = ED8222E51A19554F00C42C72 /* FSObjectEnumInfo.h */; }; ED8222E91A19554F00C42C72 /* FSObjectEnumInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = ED8222E51A19554F00C42C72 /* FSObjectEnumInfo.h */; }; @@ -2743,6 +2761,821 @@ ED8222F31A19554F00C42C72 /* FSObjectEnumInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8222E61A19554F00C42C72 /* FSObjectEnumInfo.m */; }; ED8222F41A19554F00C42C72 /* FSObjectEnumInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8222E61A19554F00C42C72 /* FSObjectEnumInfo.m */; }; ED8222F51A19554F00C42C72 /* FSObjectEnumInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8222E61A19554F00C42C72 /* FSObjectEnumInfo.m */; }; + EDC2C8DE1A1A943600942777 /* FSDetailedObjectInspector.h in Headers */ = {isa = PBXBuildFile; fileRef = EDC2C8DC1A1A943600942777 /* FSDetailedObjectInspector.h */; }; + EDC2C8DF1A1A943600942777 /* FSDetailedObjectInspector.h in Headers */ = {isa = PBXBuildFile; fileRef = EDC2C8DC1A1A943600942777 /* FSDetailedObjectInspector.h */; }; + EDC2C8E01A1A943600942777 /* FSDetailedObjectInspector.h in Headers */ = {isa = PBXBuildFile; fileRef = EDC2C8DC1A1A943600942777 /* FSDetailedObjectInspector.h */; }; + EDC2C8E11A1A943600942777 /* FSDetailedObjectInspector.h in Headers */ = {isa = PBXBuildFile; fileRef = EDC2C8DC1A1A943600942777 /* FSDetailedObjectInspector.h */; }; + EDC2C8E21A1A943600942777 /* FSDetailedObjectInspector.h in Headers */ = {isa = PBXBuildFile; fileRef = EDC2C8DC1A1A943600942777 /* FSDetailedObjectInspector.h */; }; + EDC2C8E31A1A943600942777 /* FSDetailedObjectInspector.h in Headers */ = {isa = PBXBuildFile; fileRef = EDC2C8DC1A1A943600942777 /* FSDetailedObjectInspector.h */; }; + EDC2C8E41A1A943600942777 /* FSDetailedObjectInspector.m in Sources */ = {isa = PBXBuildFile; fileRef = EDC2C8DD1A1A943600942777 /* FSDetailedObjectInspector.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; + EDC2C8E51A1A943600942777 /* FSDetailedObjectInspector.m in Sources */ = {isa = PBXBuildFile; fileRef = EDC2C8DD1A1A943600942777 /* FSDetailedObjectInspector.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; + EDC2C8E61A1A943600942777 /* FSDetailedObjectInspector.m in Sources */ = {isa = PBXBuildFile; fileRef = EDC2C8DD1A1A943600942777 /* FSDetailedObjectInspector.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; + EDC2C8E71A1A943600942777 /* FSDetailedObjectInspector.m in Sources */ = {isa = PBXBuildFile; fileRef = EDC2C8DD1A1A943600942777 /* FSDetailedObjectInspector.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; + EDC2C8E81A1A943600942777 /* FSDetailedObjectInspector.m in Sources */ = {isa = PBXBuildFile; fileRef = EDC2C8DD1A1A943600942777 /* FSDetailedObjectInspector.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; + EDC2C8E91A1A943600942777 /* FSDetailedObjectInspector.m in Sources */ = {isa = PBXBuildFile; fileRef = EDC2C8DD1A1A943600942777 /* FSDetailedObjectInspector.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; + EDC2C8EA1A1A99BF00942777 /* FSDetailedObjectInspector.h in Headers */ = {isa = PBXBuildFile; fileRef = EDC2C8DC1A1A943600942777 /* FSDetailedObjectInspector.h */; }; + EDC2C8EB1A1A99BF00942777 /* FSDetailedObjectInspector.m in Sources */ = {isa = PBXBuildFile; fileRef = EDC2C8DD1A1A943600942777 /* FSDetailedObjectInspector.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; + EDC2C8EC1A1A99F600942777 /* FSObjectInspectorViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = ED3004E51A1A86EF00675D94 /* FSObjectInspectorViewController.h */; }; + EDC2C8ED1A1A99F600942777 /* FSObjectInspectorViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = ED3004E61A1A86EF00675D94 /* FSObjectInspectorViewController.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; + EDC2C8F01A1AA34D00942777 /* FSObjectInspectorBackgroundView.h in Headers */ = {isa = PBXBuildFile; fileRef = EDC2C8EE1A1AA34D00942777 /* FSObjectInspectorBackgroundView.h */; }; + EDC2C8F11A1AA34D00942777 /* FSObjectInspectorBackgroundView.h in Headers */ = {isa = PBXBuildFile; fileRef = EDC2C8EE1A1AA34D00942777 /* FSObjectInspectorBackgroundView.h */; }; + EDC2C8F21A1AA34D00942777 /* FSObjectInspectorBackgroundView.h in Headers */ = {isa = PBXBuildFile; fileRef = EDC2C8EE1A1AA34D00942777 /* FSObjectInspectorBackgroundView.h */; }; + EDC2C8F31A1AA34D00942777 /* FSObjectInspectorBackgroundView.h in Headers */ = {isa = PBXBuildFile; fileRef = EDC2C8EE1A1AA34D00942777 /* FSObjectInspectorBackgroundView.h */; }; + EDC2C8F41A1AA34D00942777 /* FSObjectInspectorBackgroundView.h in Headers */ = {isa = PBXBuildFile; fileRef = EDC2C8EE1A1AA34D00942777 /* FSObjectInspectorBackgroundView.h */; }; + EDC2C8F51A1AA34D00942777 /* FSObjectInspectorBackgroundView.h in Headers */ = {isa = PBXBuildFile; fileRef = EDC2C8EE1A1AA34D00942777 /* FSObjectInspectorBackgroundView.h */; }; + EDC2C8F61A1AA34D00942777 /* FSObjectInspectorBackgroundView.h in Headers */ = {isa = PBXBuildFile; fileRef = EDC2C8EE1A1AA34D00942777 /* FSObjectInspectorBackgroundView.h */; }; + EDC2C8F71A1AA34D00942777 /* FSObjectInspectorBackgroundView.m in Sources */ = {isa = PBXBuildFile; fileRef = EDC2C8EF1A1AA34D00942777 /* FSObjectInspectorBackgroundView.m */; }; + EDC2C8F81A1AA34D00942777 /* FSObjectInspectorBackgroundView.m in Sources */ = {isa = PBXBuildFile; fileRef = EDC2C8EF1A1AA34D00942777 /* FSObjectInspectorBackgroundView.m */; }; + EDC2C8F91A1AA34D00942777 /* FSObjectInspectorBackgroundView.m in Sources */ = {isa = PBXBuildFile; fileRef = EDC2C8EF1A1AA34D00942777 /* FSObjectInspectorBackgroundView.m */; }; + EDC2C8FA1A1AA34D00942777 /* FSObjectInspectorBackgroundView.m in Sources */ = {isa = PBXBuildFile; fileRef = EDC2C8EF1A1AA34D00942777 /* FSObjectInspectorBackgroundView.m */; }; + EDC2C8FB1A1AA34D00942777 /* FSObjectInspectorBackgroundView.m in Sources */ = {isa = PBXBuildFile; fileRef = EDC2C8EF1A1AA34D00942777 /* FSObjectInspectorBackgroundView.m */; }; + EDC2C8FC1A1AA34D00942777 /* FSObjectInspectorBackgroundView.m in Sources */ = {isa = PBXBuildFile; fileRef = EDC2C8EF1A1AA34D00942777 /* FSObjectInspectorBackgroundView.m */; }; + EDC2C8FD1A1AA34D00942777 /* FSObjectInspectorBackgroundView.m in Sources */ = {isa = PBXBuildFile; fileRef = EDC2C8EF1A1AA34D00942777 /* FSObjectInspectorBackgroundView.m */; }; + EDC2C8FE1A1AA34D00942777 /* FSObjectInspectorBackgroundView.m in Sources */ = {isa = PBXBuildFile; fileRef = EDC2C8EF1A1AA34D00942777 /* FSObjectInspectorBackgroundView.m */; }; + EDC2C9051A1AA50D00942777 /* FSAirplane.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E30F00D7DFE17BE9C1BD /* FSAirplane.h */; }; + EDC2C9061A1AA50D00942777 /* ArrayPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E31300D7DFE17BE9C1BD /* ArrayPrivate.h */; }; + EDC2C9071A1AA50D00942777 /* ArrayRep.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E31400D7DFE17BE9C1BD /* ArrayRep.h */; }; + EDC2C9081A1AA50D00942777 /* ArrayRepDouble.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E31700D7DFE17BE9C1BD /* ArrayRepDouble.h */; }; + EDC2C9091A1AA50D00942777 /* ArrayRepEmpty.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E31900D7DFE17BE9C1BD /* ArrayRepEmpty.h */; }; + EDC2C90A1A1AA50D00942777 /* ArrayRepId.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E31B00D7DFE17BE9C1BD /* ArrayRepId.h */; }; + EDC2C90B1A1AA50D00942777 /* FSCollectionInspector.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E31D00D7DFE17BE9C1BD /* FSCollectionInspector.h */; }; + EDC2C90C1A1AA50D00942777 /* FSObjectBrowser.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E32000D7DFE17BE9C1BD /* FSObjectBrowser.h */; }; + EDC2C90D1A1AA50D00942777 /* FSObjectBrowserArgumentPanel.h in Headers */ = {isa = PBXBuildFile; fileRef = F5FA8A6C0215D44C01AFEEFD /* FSObjectBrowserArgumentPanel.h */; }; + EDC2C90E1A1AA50D00942777 /* FSObjectBrowserCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E32200D7DFE17BE9C1BD /* FSObjectBrowserCell.h */; }; + EDC2C90F1A1AA50D00942777 /* FSObjectBrowserView.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E32400D7DFE17BE9C1BD /* FSObjectBrowserView.h */; }; + EDC2C9101A1AA50D00942777 /* FSBlock.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E32600D7DFE17BE9C1BD /* FSBlock.h */; }; + EDC2C9111A1AA50D00942777 /* BlockInspector.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E32800D7DFE17BE9C1BD /* BlockInspector.h */; }; + EDC2C9121A1AA50D00942777 /* BlockPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E32B00D7DFE17BE9C1BD /* BlockPrivate.h */; }; + EDC2C9131A1AA50D00942777 /* BlockRep.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E32C00D7DFE17BE9C1BD /* BlockRep.h */; }; + EDC2C9141A1AA50D00942777 /* BlockSignature.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E32E00D7DFE17BE9C1BD /* BlockSignature.h */; }; + EDC2C9151A1AA50D00942777 /* BlockStackElem.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E32F00D7DFE17BE9C1BD /* BlockStackElem.h */; }; + EDC2C9161A1AA50D00942777 /* build_config.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E33200D7DFE17BE9C1BD /* build_config.h */; }; + EDC2C9171A1AA50D00942777 /* FSDetailedObjectInspector.h in Headers */ = {isa = PBXBuildFile; fileRef = EDC2C8DC1A1A943600942777 /* FSDetailedObjectInspector.h */; }; + EDC2C9181A1AA50D00942777 /* CLIView.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E33300D7DFE17BE9C1BD /* CLIView.h */; }; + EDC2C9191A1AA50D00942777 /* FSCompilationResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E33500D7DFE17BE9C1BD /* FSCompilationResult.h */; }; + EDC2C91A1A1AA50D00942777 /* CompiledCodeNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E33700D7DFE17BE9C1BD /* CompiledCodeNode.h */; }; + EDC2C91B1A1AA50D00942777 /* FSCompiler.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E33900D7DFE17BE9C1BD /* FSCompiler.h */; }; + EDC2C91C1A1AA50D00942777 /* FSConstantsInitialization.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E33B00D7DFE17BE9C1BD /* FSConstantsInitialization.h */; }; + EDC2C91D1A1AA50D00942777 /* FSExecEngine.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E33D00D7DFE17BE9C1BD /* FSExecEngine.h */; }; + EDC2C91E1A1AA50D00942777 /* FSExecutor.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E33F00D7DFE17BE9C1BD /* FSExecutor.h */; }; + EDC2C91F1A1AA50D00942777 /* FSFlight.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E34200D7DFE17BE9C1BD /* FSFlight.h */; }; + EDC2C9201A1AA50D00942777 /* FSArchiver.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E34500D7DFE17BE9C1BD /* FSArchiver.h */; }; + EDC2C9211A1AA50D00942777 /* FSBoolean.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E34700D7DFE17BE9C1BD /* FSBoolean.h */; }; + EDC2C9221A1AA50D00942777 /* FSBooleanPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E34900D7DFE17BE9C1BD /* FSBooleanPrivate.h */; }; + EDC2C9231A1AA50D00942777 /* FScript.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E34C00D7DFE17BE9C1BD /* FScript.h */; }; + EDC2C9241A1AA50D00942777 /* FScriptFunctions.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E34E00D7DFE17BE9C1BD /* FScriptFunctions.h */; }; + EDC2C9251A1AA50D00942777 /* FScriptTextView.h in Headers */ = {isa = PBXBuildFile; fileRef = F5FBEF2802149D32018C0134 /* FScriptTextView.h */; }; + EDC2C9261A1AA50D00942777 /* FSInterpreter.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E35000D7DFE17BE9C1BD /* FSInterpreter.h */; }; + EDC2C9271A1AA50D00942777 /* FSInterpreterResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E35200D7DFE17BE9C1BD /* FSInterpreterResult.h */; }; + EDC2C9281A1AA50D00942777 /* FSInterpreterResultPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E35400D7DFE17BE9C1BD /* FSInterpreterResultPrivate.h */; }; + EDC2C9291A1AA50D00942777 /* FSInterpreterView.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E35500D7DFE17BE9C1BD /* FSInterpreterView.h */; }; + EDC2C92A1A1AA50D00942777 /* FSInterpreterViewIBHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E35700D7DFE17BE9C1BD /* FSInterpreterViewIBHeader.h */; }; + EDC2C92B1A1AA50D00942777 /* FSNSArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E35800D7DFE17BE9C1BD /* FSNSArray.h */; }; + EDC2C92C1A1AA50D00942777 /* FSNSArrayPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E35A00D7DFE17BE9C1BD /* FSNSArrayPrivate.h */; }; + EDC2C92D1A1AA50D00942777 /* FSNSDate.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E35B00D7DFE17BE9C1BD /* FSNSDate.h */; }; + EDC2C92E1A1AA50D00942777 /* CHMutableDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = EDFB2FFD1A188B4E002C8DD7 /* CHMutableDictionary.h */; }; + EDC2C92F1A1AA50D00942777 /* FSNSDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E35D00D7DFE17BE9C1BD /* FSNSDictionary.h */; }; + EDC2C9301A1AA50D00942777 /* FSNSDistantObject.h in Headers */ = {isa = PBXBuildFile; fileRef = F51CA01401B013C401BFBB24 /* FSNSDistantObject.h */; }; + EDC2C9311A1AA50D00942777 /* FSNSMutableString.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E35F00D7DFE17BE9C1BD /* FSNSMutableString.h */; }; + EDC2C9321A1AA50D00942777 /* FSNSNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E36100D7DFE17BE9C1BD /* FSNSNumber.h */; }; + EDC2C9331A1AA50D00942777 /* FSNSObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E36300D7DFE17BE9C1BD /* FSNSObject.h */; }; + EDC2C9341A1AA50D00942777 /* Util.h in Headers */ = {isa = PBXBuildFile; fileRef = EDFB2FFF1A188B4E002C8DD7 /* Util.h */; }; + EDC2C9351A1AA50D00942777 /* FSNSProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E36500D7DFE17BE9C1BD /* FSNSProxy.h */; }; + EDC2C9361A1AA50D00942777 /* FSPattern.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E36C00D7DFE17BE9C1BD /* FSPattern.h */; }; + EDC2C9371A1AA50D00942777 /* FSUnarchiver.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E37200D7DFE17BE9C1BD /* FSUnarchiver.h */; }; + EDC2C9381A1AA50D00942777 /* FSVoid.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E37400D7DFE17BE9C1BD /* FSVoid.h */; }; + EDC2C9391A1AA50D00942777 /* FSVoidPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E37600D7DFE17BE9C1BD /* FSVoidPrivate.h */; }; + EDC2C93A1A1AA50D00942777 /* FSGenericObjectInspector.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E37700D7DFE17BE9C1BD /* FSGenericObjectInspector.h */; }; + EDC2C93B1A1AA50D00942777 /* KTestManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 66029E580161E0650055708C /* KTestManager.h */; }; + EDC2C93C1A1AA50D00942777 /* MessagePatternCodeNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E37F00D7DFE17BE9C1BD /* MessagePatternCodeNode.h */; }; + EDC2C93D1A1AA50D00942777 /* FSMiscTools.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E38100D7DFE17BE9C1BD /* FSMiscTools.h */; }; + EDC2C93E1A1AA50D00942777 /* FSMsgContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E38300D7DFE17BE9C1BD /* FSMsgContext.h */; }; + EDC2C93F1A1AA50D00942777 /* FSNewlyAllocatedObjectHolder.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E38700D7DFE17BE9C1BD /* FSNewlyAllocatedObjectHolder.h */; }; + EDC2C9401A1AA50D00942777 /* FSNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E38D00D7DFE17BE9C1BD /* FSNumber.h */; }; + EDC2C9411A1AA50D00942777 /* NumberPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E38F00D7DFE17BE9C1BD /* NumberPrivate.h */; }; + EDC2C9421A1AA50D00942777 /* FSPilot.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E39000D7DFE17BE9C1BD /* FSPilot.h */; }; + EDC2C9431A1AA50D00942777 /* FSReplacementForCoderForClass.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E39400D7DFE17BE9C1BD /* FSReplacementForCoderForClass.h */; }; + EDC2C9441A1AA50D00942777 /* FSObjectEnumInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = ED8222E51A19554F00C42C72 /* FSObjectEnumInfo.h */; }; + EDC2C9451A1AA50D00942777 /* ShellView.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E39600D7DFE17BE9C1BD /* ShellView.h */; }; + EDC2C9461A1AA50D00942777 /* Space.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E39800D7DFE17BE9C1BD /* Space.h */; }; + EDC2C9471A1AA50D00942777 /* FSCommandHistory.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E39A00D7DFE17BE9C1BD /* FSCommandHistory.h */; }; + EDC2C9481A1AA50D00942777 /* FSSystem.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E39E00D7DFE17BE9C1BD /* FSSystem.h */; }; + EDC2C9491A1AA50D00942777 /* DOTest.h in Headers */ = {isa = PBXBuildFile; fileRef = F5F13B4701C8BE3401CB6DF7 /* DOTest.h */; }; + EDC2C94A1A1AA50D00942777 /* FSNSProtocolChecker.h in Headers */ = {isa = PBXBuildFile; fileRef = F5F140590223CC9D01DD698C /* FSNSProtocolChecker.h */; }; + EDC2C94B1A1AA50D00942777 /* FScriptAppController.h in Headers */ = {isa = PBXBuildFile; fileRef = F5F1A9F9022E9A96011160FE /* FScriptAppController.h */; }; + EDC2C94C1A1AA50D00942777 /* FSObjectBrowserToolbar.h in Headers */ = {isa = PBXBuildFile; fileRef = F538EF6C0279FD3C01345511 /* FSObjectBrowserToolbar.h */; }; + EDC2C94D1A1AA50D00942777 /* FSEvalCommand.h in Headers */ = {isa = PBXBuildFile; fileRef = F538EF700279FD3C01345511 /* FSEvalCommand.h */; }; + EDC2C94E1A1AA50D00942777 /* FSServicesProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = F538EF7C0279FD3C01345511 /* FSServicesProvider.h */; }; + EDC2C94F1A1AA50D00942777 /* FSTask.h in Headers */ = {isa = PBXBuildFile; fileRef = F538EF7E0279FD3C01345511 /* FSTask.h */; }; + EDC2C9501A1AA50D00942777 /* FSObjectBrowserToolbarButton.h in Headers */ = {isa = PBXBuildFile; fileRef = F5F0AD420285792F0103CD49 /* FSObjectBrowserToolbarButton.h */; }; + EDC2C9511A1AA50D00942777 /* FSObjectBrowserButtonCtxBlock.h in Headers */ = {isa = PBXBuildFile; fileRef = F5F0261F02C243D20155CB83 /* FSObjectBrowserButtonCtxBlock.h */; }; + EDC2C9521A1AA50D00942777 /* DOCustom.h in Headers */ = {isa = PBXBuildFile; fileRef = F5F1AAAE022E9E4F011160FE /* DOCustom.h */; }; + EDC2C9531A1AA50D00942777 /* FSObjectInspectorViewModelItem.h in Headers */ = {isa = PBXBuildFile; fileRef = ED8222D41A194FD600C42C72 /* FSObjectInspectorViewModelItem.h */; }; + EDC2C9541A1AA50D00942777 /* Pointer.h in Headers */ = {isa = PBXBuildFile; fileRef = F505648002DF417501FE0326 /* Pointer.h */; }; + EDC2C9551A1AA50D00942777 /* FSObjectInspectorViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = ED3004E51A1A86EF00675D94 /* FSObjectInspectorViewController.h */; }; + EDC2C9561A1AA50D00942777 /* PointerPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = F5F856C002EB281C01F7E6F0 /* PointerPrivate.h */; }; + EDC2C9571A1AA50D00942777 /* metamacros.h in Headers */ = {isa = PBXBuildFile; fileRef = EDFB302E1A18CA26002C8DD7 /* metamacros.h */; }; + EDC2C9581A1AA50D00942777 /* FSInterpreterPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = F54CA17602FB2CAF01C25A35 /* FSInterpreterPrivate.h */; }; + EDC2C9591A1AA50D00942777 /* FSIdentifierFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = F5073A2102FC5400013656B0 /* FSIdentifierFormatter.h */; }; + EDC2C95A1A1AA50D00942777 /* FSObjectFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = F5EBBE820321029601CA10C6 /* FSObjectFormatter.h */; }; + EDC2C95B1A1AA50D00942777 /* FSSystemPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = F5A25E260357B373011A39F8 /* FSSystemPrivate.h */; }; + EDC2C95C1A1AA50D00942777 /* FSKeyedUnarchiver.h in Headers */ = {isa = PBXBuildFile; fileRef = F55D44C40358A88801B9E934 /* FSKeyedUnarchiver.h */; }; + EDC2C95D1A1AA50D00942777 /* FSKeyedArchiver.h in Headers */ = {isa = PBXBuildFile; fileRef = F55D44CE0358B5D201B9E934 /* FSKeyedArchiver.h */; }; + EDC2C95E1A1AA50D00942777 /* FSConstantListBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = F52EECA6036210E2016141BB /* FSConstantListBuilder.h */; }; + EDC2C95F1A1AA50D00942777 /* FSImageInspector.h in Headers */ = {isa = PBXBuildFile; fileRef = F54B55B9036B45770140C608 /* FSImageInspector.h */; }; + EDC2C9601A1AA50D00942777 /* FSNSImage.h in Headers */ = {isa = PBXBuildFile; fileRef = F54B55C8036B4A330140C608 /* FSNSImage.h */; }; + EDC2C9611A1AA50D00942777 /* FSObjectBrowserToolbarItem.h in Headers */ = {isa = PBXBuildFile; fileRef = F58090CF03755FC701AED2EF /* FSObjectBrowserToolbarItem.h */; }; + EDC2C9621A1AA50D00942777 /* FSNSObjectPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F63CC08044B95DB00B84480 /* FSNSObjectPrivate.h */; }; + EDC2C9631A1AA50D00942777 /* FSArrayEnumerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FA3AE55044D4D6700CF7A3A /* FSArrayEnumerator.h */; }; + EDC2C9641A1AA50D00942777 /* FSNSMutableArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F66F85404666E8100AFC811 /* FSNSMutableArray.h */; }; + EDC2C9651A1AA50D00942777 /* FSObjectBrowserButtonsInspector.h in Headers */ = {isa = PBXBuildFile; fileRef = F5F9569602B272FB0121B3BA /* FSObjectBrowserButtonsInspector.h */; }; + EDC2C9661A1AA50D00942777 /* ArrayRepBoolean.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D4BE29038511FF01461810 /* ArrayRepBoolean.h */; }; + EDC2C9671A1AA50D00942777 /* FSNSValue.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F553BF70585222700A92293 /* FSNSValue.h */; }; + EDC2C9681A1AA50D00942777 /* FSReplacementForCoderForNilInArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F7D7DB7058E32CD00F1B8A8 /* FSReplacementForCoderForNilInArray.h */; }; + EDC2C9691A1AA50D00942777 /* FSNamedNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F0E3B7E059F3DBB003F6CE9 /* FSNamedNumber.h */; }; + EDC2C96A1A1AA50D00942777 /* FSCollectionInspectorTableView.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F60216E05A25CDC0004EFF1 /* FSCollectionInspectorTableView.h */; }; + EDC2C96B1A1AA50D00942777 /* FSNSSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F60F24505A9FE8B00985FEC /* FSNSSet.h */; }; + EDC2C96C1A1AA50D00942777 /* FSAttributedStringInspector.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FDCCD4E05C09F8200747C0A /* FSAttributedStringInspector.h */; }; + EDC2C96D1A1AA50D00942777 /* FSNSAttributedString.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FDCCDBF05C0A23000747C0A /* FSNSAttributedString.h */; }; + EDC2C96E1A1AA50D00942777 /* FSInterpreterViewPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F71F72205C43A7D00C34794 /* FSInterpreterViewPrivate.h */; }; + EDC2C96F1A1AA50D00942777 /* FScriptMenuItem.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F0B66FB05C5639E0099180D /* FScriptMenuItem.h */; }; + EDC2C9701A1AA50D00942777 /* FSNSFont.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F658B2705C9694F0040FB24 /* FSNSFont.h */; }; + EDC2C9711A1AA50D00942777 /* FSObjectBrowserMatrix.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FB505FF05D53C8600153B33 /* FSObjectBrowserMatrix.h */; }; + EDC2C9721A1AA50D00942777 /* FSNSString.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E36700D7DFE17BE9C1BD /* FSNSString.h */; }; + EDC2C9731A1AA50D00942777 /* CHBidirectionalDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = EDFB2FFB1A188B4E002C8DD7 /* CHBidirectionalDictionary.h */; }; + EDC2C9741A1AA50D00942777 /* FSNSStringPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E36900D7DFE17BE9C1BD /* FSNSStringPrivate.h */; }; + EDC2C9751A1AA50D00942777 /* FSSymbolTable.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F17C07D06B1309C00F07862 /* FSSymbolTable.h */; }; + EDC2C9761A1AA50D00942777 /* TestFS.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FBB10A4044E28FD00181279 /* TestFS.h */; }; + EDC2C9771A1AA50D00942777 /* FSObjectBrowserViewObjectInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F4E294C075B8E5600F8DCDB /* FSObjectBrowserViewObjectInfo.h */; }; + EDC2C9781A1AA50D00942777 /* FSCollectionInspectorView.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FA8EDC607735B3B001BEC7B /* FSCollectionInspectorView.h */; }; + EDC2C9791A1AA50D00942777 /* ArrayRepFetchRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FBC2877077B7D5200F9B4A2 /* ArrayRepFetchRequest.h */; }; + EDC2C97A1A1AA50D00942777 /* FSPointer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F8EA70B077F6A5200AC1C96 /* FSPointer.h */; }; + EDC2C97B1A1AA50D00942777 /* FSGenericPointer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F8EA779077F6C9300AC1C96 /* FSGenericPointer.h */; }; + EDC2C97C1A1AA50D00942777 /* FSPointerPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F8EA7E8077F719800AC1C96 /* FSPointerPrivate.h */; }; + EDC2C97D1A1AA50D00942777 /* FSGenericPointerPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F8EA841077F79A000AC1C96 /* FSGenericPointerPrivate.h */; }; + EDC2C97E1A1AA50D00942777 /* FSObjectPointer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FE9AE12078071CC005B2CC4 /* FSObjectPointer.h */; }; + EDC2C97F1A1AA50D00942777 /* FSObjectPointerPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FE9AE8207807269005B2CC4 /* FSObjectPointerPrivate.h */; }; + EDC2C9801A1AA50D00942777 /* FSManagedObjectContextInspector.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F37AEC2078B7E900083565D /* FSManagedObjectContextInspector.h */; }; + EDC2C9811A1AA50D00942777 /* FSObjectBrowserNamedObjectWrapper.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F86923607F19BA8000D20A4 /* FSObjectBrowserNamedObjectWrapper.h */; }; + EDC2C9821A1AA50D00942777 /* FSInspectorUniquier.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F7F4F9C07FB274C008E42F4 /* FSInspectorUniquier.h */; }; + EDC2C9831A1AA50D00942777 /* FSPredicateTextView.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F95E3C108034A670030B65C /* FSPredicateTextView.h */; }; + EDC2C9841A1AA50D00942777 /* FSCoreDataSample.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FE7E0E6082AD964008231E8 /* FSCoreDataSample.h */; }; + EDC2C9851A1AA50D00942777 /* FSNSManagedObjectContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F5189E707F072EA00A50735 /* FSNSManagedObjectContext.h */; }; + EDC2C9861A1AA50D00942777 /* FSObjectBrowserSearchField.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F585F6E059B23F100C12B6F /* FSObjectBrowserSearchField.h */; }; + EDC2C9871A1AA50D00942777 /* FSBlockCompilationResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F90A2EF096DB0660064F4BC /* FSBlockCompilationResult.h */; }; + EDC2C9881A1AA50D00942777 /* FSReturnSignal.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FD7D4A60975B377009B2685 /* FSReturnSignal.h */; }; + EDC2C9891A1AA50D00942777 /* FSConstantsDictionaryGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F92F0340463F03300F4C61F /* FSConstantsDictionaryGenerator.h */; }; + EDC2C98A1A1AA50D00942777 /* FSMethod.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F3C13980C65E66400948776 /* FSMethod.h */; }; + EDC2C98B1A1AA50D00942777 /* FSCNClassDefinition.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F5AD3200D05CFFE000CEAC6 /* FSCNClassDefinition.h */; }; + EDC2C98C1A1AA50D00942777 /* FSCNBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FE6397E0D09C0F400255EBA /* FSCNBase.h */; }; + EDC2C98D1A1AA50D00942777 /* FSCNIdentifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FE6398E0D09DCB600255EBA /* FSCNIdentifier.h */; }; + EDC2C98E1A1AA50D00942777 /* FSTestObjCClass1.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FE3DD200D26D49900A1D767 /* FSTestObjCClass1.h */; }; + EDC2C98F1A1AA50D00942777 /* FSTestObjCClass2.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F4822020D2C317700754A4E /* FSTestObjCClass2.h */; }; + EDC2C9901A1AA50D00942777 /* FSCNCategory.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F8112F00D85E58200CB3407 /* FSCNCategory.h */; }; + EDC2C9911A1AA50D00942777 /* FSCNMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F59CA6F0D86DD0800D67A78 /* FSCNMessage.h */; }; + EDC2C9921A1AA50D00942777 /* FSCNSuper.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F72237D0D870C6A00394C99 /* FSCNSuper.h */; }; + EDC2C9931A1AA50D00942777 /* FSCNUnaryMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F2E341E0D8DB61C00912543 /* FSCNUnaryMessage.h */; }; + EDC2C9941A1AA50D00942777 /* FSCNBinaryMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F2E34310D8DBF6A00912543 /* FSCNBinaryMessage.h */; }; + EDC2C9951A1AA50D00942777 /* FSCNKeywordMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F2E343A0D8DBFE700912543 /* FSCNKeywordMessage.h */; }; + EDC2C9961A1AA50D00942777 /* FSCNCascade.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F5900130D9468FC003A8B17 /* FSCNCascade.h */; }; + EDC2C9971A1AA50D00942777 /* FSCNStatementList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F8F58640D9FE6A900ED0FED /* FSCNStatementList.h */; }; + EDC2C9981A1AA50D00942777 /* FSCNPrecomputedObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F747DA70DA03AE200148342 /* FSCNPrecomputedObject.h */; }; + EDC2C9991A1AA50D00942777 /* FSCNArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F747DB60DA0467100148342 /* FSCNArray.h */; }; + EDC2C99A1A1AA50D00942777 /* FSCNBlock.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FAE79AA0DA0ED5D00CB6E14 /* FSCNBlock.h */; }; + EDC2C99B1A1AA50D00942777 /* FSCNAssignment.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FAE79F10DA109C500CB6E14 /* FSCNAssignment.h */; }; + EDC2C99C1A1AA50D00942777 /* FSCNMethod.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F45CBBD0DA813F200AFA8C8 /* FSCNMethod.h */; }; + EDC2C99D1A1AA50D00942777 /* FSCNReturn.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FD0A3120DD7276000E47459 /* FSCNReturn.h */; }; + EDC2C99E1A1AA50D00942777 /* FSObjectInspectorBackgroundView.h in Headers */ = {isa = PBXBuildFile; fileRef = EDC2C8EE1A1AA34D00942777 /* FSObjectInspectorBackgroundView.h */; }; + EDC2C99F1A1AA50D00942777 /* FSClassDefinition.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F8949D50DE08B110094EC14 /* FSClassDefinition.h */; }; + EDC2C9A01A1AA50D00942777 /* FSTranscript.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F2DE6590E57254700CF83CB /* FSTranscript.h */; }; + EDC2C9A11A1AA50D00942777 /* FSArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FE6AD8F0EC740650096019D /* FSArray.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EDC2C9A21A1AA50D00942777 /* Array_fscript.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F31A4C00EC74A2E00D1B8E8 /* Array_fscript.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EDC2C9A31A1AA50D00942777 /* Block_fscript.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FCA00C10EEAF34300B10420 /* Block_fscript.h */; }; + EDC2C9A41A1AA50D00942777 /* Number_fscript.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FBB2FF00EEB3467007A3163 /* Number_fscript.h */; }; + EDC2C9A51A1AA50D00942777 /* FSGlobalScope.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FB9D5970F1CEE2100E10274 /* FSGlobalScope.h */; }; + EDC2C9A61A1AA50D00942777 /* FSNSFileHandle.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F9D04170F1DF1CB001B8286 /* FSNSFileHandle.h */; }; + EDC2C9A71A1AA50D00942777 /* FSAssociation.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F940B810F2393B0004525E1 /* FSAssociation.h */; }; + EDC2C9A81A1AA50D00942777 /* FSCNDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F940C6E0F23BC2E004525E1 /* FSCNDictionary.h */; }; + EDC2C9A91A1AA50D00942777 /* FSObjectBrowserBottomBarTextDisplay.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F7A71290F48397C00E95364 /* FSObjectBrowserBottomBarTextDisplay.h */; }; + EDC2C9AA1A1AA50D00942777 /* FSNSAffineTransform.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F2D72090F6BD9B100F0862A /* FSNSAffineTransform.h */; }; + EDC2C9AB1A1AA50D00942777 /* FSDemoAssistant.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F9636430F8DF6AB00A70F39 /* FSDemoAssistant.h */; }; + EDC2C9AC1A1AA50D00942777 /* FSNewlyAllocatedObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FCA593110883B0100F67841 /* FSNewlyAllocatedObject.h */; }; + EDC2C9AD1A1AA50D00942777 /* FSWorksWhenModalWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F5EDA00109B384A003A2F4C /* FSWorksWhenModalWindow.h */; }; + EDC2C9AE1A1AA50D00942777 /* FSNSMutableDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F44270B116549C700E88F21 /* FSNSMutableDictionary.h */; }; + EDC2C9B01A1AA50D00942777 /* FSTest2.app in Resources */ = {isa = PBXBuildFile; fileRef = 8FD37B9F08472E0F00524B98 /* FSTest2.app */; }; + EDC2C9B11A1AA50D00942777 /* FSTest1.app in Resources */ = {isa = PBXBuildFile; fileRef = 8FD37BA108472E0F00524B98 /* FSTest1.app */; }; + EDC2C9B21A1AA50D00942777 /* FSObjectBrowserButtonsInspector.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDFB2FF21A17E345002C8DD7 /* FSObjectBrowserButtonsInspector.xib */; }; + EDC2C9B31A1AA50D00942777 /* FSCollectionInspector.nib in Resources */ = {isa = PBXBuildFile; fileRef = 0CD4E31F00D7DFE17BE9C1BD /* FSCollectionInspector.nib */; }; + EDC2C9B41A1AA50D00942777 /* blockInspector.nib in Resources */ = {isa = PBXBuildFile; fileRef = 0CD4E32A00D7DFE17BE9C1BD /* blockInspector.nib */; }; + EDC2C9B51A1AA50D00942777 /* FlightTutorial.txt in Resources */ = {isa = PBXBuildFile; fileRef = 0CD4E34400D7DFE17BE9C1BD /* FlightTutorial.txt */; }; + EDC2C9B61A1AA50D00942777 /* genObjInspector.nib in Resources */ = {isa = PBXBuildFile; fileRef = 0CD4E37900D7DFE17BE9C1BD /* genObjInspector.nib */; }; + EDC2C9B71A1AA50D00942777 /* FSConsole.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDE508D119DD4D310012F16A /* FSConsole.xib */; }; + EDC2C9B81A1AA50D00942777 /* KTest.txt in Resources */ = {isa = PBXBuildFile; fileRef = 0CD4E37D00D7DFE17BE9C1BD /* KTest.txt */; }; + EDC2C9B91A1AA50D00942777 /* license.txt in Resources */ = {isa = PBXBuildFile; fileRef = 0CD4E37E00D7DFE17BE9C1BD /* license.txt */; }; + EDC2C9BA1A1AA50D00942777 /* fs.icns in Resources */ = {isa = PBXBuildFile; fileRef = F5F1A9F7022E9A96011160FE /* fs.icns */; }; + EDC2C9BB1A1AA50D00942777 /* FScriptAppPreference.nib in Resources */ = {isa = PBXBuildFile; fileRef = F5F1A9FB022E9A96011160FE /* FScriptAppPreference.nib */; }; + EDC2C9BC1A1AA50D00942777 /* fs.nib in Resources */ = {isa = PBXBuildFile; fileRef = F598CDB7025CF7E5011B2E41 /* fs.nib */; }; + EDC2C9BD1A1AA50D00942777 /* fs.scriptSuite in Resources */ = {isa = PBXBuildFile; fileRef = F538EF6E0279FD3C01345511 /* fs.scriptSuite */; }; + EDC2C9BE1A1AA50D00942777 /* fs.scriptTerminology in Resources */ = {isa = PBXBuildFile; fileRef = F538EF6F0279FD3C01345511 /* fs.scriptTerminology */; }; + EDC2C9BF1A1AA50D00942777 /* FSImageInspector.nib in Resources */ = {isa = PBXBuildFile; fileRef = F54B55C3036B48690140C608 /* FSImageInspector.nib */; }; + EDC2C9C01A1AA50D00942777 /* ArrayTableView.nib in Resources */ = {isa = PBXBuildFile; fileRef = F58090FC03756D2401AED2EF /* ArrayTableView.nib */; }; + EDC2C9C11A1AA50D00942777 /* constantsDictionary in Resources */ = {isa = PBXBuildFile; fileRef = 8F92F0380463F2A400F4C61F /* constantsDictionary */; }; + EDC2C9C21A1AA50D00942777 /* FSObjectInspectorViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = ED3004E71A1A86EF00675D94 /* FSObjectInspectorViewController.xib */; }; + EDC2C9C31A1AA50D00942777 /* FSAttributedStringInspector.nib in Resources */ = {isa = PBXBuildFile; fileRef = 8FDCCD7A05C0A0A000747C0A /* FSAttributedStringInspector.nib */; }; + EDC2C9C41A1AA50D00942777 /* FScriptPreferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDE508DA19DD4FDC0012F16A /* FScriptPreferences.xib */; }; + EDC2C9C51A1AA50D00942777 /* run.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8F2D066F05CED9B9007EA81B /* run.tiff */; }; + EDC2C9C61A1AA50D00942777 /* build.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8F56036505CF22660044FA65 /* build.tiff */; }; + EDC2C9C71A1AA50D00942777 /* FSCollectionInspectorView.nib in Resources */ = {isa = PBXBuildFile; fileRef = 8FA8EF9107739FD4001BEC7B /* FSCollectionInspectorView.nib */; }; + EDC2C9C81A1AA50D00942777 /* FSManagedObjectContextInspector.nib in Resources */ = {isa = PBXBuildFile; fileRef = 8FCA6B79078E0E4F005FC6B2 /* FSManagedObjectContextInspector.nib */; }; + EDC2C9C91A1AA50D00942777 /* FSMovieInspector.nib in Resources */ = {isa = PBXBuildFile; fileRef = 8F7472BE056B7ACE00E87339 /* FSMovieInspector.nib */; }; + EDC2C9CA1A1AA50D00942777 /* FSTestClasses.txt in Resources */ = {isa = PBXBuildFile; fileRef = 8FE3DC990D26C0FD00A1D767 /* FSTestClasses.txt */; }; + EDC2C9CB1A1AA50D00942777 /* DemoAssistant.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8F9636480F8DF86600A70F39 /* DemoAssistant.xib */; }; + EDC2C9CD1A1AA50D00942777 /* FSAirplane.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E31000D7DFE17BE9C1BD /* FSAirplane.m */; }; + EDC2C9CE1A1AA50D00942777 /* ArrayRepDouble.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E31800D7DFE17BE9C1BD /* ArrayRepDouble.m */; }; + EDC2C9CF1A1AA50D00942777 /* ArrayRepEmpty.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E31A00D7DFE17BE9C1BD /* ArrayRepEmpty.m */; }; + EDC2C9D01A1AA50D00942777 /* ArrayRepId.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E31C00D7DFE17BE9C1BD /* ArrayRepId.m */; }; + EDC2C9D11A1AA50D00942777 /* FSCollectionInspector.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E31E00D7DFE17BE9C1BD /* FSCollectionInspector.m */; }; + EDC2C9D21A1AA50D00942777 /* FSObjectBrowser.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32100D7DFE17BE9C1BD /* FSObjectBrowser.m */; }; + EDC2C9D31A1AA50D00942777 /* FSObjectBrowserArgumentPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = F5FA8A6D0215D44C01AFEEFD /* FSObjectBrowserArgumentPanel.m */; }; + EDC2C9D41A1AA50D00942777 /* FSObjectBrowserCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32300D7DFE17BE9C1BD /* FSObjectBrowserCell.m */; }; + EDC2C9D51A1AA50D00942777 /* FSObjectBrowserView.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32500D7DFE17BE9C1BD /* FSObjectBrowserView.m */; }; + EDC2C9D61A1AA50D00942777 /* FSBlock.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32700D7DFE17BE9C1BD /* FSBlock.m */; }; + EDC2C9D71A1AA50D00942777 /* BlockInspector.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32900D7DFE17BE9C1BD /* BlockInspector.m */; }; + EDC2C9D81A1AA50D00942777 /* BlockRep.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32D00D7DFE17BE9C1BD /* BlockRep.m */; }; + EDC2C9D91A1AA50D00942777 /* BlockStackElem.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E33000D7DFE17BE9C1BD /* BlockStackElem.m */; }; + EDC2C9DA1A1AA50D00942777 /* CLIView.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E33400D7DFE17BE9C1BD /* CLIView.m */; }; + EDC2C9DB1A1AA50D00942777 /* FSCompilationResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E33600D7DFE17BE9C1BD /* FSCompilationResult.m */; }; + EDC2C9DC1A1AA50D00942777 /* FSObjectInspectorViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = ED3004E61A1A86EF00675D94 /* FSObjectInspectorViewController.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; + EDC2C9DD1A1AA50D00942777 /* CompiledCodeNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E33800D7DFE17BE9C1BD /* CompiledCodeNode.m */; }; + EDC2C9DE1A1AA50D00942777 /* FSCompiler.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E33A00D7DFE17BE9C1BD /* FSCompiler.m */; }; + EDC2C9DF1A1AA50D00942777 /* FSConstantsInitialization.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E33C00D7DFE17BE9C1BD /* FSConstantsInitialization.m */; }; + EDC2C9E01A1AA50D00942777 /* FSExecEngine.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E33E00D7DFE17BE9C1BD /* FSExecEngine.m */; }; + EDC2C9E11A1AA50D00942777 /* FSExecutor.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E34000D7DFE17BE9C1BD /* FSExecutor.m */; }; + EDC2C9E21A1AA50D00942777 /* FSFlight.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E34300D7DFE17BE9C1BD /* FSFlight.m */; }; + EDC2C9E31A1AA50D00942777 /* Util.m in Sources */ = {isa = PBXBuildFile; fileRef = EDFB30001A188B4E002C8DD7 /* Util.m */; }; + EDC2C9E41A1AA50D00942777 /* FSArchiver.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E34600D7DFE17BE9C1BD /* FSArchiver.m */; }; + EDC2C9E51A1AA50D00942777 /* FSBoolean.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E34800D7DFE17BE9C1BD /* FSBoolean.m */; }; + EDC2C9E61A1AA50D00942777 /* FScriptFunctions.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E34F00D7DFE17BE9C1BD /* FScriptFunctions.m */; }; + EDC2C9E71A1AA50D00942777 /* FScriptTextView.m in Sources */ = {isa = PBXBuildFile; fileRef = F501AF7B021497C401A75EC5 /* FScriptTextView.m */; }; + EDC2C9E81A1AA50D00942777 /* FSInterpreter.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E35100D7DFE17BE9C1BD /* FSInterpreter.m */; }; + EDC2C9E91A1AA50D00942777 /* FSInterpreterResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E35300D7DFE17BE9C1BD /* FSInterpreterResult.m */; }; + EDC2C9EA1A1AA50D00942777 /* FSInterpreterView.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E35600D7DFE17BE9C1BD /* FSInterpreterView.m */; }; + EDC2C9EB1A1AA50D00942777 /* FSNSArray.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E35900D7DFE17BE9C1BD /* FSNSArray.m */; }; + EDC2C9EC1A1AA50D00942777 /* FSNSDate.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E35C00D7DFE17BE9C1BD /* FSNSDate.m */; }; + EDC2C9ED1A1AA50D00942777 /* FSNSDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E35E00D7DFE17BE9C1BD /* FSNSDictionary.m */; }; + EDC2C9EE1A1AA50D00942777 /* FSNSDistantObject.m in Sources */ = {isa = PBXBuildFile; fileRef = F51CA01501B013C401BFBB24 /* FSNSDistantObject.m */; }; + EDC2C9EF1A1AA50D00942777 /* FSNSMutableString.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E36000D7DFE17BE9C1BD /* FSNSMutableString.m */; }; + EDC2C9F01A1AA50D00942777 /* CHMutableDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = EDFB2FFE1A188B4E002C8DD7 /* CHMutableDictionary.m */; }; + EDC2C9F11A1AA50D00942777 /* FSNSNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E36200D7DFE17BE9C1BD /* FSNSNumber.m */; }; + EDC2C9F21A1AA50D00942777 /* FSNSObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E36400D7DFE17BE9C1BD /* FSNSObject.m */; }; + EDC2C9F31A1AA50D00942777 /* FSNSProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E36600D7DFE17BE9C1BD /* FSNSProxy.m */; }; + EDC2C9F41A1AA50D00942777 /* FSPattern.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E36D00D7DFE17BE9C1BD /* FSPattern.m */; }; + EDC2C9F51A1AA50D00942777 /* FSUnarchiver.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E37300D7DFE17BE9C1BD /* FSUnarchiver.m */; }; + EDC2C9F61A1AA50D00942777 /* FSVoid.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E37500D7DFE17BE9C1BD /* FSVoid.m */; }; + EDC2C9F71A1AA50D00942777 /* FSGenericObjectInspector.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E37800D7DFE17BE9C1BD /* FSGenericObjectInspector.m */; }; + EDC2C9F81A1AA50D00942777 /* KTestManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 66029E590161E0650055708C /* KTestManager.m */; }; + EDC2C9F91A1AA50D00942777 /* FSMiscTools.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E38200D7DFE17BE9C1BD /* FSMiscTools.m */; }; + EDC2C9FA1A1AA50D00942777 /* FSMsgContext.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E38400D7DFE17BE9C1BD /* FSMsgContext.m */; }; + EDC2C9FB1A1AA50D00942777 /* FSNewlyAllocatedObjectHolder.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E38800D7DFE17BE9C1BD /* FSNewlyAllocatedObjectHolder.m */; }; + EDC2C9FC1A1AA50D00942777 /* FSNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E38E00D7DFE17BE9C1BD /* FSNumber.m */; }; + EDC2C9FD1A1AA50D00942777 /* FSPilot.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E39100D7DFE17BE9C1BD /* FSPilot.m */; }; + EDC2C9FE1A1AA50D00942777 /* MessagePatternCodeNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E38000D7DFE17BE9C1BD /* MessagePatternCodeNode.m */; }; + EDC2C9FF1A1AA50D00942777 /* FSReplacementForCoderForClass.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E39500D7DFE17BE9C1BD /* FSReplacementForCoderForClass.m */; }; + EDC2CA001A1AA50D00942777 /* ShellView.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E39700D7DFE17BE9C1BD /* ShellView.m */; }; + EDC2CA011A1AA50D00942777 /* Space.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E39900D7DFE17BE9C1BD /* Space.m */; }; + EDC2CA021A1AA50D00942777 /* FSCommandHistory.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E39B00D7DFE17BE9C1BD /* FSCommandHistory.m */; }; + EDC2CA031A1AA50D00942777 /* FSSystem.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E39F00D7DFE17BE9C1BD /* FSSystem.m */; }; + EDC2CA041A1AA50D00942777 /* FSObjectEnumInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8222E61A19554F00C42C72 /* FSObjectEnumInfo.m */; }; + EDC2CA051A1AA50D00942777 /* DOTest.m in Sources */ = {isa = PBXBuildFile; fileRef = F5F13B4801C8BE3401CB6DF7 /* DOTest.m */; }; + EDC2CA061A1AA50D00942777 /* FSNSProtocolChecker.m in Sources */ = {isa = PBXBuildFile; fileRef = F5F1405A0223CC9D01DD698C /* FSNSProtocolChecker.m */; }; + EDC2CA071A1AA50D00942777 /* fs_main.m in Sources */ = {isa = PBXBuildFile; fileRef = F5F1A9F8022E9A96011160FE /* fs_main.m */; }; + EDC2CA081A1AA50D00942777 /* FScriptAppController.m in Sources */ = {isa = PBXBuildFile; fileRef = F5F1A9FA022E9A96011160FE /* FScriptAppController.m */; }; + EDC2CA091A1AA50D00942777 /* FSObjectBrowserToolbar.m in Sources */ = {isa = PBXBuildFile; fileRef = F538EF6D0279FD3C01345511 /* FSObjectBrowserToolbar.m */; }; + EDC2CA0A1A1AA50D00942777 /* FSEvalCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = F538EF710279FD3C01345511 /* FSEvalCommand.m */; }; + EDC2CA0B1A1AA50D00942777 /* FSServicesProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = F538EF7D0279FD3C01345511 /* FSServicesProvider.m */; }; + EDC2CA0C1A1AA50D00942777 /* FSTask.m in Sources */ = {isa = PBXBuildFile; fileRef = F538EF7F0279FD3C01345511 /* FSTask.m */; }; + EDC2CA0D1A1AA50D00942777 /* FSObjectBrowserToolbarButton.m in Sources */ = {isa = PBXBuildFile; fileRef = F5F0AD430285792F0103CD49 /* FSObjectBrowserToolbarButton.m */; }; + EDC2CA0E1A1AA50D00942777 /* FSObjectBrowserButtonsInspector.m in Sources */ = {isa = PBXBuildFile; fileRef = F5F9569502B272FB0121B3BA /* FSObjectBrowserButtonsInspector.m */; }; + EDC2CA0F1A1AA50D00942777 /* FSObjectBrowserButtonCtxBlock.m in Sources */ = {isa = PBXBuildFile; fileRef = F5F0261E02C243D20155CB83 /* FSObjectBrowserButtonCtxBlock.m */; }; + EDC2CA101A1AA50D00942777 /* DOCustom.m in Sources */ = {isa = PBXBuildFile; fileRef = F5F1AAAF022E9E4F011160FE /* DOCustom.m */; }; + EDC2CA111A1AA50D00942777 /* Pointer.m in Sources */ = {isa = PBXBuildFile; fileRef = F505647F02DF417501FE0326 /* Pointer.m */; }; + EDC2CA121A1AA50D00942777 /* FSIdentifierFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = F5073A2002FC5400013656B0 /* FSIdentifierFormatter.m */; }; + EDC2CA131A1AA50D00942777 /* FSObjectFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = F5EBBE810321029601CA10C6 /* FSObjectFormatter.m */; }; + EDC2CA141A1AA50D00942777 /* FSKeyedUnarchiver.m in Sources */ = {isa = PBXBuildFile; fileRef = F55D44C50358A88801B9E934 /* FSKeyedUnarchiver.m */; }; + EDC2CA151A1AA50D00942777 /* FSKeyedArchiver.m in Sources */ = {isa = PBXBuildFile; fileRef = F55D44CF0358B5D201B9E934 /* FSKeyedArchiver.m */; }; + EDC2CA161A1AA50D00942777 /* FSObjectInspectorViewModelItem.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8222D51A194FD600C42C72 /* FSObjectInspectorViewModelItem.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; + EDC2CA171A1AA50D00942777 /* FSConstantListBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = F52EECA7036210E2016141BB /* FSConstantListBuilder.m */; }; + EDC2CA181A1AA50D00942777 /* FSImageInspector.m in Sources */ = {isa = PBXBuildFile; fileRef = F54B55BA036B45770140C608 /* FSImageInspector.m */; }; + EDC2CA191A1AA50D00942777 /* FSNSImage.m in Sources */ = {isa = PBXBuildFile; fileRef = F54B55C9036B4A330140C608 /* FSNSImage.m */; }; + EDC2CA1A1A1AA50D00942777 /* FSDetailedObjectInspector.m in Sources */ = {isa = PBXBuildFile; fileRef = EDC2C8DD1A1A943600942777 /* FSDetailedObjectInspector.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; + EDC2CA1B1A1AA50D00942777 /* FSObjectBrowserToolbarItem.m in Sources */ = {isa = PBXBuildFile; fileRef = F58090D003755FC701AED2EF /* FSObjectBrowserToolbarItem.m */; }; + EDC2CA1C1A1AA50D00942777 /* FSArrayEnumerator.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FA3AE56044D4D6700CF7A3A /* FSArrayEnumerator.m */; }; + EDC2CA1D1A1AA50D00942777 /* FSNSMutableArray.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F66F85504666E8100AFC811 /* FSNSMutableArray.m */; }; + EDC2CA1E1A1AA50D00942777 /* ArrayRepBoolean.m in Sources */ = {isa = PBXBuildFile; fileRef = F5D4BE2A038511FF01461810 /* ArrayRepBoolean.m */; }; + EDC2CA1F1A1AA50D00942777 /* FSNSValue.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F553BF80585222700A92293 /* FSNSValue.m */; }; + EDC2CA201A1AA50D00942777 /* FSReplacementForCoderForNilInArray.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F7D7DB8058E32CD00F1B8A8 /* FSReplacementForCoderForNilInArray.m */; }; + EDC2CA211A1AA50D00942777 /* FSNamedNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F0E3B7F059F3DBB003F6CE9 /* FSNamedNumber.m */; }; + EDC2CA221A1AA50D00942777 /* FSCollectionInspectorTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F60216F05A25CDC0004EFF1 /* FSCollectionInspectorTableView.m */; }; + EDC2CA231A1AA50D00942777 /* FSNSSet.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F60F24605A9FE8B00985FEC /* FSNSSet.m */; }; + EDC2CA241A1AA50D00942777 /* FSAttributedStringInspector.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FDCCD4F05C09F8200747C0A /* FSAttributedStringInspector.m */; }; + EDC2CA251A1AA50D00942777 /* FSNSAttributedString.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FDCCDC005C0A23000747C0A /* FSNSAttributedString.m */; }; + EDC2CA261A1AA50D00942777 /* FScriptMenuItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F0B66FC05C5639E0099180D /* FScriptMenuItem.m */; }; + EDC2CA271A1AA50D00942777 /* FSNSFont.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F658B2805C9694F0040FB24 /* FSNSFont.m */; }; + EDC2CA281A1AA50D00942777 /* FSObjectBrowserMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FB5060005D53C8600153B33 /* FSObjectBrowserMatrix.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; + EDC2CA291A1AA50D00942777 /* FSNSString.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E36800D7DFE17BE9C1BD /* FSNSString.m */; }; + EDC2CA2A1A1AA50D00942777 /* FSObjectInspectorBackgroundView.m in Sources */ = {isa = PBXBuildFile; fileRef = EDC2C8EF1A1AA34D00942777 /* FSObjectInspectorBackgroundView.m */; }; + EDC2CA2B1A1AA50D00942777 /* FSSymbolTable.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F17C07E06B1309C00F07862 /* FSSymbolTable.m */; }; + EDC2CA2C1A1AA50D00942777 /* TestFS.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E3A000D7DFE17BE9C1BD /* TestFS.m */; }; + EDC2CA2D1A1AA50D00942777 /* FSObjectBrowserViewObjectInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F4E294D075B8E5600F8DCDB /* FSObjectBrowserViewObjectInfo.m */; }; + EDC2CA2E1A1AA50D00942777 /* FSCollectionInspectorView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FA8EDD307735B3B001BEC7B /* FSCollectionInspectorView.m */; }; + EDC2CA2F1A1AA50D00942777 /* ArrayRepFetchRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FBC2884077B7D5200F9B4A2 /* ArrayRepFetchRequest.m */; }; + EDC2CA301A1AA50D00942777 /* FSPointer.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F8EA718077F6A5200AC1C96 /* FSPointer.m */; }; + EDC2CA311A1AA50D00942777 /* FSGenericPointer.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F8EA786077F6C9300AC1C96 /* FSGenericPointer.m */; }; + EDC2CA321A1AA50D00942777 /* FSObjectPointer.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FE9AE1F078071CC005B2CC4 /* FSObjectPointer.m */; }; + EDC2CA331A1AA50D00942777 /* FSManagedObjectContextInspector.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F37AEC3078B7E900083565D /* FSManagedObjectContextInspector.m */; }; + EDC2CA341A1AA50D00942777 /* FSObjectBrowserNamedObjectWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F86923707F19BA8000D20A4 /* FSObjectBrowserNamedObjectWrapper.m */; }; + EDC2CA351A1AA50D00942777 /* FSInspectorUniquier.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F7F4F9D07FB274C008E42F4 /* FSInspectorUniquier.m */; }; + EDC2CA361A1AA50D00942777 /* FSPredicateTextView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F95E3C208034A670030B65C /* FSPredicateTextView.m */; }; + EDC2CA371A1AA50D00942777 /* FSCoreDataSample.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FE7E0E7082AD964008231E8 /* FSCoreDataSample.m */; }; + EDC2CA381A1AA50D00942777 /* FSNSManagedObjectContext.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F5189E807F072EA00A50735 /* FSNSManagedObjectContext.m */; }; + EDC2CA391A1AA50D00942777 /* FSObjectBrowserSearchField.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F585F6F059B23F100C12B6F /* FSObjectBrowserSearchField.m */; }; + EDC2CA3A1A1AA50D00942777 /* FSBlockCompilationResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F90A2F0096DB0660064F4BC /* FSBlockCompilationResult.m */; }; + EDC2CA3B1A1AA50D00942777 /* FSReturnSignal.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FD7D4A70975B377009B2685 /* FSReturnSignal.m */; }; + EDC2CA3C1A1AA50D00942777 /* FSConstantsDictionaryGenerator.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F92F0350463F03300F4C61F /* FSConstantsDictionaryGenerator.m */; }; + EDC2CA3D1A1AA50D00942777 /* FSQTMovie.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F573F90056B780500F2796A /* FSQTMovie.m */; }; + EDC2CA3E1A1AA50D00942777 /* FSMovieInspector.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F573F7E056B754B00F2796A /* FSMovieInspector.m */; }; + EDC2CA3F1A1AA50D00942777 /* FSMethod.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F3C13990C65E66400948776 /* FSMethod.m */; }; + EDC2CA401A1AA50D00942777 /* FSCNClassDefinition.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F5AD3210D05CFFE000CEAC6 /* FSCNClassDefinition.m */; }; + EDC2CA411A1AA50D00942777 /* FSCNBase.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FE6397F0D09C0F400255EBA /* FSCNBase.m */; }; + EDC2CA421A1AA50D00942777 /* FSCNIdentifier.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FE6398F0D09DCB600255EBA /* FSCNIdentifier.m */; }; + EDC2CA431A1AA50D00942777 /* FSTestObjCClass1.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FE3DD210D26D49900A1D767 /* FSTestObjCClass1.m */; }; + EDC2CA441A1AA50D00942777 /* CHBidirectionalDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = EDFB2FFC1A188B4E002C8DD7 /* CHBidirectionalDictionary.m */; }; + EDC2CA451A1AA50D00942777 /* FSTestObjCClass2.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F4822030D2C317700754A4E /* FSTestObjCClass2.m */; }; + EDC2CA461A1AA50D00942777 /* FSCNCategory.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F8112F10D85E58200CB3407 /* FSCNCategory.m */; }; + EDC2CA471A1AA50D00942777 /* FSCNMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F59CA700D86DD0800D67A78 /* FSCNMessage.m */; }; + EDC2CA481A1AA50D00942777 /* FSCNSuper.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F72237E0D870C6A00394C99 /* FSCNSuper.m */; }; + EDC2CA491A1AA50D00942777 /* FSCNUnaryMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F2E341F0D8DB61C00912543 /* FSCNUnaryMessage.m */; }; + EDC2CA4A1A1AA50D00942777 /* FSCNBinaryMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F2E34320D8DBF6A00912543 /* FSCNBinaryMessage.m */; }; + EDC2CA4B1A1AA50D00942777 /* FSCNKeywordMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F2E343B0D8DBFE700912543 /* FSCNKeywordMessage.m */; }; + EDC2CA4C1A1AA50D00942777 /* FSCNCascade.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F5900140D9468FC003A8B17 /* FSCNCascade.m */; }; + EDC2CA4D1A1AA50D00942777 /* FSCNStatementList.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F8F58650D9FE6A900ED0FED /* FSCNStatementList.m */; }; + EDC2CA4E1A1AA50D00942777 /* FSCNPrecomputedObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F747DA80DA03AE200148342 /* FSCNPrecomputedObject.m */; }; + EDC2CA4F1A1AA50D00942777 /* FSCNArray.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F747DB70DA0467100148342 /* FSCNArray.m */; }; + EDC2CA501A1AA50D00942777 /* FSCNBlock.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FAE79AB0DA0ED5D00CB6E14 /* FSCNBlock.m */; }; + EDC2CA511A1AA50D00942777 /* FSCNAssignment.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FAE79F20DA109C500CB6E14 /* FSCNAssignment.m */; }; + EDC2CA521A1AA50D00942777 /* FSCNMethod.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F45CBBE0DA813F200AFA8C8 /* FSCNMethod.m */; }; + EDC2CA531A1AA50D00942777 /* FSCNReturn.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FD0A3130DD7276000E47459 /* FSCNReturn.m */; }; + EDC2CA541A1AA50D00942777 /* FSClassDefinition.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F8949D60DE08B110094EC14 /* FSClassDefinition.m */; }; + EDC2CA551A1AA50D00942777 /* FSTranscript.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F2DE65A0E57254700CF83CB /* FSTranscript.m */; }; + EDC2CA561A1AA50D00942777 /* FSArray.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FE6AD900EC740650096019D /* FSArray.m */; }; + EDC2CA571A1AA50D00942777 /* Array.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F31A4C10EC74A2E00D1B8E8 /* Array.m */; }; + EDC2CA581A1AA50D00942777 /* Block.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FCA00C20EEAF34300B10420 /* Block.m */; }; + EDC2CA591A1AA50D00942777 /* Number.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FBB2FF10EEB3467007A3163 /* Number.m */; }; + EDC2CA5A1A1AA50D00942777 /* FSGlobalScope.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FB9D5980F1CEE2100E10274 /* FSGlobalScope.m */; }; + EDC2CA5B1A1AA50D00942777 /* FSNSFileHandle.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F9D04180F1DF1CB001B8286 /* FSNSFileHandle.m */; }; + EDC2CA5C1A1AA50D00942777 /* FSAssociation.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F940B820F2393B0004525E1 /* FSAssociation.m */; }; + EDC2CA5D1A1AA50D00942777 /* FSCNDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F940C6F0F23BC2E004525E1 /* FSCNDictionary.m */; }; + EDC2CA5E1A1AA50D00942777 /* FSObjectBrowserBottomBarTextDisplay.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F7A712A0F48397C00E95364 /* FSObjectBrowserBottomBarTextDisplay.m */; }; + EDC2CA5F1A1AA50D00942777 /* FSNSAffineTransform.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F2D720A0F6BD9B100F0862A /* FSNSAffineTransform.m */; }; + EDC2CA601A1AA50D00942777 /* FSDemoAssistant.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F9636410F8DF69F00A70F39 /* FSDemoAssistant.m */; }; + EDC2CA611A1AA50D00942777 /* FSNewlyAllocatedObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FCA593210883B0100F67841 /* FSNewlyAllocatedObject.m */; }; + EDC2CA621A1AA50D00942777 /* FSWorksWhenModalWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F5EDA01109B384A003A2F4C /* FSWorksWhenModalWindow.m */; }; + EDC2CA631A1AA50D00942777 /* FSNSMutableDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F44270C116549C700E88F21 /* FSNSMutableDictionary.m */; }; + EDC2CA651A1AA50D00942777 /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA223095189F9924002C5B6A /* Accelerate.framework */; }; + EDC2CA661A1AA50D00942777 /* Accounts.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E2DBA31F161CA5D00035A675 /* Accounts.framework */; }; + EDC2CA671A1AA50D00942777 /* AddressBook.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA22309F189F9A14002C5B6A /* AddressBook.framework */; }; + EDC2CA681A1AA50D00942777 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230A0189F9A14002C5B6A /* AGL.framework */; }; + EDC2CA691A1AA50D00942777 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230A1189F9A14002C5B6A /* AppKit.framework */; }; + EDC2CA6A1A1AA50D00942777 /* AppleScriptKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230A3189F9A14002C5B6A /* AppleScriptKit.framework */; }; + EDC2CA6B1A1AA50D00942777 /* AppleScriptObjC.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230A4189F9A14002C5B6A /* AppleScriptObjC.framework */; }; + EDC2CA6C1A1AA50D00942777 /* ApplicationServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230A6189F9A14002C5B6A /* ApplicationServices.framework */; }; + EDC2CA6D1A1AA50D00942777 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA223097189F9958002C5B6A /* AudioToolbox.framework */; }; + EDC2CA6E1A1AA50D00942777 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230A7189F9A14002C5B6A /* AudioUnit.framework */; }; + EDC2CA6F1A1AA50D00942777 /* AudioVideoBridging.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E2DBA321161CA60C0035A675 /* AudioVideoBridging.framework */; }; + EDC2CA701A1AA50D00942777 /* Automator.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230A8189F9A14002C5B6A /* Automator.framework */; }; + EDC2CA711A1AA50D00942777 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E2DBA32D161CA7180035A675 /* AVFoundation.framework */; }; + EDC2CA721A1AA50D00942777 /* AVKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA223099189F9976002C5B6A /* AVKit.framework */; }; + EDC2CA731A1AA50D00942777 /* CalendarStore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230B3189F9A2E002C5B6A /* CalendarStore.framework */; }; + EDC2CA741A1AA50D00942777 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230B4189F9A2E002C5B6A /* Carbon.framework */; }; + EDC2CA751A1AA50D00942777 /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230B5189F9A2E002C5B6A /* CFNetwork.framework */; }; + EDC2CA761A1AA50D00942777 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230B6189F9A2E002C5B6A /* Cocoa.framework */; }; + EDC2CA771A1AA50D00942777 /* Collaboration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230B7189F9A2E002C5B6A /* Collaboration.framework */; }; + EDC2CA781A1AA50D00942777 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA22309B189F9988002C5B6A /* CoreAudio.framework */; }; + EDC2CA791A1AA50D00942777 /* CoreAudioKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230B8189F9A2F002C5B6A /* CoreAudioKit.framework */; }; + EDC2CA7A1A1AA50D00942777 /* CoreData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230B9189F9A2F002C5B6A /* CoreData.framework */; }; + EDC2CA7B1A1AA50D00942777 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230BA189F9A2F002C5B6A /* CoreFoundation.framework */; }; + EDC2CA7C1A1AA50D00942777 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230BB189F9A2F002C5B6A /* CoreGraphics.framework */; }; + EDC2CA7D1A1AA50D00942777 /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA22309D189F99CC002C5B6A /* CoreLocation.framework */; }; + EDC2CA7E1A1AA50D00942777 /* CoreMedia.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230BC189F9A2F002C5B6A /* CoreMedia.framework */; }; + EDC2CA7F1A1AA50D00942777 /* CoreMediaIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230BD189F9A2F002C5B6A /* CoreMediaIO.framework */; }; + EDC2CA801A1AA50D00942777 /* CoreMIDI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230BE189F9A2F002C5B6A /* CoreMIDI.framework */; }; + EDC2CA811A1AA50D00942777 /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230BF189F9A2F002C5B6A /* CoreServices.framework */; }; + EDC2CA821A1AA50D00942777 /* CoreText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230C0189F9A2F002C5B6A /* CoreText.framework */; }; + EDC2CA831A1AA50D00942777 /* CoreVideo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230C1189F9A2F002C5B6A /* CoreVideo.framework */; }; + EDC2CA841A1AA50D00942777 /* CoreWLAN.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230C2189F9A2F002C5B6A /* CoreWLAN.framework */; }; + EDC2CA851A1AA50D00942777 /* DirectoryService.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230D3189F9A7A002C5B6A /* DirectoryService.framework */; }; + EDC2CA861A1AA50D00942777 /* DiscRecording.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230D4189F9A7A002C5B6A /* DiscRecording.framework */; }; + EDC2CA871A1AA50D00942777 /* DiscRecordingUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230D5189F9A7A002C5B6A /* DiscRecordingUI.framework */; }; + EDC2CA881A1AA50D00942777 /* DiskArbitration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230D6189F9A7A002C5B6A /* DiskArbitration.framework */; }; + EDC2CA891A1AA50D00942777 /* DVDPlayback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230D9189F9A7A002C5B6A /* DVDPlayback.framework */; }; + EDC2CA8A1A1AA50D00942777 /* EventKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E2DBA31C161CA57C0035A675 /* EventKit.framework */; }; + EDC2CA8B1A1AA50D00942777 /* ExceptionHandling.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA22316F189F9AD3002C5B6A /* ExceptionHandling.framework */; }; + EDC2CA8C1A1AA50D00942777 /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA223170189F9AD3002C5B6A /* ForceFeedback.framework */; }; + EDC2CA8D1A1AA50D00942777 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA223171189F9AD3002C5B6A /* Foundation.framework */; }; + EDC2CA8E1A1AA50D00942777 /* FWAUserLib.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA223172189F9AD3002C5B6A /* FWAUserLib.framework */; }; + EDC2CA8F1A1AA50D00942777 /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA223173189F9AD3002C5B6A /* GameController.framework */; }; + EDC2CA901A1AA50D00942777 /* GameKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E2DBA323161CA6270035A675 /* GameKit.framework */; }; + EDC2CA911A1AA50D00942777 /* GLUT.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA223147189F9AC5002C5B6A /* GLUT.framework */; }; + EDC2CA921A1AA50D00942777 /* GSS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA223148189F9AC5002C5B6A /* GSS.framework */; }; + EDC2CA931A1AA50D00942777 /* ICADevices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA223149189F9AC6002C5B6A /* ICADevices.framework */; }; + EDC2CA941A1AA50D00942777 /* ImageCaptureCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA22314A189F9AC6002C5B6A /* ImageCaptureCore.framework */; }; + EDC2CA951A1AA50D00942777 /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA22314B189F9AC6002C5B6A /* ImageIO.framework */; }; + EDC2CA961A1AA50D00942777 /* IMServicePlugIn.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA22314C189F9AC6002C5B6A /* IMServicePlugIn.framework */; }; + EDC2CA971A1AA50D00942777 /* InputMethodKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA22314D189F9AC6002C5B6A /* InputMethodKit.framework */; }; + EDC2CA981A1AA50D00942777 /* InstallerPlugins.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA22314E189F9AC6002C5B6A /* InstallerPlugins.framework */; }; + EDC2CA991A1AA50D00942777 /* InstantMessage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA22314F189F9AC6002C5B6A /* InstantMessage.framework */; }; + EDC2CA9A1A1AA50D00942777 /* IOBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA223150189F9AC6002C5B6A /* IOBluetooth.framework */; }; + EDC2CA9B1A1AA50D00942777 /* IOBluetoothUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA223151189F9AC6002C5B6A /* IOBluetoothUI.framework */; }; + EDC2CA9C1A1AA50D00942777 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA223152189F9AC6002C5B6A /* IOKit.framework */; }; + EDC2CA9D1A1AA50D00942777 /* IOSurface.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA223153189F9AC6002C5B6A /* IOSurface.framework */; }; + EDC2CA9E1A1AA50D00942777 /* JavaFrameEmbedding.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA223154189F9AC6002C5B6A /* JavaFrameEmbedding.framework */; }; + EDC2CA9F1A1AA50D00942777 /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA223155189F9AC6002C5B6A /* JavaScriptCore.framework */; }; + EDC2CAA01A1AA50D00942777 /* JavaVM.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA223156189F9AC6002C5B6A /* JavaVM.framework */; }; + EDC2CAA11A1AA50D00942777 /* Kerberos.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA223157189F9AC6002C5B6A /* Kerberos.framework */; }; + EDC2CAA21A1AA50D00942777 /* LatentSemanticMapping.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA223159189F9AC7002C5B6A /* LatentSemanticMapping.framework */; }; + EDC2CAA31A1AA50D00942777 /* GLKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E2DBA325161CA64B0035A675 /* GLKit.framework */; }; + EDC2CAA41A1AA50D00942777 /* LDAP.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA223144189F9ABD002C5B6A /* LDAP.framework */; }; + EDC2CAA51A1AA50D00942777 /* MapKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230F4189F9A99002C5B6A /* MapKit.framework */; }; + EDC2CAA61A1AA50D00942777 /* MediaAccessibility.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230F5189F9A99002C5B6A /* MediaAccessibility.framework */; }; + EDC2CAA71A1AA50D00942777 /* MediaLibrary.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230F6189F9A99002C5B6A /* MediaLibrary.framework */; }; + EDC2CAA81A1AA50D00942777 /* MediaToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230F7189F9A99002C5B6A /* MediaToolbox.framework */; }; + EDC2CAA91A1AA50D00942777 /* NetFS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230F8189F9A99002C5B6A /* NetFS.framework */; }; + EDC2CAAA1A1AA50D00942777 /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230F9189F9A99002C5B6A /* OpenAL.framework */; }; + EDC2CAAB1A1AA50D00942777 /* OpenCL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230FA189F9A99002C5B6A /* OpenCL.framework */; }; + EDC2CAAC1A1AA50D00942777 /* OpenDirectory.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230FB189F9A99002C5B6A /* OpenDirectory.framework */; }; + EDC2CAAD1A1AA50D00942777 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230FC189F9A99002C5B6A /* OpenGL.framework */; }; + EDC2CAAE1A1AA50D00942777 /* OSAKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230FD189F9A99002C5B6A /* OSAKit.framework */; }; + EDC2CAAF1A1AA50D00942777 /* PCSC.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230FE189F9A99002C5B6A /* PCSC.framework */; }; + EDC2CAB01A1AA50D00942777 /* PreferencePanes.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA2230FF189F9A99002C5B6A /* PreferencePanes.framework */; }; + EDC2CAB11A1AA50D00942777 /* PubSub.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA223100189F9A99002C5B6A /* PubSub.framework */; }; + EDC2CAB21A1AA50D00942777 /* QTKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA223101189F9A99002C5B6A /* QTKit.framework */; }; + EDC2CAB31A1AA50D00942777 /* Quartz.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA223102189F9A99002C5B6A /* Quartz.framework */; }; + EDC2CAB41A1AA50D00942777 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA223103189F9A99002C5B6A /* QuartzCore.framework */; }; + EDC2CAB51A1AA50D00942777 /* QuickLook.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA223104189F9A99002C5B6A /* QuickLook.framework */; }; + EDC2CAB61A1AA50D00942777 /* Ruby.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA223106189F9A9A002C5B6A /* Ruby.framework */; }; + EDC2CAB71A1AA50D00942777 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA223108189F9A9A002C5B6A /* ScreenSaver.framework */; }; + EDC2CAB81A1AA50D00942777 /* ScriptingBridge.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA22310A189F9A9A002C5B6A /* ScriptingBridge.framework */; }; + EDC2CAB91A1AA50D00942777 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA22310B189F9A9A002C5B6A /* Security.framework */; }; + EDC2CABA1A1AA50D00942777 /* SecurityFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA22310C189F9A9A002C5B6A /* SecurityFoundation.framework */; }; + EDC2CABB1A1AA50D00942777 /* SecurityInterface.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA22310D189F9A9A002C5B6A /* SecurityInterface.framework */; }; + EDC2CABC1A1AA50D00942777 /* ServiceManagement.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA22310E189F9A9A002C5B6A /* ServiceManagement.framework */; }; + EDC2CABD1A1AA50D00942777 /* SpriteKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA22310F189F9A9A002C5B6A /* SpriteKit.framework */; }; + EDC2CABE1A1AA50D00942777 /* StoreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA223110189F9A9A002C5B6A /* StoreKit.framework */; }; + EDC2CABF1A1AA50D00942777 /* SyncServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA223111189F9A9A002C5B6A /* SyncServices.framework */; }; + EDC2CAC01A1AA50D00942777 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA223112189F9A9A002C5B6A /* SystemConfiguration.framework */; }; + EDC2CAC11A1AA50D00942777 /* Tcl.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA223113189F9A9A002C5B6A /* Tcl.framework */; }; + EDC2CAC21A1AA50D00942777 /* Tk.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA223114189F9A9A002C5B6A /* Tk.framework */; }; + EDC2CAC31A1AA50D00942777 /* TWAIN.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA223115189F9A9A002C5B6A /* TWAIN.framework */; }; + EDC2CAC41A1AA50D00942777 /* VideoDecodeAcceleration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA223116189F9A9A002C5B6A /* VideoDecodeAcceleration.framework */; }; + EDC2CAC51A1AA50D00942777 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA223117189F9A9A002C5B6A /* WebKit.framework */; }; + EDC2CAC61A1AA50D00942777 /* SceneKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E2DBA327161CA65A0035A675 /* SceneKit.framework */; }; + EDC2CAC71A1AA50D00942777 /* Social.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E2DBA329161CA6600035A675 /* Social.framework */; }; + EDC2CAC81A1AA50D00942777 /* VideoToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E2DBA32B161CA6660035A675 /* VideoToolbox.framework */; }; + EDC2CAD11A1AA52500942777 /* BlockSignature.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E32E00D7DFE17BE9C1BD /* BlockSignature.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EDC2CAD21A1AA52500942777 /* FSAirplane.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E30F00D7DFE17BE9C1BD /* FSAirplane.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EDC2CAD31A1AA52500942777 /* ArrayPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E31300D7DFE17BE9C1BD /* ArrayPrivate.h */; }; + EDC2CAD41A1AA52500942777 /* ArrayRep.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E31400D7DFE17BE9C1BD /* ArrayRep.h */; settings = {ATTRIBUTES = (); }; }; + EDC2CAD51A1AA52500942777 /* ArrayRepDouble.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E31700D7DFE17BE9C1BD /* ArrayRepDouble.h */; }; + EDC2CAD61A1AA52500942777 /* ArrayRepEmpty.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E31900D7DFE17BE9C1BD /* ArrayRepEmpty.h */; }; + EDC2CAD71A1AA52500942777 /* ArrayRepId.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E31B00D7DFE17BE9C1BD /* ArrayRepId.h */; }; + EDC2CAD81A1AA52500942777 /* FSCollectionInspector.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E31D00D7DFE17BE9C1BD /* FSCollectionInspector.h */; }; + EDC2CAD91A1AA52500942777 /* FSObjectBrowser.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E32000D7DFE17BE9C1BD /* FSObjectBrowser.h */; }; + EDC2CADA1A1AA52500942777 /* FSObjectBrowserCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E32200D7DFE17BE9C1BD /* FSObjectBrowserCell.h */; }; + EDC2CADB1A1AA52500942777 /* FSObjectInspectorViewModelItem.h in Headers */ = {isa = PBXBuildFile; fileRef = ED8222D41A194FD600C42C72 /* FSObjectInspectorViewModelItem.h */; }; + EDC2CADC1A1AA52500942777 /* FSBlock.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E32600D7DFE17BE9C1BD /* FSBlock.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EDC2CADD1A1AA52500942777 /* BlockInspector.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E32800D7DFE17BE9C1BD /* BlockInspector.h */; }; + EDC2CADE1A1AA52500942777 /* BlockPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E32B00D7DFE17BE9C1BD /* BlockPrivate.h */; }; + EDC2CADF1A1AA52500942777 /* BlockRep.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E32C00D7DFE17BE9C1BD /* BlockRep.h */; }; + EDC2CAE01A1AA52500942777 /* BlockStackElem.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E32F00D7DFE17BE9C1BD /* BlockStackElem.h */; }; + EDC2CAE11A1AA52500942777 /* build_config.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E33200D7DFE17BE9C1BD /* build_config.h */; settings = {ATTRIBUTES = (); }; }; + EDC2CAE21A1AA52500942777 /* FSDetailedObjectInspector.h in Headers */ = {isa = PBXBuildFile; fileRef = EDC2C8DC1A1A943600942777 /* FSDetailedObjectInspector.h */; }; + EDC2CAE31A1AA52500942777 /* CLIView.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E33300D7DFE17BE9C1BD /* CLIView.h */; }; + EDC2CAE41A1AA52500942777 /* FSCompilationResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E33500D7DFE17BE9C1BD /* FSCompilationResult.h */; }; + EDC2CAE51A1AA52500942777 /* CompiledCodeNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E33700D7DFE17BE9C1BD /* CompiledCodeNode.h */; }; + EDC2CAE61A1AA52500942777 /* FSCompiler.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E33900D7DFE17BE9C1BD /* FSCompiler.h */; }; + EDC2CAE71A1AA52500942777 /* FSConstantsInitialization.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E33B00D7DFE17BE9C1BD /* FSConstantsInitialization.h */; }; + EDC2CAE81A1AA52500942777 /* FSExecEngine.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E33D00D7DFE17BE9C1BD /* FSExecEngine.h */; }; + EDC2CAE91A1AA52500942777 /* FSExecutor.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E33F00D7DFE17BE9C1BD /* FSExecutor.h */; }; + EDC2CAEA1A1AA52500942777 /* FSFlight.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E34200D7DFE17BE9C1BD /* FSFlight.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EDC2CAEB1A1AA52500942777 /* FSArchiver.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E34500D7DFE17BE9C1BD /* FSArchiver.h */; }; + EDC2CAEC1A1AA52500942777 /* FSBoolean.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E34700D7DFE17BE9C1BD /* FSBoolean.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EDC2CAED1A1AA52500942777 /* FSBooleanPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E34900D7DFE17BE9C1BD /* FSBooleanPrivate.h */; }; + EDC2CAEE1A1AA52500942777 /* FScript.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E34C00D7DFE17BE9C1BD /* FScript.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EDC2CAEF1A1AA52500942777 /* FScriptFunctions.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E34E00D7DFE17BE9C1BD /* FScriptFunctions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EDC2CAF01A1AA52500942777 /* FSInterpreter.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E35000D7DFE17BE9C1BD /* FSInterpreter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EDC2CAF11A1AA52500942777 /* FSInterpreterResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E35200D7DFE17BE9C1BD /* FSInterpreterResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EDC2CAF21A1AA52500942777 /* FSInterpreterResultPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E35400D7DFE17BE9C1BD /* FSInterpreterResultPrivate.h */; }; + EDC2CAF31A1AA52500942777 /* FSInterpreterView.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E35500D7DFE17BE9C1BD /* FSInterpreterView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EDC2CAF41A1AA52500942777 /* FSInterpreterViewIBHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E35700D7DFE17BE9C1BD /* FSInterpreterViewIBHeader.h */; }; + EDC2CAF51A1AA52500942777 /* FSNSArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E35800D7DFE17BE9C1BD /* FSNSArray.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EDC2CAF61A1AA52500942777 /* FSNSArrayPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E35A00D7DFE17BE9C1BD /* FSNSArrayPrivate.h */; settings = {ATTRIBUTES = (); }; }; + EDC2CAF71A1AA52500942777 /* FSNSDate.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E35B00D7DFE17BE9C1BD /* FSNSDate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EDC2CAF81A1AA52500942777 /* FSNSDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E35D00D7DFE17BE9C1BD /* FSNSDictionary.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EDC2CAF91A1AA52500942777 /* FSNSMutableString.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E35F00D7DFE17BE9C1BD /* FSNSMutableString.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EDC2CAFA1A1AA52500942777 /* FSNSNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E36100D7DFE17BE9C1BD /* FSNSNumber.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EDC2CAFB1A1AA52500942777 /* FSNSObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E36300D7DFE17BE9C1BD /* FSNSObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EDC2CAFC1A1AA52500942777 /* FSNSProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E36500D7DFE17BE9C1BD /* FSNSProxy.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EDC2CAFD1A1AA52500942777 /* FSNSString.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E36700D7DFE17BE9C1BD /* FSNSString.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EDC2CAFE1A1AA52500942777 /* FSNSStringPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E36900D7DFE17BE9C1BD /* FSNSStringPrivate.h */; }; + EDC2CAFF1A1AA52500942777 /* FSPattern.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E36C00D7DFE17BE9C1BD /* FSPattern.h */; }; + EDC2CB001A1AA52500942777 /* FSUnarchiver.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E37200D7DFE17BE9C1BD /* FSUnarchiver.h */; }; + EDC2CB011A1AA52500942777 /* FSVoid.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E37400D7DFE17BE9C1BD /* FSVoid.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EDC2CB021A1AA52500942777 /* FSVoidPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E37600D7DFE17BE9C1BD /* FSVoidPrivate.h */; }; + EDC2CB031A1AA52500942777 /* FSGenericObjectInspector.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E37700D7DFE17BE9C1BD /* FSGenericObjectInspector.h */; }; + EDC2CB041A1AA52500942777 /* MessagePatternCodeNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E37F00D7DFE17BE9C1BD /* MessagePatternCodeNode.h */; }; + EDC2CB051A1AA52500942777 /* FSMiscTools.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E38100D7DFE17BE9C1BD /* FSMiscTools.h */; }; + EDC2CB061A1AA52500942777 /* FSMsgContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E38300D7DFE17BE9C1BD /* FSMsgContext.h */; }; + EDC2CB071A1AA52500942777 /* FSNewlyAllocatedObjectHolder.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E38700D7DFE17BE9C1BD /* FSNewlyAllocatedObjectHolder.h */; }; + EDC2CB081A1AA52500942777 /* FSNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E38D00D7DFE17BE9C1BD /* FSNumber.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EDC2CB091A1AA52500942777 /* NumberPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E38F00D7DFE17BE9C1BD /* NumberPrivate.h */; }; + EDC2CB0A1A1AA52500942777 /* FSPilot.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E39000D7DFE17BE9C1BD /* FSPilot.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EDC2CB0B1A1AA52500942777 /* Pointer.h in Headers */ = {isa = PBXBuildFile; fileRef = F505648002DF417501FE0326 /* Pointer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EDC2CB0C1A1AA52500942777 /* FSReplacementForCoderForClass.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E39400D7DFE17BE9C1BD /* FSReplacementForCoderForClass.h */; }; + EDC2CB0D1A1AA52500942777 /* FSObjectInspectorViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = ED3004E51A1A86EF00675D94 /* FSObjectInspectorViewController.h */; }; + EDC2CB0E1A1AA52500942777 /* metamacros.h in Headers */ = {isa = PBXBuildFile; fileRef = EDFB302E1A18CA26002C8DD7 /* metamacros.h */; }; + EDC2CB0F1A1AA52500942777 /* ShellView.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E39600D7DFE17BE9C1BD /* ShellView.h */; }; + EDC2CB101A1AA52500942777 /* Space.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E39800D7DFE17BE9C1BD /* Space.h */; }; + EDC2CB111A1AA52500942777 /* FSCommandHistory.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E39A00D7DFE17BE9C1BD /* FSCommandHistory.h */; }; + EDC2CB121A1AA52500942777 /* FSSystem.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E39E00D7DFE17BE9C1BD /* FSSystem.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EDC2CB131A1AA52500942777 /* KTestManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 66029E580161E0650055708C /* KTestManager.h */; }; + EDC2CB141A1AA52500942777 /* FSNSDistantObject.h in Headers */ = {isa = PBXBuildFile; fileRef = F51CA01401B013C401BFBB24 /* FSNSDistantObject.h */; }; + EDC2CB151A1AA52500942777 /* DOTest.h in Headers */ = {isa = PBXBuildFile; fileRef = F5F13B4701C8BE3401CB6DF7 /* DOTest.h */; }; + EDC2CB161A1AA52500942777 /* FScriptTextView.h in Headers */ = {isa = PBXBuildFile; fileRef = F5FBEF2802149D32018C0134 /* FScriptTextView.h */; }; + EDC2CB171A1AA52500942777 /* FSObjectBrowserArgumentPanel.h in Headers */ = {isa = PBXBuildFile; fileRef = F5FA8A6C0215D44C01AFEEFD /* FSObjectBrowserArgumentPanel.h */; }; + EDC2CB181A1AA52500942777 /* FSNSProtocolChecker.h in Headers */ = {isa = PBXBuildFile; fileRef = F5F140590223CC9D01DD698C /* FSNSProtocolChecker.h */; }; + EDC2CB191A1AA52500942777 /* FSObjectBrowserToolbar.h in Headers */ = {isa = PBXBuildFile; fileRef = F538EF6C0279FD3C01345511 /* FSObjectBrowserToolbar.h */; }; + EDC2CB1A1A1AA52500942777 /* FSEvalCommand.h in Headers */ = {isa = PBXBuildFile; fileRef = F538EF700279FD3C01345511 /* FSEvalCommand.h */; }; + EDC2CB1B1A1AA52500942777 /* FSServicesProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = F538EF7C0279FD3C01345511 /* FSServicesProvider.h */; settings = {ATTRIBUTES = (); }; }; + EDC2CB1C1A1AA52500942777 /* FSTask.h in Headers */ = {isa = PBXBuildFile; fileRef = F538EF7E0279FD3C01345511 /* FSTask.h */; settings = {ATTRIBUTES = (); }; }; + EDC2CB1D1A1AA52500942777 /* FSObjectBrowserToolbarButton.h in Headers */ = {isa = PBXBuildFile; fileRef = F5F0AD420285792F0103CD49 /* FSObjectBrowserToolbarButton.h */; }; + EDC2CB1E1A1AA52500942777 /* FSObjectBrowserButtonCtxBlock.h in Headers */ = {isa = PBXBuildFile; fileRef = F5F0261F02C243D20155CB83 /* FSObjectBrowserButtonCtxBlock.h */; }; + EDC2CB1F1A1AA52500942777 /* FSObjectBrowserButtonsInspector.h in Headers */ = {isa = PBXBuildFile; fileRef = F5F9569602B272FB0121B3BA /* FSObjectBrowserButtonsInspector.h */; }; + EDC2CB201A1AA52500942777 /* FSObjectBrowserView.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD4E32400D7DFE17BE9C1BD /* FSObjectBrowserView.h */; }; + EDC2CB211A1AA52500942777 /* PointerPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = F5F856C002EB281C01F7E6F0 /* PointerPrivate.h */; }; + EDC2CB221A1AA52500942777 /* FSInterpreterPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = F54CA17602FB2CAF01C25A35 /* FSInterpreterPrivate.h */; }; + EDC2CB231A1AA52500942777 /* FSObjectFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = F5EBBE820321029601CA10C6 /* FSObjectFormatter.h */; }; + EDC2CB241A1AA52500942777 /* FSIdentifierFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = F5073A2102FC5400013656B0 /* FSIdentifierFormatter.h */; }; + EDC2CB251A1AA52500942777 /* FSSystemPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = F5A25E260357B373011A39F8 /* FSSystemPrivate.h */; }; + EDC2CB261A1AA52500942777 /* FSKeyedUnarchiver.h in Headers */ = {isa = PBXBuildFile; fileRef = F55D44C40358A88801B9E934 /* FSKeyedUnarchiver.h */; }; + EDC2CB271A1AA52500942777 /* FSKeyedArchiver.h in Headers */ = {isa = PBXBuildFile; fileRef = F55D44CE0358B5D201B9E934 /* FSKeyedArchiver.h */; }; + EDC2CB281A1AA52500942777 /* FSConstantListBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = F52EECA6036210E2016141BB /* FSConstantListBuilder.h */; }; + EDC2CB291A1AA52500942777 /* FSImageInspector.h in Headers */ = {isa = PBXBuildFile; fileRef = F54B55B9036B45770140C608 /* FSImageInspector.h */; }; + EDC2CB2A1A1AA52500942777 /* FSNSImage.h in Headers */ = {isa = PBXBuildFile; fileRef = F54B55C8036B4A330140C608 /* FSNSImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EDC2CB2B1A1AA52500942777 /* FSObjectBrowserToolbarItem.h in Headers */ = {isa = PBXBuildFile; fileRef = F58090CF03755FC701AED2EF /* FSObjectBrowserToolbarItem.h */; }; + EDC2CB2C1A1AA52500942777 /* ArrayRepBoolean.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D4BE29038511FF01461810 /* ArrayRepBoolean.h */; }; + EDC2CB2D1A1AA52500942777 /* FSNSObjectPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F63CC08044B95DB00B84480 /* FSNSObjectPrivate.h */; }; + EDC2CB2E1A1AA52500942777 /* FSArrayEnumerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FA3AE55044D4D6700CF7A3A /* FSArrayEnumerator.h */; }; + EDC2CB2F1A1AA52500942777 /* Util.h in Headers */ = {isa = PBXBuildFile; fileRef = EDFB2FFF1A188B4E002C8DD7 /* Util.h */; }; + EDC2CB301A1AA52500942777 /* TestFS.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FBB10A4044E28FD00181279 /* TestFS.h */; }; + EDC2CB311A1AA52500942777 /* FSNSMutableArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F66F85404666E8100AFC811 /* FSNSMutableArray.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EDC2CB321A1AA52500942777 /* FSNSValue.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F553BF70585222700A92293 /* FSNSValue.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EDC2CB331A1AA52500942777 /* FSReplacementForCoderForNilInArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F7D7DB7058E32CD00F1B8A8 /* FSReplacementForCoderForNilInArray.h */; }; + EDC2CB341A1AA52500942777 /* FSNamedNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F0E3B7E059F3DBB003F6CE9 /* FSNamedNumber.h */; }; + EDC2CB351A1AA52500942777 /* CHMutableDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = EDFB2FFD1A188B4E002C8DD7 /* CHMutableDictionary.h */; }; + EDC2CB361A1AA52500942777 /* FSCollectionInspectorTableView.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F60216E05A25CDC0004EFF1 /* FSCollectionInspectorTableView.h */; }; + EDC2CB371A1AA52500942777 /* FSNSSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F60F24505A9FE8B00985FEC /* FSNSSet.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EDC2CB381A1AA52500942777 /* CHBidirectionalDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = EDFB2FFB1A188B4E002C8DD7 /* CHBidirectionalDictionary.h */; }; + EDC2CB391A1AA52500942777 /* FSAttributedStringInspector.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FDCCD4E05C09F8200747C0A /* FSAttributedStringInspector.h */; }; + EDC2CB3A1A1AA52500942777 /* FSNSAttributedString.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FDCCDBF05C0A23000747C0A /* FSNSAttributedString.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EDC2CB3B1A1AA52500942777 /* FSInterpreterViewPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F71F72205C43A7D00C34794 /* FSInterpreterViewPrivate.h */; }; + EDC2CB3C1A1AA52500942777 /* FScriptMenuItem.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F0B66FB05C5639E0099180D /* FScriptMenuItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EDC2CB3D1A1AA52500942777 /* FSNSFont.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F658B2705C9694F0040FB24 /* FSNSFont.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EDC2CB3E1A1AA52500942777 /* FSObjectBrowserMatrix.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FB505FF05D53C8600153B33 /* FSObjectBrowserMatrix.h */; }; + EDC2CB3F1A1AA52500942777 /* FSSymbolTable.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F17C07D06B1309C00F07862 /* FSSymbolTable.h */; }; + EDC2CB401A1AA52500942777 /* FSObjectBrowserViewObjectInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F4E294C075B8E5600F8DCDB /* FSObjectBrowserViewObjectInfo.h */; }; + EDC2CB411A1AA52500942777 /* FSCollectionInspectorView.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FA8EDC607735B3B001BEC7B /* FSCollectionInspectorView.h */; }; + EDC2CB421A1AA52500942777 /* ArrayRepFetchRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FBC2877077B7D5200F9B4A2 /* ArrayRepFetchRequest.h */; }; + EDC2CB431A1AA52500942777 /* FSPointer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F8EA70B077F6A5200AC1C96 /* FSPointer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EDC2CB441A1AA52500942777 /* FSGenericPointer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F8EA779077F6C9300AC1C96 /* FSGenericPointer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EDC2CB451A1AA52500942777 /* FSPointerPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F8EA7E8077F719800AC1C96 /* FSPointerPrivate.h */; }; + EDC2CB461A1AA52500942777 /* FSGenericPointerPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F8EA841077F79A000AC1C96 /* FSGenericPointerPrivate.h */; }; + EDC2CB471A1AA52500942777 /* FSObjectPointer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FE9AE12078071CC005B2CC4 /* FSObjectPointer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EDC2CB481A1AA52500942777 /* FSObjectPointerPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FE9AE8207807269005B2CC4 /* FSObjectPointerPrivate.h */; }; + EDC2CB491A1AA52500942777 /* FSObjectBrowserNamedObjectWrapper.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F86923607F19BA8000D20A4 /* FSObjectBrowserNamedObjectWrapper.h */; }; + EDC2CB4A1A1AA52500942777 /* FSInspectorUniquier.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F7F4F9C07FB274C008E42F4 /* FSInspectorUniquier.h */; }; + EDC2CB4B1A1AA52500942777 /* FSPredicateTextView.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F95E3C108034A670030B65C /* FSPredicateTextView.h */; }; + EDC2CB4C1A1AA52500942777 /* FSCoreDataSample.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FE7E0E6082AD964008231E8 /* FSCoreDataSample.h */; }; + EDC2CB4D1A1AA52500942777 /* FSManagedObjectContextInspector.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F37AEC2078B7E900083565D /* FSManagedObjectContextInspector.h */; }; + EDC2CB4E1A1AA52500942777 /* FSObjectInspectorBackgroundView.h in Headers */ = {isa = PBXBuildFile; fileRef = EDC2C8EE1A1AA34D00942777 /* FSObjectInspectorBackgroundView.h */; }; + EDC2CB4F1A1AA52500942777 /* FSNSManagedObjectContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F5189E707F072EA00A50735 /* FSNSManagedObjectContext.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EDC2CB501A1AA52500942777 /* FSObjectBrowserSearchField.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F585F6E059B23F100C12B6F /* FSObjectBrowserSearchField.h */; }; + EDC2CB511A1AA52500942777 /* FSBlockCompilationResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F90A2EF096DB0660064F4BC /* FSBlockCompilationResult.h */; }; + EDC2CB521A1AA52500942777 /* FSObjectEnumInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = ED8222E51A19554F00C42C72 /* FSObjectEnumInfo.h */; }; + EDC2CB531A1AA52500942777 /* FSReturnSignal.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FD7D4A60975B377009B2685 /* FSReturnSignal.h */; }; + EDC2CB541A1AA52500942777 /* FSMethod.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F3C13980C65E66400948776 /* FSMethod.h */; }; + EDC2CB551A1AA52500942777 /* FSCNClassDefinition.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F5AD3200D05CFFE000CEAC6 /* FSCNClassDefinition.h */; }; + EDC2CB561A1AA52500942777 /* FSCNBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FE6397E0D09C0F400255EBA /* FSCNBase.h */; }; + EDC2CB571A1AA52500942777 /* FSCNIdentifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FE6398E0D09DCB600255EBA /* FSCNIdentifier.h */; }; + EDC2CB581A1AA52500942777 /* FSTestObjCClass1.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FE3DD200D26D49900A1D767 /* FSTestObjCClass1.h */; }; + EDC2CB591A1AA52500942777 /* FSTestObjCClass2.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F4822020D2C317700754A4E /* FSTestObjCClass2.h */; }; + EDC2CB5A1A1AA52500942777 /* FSCNCategory.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F8112F00D85E58200CB3407 /* FSCNCategory.h */; }; + EDC2CB5B1A1AA52500942777 /* FSCNMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F59CA6F0D86DD0800D67A78 /* FSCNMessage.h */; }; + EDC2CB5C1A1AA52500942777 /* FSCNSuper.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F72237D0D870C6A00394C99 /* FSCNSuper.h */; }; + EDC2CB5D1A1AA52500942777 /* FSCNUnaryMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F2E341E0D8DB61C00912543 /* FSCNUnaryMessage.h */; }; + EDC2CB5E1A1AA52500942777 /* FSCNBinaryMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F2E34310D8DBF6A00912543 /* FSCNBinaryMessage.h */; }; + EDC2CB5F1A1AA52500942777 /* FSCNKeywordMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F2E343A0D8DBFE700912543 /* FSCNKeywordMessage.h */; }; + EDC2CB601A1AA52500942777 /* FSCNCascade.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F5900130D9468FC003A8B17 /* FSCNCascade.h */; }; + EDC2CB611A1AA52500942777 /* FSCNStatementList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F8F58640D9FE6A900ED0FED /* FSCNStatementList.h */; }; + EDC2CB621A1AA52500942777 /* FSCNPrecomputedObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F747DA70DA03AE200148342 /* FSCNPrecomputedObject.h */; }; + EDC2CB631A1AA52500942777 /* FSCNArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F747DB60DA0467100148342 /* FSCNArray.h */; }; + EDC2CB641A1AA52500942777 /* FSCNBlock.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FAE79AA0DA0ED5D00CB6E14 /* FSCNBlock.h */; }; + EDC2CB651A1AA52500942777 /* FSCNAssignment.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FAE79F10DA109C500CB6E14 /* FSCNAssignment.h */; }; + EDC2CB661A1AA52500942777 /* FSCNMethod.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F45CBBD0DA813F200AFA8C8 /* FSCNMethod.h */; }; + EDC2CB671A1AA52500942777 /* FSCNReturn.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FD0A3120DD7276000E47459 /* FSCNReturn.h */; }; + EDC2CB681A1AA52500942777 /* FSClassDefinition.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F8949D50DE08B110094EC14 /* FSClassDefinition.h */; }; + EDC2CB691A1AA52500942777 /* FSTranscript.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F2DE6590E57254700CF83CB /* FSTranscript.h */; }; + EDC2CB6A1A1AA52500942777 /* FSArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FE6AD8F0EC740650096019D /* FSArray.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EDC2CB6B1A1AA52500942777 /* Array_fscript.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F31A4C00EC74A2E00D1B8E8 /* Array_fscript.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EDC2CB6C1A1AA52500942777 /* Block_fscript.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FCA00C10EEAF34300B10420 /* Block_fscript.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EDC2CB6D1A1AA52500942777 /* Number_fscript.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FBB2FF00EEB3467007A3163 /* Number_fscript.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EDC2CB6E1A1AA52500942777 /* FSGlobalScope.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FB9D5970F1CEE2100E10274 /* FSGlobalScope.h */; }; + EDC2CB6F1A1AA52500942777 /* FSNSFileHandle.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F9D04170F1DF1CB001B8286 /* FSNSFileHandle.h */; settings = {ATTRIBUTES = (); }; }; + EDC2CB701A1AA52500942777 /* FSAssociation.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F940B810F2393B0004525E1 /* FSAssociation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EDC2CB711A1AA52500942777 /* FSCNDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F940C6E0F23BC2E004525E1 /* FSCNDictionary.h */; }; + EDC2CB721A1AA52500942777 /* FSObjectBrowserBottomBarTextDisplay.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F7A71290F48397C00E95364 /* FSObjectBrowserBottomBarTextDisplay.h */; }; + EDC2CB731A1AA52500942777 /* FSNSAffineTransform.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F2D72090F6BD9B100F0862A /* FSNSAffineTransform.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EDC2CB741A1AA52500942777 /* FSNewlyAllocatedObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FCA593110883B0100F67841 /* FSNewlyAllocatedObject.h */; }; + EDC2CB751A1AA52500942777 /* FSWorksWhenModalWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F5EDA00109B384A003A2F4C /* FSWorksWhenModalWindow.h */; }; + EDC2CB761A1AA52500942777 /* FSNSMutableDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F44270B116549C700E88F21 /* FSNSMutableDictionary.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EDC2CB781A1AA52500942777 /* FSConsole.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDE508D119DD4D310012F16A /* FSConsole.xib */; }; + EDC2CB791A1AA52500942777 /* FSObjectInspectorViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = ED3004E71A1A86EF00675D94 /* FSObjectInspectorViewController.xib */; }; + EDC2CB7A1A1AA52500942777 /* FSCollectionInspector.nib in Resources */ = {isa = PBXBuildFile; fileRef = 0CD4E31F00D7DFE17BE9C1BD /* FSCollectionInspector.nib */; }; + EDC2CB7B1A1AA52500942777 /* blockInspector.nib in Resources */ = {isa = PBXBuildFile; fileRef = 0CD4E32A00D7DFE17BE9C1BD /* blockInspector.nib */; }; + EDC2CB7C1A1AA52500942777 /* FlightTutorial.txt in Resources */ = {isa = PBXBuildFile; fileRef = 0CD4E34400D7DFE17BE9C1BD /* FlightTutorial.txt */; }; + EDC2CB7D1A1AA52500942777 /* genObjInspector.nib in Resources */ = {isa = PBXBuildFile; fileRef = 0CD4E37900D7DFE17BE9C1BD /* genObjInspector.nib */; }; + EDC2CB7E1A1AA52500942777 /* FScriptPreferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDE508DA19DD4FDC0012F16A /* FScriptPreferences.xib */; }; + EDC2CB7F1A1AA52500942777 /* KTest.txt in Resources */ = {isa = PBXBuildFile; fileRef = 0CD4E37D00D7DFE17BE9C1BD /* KTest.txt */; }; + EDC2CB801A1AA52500942777 /* license.txt in Resources */ = {isa = PBXBuildFile; fileRef = 0CD4E37E00D7DFE17BE9C1BD /* license.txt */; }; + EDC2CB811A1AA52500942777 /* fs.scriptSuite in Resources */ = {isa = PBXBuildFile; fileRef = F538EF6E0279FD3C01345511 /* fs.scriptSuite */; }; + EDC2CB821A1AA52500942777 /* fs.scriptTerminology in Resources */ = {isa = PBXBuildFile; fileRef = F538EF6F0279FD3C01345511 /* fs.scriptTerminology */; }; + EDC2CB831A1AA52500942777 /* FSImageInspector.nib in Resources */ = {isa = PBXBuildFile; fileRef = F54B55C3036B48690140C608 /* FSImageInspector.nib */; }; + EDC2CB841A1AA52500942777 /* ReadMe.txt in Resources */ = {isa = PBXBuildFile; fileRef = F58090EB0375648201AED2EF /* ReadMe.txt */; }; + EDC2CB851A1AA52500942777 /* ArrayTableView.nib in Resources */ = {isa = PBXBuildFile; fileRef = F58090FC03756D2401AED2EF /* ArrayTableView.nib */; }; + EDC2CB861A1AA52500942777 /* constantsDictionary in Resources */ = {isa = PBXBuildFile; fileRef = 8F92F0380463F2A400F4C61F /* constantsDictionary */; }; + EDC2CB871A1AA52500942777 /* FSAttributedStringInspector.nib in Resources */ = {isa = PBXBuildFile; fileRef = 8FDCCD7A05C0A0A000747C0A /* FSAttributedStringInspector.nib */; }; + EDC2CB881A1AA52500942777 /* run.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8F2D066F05CED9B9007EA81B /* run.tiff */; }; + EDC2CB891A1AA52500942777 /* build.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 8F56036505CF22660044FA65 /* build.tiff */; }; + EDC2CB8A1A1AA52500942777 /* FSObjectBrowserButtonsInspector.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDFB2FF21A17E345002C8DD7 /* FSObjectBrowserButtonsInspector.xib */; }; + EDC2CB8B1A1AA52500942777 /* FSCollectionInspectorView.nib in Resources */ = {isa = PBXBuildFile; fileRef = 8FA8EF9107739FD4001BEC7B /* FSCollectionInspectorView.nib */; }; + EDC2CB8C1A1AA52500942777 /* FSManagedObjectContextInspector.nib in Resources */ = {isa = PBXBuildFile; fileRef = 8FCA6B79078E0E4F005FC6B2 /* FSManagedObjectContextInspector.nib */; }; + EDC2CB8D1A1AA52500942777 /* FSMovieInspector.nib in Resources */ = {isa = PBXBuildFile; fileRef = 8F7472BE056B7ACE00E87339 /* FSMovieInspector.nib */; }; + EDC2CB8E1A1AA52500942777 /* FSTestClasses.txt in Resources */ = {isa = PBXBuildFile; fileRef = 8FE3DC990D26C0FD00A1D767 /* FSTestClasses.txt */; }; + EDC2CB901A1AA52500942777 /* FSAirplane.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E31000D7DFE17BE9C1BD /* FSAirplane.m */; }; + EDC2CB911A1AA52500942777 /* ArrayRepDouble.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E31800D7DFE17BE9C1BD /* ArrayRepDouble.m */; }; + EDC2CB921A1AA52500942777 /* ArrayRepEmpty.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E31A00D7DFE17BE9C1BD /* ArrayRepEmpty.m */; }; + EDC2CB931A1AA52500942777 /* ArrayRepId.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E31C00D7DFE17BE9C1BD /* ArrayRepId.m */; }; + EDC2CB941A1AA52500942777 /* FSCollectionInspector.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E31E00D7DFE17BE9C1BD /* FSCollectionInspector.m */; }; + EDC2CB951A1AA52500942777 /* FSObjectBrowser.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32100D7DFE17BE9C1BD /* FSObjectBrowser.m */; }; + EDC2CB961A1AA52500942777 /* FSObjectBrowserCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32300D7DFE17BE9C1BD /* FSObjectBrowserCell.m */; }; + EDC2CB971A1AA52500942777 /* FSBlock.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32700D7DFE17BE9C1BD /* FSBlock.m */; }; + EDC2CB981A1AA52500942777 /* BlockInspector.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32900D7DFE17BE9C1BD /* BlockInspector.m */; }; + EDC2CB991A1AA52500942777 /* BlockRep.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32D00D7DFE17BE9C1BD /* BlockRep.m */; }; + EDC2CB9A1A1AA52500942777 /* BlockStackElem.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E33000D7DFE17BE9C1BD /* BlockStackElem.m */; }; + EDC2CB9B1A1AA52500942777 /* CLIView.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E33400D7DFE17BE9C1BD /* CLIView.m */; }; + EDC2CB9C1A1AA52500942777 /* FSCompilationResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E33600D7DFE17BE9C1BD /* FSCompilationResult.m */; }; + EDC2CB9D1A1AA52500942777 /* CompiledCodeNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E33800D7DFE17BE9C1BD /* CompiledCodeNode.m */; }; + EDC2CB9E1A1AA52500942777 /* FSCompiler.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E33A00D7DFE17BE9C1BD /* FSCompiler.m */; }; + EDC2CB9F1A1AA52500942777 /* FSConstantsInitialization.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E33C00D7DFE17BE9C1BD /* FSConstantsInitialization.m */; }; + EDC2CBA01A1AA52500942777 /* Util.m in Sources */ = {isa = PBXBuildFile; fileRef = EDFB30001A188B4E002C8DD7 /* Util.m */; }; + EDC2CBA11A1AA52500942777 /* FSExecEngine.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E33E00D7DFE17BE9C1BD /* FSExecEngine.m */; }; + EDC2CBA21A1AA52500942777 /* FSExecutor.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E34000D7DFE17BE9C1BD /* FSExecutor.m */; }; + EDC2CBA31A1AA52500942777 /* FSFlight.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E34300D7DFE17BE9C1BD /* FSFlight.m */; }; + EDC2CBA41A1AA52500942777 /* FSArchiver.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E34600D7DFE17BE9C1BD /* FSArchiver.m */; }; + EDC2CBA51A1AA52500942777 /* FSBoolean.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E34800D7DFE17BE9C1BD /* FSBoolean.m */; }; + EDC2CBA61A1AA52500942777 /* FSObjectInspectorViewModelItem.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8222D51A194FD600C42C72 /* FSObjectInspectorViewModelItem.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; + EDC2CBA71A1AA52500942777 /* FScriptFunctions.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E34F00D7DFE17BE9C1BD /* FScriptFunctions.m */; }; + EDC2CBA81A1AA52500942777 /* FSDetailedObjectInspector.m in Sources */ = {isa = PBXBuildFile; fileRef = EDC2C8DD1A1A943600942777 /* FSDetailedObjectInspector.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; + EDC2CBA91A1AA52500942777 /* FSInterpreter.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E35100D7DFE17BE9C1BD /* FSInterpreter.m */; }; + EDC2CBAA1A1AA52500942777 /* FSInterpreterResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E35300D7DFE17BE9C1BD /* FSInterpreterResult.m */; }; + EDC2CBAB1A1AA52500942777 /* FSInterpreterView.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E35600D7DFE17BE9C1BD /* FSInterpreterView.m */; }; + EDC2CBAC1A1AA52500942777 /* FSNSArray.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E35900D7DFE17BE9C1BD /* FSNSArray.m */; }; + EDC2CBAD1A1AA52500942777 /* FSNSDate.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E35C00D7DFE17BE9C1BD /* FSNSDate.m */; }; + EDC2CBAE1A1AA52500942777 /* FSNSDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E35E00D7DFE17BE9C1BD /* FSNSDictionary.m */; }; + EDC2CBAF1A1AA52500942777 /* CHBidirectionalDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = EDFB2FFC1A188B4E002C8DD7 /* CHBidirectionalDictionary.m */; }; + EDC2CBB01A1AA52500942777 /* FSNSMutableString.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E36000D7DFE17BE9C1BD /* FSNSMutableString.m */; }; + EDC2CBB11A1AA52500942777 /* FSNSNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E36200D7DFE17BE9C1BD /* FSNSNumber.m */; }; + EDC2CBB21A1AA52500942777 /* FSNSObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E36400D7DFE17BE9C1BD /* FSNSObject.m */; }; + EDC2CBB31A1AA52500942777 /* FSNSProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E36600D7DFE17BE9C1BD /* FSNSProxy.m */; }; + EDC2CBB41A1AA52500942777 /* FSNSString.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E36800D7DFE17BE9C1BD /* FSNSString.m */; }; + EDC2CBB51A1AA52500942777 /* FSPattern.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E36D00D7DFE17BE9C1BD /* FSPattern.m */; }; + EDC2CBB61A1AA52500942777 /* FSUnarchiver.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E37300D7DFE17BE9C1BD /* FSUnarchiver.m */; }; + EDC2CBB71A1AA52500942777 /* FSVoid.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E37500D7DFE17BE9C1BD /* FSVoid.m */; }; + EDC2CBB81A1AA52500942777 /* FSGenericObjectInspector.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E37800D7DFE17BE9C1BD /* FSGenericObjectInspector.m */; }; + EDC2CBB91A1AA52500942777 /* MessagePatternCodeNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E38000D7DFE17BE9C1BD /* MessagePatternCodeNode.m */; }; + EDC2CBBA1A1AA52500942777 /* FSMiscTools.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E38200D7DFE17BE9C1BD /* FSMiscTools.m */; }; + EDC2CBBB1A1AA52500942777 /* FSMsgContext.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E38400D7DFE17BE9C1BD /* FSMsgContext.m */; }; + EDC2CBBC1A1AA52500942777 /* FSNewlyAllocatedObjectHolder.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E38800D7DFE17BE9C1BD /* FSNewlyAllocatedObjectHolder.m */; }; + EDC2CBBD1A1AA52500942777 /* FSNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E38E00D7DFE17BE9C1BD /* FSNumber.m */; }; + EDC2CBBE1A1AA52500942777 /* FSPilot.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E39100D7DFE17BE9C1BD /* FSPilot.m */; }; + EDC2CBBF1A1AA52500942777 /* FSReplacementForCoderForClass.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E39500D7DFE17BE9C1BD /* FSReplacementForCoderForClass.m */; }; + EDC2CBC01A1AA52500942777 /* ShellView.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E39700D7DFE17BE9C1BD /* ShellView.m */; }; + EDC2CBC11A1AA52500942777 /* Space.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E39900D7DFE17BE9C1BD /* Space.m */; }; + EDC2CBC21A1AA52500942777 /* FSCommandHistory.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E39B00D7DFE17BE9C1BD /* FSCommandHistory.m */; }; + EDC2CBC31A1AA52500942777 /* FSSystem.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E39F00D7DFE17BE9C1BD /* FSSystem.m */; }; + EDC2CBC41A1AA52500942777 /* KTestManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 66029E590161E0650055708C /* KTestManager.m */; }; + EDC2CBC51A1AA52500942777 /* FSNSDistantObject.m in Sources */ = {isa = PBXBuildFile; fileRef = F51CA01501B013C401BFBB24 /* FSNSDistantObject.m */; }; + EDC2CBC61A1AA52500942777 /* DOTest.m in Sources */ = {isa = PBXBuildFile; fileRef = F5F13B4801C8BE3401CB6DF7 /* DOTest.m */; }; + EDC2CBC71A1AA52500942777 /* FScriptTextView.m in Sources */ = {isa = PBXBuildFile; fileRef = F501AF7B021497C401A75EC5 /* FScriptTextView.m */; }; + EDC2CBC81A1AA52500942777 /* FSObjectBrowserArgumentPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = F5FA8A6D0215D44C01AFEEFD /* FSObjectBrowserArgumentPanel.m */; }; + EDC2CBC91A1AA52500942777 /* FSNSProtocolChecker.m in Sources */ = {isa = PBXBuildFile; fileRef = F5F1405A0223CC9D01DD698C /* FSNSProtocolChecker.m */; }; + EDC2CBCA1A1AA52500942777 /* FSObjectBrowserToolbar.m in Sources */ = {isa = PBXBuildFile; fileRef = F538EF6D0279FD3C01345511 /* FSObjectBrowserToolbar.m */; }; + EDC2CBCB1A1AA52500942777 /* FSEvalCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = F538EF710279FD3C01345511 /* FSEvalCommand.m */; }; + EDC2CBCC1A1AA52500942777 /* FSServicesProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = F538EF7D0279FD3C01345511 /* FSServicesProvider.m */; }; + EDC2CBCD1A1AA52500942777 /* FSTask.m in Sources */ = {isa = PBXBuildFile; fileRef = F538EF7F0279FD3C01345511 /* FSTask.m */; }; + EDC2CBCE1A1AA52500942777 /* FSObjectBrowserToolbarButton.m in Sources */ = {isa = PBXBuildFile; fileRef = F5F0AD430285792F0103CD49 /* FSObjectBrowserToolbarButton.m */; }; + EDC2CBCF1A1AA52500942777 /* FSObjectBrowserButtonCtxBlock.m in Sources */ = {isa = PBXBuildFile; fileRef = F5F0261E02C243D20155CB83 /* FSObjectBrowserButtonCtxBlock.m */; }; + EDC2CBD01A1AA52500942777 /* FSObjectBrowserButtonsInspector.m in Sources */ = {isa = PBXBuildFile; fileRef = F5F9569502B272FB0121B3BA /* FSObjectBrowserButtonsInspector.m */; }; + EDC2CBD11A1AA52500942777 /* FSObjectBrowserView.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32500D7DFE17BE9C1BD /* FSObjectBrowserView.m */; }; + EDC2CBD21A1AA52500942777 /* Pointer.m in Sources */ = {isa = PBXBuildFile; fileRef = F505647F02DF417501FE0326 /* Pointer.m */; }; + EDC2CBD31A1AA52500942777 /* FSObjectFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = F5EBBE810321029601CA10C6 /* FSObjectFormatter.m */; }; + EDC2CBD41A1AA52500942777 /* FSIdentifierFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = F5073A2002FC5400013656B0 /* FSIdentifierFormatter.m */; }; + EDC2CBD51A1AA52500942777 /* FSKeyedUnarchiver.m in Sources */ = {isa = PBXBuildFile; fileRef = F55D44C50358A88801B9E934 /* FSKeyedUnarchiver.m */; }; + EDC2CBD61A1AA52500942777 /* FSKeyedArchiver.m in Sources */ = {isa = PBXBuildFile; fileRef = F55D44CF0358B5D201B9E934 /* FSKeyedArchiver.m */; }; + EDC2CBD71A1AA52500942777 /* FSConstantListBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = F52EECA7036210E2016141BB /* FSConstantListBuilder.m */; }; + EDC2CBD81A1AA52500942777 /* FSImageInspector.m in Sources */ = {isa = PBXBuildFile; fileRef = F54B55BA036B45770140C608 /* FSImageInspector.m */; }; + EDC2CBD91A1AA52500942777 /* FSNSImage.m in Sources */ = {isa = PBXBuildFile; fileRef = F54B55C9036B4A330140C608 /* FSNSImage.m */; }; + EDC2CBDA1A1AA52500942777 /* FSObjectBrowserToolbarItem.m in Sources */ = {isa = PBXBuildFile; fileRef = F58090D003755FC701AED2EF /* FSObjectBrowserToolbarItem.m */; }; + EDC2CBDB1A1AA52500942777 /* ArrayRepBoolean.m in Sources */ = {isa = PBXBuildFile; fileRef = F5D4BE2A038511FF01461810 /* ArrayRepBoolean.m */; }; + EDC2CBDC1A1AA52500942777 /* FSArrayEnumerator.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FA3AE56044D4D6700CF7A3A /* FSArrayEnumerator.m */; }; + EDC2CBDD1A1AA52500942777 /* FSNSMutableArray.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F66F85504666E8100AFC811 /* FSNSMutableArray.m */; }; + EDC2CBDE1A1AA52500942777 /* FSNSValue.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F553BF80585222700A92293 /* FSNSValue.m */; }; + EDC2CBDF1A1AA52500942777 /* FSReplacementForCoderForNilInArray.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F7D7DB8058E32CD00F1B8A8 /* FSReplacementForCoderForNilInArray.m */; }; + EDC2CBE01A1AA52500942777 /* FSNamedNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F0E3B7F059F3DBB003F6CE9 /* FSNamedNumber.m */; }; + EDC2CBE11A1AA52500942777 /* FSCollectionInspectorTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F60216F05A25CDC0004EFF1 /* FSCollectionInspectorTableView.m */; }; + EDC2CBE21A1AA52500942777 /* FSNSSet.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F60F24605A9FE8B00985FEC /* FSNSSet.m */; }; + EDC2CBE31A1AA52500942777 /* FSAttributedStringInspector.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FDCCD4F05C09F8200747C0A /* FSAttributedStringInspector.m */; }; + EDC2CBE41A1AA52500942777 /* FSNSAttributedString.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FDCCDC005C0A23000747C0A /* FSNSAttributedString.m */; }; + EDC2CBE51A1AA52500942777 /* FScriptMenuItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F0B66FC05C5639E0099180D /* FScriptMenuItem.m */; }; + EDC2CBE61A1AA52500942777 /* FSNSFont.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F658B2805C9694F0040FB24 /* FSNSFont.m */; }; + EDC2CBE71A1AA52500942777 /* FSObjectBrowserMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FB5060005D53C8600153B33 /* FSObjectBrowserMatrix.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; + EDC2CBE81A1AA52500942777 /* FSSymbolTable.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F17C07E06B1309C00F07862 /* FSSymbolTable.m */; }; + EDC2CBE91A1AA52500942777 /* FSObjectBrowserViewObjectInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F4E294D075B8E5600F8DCDB /* FSObjectBrowserViewObjectInfo.m */; }; + EDC2CBEA1A1AA52500942777 /* FSCollectionInspectorView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FA8EDD307735B3B001BEC7B /* FSCollectionInspectorView.m */; }; + EDC2CBEB1A1AA52500942777 /* ArrayRepFetchRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FBC2884077B7D5200F9B4A2 /* ArrayRepFetchRequest.m */; }; + EDC2CBEC1A1AA52500942777 /* CHMutableDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = EDFB2FFE1A188B4E002C8DD7 /* CHMutableDictionary.m */; }; + EDC2CBED1A1AA52500942777 /* FSPointer.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F8EA718077F6A5200AC1C96 /* FSPointer.m */; }; + EDC2CBEE1A1AA52500942777 /* FSGenericPointer.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F8EA786077F6C9300AC1C96 /* FSGenericPointer.m */; }; + EDC2CBEF1A1AA52500942777 /* FSObjectPointer.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FE9AE1F078071CC005B2CC4 /* FSObjectPointer.m */; }; + EDC2CBF01A1AA52500942777 /* FSObjectBrowserNamedObjectWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F86923707F19BA8000D20A4 /* FSObjectBrowserNamedObjectWrapper.m */; }; + EDC2CBF11A1AA52500942777 /* FSInspectorUniquier.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F7F4F9D07FB274C008E42F4 /* FSInspectorUniquier.m */; }; + EDC2CBF21A1AA52500942777 /* FSPredicateTextView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F95E3C208034A670030B65C /* FSPredicateTextView.m */; }; + EDC2CBF31A1AA52500942777 /* FSCoreDataSample.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FE7E0E7082AD964008231E8 /* FSCoreDataSample.m */; }; + EDC2CBF41A1AA52500942777 /* FSManagedObjectContextInspector.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F37AEC3078B7E900083565D /* FSManagedObjectContextInspector.m */; }; + EDC2CBF51A1AA52500942777 /* FSNSManagedObjectContext.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F5189E807F072EA00A50735 /* FSNSManagedObjectContext.m */; }; + EDC2CBF61A1AA52500942777 /* FSObjectBrowserSearchField.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F585F6F059B23F100C12B6F /* FSObjectBrowserSearchField.m */; }; + EDC2CBF71A1AA52500942777 /* FSBlockCompilationResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F90A2F0096DB0660064F4BC /* FSBlockCompilationResult.m */; }; + EDC2CBF81A1AA52500942777 /* FSReturnSignal.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FD7D4A70975B377009B2685 /* FSReturnSignal.m */; }; + EDC2CBF91A1AA52500942777 /* FSMovieInspector.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F573F7E056B754B00F2796A /* FSMovieInspector.m */; }; + EDC2CBFA1A1AA52500942777 /* FSMethod.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F3C13990C65E66400948776 /* FSMethod.m */; }; + EDC2CBFB1A1AA52500942777 /* FSCNClassDefinition.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F5AD3210D05CFFE000CEAC6 /* FSCNClassDefinition.m */; }; + EDC2CBFC1A1AA52500942777 /* FSCNBase.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FE6397F0D09C0F400255EBA /* FSCNBase.m */; }; + EDC2CBFD1A1AA52500942777 /* FSCNIdentifier.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FE6398F0D09DCB600255EBA /* FSCNIdentifier.m */; }; + EDC2CBFE1A1AA52500942777 /* FSObjectEnumInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8222E61A19554F00C42C72 /* FSObjectEnumInfo.m */; }; + EDC2CBFF1A1AA52500942777 /* FSTestObjCClass1.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FE3DD210D26D49900A1D767 /* FSTestObjCClass1.m */; }; + EDC2CC001A1AA52500942777 /* FSTestObjCClass2.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F4822030D2C317700754A4E /* FSTestObjCClass2.m */; }; + EDC2CC011A1AA52500942777 /* FSCNCategory.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F8112F10D85E58200CB3407 /* FSCNCategory.m */; }; + EDC2CC021A1AA52500942777 /* FSCNMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F59CA700D86DD0800D67A78 /* FSCNMessage.m */; }; + EDC2CC031A1AA52500942777 /* FSCNSuper.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F72237E0D870C6A00394C99 /* FSCNSuper.m */; }; + EDC2CC041A1AA52500942777 /* FSCNUnaryMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F2E341F0D8DB61C00912543 /* FSCNUnaryMessage.m */; }; + EDC2CC051A1AA52500942777 /* FSCNBinaryMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F2E34320D8DBF6A00912543 /* FSCNBinaryMessage.m */; }; + EDC2CC061A1AA52500942777 /* FSCNKeywordMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F2E343B0D8DBFE700912543 /* FSCNKeywordMessage.m */; }; + EDC2CC071A1AA52500942777 /* FSCNCascade.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F5900140D9468FC003A8B17 /* FSCNCascade.m */; }; + EDC2CC081A1AA52500942777 /* FSCNStatementList.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F8F58650D9FE6A900ED0FED /* FSCNStatementList.m */; }; + EDC2CC091A1AA52500942777 /* FSCNPrecomputedObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F747DA80DA03AE200148342 /* FSCNPrecomputedObject.m */; }; + EDC2CC0A1A1AA52500942777 /* FSCNArray.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F747DB70DA0467100148342 /* FSCNArray.m */; }; + EDC2CC0B1A1AA52500942777 /* FSCNBlock.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FAE79AB0DA0ED5D00CB6E14 /* FSCNBlock.m */; }; + EDC2CC0C1A1AA52500942777 /* FSCNAssignment.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FAE79F20DA109C500CB6E14 /* FSCNAssignment.m */; }; + EDC2CC0D1A1AA52500942777 /* FSObjectInspectorViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = ED3004E61A1A86EF00675D94 /* FSObjectInspectorViewController.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; + EDC2CC0E1A1AA52500942777 /* FSCNMethod.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F45CBBE0DA813F200AFA8C8 /* FSCNMethod.m */; }; + EDC2CC0F1A1AA52500942777 /* FSCNReturn.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FD0A3130DD7276000E47459 /* FSCNReturn.m */; }; + EDC2CC101A1AA52500942777 /* FSClassDefinition.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F8949D60DE08B110094EC14 /* FSClassDefinition.m */; }; + EDC2CC111A1AA52500942777 /* FSTranscript.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F2DE65A0E57254700CF83CB /* FSTranscript.m */; }; + EDC2CC121A1AA52500942777 /* FSArray.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FE6AD900EC740650096019D /* FSArray.m */; }; + EDC2CC131A1AA52500942777 /* Array.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F31A4C10EC74A2E00D1B8E8 /* Array.m */; }; + EDC2CC141A1AA52500942777 /* Block.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FCA00C20EEAF34300B10420 /* Block.m */; }; + EDC2CC151A1AA52500942777 /* Number.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FBB2FF10EEB3467007A3163 /* Number.m */; }; + EDC2CC161A1AA52500942777 /* FSGlobalScope.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FB9D5980F1CEE2100E10274 /* FSGlobalScope.m */; }; + EDC2CC171A1AA52500942777 /* FSNSFileHandle.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F9D04180F1DF1CB001B8286 /* FSNSFileHandle.m */; }; + EDC2CC181A1AA52500942777 /* FSAssociation.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F940B820F2393B0004525E1 /* FSAssociation.m */; }; + EDC2CC191A1AA52500942777 /* FSCNDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F940C6F0F23BC2E004525E1 /* FSCNDictionary.m */; }; + EDC2CC1A1A1AA52500942777 /* FSObjectInspectorBackgroundView.m in Sources */ = {isa = PBXBuildFile; fileRef = EDC2C8EF1A1AA34D00942777 /* FSObjectInspectorBackgroundView.m */; }; + EDC2CC1B1A1AA52500942777 /* FSObjectBrowserBottomBarTextDisplay.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F7A712A0F48397C00E95364 /* FSObjectBrowserBottomBarTextDisplay.m */; }; + EDC2CC1C1A1AA52500942777 /* FSNSAffineTransform.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F2D720A0F6BD9B100F0862A /* FSNSAffineTransform.m */; }; + EDC2CC1D1A1AA52500942777 /* FSNewlyAllocatedObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FCA593210883B0100F67841 /* FSNewlyAllocatedObject.m */; }; + EDC2CC1E1A1AA52500942777 /* FSWorksWhenModalWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F5EDA01109B384A003A2F4C /* FSWorksWhenModalWindow.m */; }; + EDC2CC1F1A1AA52500942777 /* FSNSMutableDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F44270C116549C700E88F21 /* FSNSMutableDictionary.m */; }; + EDC2CC211A1AA52500942777 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8F85274707F6016900E706F5 /* Cocoa.framework */; }; + EDC2CC221A1AA52500942777 /* ExceptionHandling.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F51B24640271980D01DB4759 /* ExceptionHandling.framework */; }; EDE508D019DD4AA00012F16A /* InterfaceBuilderKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA22313D189F9AA9002C5B6A /* InterfaceBuilderKit.framework */; }; EDE508D219DD4D310012F16A /* FSConsole.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDE508D119DD4D310012F16A /* FSConsole.xib */; }; EDE508D319DD4D310012F16A /* FSConsole.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDE508D119DD4D310012F16A /* FSConsole.xib */; }; @@ -2872,6 +3705,20 @@ remoteGlobalIDString = 8F6DA5DE055FC6980050409A; remoteInfo = FSTest2; }; + EDC2C9011A1AA50D00942777 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0CD4E2FA00D7DD4D7BE9C1BD /* Project object */; + proxyType = 1; + remoteGlobalIDString = 8F6DA6D8055FC6C80050409A; + remoteInfo = FSTest1; + }; + EDC2C9031A1AA50D00942777 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0CD4E2FA00D7DD4D7BE9C1BD /* Project object */; + proxyType = 1; + remoteGlobalIDString = 8F6DA5DE055FC6980050409A; + remoteInfo = FSTest2; + }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ @@ -2893,7 +3740,7 @@ 0CD4E32200D7DFE17BE9C1BD /* FSObjectBrowserCell.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FSObjectBrowserCell.h; sourceTree = ""; }; 0CD4E32300D7DFE17BE9C1BD /* FSObjectBrowserCell.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = FSObjectBrowserCell.m; sourceTree = ""; }; 0CD4E32400D7DFE17BE9C1BD /* FSObjectBrowserView.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FSObjectBrowserView.h; sourceTree = ""; }; - 0CD4E32500D7DFE17BE9C1BD /* FSObjectBrowserView.m */ = {isa = PBXFileReference; fileEncoding = 30; languageSpecificationIdentifier = c.objc; lastKnownFileType = sourcecode.c.objc; path = FSObjectBrowserView.m; sourceTree = ""; }; + 0CD4E32500D7DFE17BE9C1BD /* FSObjectBrowserView.m */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 8; languageSpecificationIdentifier = c.objc; lastKnownFileType = sourcecode.c.objc; path = FSObjectBrowserView.m; sourceTree = ""; tabWidth = 8; }; 0CD4E32600D7DFE17BE9C1BD /* FSBlock.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FSBlock.h; sourceTree = ""; }; 0CD4E32700D7DFE17BE9C1BD /* FSBlock.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = FSBlock.m; sourceTree = ""; }; 0CD4E32800D7DFE17BE9C1BD /* BlockInspector.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = BlockInspector.h; sourceTree = ""; }; @@ -3138,7 +3985,7 @@ 8FAE79F10DA109C500CB6E14 /* FSCNAssignment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSCNAssignment.h; sourceTree = ""; }; 8FAE79F20DA109C500CB6E14 /* FSCNAssignment.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FSCNAssignment.m; sourceTree = ""; }; 8FB505FF05D53C8600153B33 /* FSObjectBrowserMatrix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FSObjectBrowserMatrix.h; sourceTree = ""; }; - 8FB5060005D53C8600153B33 /* FSObjectBrowserMatrix.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = FSObjectBrowserMatrix.m; sourceTree = ""; }; + 8FB5060005D53C8600153B33 /* FSObjectBrowserMatrix.m */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 8; lastKnownFileType = sourcecode.c.objc; path = FSObjectBrowserMatrix.m; sourceTree = ""; tabWidth = 8; }; 8FB524160C2205C20028B297 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = FScriptIBPlugin/English.lproj/FScriptIBPluginInspector.nib; sourceTree = ""; }; 8FB524180C2205C20028B297 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = FScriptIBPlugin/English.lproj/FScriptIBPluginLibrary.nib; sourceTree = ""; }; 8FB9D5970F1CEE2100E10274 /* FSGlobalScope.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSGlobalScope.h; sourceTree = ""; }; @@ -3315,10 +4162,21 @@ E2DBA329161CA6600035A675 /* Social.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Social.framework; path = System/Library/Frameworks/Social.framework; sourceTree = SDKROOT; }; E2DBA32B161CA6660035A675 /* VideoToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = VideoToolbox.framework; path = System/Library/Frameworks/VideoToolbox.framework; sourceTree = SDKROOT; }; E2DBA32D161CA7180035A675 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; + ED3004E51A1A86EF00675D94 /* FSObjectInspectorViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSObjectInspectorViewController.h; sourceTree = ""; }; + ED3004E61A1A86EF00675D94 /* FSObjectInspectorViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 8; lastKnownFileType = sourcecode.c.objc; path = FSObjectInspectorViewController.m; sourceTree = ""; tabWidth = 8; }; + ED3004E71A1A86EF00675D94 /* FSObjectInspectorViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = FSObjectInspectorViewController.xib; sourceTree = ""; }; ED8222D41A194FD600C42C72 /* FSObjectInspectorViewModelItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSObjectInspectorViewModelItem.h; sourceTree = ""; }; - ED8222D51A194FD600C42C72 /* FSObjectInspectorViewModelItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FSObjectInspectorViewModelItem.m; sourceTree = ""; }; + ED8222D51A194FD600C42C72 /* FSObjectInspectorViewModelItem.m */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 8; lastKnownFileType = sourcecode.c.objc; path = FSObjectInspectorViewModelItem.m; sourceTree = ""; tabWidth = 8; }; ED8222E51A19554F00C42C72 /* FSObjectEnumInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSObjectEnumInfo.h; sourceTree = ""; }; ED8222E61A19554F00C42C72 /* FSObjectEnumInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FSObjectEnumInfo.m; sourceTree = ""; }; + EDC2C8DC1A1A943600942777 /* FSDetailedObjectInspector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSDetailedObjectInspector.h; sourceTree = ""; }; + EDC2C8DD1A1A943600942777 /* FSDetailedObjectInspector.m */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 8; lastKnownFileType = sourcecode.c.objc; path = FSDetailedObjectInspector.m; sourceTree = ""; tabWidth = 8; }; + EDC2C8EE1A1AA34D00942777 /* FSObjectInspectorBackgroundView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSObjectInspectorBackgroundView.h; sourceTree = ""; }; + EDC2C8EF1A1AA34D00942777 /* FSObjectInspectorBackgroundView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FSObjectInspectorBackgroundView.m; sourceTree = ""; }; + EDC2CACD1A1AA50D00942777 /* F-Script.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "F-Script.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + EDC2CACE1A1AA50F00942777 /* F-Script 10.9 copy-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "F-Script 10.9 copy-Info.plist"; path = "/Volumes/Macintosh SSD/Users/ant/Development/GitProjects/F-Script/F-Script 10.9 copy-Info.plist"; sourceTree = ""; }; + EDC2CC271A1AA52500942777 /* FScriptFramework 10.10.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = "FScriptFramework 10.10.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + EDC2CC281A1AA52700942777 /* FScriptFramework 10.9 copy-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "FScriptFramework 10.9 copy-Info.plist"; path = "/Volumes/Macintosh SSD/Users/ant/Development/GitProjects/F-Script/FScriptFramework 10.9 copy-Info.plist"; sourceTree = ""; }; EDE508D119DD4D310012F16A /* FSConsole.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = FSConsole.xib; sourceTree = ""; }; EDE508DA19DD4FDC0012F16A /* FScriptPreferences.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = FScriptPreferences.xib; sourceTree = ""; }; EDFB2FF21A17E345002C8DD7 /* FSObjectBrowserButtonsInspector.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = FSObjectBrowserButtonsInspector.xib; sourceTree = ""; }; @@ -3771,6 +4629,122 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + EDC2CA641A1AA50D00942777 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + EDC2CA651A1AA50D00942777 /* Accelerate.framework in Frameworks */, + EDC2CA661A1AA50D00942777 /* Accounts.framework in Frameworks */, + EDC2CA671A1AA50D00942777 /* AddressBook.framework in Frameworks */, + EDC2CA681A1AA50D00942777 /* AGL.framework in Frameworks */, + EDC2CA691A1AA50D00942777 /* AppKit.framework in Frameworks */, + EDC2CA6A1A1AA50D00942777 /* AppleScriptKit.framework in Frameworks */, + EDC2CA6B1A1AA50D00942777 /* AppleScriptObjC.framework in Frameworks */, + EDC2CA6C1A1AA50D00942777 /* ApplicationServices.framework in Frameworks */, + EDC2CA6D1A1AA50D00942777 /* AudioToolbox.framework in Frameworks */, + EDC2CA6E1A1AA50D00942777 /* AudioUnit.framework in Frameworks */, + EDC2CA6F1A1AA50D00942777 /* AudioVideoBridging.framework in Frameworks */, + EDC2CA701A1AA50D00942777 /* Automator.framework in Frameworks */, + EDC2CA711A1AA50D00942777 /* AVFoundation.framework in Frameworks */, + EDC2CA721A1AA50D00942777 /* AVKit.framework in Frameworks */, + EDC2CA731A1AA50D00942777 /* CalendarStore.framework in Frameworks */, + EDC2CA741A1AA50D00942777 /* Carbon.framework in Frameworks */, + EDC2CA751A1AA50D00942777 /* CFNetwork.framework in Frameworks */, + EDC2CA761A1AA50D00942777 /* Cocoa.framework in Frameworks */, + EDC2CA771A1AA50D00942777 /* Collaboration.framework in Frameworks */, + EDC2CA781A1AA50D00942777 /* CoreAudio.framework in Frameworks */, + EDC2CA791A1AA50D00942777 /* CoreAudioKit.framework in Frameworks */, + EDC2CA7A1A1AA50D00942777 /* CoreData.framework in Frameworks */, + EDC2CA7B1A1AA50D00942777 /* CoreFoundation.framework in Frameworks */, + EDC2CA7C1A1AA50D00942777 /* CoreGraphics.framework in Frameworks */, + EDC2CA7D1A1AA50D00942777 /* CoreLocation.framework in Frameworks */, + EDC2CA7E1A1AA50D00942777 /* CoreMedia.framework in Frameworks */, + EDC2CA7F1A1AA50D00942777 /* CoreMediaIO.framework in Frameworks */, + EDC2CA801A1AA50D00942777 /* CoreMIDI.framework in Frameworks */, + EDC2CA811A1AA50D00942777 /* CoreServices.framework in Frameworks */, + EDC2CA821A1AA50D00942777 /* CoreText.framework in Frameworks */, + EDC2CA831A1AA50D00942777 /* CoreVideo.framework in Frameworks */, + EDC2CA841A1AA50D00942777 /* CoreWLAN.framework in Frameworks */, + EDC2CA851A1AA50D00942777 /* DirectoryService.framework in Frameworks */, + EDC2CA861A1AA50D00942777 /* DiscRecording.framework in Frameworks */, + EDC2CA871A1AA50D00942777 /* DiscRecordingUI.framework in Frameworks */, + EDC2CA881A1AA50D00942777 /* DiskArbitration.framework in Frameworks */, + EDC2CA891A1AA50D00942777 /* DVDPlayback.framework in Frameworks */, + EDC2CA8A1A1AA50D00942777 /* EventKit.framework in Frameworks */, + EDC2CA8B1A1AA50D00942777 /* ExceptionHandling.framework in Frameworks */, + EDC2CA8C1A1AA50D00942777 /* ForceFeedback.framework in Frameworks */, + EDC2CA8D1A1AA50D00942777 /* Foundation.framework in Frameworks */, + EDC2CA8E1A1AA50D00942777 /* FWAUserLib.framework in Frameworks */, + EDC2CA8F1A1AA50D00942777 /* GameController.framework in Frameworks */, + EDC2CA901A1AA50D00942777 /* GameKit.framework in Frameworks */, + EDC2CA911A1AA50D00942777 /* GLUT.framework in Frameworks */, + EDC2CA921A1AA50D00942777 /* GSS.framework in Frameworks */, + EDC2CA931A1AA50D00942777 /* ICADevices.framework in Frameworks */, + EDC2CA941A1AA50D00942777 /* ImageCaptureCore.framework in Frameworks */, + EDC2CA951A1AA50D00942777 /* ImageIO.framework in Frameworks */, + EDC2CA961A1AA50D00942777 /* IMServicePlugIn.framework in Frameworks */, + EDC2CA971A1AA50D00942777 /* InputMethodKit.framework in Frameworks */, + EDC2CA981A1AA50D00942777 /* InstallerPlugins.framework in Frameworks */, + EDC2CA991A1AA50D00942777 /* InstantMessage.framework in Frameworks */, + EDC2CA9A1A1AA50D00942777 /* IOBluetooth.framework in Frameworks */, + EDC2CA9B1A1AA50D00942777 /* IOBluetoothUI.framework in Frameworks */, + EDC2CA9C1A1AA50D00942777 /* IOKit.framework in Frameworks */, + EDC2CA9D1A1AA50D00942777 /* IOSurface.framework in Frameworks */, + EDC2CA9E1A1AA50D00942777 /* JavaFrameEmbedding.framework in Frameworks */, + EDC2CA9F1A1AA50D00942777 /* JavaScriptCore.framework in Frameworks */, + EDC2CAA01A1AA50D00942777 /* JavaVM.framework in Frameworks */, + EDC2CAA11A1AA50D00942777 /* Kerberos.framework in Frameworks */, + EDC2CAA21A1AA50D00942777 /* LatentSemanticMapping.framework in Frameworks */, + EDC2CAA31A1AA50D00942777 /* GLKit.framework in Frameworks */, + EDC2CAA41A1AA50D00942777 /* LDAP.framework in Frameworks */, + EDC2CAA51A1AA50D00942777 /* MapKit.framework in Frameworks */, + EDC2CAA61A1AA50D00942777 /* MediaAccessibility.framework in Frameworks */, + EDC2CAA71A1AA50D00942777 /* MediaLibrary.framework in Frameworks */, + EDC2CAA81A1AA50D00942777 /* MediaToolbox.framework in Frameworks */, + EDC2CAA91A1AA50D00942777 /* NetFS.framework in Frameworks */, + EDC2CAAA1A1AA50D00942777 /* OpenAL.framework in Frameworks */, + EDC2CAAB1A1AA50D00942777 /* OpenCL.framework in Frameworks */, + EDC2CAAC1A1AA50D00942777 /* OpenDirectory.framework in Frameworks */, + EDC2CAAD1A1AA50D00942777 /* OpenGL.framework in Frameworks */, + EDC2CAAE1A1AA50D00942777 /* OSAKit.framework in Frameworks */, + EDC2CAAF1A1AA50D00942777 /* PCSC.framework in Frameworks */, + EDC2CAB01A1AA50D00942777 /* PreferencePanes.framework in Frameworks */, + EDC2CAB11A1AA50D00942777 /* PubSub.framework in Frameworks */, + EDC2CAB21A1AA50D00942777 /* QTKit.framework in Frameworks */, + EDC2CAB31A1AA50D00942777 /* Quartz.framework in Frameworks */, + EDC2CAB41A1AA50D00942777 /* QuartzCore.framework in Frameworks */, + EDC2CAB51A1AA50D00942777 /* QuickLook.framework in Frameworks */, + EDC2CAB61A1AA50D00942777 /* Ruby.framework in Frameworks */, + EDC2CAB71A1AA50D00942777 /* ScreenSaver.framework in Frameworks */, + EDC2CAB81A1AA50D00942777 /* ScriptingBridge.framework in Frameworks */, + EDC2CAB91A1AA50D00942777 /* Security.framework in Frameworks */, + EDC2CABA1A1AA50D00942777 /* SecurityFoundation.framework in Frameworks */, + EDC2CABB1A1AA50D00942777 /* SecurityInterface.framework in Frameworks */, + EDC2CABC1A1AA50D00942777 /* ServiceManagement.framework in Frameworks */, + EDC2CABD1A1AA50D00942777 /* SpriteKit.framework in Frameworks */, + EDC2CABE1A1AA50D00942777 /* StoreKit.framework in Frameworks */, + EDC2CABF1A1AA50D00942777 /* SyncServices.framework in Frameworks */, + EDC2CAC01A1AA50D00942777 /* SystemConfiguration.framework in Frameworks */, + EDC2CAC11A1AA50D00942777 /* Tcl.framework in Frameworks */, + EDC2CAC21A1AA50D00942777 /* Tk.framework in Frameworks */, + EDC2CAC31A1AA50D00942777 /* TWAIN.framework in Frameworks */, + EDC2CAC41A1AA50D00942777 /* VideoDecodeAcceleration.framework in Frameworks */, + EDC2CAC51A1AA50D00942777 /* WebKit.framework in Frameworks */, + EDC2CAC61A1AA50D00942777 /* SceneKit.framework in Frameworks */, + EDC2CAC71A1AA50D00942777 /* Social.framework in Frameworks */, + EDC2CAC81A1AA50D00942777 /* VideoToolbox.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + EDC2CC201A1AA52500942777 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + EDC2CC211A1AA52500942777 /* Cocoa.framework in Frameworks */, + EDC2CC221A1AA52500942777 /* ExceptionHandling.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ @@ -3789,6 +4763,8 @@ F5F00F100279FB69016D9B48 /* JGAdditions */, 0CD4E2FC00D7DDB47BE9C1BD /* Products */, ED48525318B603C300877668 /* Frameworks */, + EDC2CACE1A1AA50F00942777 /* F-Script 10.9 copy-Info.plist */, + EDC2CC281A1AA52700942777 /* FScriptFramework 10.9 copy-Info.plist */, ); sourceTree = ""; }; @@ -3804,6 +4780,8 @@ BA223520189FA412002C5B6A /* F-Script.app */, BA223668189FA429002C5B6A /* FScriptFramework.framework */, BA2237B0189FA432002C5B6A /* FScript.framework */, + EDC2CACD1A1AA50D00942777 /* F-Script.app */, + EDC2CC271A1AA52500942777 /* FScriptFramework 10.10.framework */, ); name = Products; sourceTree = ""; @@ -4070,10 +5048,9 @@ F58090D003755FC701AED2EF /* FSObjectBrowserToolbarItem.m */, 0CD4E32400D7DFE17BE9C1BD /* FSObjectBrowserView.h */, 0CD4E32500D7DFE17BE9C1BD /* FSObjectBrowserView.m */, - ED8222D41A194FD600C42C72 /* FSObjectInspectorViewModelItem.h */, - ED8222D51A194FD600C42C72 /* FSObjectInspectorViewModelItem.m */, 8F4E294C075B8E5600F8DCDB /* FSObjectBrowserViewObjectInfo.h */, 8F4E294D075B8E5600F8DCDB /* FSObjectBrowserViewObjectInfo.m */, + EDC2C8DB1A1A925800942777 /* Object Inspector */, ED8222E51A19554F00C42C72 /* FSObjectEnumInfo.h */, ED8222E61A19554F00C42C72 /* FSObjectEnumInfo.m */, F5EBBE810321029601CA10C6 /* FSObjectFormatter.m */, @@ -4315,6 +5292,22 @@ name = Frameworks; sourceTree = ""; }; + EDC2C8DB1A1A925800942777 /* Object Inspector */ = { + isa = PBXGroup; + children = ( + EDC2C8DC1A1A943600942777 /* FSDetailedObjectInspector.h */, + EDC2C8DD1A1A943600942777 /* FSDetailedObjectInspector.m */, + ED8222D41A194FD600C42C72 /* FSObjectInspectorViewModelItem.h */, + ED8222D51A194FD600C42C72 /* FSObjectInspectorViewModelItem.m */, + ED3004E51A1A86EF00675D94 /* FSObjectInspectorViewController.h */, + ED3004E61A1A86EF00675D94 /* FSObjectInspectorViewController.m */, + ED3004E71A1A86EF00675D94 /* FSObjectInspectorViewController.xib */, + EDC2C8EE1A1AA34D00942777 /* FSObjectInspectorBackgroundView.h */, + EDC2C8EF1A1AA34D00942777 /* FSObjectInspectorBackgroundView.m */, + ); + name = "Object Inspector"; + sourceTree = ""; + }; F5F00F100279FB69016D9B48 /* JGAdditions */ = { isa = PBXGroup; children = ( @@ -4494,6 +5487,7 @@ ED8222DC1A194FD600C42C72 /* FSObjectInspectorViewModelItem.h in Headers */, 8FE9AE2C078071CC005B2CC4 /* FSObjectPointer.h in Headers */, EDFB30251A188B4E002C8DD7 /* Util.h in Headers */, + EDC2C8EC1A1A99F600942777 /* FSObjectInspectorViewController.h in Headers */, 8FE9AE8F07807269005B2CC4 /* FSObjectPointerPrivate.h in Headers */, 8F86923A07F19BA8000D20A4 /* FSObjectBrowserNamedObjectWrapper.h in Headers */, 8F95E3C908034A670030B65C /* FSPredicateTextView.h in Headers */, @@ -4518,6 +5512,7 @@ 8F2E34400D8DBFE700912543 /* FSCNKeywordMessage.h in Headers */, 8F5900150D9468FC003A8B17 /* FSCNCascade.h in Headers */, 8F8F58680D9FE6AA00ED0FED /* FSCNStatementList.h in Headers */, + EDC2C8EA1A1A99BF00942777 /* FSDetailedObjectInspector.h in Headers */, 8F747DAB0DA03AE200148342 /* FSCNPrecomputedObject.h in Headers */, 8F747DBA0DA0467100148342 /* FSCNArray.h in Headers */, 8FAE79AF0DA0ED5D00CB6E14 /* FSCNBlock.h in Headers */, @@ -4527,6 +5522,7 @@ 8F8949D70DE08B110094EC14 /* FSClassDefinition.h in Headers */, 8F2DE6600E57254700CF83CB /* FSTranscript.h in Headers */, 8FE6AD960EC740650096019D /* FSArray.h in Headers */, + EDC2C8F61A1AA34D00942777 /* FSObjectInspectorBackgroundView.h in Headers */, 8F31A4C70EC74A2E00D1B8E8 /* Array_fscript.h in Headers */, 8FCA00C80EEAF34300B10420 /* Block_fscript.h in Headers */, 8FBB2FF70EEB3467007A3163 /* Number_fscript.h in Headers */, @@ -4574,6 +5570,7 @@ 8F6DA803055FC70C0050409A /* BlockSignature.h in Headers */, 8F6DA804055FC70C0050409A /* BlockStackElem.h in Headers */, 8F6DA805055FC70C0050409A /* build_config.h in Headers */, + EDC2C8DE1A1A943600942777 /* FSDetailedObjectInspector.h in Headers */, 8F6DA806055FC70C0050409A /* CLIView.h in Headers */, 8F6DA807055FC70C0050409A /* FSCompilationResult.h in Headers */, 8F6DA808055FC70C0050409A /* CompiledCodeNode.h in Headers */, @@ -4635,6 +5632,7 @@ 8F6DA84C055FC70C0050409A /* DOCustom.h in Headers */, ED8222D61A194FD600C42C72 /* FSObjectInspectorViewModelItem.h in Headers */, 8F6DA84E055FC70C0050409A /* Pointer.h in Headers */, + ED3004E81A1A86EF00675D94 /* FSObjectInspectorViewController.h in Headers */, 8F6DA84F055FC70C0050409A /* PointerPrivate.h in Headers */, EDFB302F1A18CA26002C8DD7 /* metamacros.h in Headers */, 8F6DA850055FC70C0050409A /* FSInterpreterPrivate.h in Headers */, @@ -4707,6 +5705,7 @@ 8FAE79F80DA109C500CB6E14 /* FSCNAssignment.h in Headers */, 8F45CBC20DA813F200AFA8C8 /* FSCNMethod.h in Headers */, 8FD0A3170DD7276000E47459 /* FSCNReturn.h in Headers */, + EDC2C8F01A1AA34D00942777 /* FSObjectInspectorBackgroundView.h in Headers */, 8F8949D90DE08B110094EC14 /* FSClassDefinition.h in Headers */, 8F2DE65D0E57254700CF83CB /* FSTranscript.h in Headers */, 8FE6AD930EC740650096019D /* FSArray.h in Headers */, @@ -4747,6 +5746,7 @@ 8F6DA901055FC71F0050409A /* BlockRep.h in Headers */, 8F6DA903055FC71F0050409A /* BlockStackElem.h in Headers */, 8F6DA904055FC71F0050409A /* build_config.h in Headers */, + EDC2C8DF1A1A943600942777 /* FSDetailedObjectInspector.h in Headers */, 8F6DA905055FC71F0050409A /* CLIView.h in Headers */, 8F6DA906055FC71F0050409A /* FSCompilationResult.h in Headers */, 8F6DA907055FC71F0050409A /* CompiledCodeNode.h in Headers */, @@ -4789,6 +5789,7 @@ 8F6DA930055FC71F0050409A /* FSPilot.h in Headers */, 8F6DA931055FC71F0050409A /* Pointer.h in Headers */, 8F6DA933055FC71F0050409A /* FSReplacementForCoderForClass.h in Headers */, + ED3004E91A1A86EF00675D94 /* FSObjectInspectorViewController.h in Headers */, EDFB30301A18CA26002C8DD7 /* metamacros.h in Headers */, 8F6DA934055FC71F0050409A /* ShellView.h in Headers */, 8F6DA935055FC71F0050409A /* Space.h in Headers */, @@ -4853,6 +5854,7 @@ 8F95E3C308034A670030B65C /* FSPredicateTextView.h in Headers */, 8FE7E0EC082AD964008231E8 /* FSCoreDataSample.h in Headers */, 8F936BF1082E8DA400A04EBF /* FSManagedObjectContextInspector.h in Headers */, + EDC2C8F11A1AA34D00942777 /* FSObjectInspectorBackgroundView.h in Headers */, 8F936BFD082E8E5C00A04EBF /* FSNSManagedObjectContext.h in Headers */, 8F917E2C095F5DE7000932D0 /* FSObjectBrowserSearchField.h in Headers */, 8F90A2F3096DB0660064F4BC /* FSBlockCompilationResult.h in Headers */, @@ -4918,6 +5920,7 @@ BA2231B7189FA403002C5B6A /* BlockSignature.h in Headers */, BA2231B8189FA403002C5B6A /* BlockStackElem.h in Headers */, BA2231B9189FA403002C5B6A /* build_config.h in Headers */, + EDC2C8E01A1A943600942777 /* FSDetailedObjectInspector.h in Headers */, BA2231BA189FA403002C5B6A /* CLIView.h in Headers */, BA2231BB189FA403002C5B6A /* FSCompilationResult.h in Headers */, BA2231BC189FA403002C5B6A /* CompiledCodeNode.h in Headers */, @@ -4979,6 +5982,7 @@ BA2231F1189FA403002C5B6A /* DOCustom.h in Headers */, ED8222D81A194FD600C42C72 /* FSObjectInspectorViewModelItem.h in Headers */, BA2231F2189FA403002C5B6A /* Pointer.h in Headers */, + ED3004EA1A1A86EF00675D94 /* FSObjectInspectorViewController.h in Headers */, BA2231F3189FA403002C5B6A /* PointerPrivate.h in Headers */, EDFB30311A18CA26002C8DD7 /* metamacros.h in Headers */, BA2231F4189FA403002C5B6A /* FSInterpreterPrivate.h in Headers */, @@ -5051,6 +6055,7 @@ BA223236189FA403002C5B6A /* FSCNAssignment.h in Headers */, BA223237189FA403002C5B6A /* FSCNMethod.h in Headers */, BA223238189FA403002C5B6A /* FSCNReturn.h in Headers */, + EDC2C8F21A1AA34D00942777 /* FSObjectInspectorBackgroundView.h in Headers */, BA223239189FA403002C5B6A /* FSClassDefinition.h in Headers */, BA22323A189FA403002C5B6A /* FSTranscript.h in Headers */, BA22323B189FA403002C5B6A /* FSArray.h in Headers */, @@ -5092,6 +6097,7 @@ BA223377189FA412002C5B6A /* BlockSignature.h in Headers */, BA223378189FA412002C5B6A /* BlockStackElem.h in Headers */, BA223379189FA412002C5B6A /* build_config.h in Headers */, + EDC2C8E21A1A943600942777 /* FSDetailedObjectInspector.h in Headers */, BA22337A189FA412002C5B6A /* CLIView.h in Headers */, BA22337B189FA412002C5B6A /* FSCompilationResult.h in Headers */, BA22337C189FA412002C5B6A /* CompiledCodeNode.h in Headers */, @@ -5153,6 +6159,7 @@ BA2233B1189FA412002C5B6A /* DOCustom.h in Headers */, ED8222DA1A194FD600C42C72 /* FSObjectInspectorViewModelItem.h in Headers */, BA2233B2189FA412002C5B6A /* Pointer.h in Headers */, + ED3004EC1A1A86EF00675D94 /* FSObjectInspectorViewController.h in Headers */, BA2233B3189FA412002C5B6A /* PointerPrivate.h in Headers */, EDFB30331A18CA26002C8DD7 /* metamacros.h in Headers */, BA2233B4189FA412002C5B6A /* FSInterpreterPrivate.h in Headers */, @@ -5225,6 +6232,7 @@ BA2233F6189FA412002C5B6A /* FSCNAssignment.h in Headers */, BA2233F7189FA412002C5B6A /* FSCNMethod.h in Headers */, BA2233F8189FA412002C5B6A /* FSCNReturn.h in Headers */, + EDC2C8F41A1AA34D00942777 /* FSObjectInspectorBackgroundView.h in Headers */, BA2233F9189FA412002C5B6A /* FSClassDefinition.h in Headers */, BA2233FA189FA412002C5B6A /* FSTranscript.h in Headers */, BA2233FB189FA412002C5B6A /* FSArray.h in Headers */, @@ -5265,6 +6273,7 @@ BA223531189FA429002C5B6A /* BlockRep.h in Headers */, BA223532189FA429002C5B6A /* BlockStackElem.h in Headers */, BA223533189FA429002C5B6A /* build_config.h in Headers */, + EDC2C8E11A1A943600942777 /* FSDetailedObjectInspector.h in Headers */, BA223534189FA429002C5B6A /* CLIView.h in Headers */, BA223535189FA429002C5B6A /* FSCompilationResult.h in Headers */, BA223536189FA429002C5B6A /* CompiledCodeNode.h in Headers */, @@ -5307,6 +6316,7 @@ BA22355B189FA429002C5B6A /* FSPilot.h in Headers */, BA22355C189FA429002C5B6A /* Pointer.h in Headers */, BA22355D189FA429002C5B6A /* FSReplacementForCoderForClass.h in Headers */, + ED3004EB1A1A86EF00675D94 /* FSObjectInspectorViewController.h in Headers */, EDFB30321A18CA26002C8DD7 /* metamacros.h in Headers */, BA22355E189FA429002C5B6A /* ShellView.h in Headers */, BA22355F189FA429002C5B6A /* Space.h in Headers */, @@ -5371,6 +6381,7 @@ BA223597189FA429002C5B6A /* FSPredicateTextView.h in Headers */, BA223598189FA429002C5B6A /* FSCoreDataSample.h in Headers */, BA223599189FA429002C5B6A /* FSManagedObjectContextInspector.h in Headers */, + EDC2C8F31A1AA34D00942777 /* FSObjectInspectorBackgroundView.h in Headers */, BA22359A189FA429002C5B6A /* FSNSManagedObjectContext.h in Headers */, BA22359B189FA429002C5B6A /* FSObjectBrowserSearchField.h in Headers */, BA22359C189FA429002C5B6A /* FSBlockCompilationResult.h in Headers */, @@ -5435,6 +6446,7 @@ BA223679189FA431002C5B6A /* BlockRep.h in Headers */, BA22367A189FA431002C5B6A /* BlockStackElem.h in Headers */, BA22367B189FA431002C5B6A /* build_config.h in Headers */, + EDC2C8E31A1A943600942777 /* FSDetailedObjectInspector.h in Headers */, BA22367C189FA431002C5B6A /* CLIView.h in Headers */, BA22367D189FA431002C5B6A /* FSCompilationResult.h in Headers */, BA22367E189FA431002C5B6A /* CompiledCodeNode.h in Headers */, @@ -5477,6 +6489,7 @@ BA2236A3189FA431002C5B6A /* FSPilot.h in Headers */, BA2236A4189FA431002C5B6A /* Pointer.h in Headers */, BA2236A5189FA431002C5B6A /* FSReplacementForCoderForClass.h in Headers */, + ED3004ED1A1A86EF00675D94 /* FSObjectInspectorViewController.h in Headers */, EDFB30341A18CA26002C8DD7 /* metamacros.h in Headers */, BA2236A6189FA431002C5B6A /* ShellView.h in Headers */, BA2236A7189FA431002C5B6A /* Space.h in Headers */, @@ -5541,6 +6554,7 @@ BA2236DF189FA431002C5B6A /* FSPredicateTextView.h in Headers */, BA2236E0189FA431002C5B6A /* FSCoreDataSample.h in Headers */, BA2236E1189FA431002C5B6A /* FSManagedObjectContextInspector.h in Headers */, + EDC2C8F51A1AA34D00942777 /* FSObjectInspectorBackgroundView.h in Headers */, BA2236E2189FA431002C5B6A /* FSNSManagedObjectContext.h in Headers */, BA2236E3189FA431002C5B6A /* FSObjectBrowserSearchField.h in Headers */, BA2236E4189FA431002C5B6A /* FSBlockCompilationResult.h in Headers */, @@ -5584,6 +6598,356 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + EDC2C9041A1AA50D00942777 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + EDC2C9051A1AA50D00942777 /* FSAirplane.h in Headers */, + EDC2C9061A1AA50D00942777 /* ArrayPrivate.h in Headers */, + EDC2C9071A1AA50D00942777 /* ArrayRep.h in Headers */, + EDC2C9081A1AA50D00942777 /* ArrayRepDouble.h in Headers */, + EDC2C9091A1AA50D00942777 /* ArrayRepEmpty.h in Headers */, + EDC2C90A1A1AA50D00942777 /* ArrayRepId.h in Headers */, + EDC2C90B1A1AA50D00942777 /* FSCollectionInspector.h in Headers */, + EDC2C90C1A1AA50D00942777 /* FSObjectBrowser.h in Headers */, + EDC2C90D1A1AA50D00942777 /* FSObjectBrowserArgumentPanel.h in Headers */, + EDC2C90E1A1AA50D00942777 /* FSObjectBrowserCell.h in Headers */, + EDC2C90F1A1AA50D00942777 /* FSObjectBrowserView.h in Headers */, + EDC2C9101A1AA50D00942777 /* FSBlock.h in Headers */, + EDC2C9111A1AA50D00942777 /* BlockInspector.h in Headers */, + EDC2C9121A1AA50D00942777 /* BlockPrivate.h in Headers */, + EDC2C9131A1AA50D00942777 /* BlockRep.h in Headers */, + EDC2C9141A1AA50D00942777 /* BlockSignature.h in Headers */, + EDC2C9151A1AA50D00942777 /* BlockStackElem.h in Headers */, + EDC2C9161A1AA50D00942777 /* build_config.h in Headers */, + EDC2C9171A1AA50D00942777 /* FSDetailedObjectInspector.h in Headers */, + EDC2C9181A1AA50D00942777 /* CLIView.h in Headers */, + EDC2C9191A1AA50D00942777 /* FSCompilationResult.h in Headers */, + EDC2C91A1A1AA50D00942777 /* CompiledCodeNode.h in Headers */, + EDC2C91B1A1AA50D00942777 /* FSCompiler.h in Headers */, + EDC2C91C1A1AA50D00942777 /* FSConstantsInitialization.h in Headers */, + EDC2C91D1A1AA50D00942777 /* FSExecEngine.h in Headers */, + EDC2C91E1A1AA50D00942777 /* FSExecutor.h in Headers */, + EDC2C91F1A1AA50D00942777 /* FSFlight.h in Headers */, + EDC2C9201A1AA50D00942777 /* FSArchiver.h in Headers */, + EDC2C9211A1AA50D00942777 /* FSBoolean.h in Headers */, + EDC2C9221A1AA50D00942777 /* FSBooleanPrivate.h in Headers */, + EDC2C9231A1AA50D00942777 /* FScript.h in Headers */, + EDC2C9241A1AA50D00942777 /* FScriptFunctions.h in Headers */, + EDC2C9251A1AA50D00942777 /* FScriptTextView.h in Headers */, + EDC2C9261A1AA50D00942777 /* FSInterpreter.h in Headers */, + EDC2C9271A1AA50D00942777 /* FSInterpreterResult.h in Headers */, + EDC2C9281A1AA50D00942777 /* FSInterpreterResultPrivate.h in Headers */, + EDC2C9291A1AA50D00942777 /* FSInterpreterView.h in Headers */, + EDC2C92A1A1AA50D00942777 /* FSInterpreterViewIBHeader.h in Headers */, + EDC2C92B1A1AA50D00942777 /* FSNSArray.h in Headers */, + EDC2C92C1A1AA50D00942777 /* FSNSArrayPrivate.h in Headers */, + EDC2C92D1A1AA50D00942777 /* FSNSDate.h in Headers */, + EDC2C92E1A1AA50D00942777 /* CHMutableDictionary.h in Headers */, + EDC2C92F1A1AA50D00942777 /* FSNSDictionary.h in Headers */, + EDC2C9301A1AA50D00942777 /* FSNSDistantObject.h in Headers */, + EDC2C9311A1AA50D00942777 /* FSNSMutableString.h in Headers */, + EDC2C9321A1AA50D00942777 /* FSNSNumber.h in Headers */, + EDC2C9331A1AA50D00942777 /* FSNSObject.h in Headers */, + EDC2C9341A1AA50D00942777 /* Util.h in Headers */, + EDC2C9351A1AA50D00942777 /* FSNSProxy.h in Headers */, + EDC2C9361A1AA50D00942777 /* FSPattern.h in Headers */, + EDC2C9371A1AA50D00942777 /* FSUnarchiver.h in Headers */, + EDC2C9381A1AA50D00942777 /* FSVoid.h in Headers */, + EDC2C9391A1AA50D00942777 /* FSVoidPrivate.h in Headers */, + EDC2C93A1A1AA50D00942777 /* FSGenericObjectInspector.h in Headers */, + EDC2C93B1A1AA50D00942777 /* KTestManager.h in Headers */, + EDC2C93C1A1AA50D00942777 /* MessagePatternCodeNode.h in Headers */, + EDC2C93D1A1AA50D00942777 /* FSMiscTools.h in Headers */, + EDC2C93E1A1AA50D00942777 /* FSMsgContext.h in Headers */, + EDC2C93F1A1AA50D00942777 /* FSNewlyAllocatedObjectHolder.h in Headers */, + EDC2C9401A1AA50D00942777 /* FSNumber.h in Headers */, + EDC2C9411A1AA50D00942777 /* NumberPrivate.h in Headers */, + EDC2C9421A1AA50D00942777 /* FSPilot.h in Headers */, + EDC2C9431A1AA50D00942777 /* FSReplacementForCoderForClass.h in Headers */, + EDC2C9441A1AA50D00942777 /* FSObjectEnumInfo.h in Headers */, + EDC2C9451A1AA50D00942777 /* ShellView.h in Headers */, + EDC2C9461A1AA50D00942777 /* Space.h in Headers */, + EDC2C9471A1AA50D00942777 /* FSCommandHistory.h in Headers */, + EDC2C9481A1AA50D00942777 /* FSSystem.h in Headers */, + EDC2C9491A1AA50D00942777 /* DOTest.h in Headers */, + EDC2C94A1A1AA50D00942777 /* FSNSProtocolChecker.h in Headers */, + EDC2C94B1A1AA50D00942777 /* FScriptAppController.h in Headers */, + EDC2C94C1A1AA50D00942777 /* FSObjectBrowserToolbar.h in Headers */, + EDC2C94D1A1AA50D00942777 /* FSEvalCommand.h in Headers */, + EDC2C94E1A1AA50D00942777 /* FSServicesProvider.h in Headers */, + EDC2C94F1A1AA50D00942777 /* FSTask.h in Headers */, + EDC2C9501A1AA50D00942777 /* FSObjectBrowserToolbarButton.h in Headers */, + EDC2C9511A1AA50D00942777 /* FSObjectBrowserButtonCtxBlock.h in Headers */, + EDC2C9521A1AA50D00942777 /* DOCustom.h in Headers */, + EDC2C9531A1AA50D00942777 /* FSObjectInspectorViewModelItem.h in Headers */, + EDC2C9541A1AA50D00942777 /* Pointer.h in Headers */, + EDC2C9551A1AA50D00942777 /* FSObjectInspectorViewController.h in Headers */, + EDC2C9561A1AA50D00942777 /* PointerPrivate.h in Headers */, + EDC2C9571A1AA50D00942777 /* metamacros.h in Headers */, + EDC2C9581A1AA50D00942777 /* FSInterpreterPrivate.h in Headers */, + EDC2C9591A1AA50D00942777 /* FSIdentifierFormatter.h in Headers */, + EDC2C95A1A1AA50D00942777 /* FSObjectFormatter.h in Headers */, + EDC2C95B1A1AA50D00942777 /* FSSystemPrivate.h in Headers */, + EDC2C95C1A1AA50D00942777 /* FSKeyedUnarchiver.h in Headers */, + EDC2C95D1A1AA50D00942777 /* FSKeyedArchiver.h in Headers */, + EDC2C95E1A1AA50D00942777 /* FSConstantListBuilder.h in Headers */, + EDC2C95F1A1AA50D00942777 /* FSImageInspector.h in Headers */, + EDC2C9601A1AA50D00942777 /* FSNSImage.h in Headers */, + EDC2C9611A1AA50D00942777 /* FSObjectBrowserToolbarItem.h in Headers */, + EDC2C9621A1AA50D00942777 /* FSNSObjectPrivate.h in Headers */, + EDC2C9631A1AA50D00942777 /* FSArrayEnumerator.h in Headers */, + EDC2C9641A1AA50D00942777 /* FSNSMutableArray.h in Headers */, + EDC2C9651A1AA50D00942777 /* FSObjectBrowserButtonsInspector.h in Headers */, + EDC2C9661A1AA50D00942777 /* ArrayRepBoolean.h in Headers */, + EDC2C9671A1AA50D00942777 /* FSNSValue.h in Headers */, + EDC2C9681A1AA50D00942777 /* FSReplacementForCoderForNilInArray.h in Headers */, + EDC2C9691A1AA50D00942777 /* FSNamedNumber.h in Headers */, + EDC2C96A1A1AA50D00942777 /* FSCollectionInspectorTableView.h in Headers */, + EDC2C96B1A1AA50D00942777 /* FSNSSet.h in Headers */, + EDC2C96C1A1AA50D00942777 /* FSAttributedStringInspector.h in Headers */, + EDC2C96D1A1AA50D00942777 /* FSNSAttributedString.h in Headers */, + EDC2C96E1A1AA50D00942777 /* FSInterpreterViewPrivate.h in Headers */, + EDC2C96F1A1AA50D00942777 /* FScriptMenuItem.h in Headers */, + EDC2C9701A1AA50D00942777 /* FSNSFont.h in Headers */, + EDC2C9711A1AA50D00942777 /* FSObjectBrowserMatrix.h in Headers */, + EDC2C9721A1AA50D00942777 /* FSNSString.h in Headers */, + EDC2C9731A1AA50D00942777 /* CHBidirectionalDictionary.h in Headers */, + EDC2C9741A1AA50D00942777 /* FSNSStringPrivate.h in Headers */, + EDC2C9751A1AA50D00942777 /* FSSymbolTable.h in Headers */, + EDC2C9761A1AA50D00942777 /* TestFS.h in Headers */, + EDC2C9771A1AA50D00942777 /* FSObjectBrowserViewObjectInfo.h in Headers */, + EDC2C9781A1AA50D00942777 /* FSCollectionInspectorView.h in Headers */, + EDC2C9791A1AA50D00942777 /* ArrayRepFetchRequest.h in Headers */, + EDC2C97A1A1AA50D00942777 /* FSPointer.h in Headers */, + EDC2C97B1A1AA50D00942777 /* FSGenericPointer.h in Headers */, + EDC2C97C1A1AA50D00942777 /* FSPointerPrivate.h in Headers */, + EDC2C97D1A1AA50D00942777 /* FSGenericPointerPrivate.h in Headers */, + EDC2C97E1A1AA50D00942777 /* FSObjectPointer.h in Headers */, + EDC2C97F1A1AA50D00942777 /* FSObjectPointerPrivate.h in Headers */, + EDC2C9801A1AA50D00942777 /* FSManagedObjectContextInspector.h in Headers */, + EDC2C9811A1AA50D00942777 /* FSObjectBrowserNamedObjectWrapper.h in Headers */, + EDC2C9821A1AA50D00942777 /* FSInspectorUniquier.h in Headers */, + EDC2C9831A1AA50D00942777 /* FSPredicateTextView.h in Headers */, + EDC2C9841A1AA50D00942777 /* FSCoreDataSample.h in Headers */, + EDC2C9851A1AA50D00942777 /* FSNSManagedObjectContext.h in Headers */, + EDC2C9861A1AA50D00942777 /* FSObjectBrowserSearchField.h in Headers */, + EDC2C9871A1AA50D00942777 /* FSBlockCompilationResult.h in Headers */, + EDC2C9881A1AA50D00942777 /* FSReturnSignal.h in Headers */, + EDC2C9891A1AA50D00942777 /* FSConstantsDictionaryGenerator.h in Headers */, + EDC2C98A1A1AA50D00942777 /* FSMethod.h in Headers */, + EDC2C98B1A1AA50D00942777 /* FSCNClassDefinition.h in Headers */, + EDC2C98C1A1AA50D00942777 /* FSCNBase.h in Headers */, + EDC2C98D1A1AA50D00942777 /* FSCNIdentifier.h in Headers */, + EDC2C98E1A1AA50D00942777 /* FSTestObjCClass1.h in Headers */, + EDC2C98F1A1AA50D00942777 /* FSTestObjCClass2.h in Headers */, + EDC2C9901A1AA50D00942777 /* FSCNCategory.h in Headers */, + EDC2C9911A1AA50D00942777 /* FSCNMessage.h in Headers */, + EDC2C9921A1AA50D00942777 /* FSCNSuper.h in Headers */, + EDC2C9931A1AA50D00942777 /* FSCNUnaryMessage.h in Headers */, + EDC2C9941A1AA50D00942777 /* FSCNBinaryMessage.h in Headers */, + EDC2C9951A1AA50D00942777 /* FSCNKeywordMessage.h in Headers */, + EDC2C9961A1AA50D00942777 /* FSCNCascade.h in Headers */, + EDC2C9971A1AA50D00942777 /* FSCNStatementList.h in Headers */, + EDC2C9981A1AA50D00942777 /* FSCNPrecomputedObject.h in Headers */, + EDC2C9991A1AA50D00942777 /* FSCNArray.h in Headers */, + EDC2C99A1A1AA50D00942777 /* FSCNBlock.h in Headers */, + EDC2C99B1A1AA50D00942777 /* FSCNAssignment.h in Headers */, + EDC2C99C1A1AA50D00942777 /* FSCNMethod.h in Headers */, + EDC2C99D1A1AA50D00942777 /* FSCNReturn.h in Headers */, + EDC2C99E1A1AA50D00942777 /* FSObjectInspectorBackgroundView.h in Headers */, + EDC2C99F1A1AA50D00942777 /* FSClassDefinition.h in Headers */, + EDC2C9A01A1AA50D00942777 /* FSTranscript.h in Headers */, + EDC2C9A11A1AA50D00942777 /* FSArray.h in Headers */, + EDC2C9A21A1AA50D00942777 /* Array_fscript.h in Headers */, + EDC2C9A31A1AA50D00942777 /* Block_fscript.h in Headers */, + EDC2C9A41A1AA50D00942777 /* Number_fscript.h in Headers */, + EDC2C9A51A1AA50D00942777 /* FSGlobalScope.h in Headers */, + EDC2C9A61A1AA50D00942777 /* FSNSFileHandle.h in Headers */, + EDC2C9A71A1AA50D00942777 /* FSAssociation.h in Headers */, + EDC2C9A81A1AA50D00942777 /* FSCNDictionary.h in Headers */, + EDC2C9A91A1AA50D00942777 /* FSObjectBrowserBottomBarTextDisplay.h in Headers */, + EDC2C9AA1A1AA50D00942777 /* FSNSAffineTransform.h in Headers */, + EDC2C9AB1A1AA50D00942777 /* FSDemoAssistant.h in Headers */, + EDC2C9AC1A1AA50D00942777 /* FSNewlyAllocatedObject.h in Headers */, + EDC2C9AD1A1AA50D00942777 /* FSWorksWhenModalWindow.h in Headers */, + EDC2C9AE1A1AA50D00942777 /* FSNSMutableDictionary.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + EDC2CAD01A1AA52500942777 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + EDC2CAD11A1AA52500942777 /* BlockSignature.h in Headers */, + EDC2CAD21A1AA52500942777 /* FSAirplane.h in Headers */, + EDC2CAD31A1AA52500942777 /* ArrayPrivate.h in Headers */, + EDC2CAD41A1AA52500942777 /* ArrayRep.h in Headers */, + EDC2CAD51A1AA52500942777 /* ArrayRepDouble.h in Headers */, + EDC2CAD61A1AA52500942777 /* ArrayRepEmpty.h in Headers */, + EDC2CAD71A1AA52500942777 /* ArrayRepId.h in Headers */, + EDC2CAD81A1AA52500942777 /* FSCollectionInspector.h in Headers */, + EDC2CAD91A1AA52500942777 /* FSObjectBrowser.h in Headers */, + EDC2CADA1A1AA52500942777 /* FSObjectBrowserCell.h in Headers */, + EDC2CADB1A1AA52500942777 /* FSObjectInspectorViewModelItem.h in Headers */, + EDC2CADC1A1AA52500942777 /* FSBlock.h in Headers */, + EDC2CADD1A1AA52500942777 /* BlockInspector.h in Headers */, + EDC2CADE1A1AA52500942777 /* BlockPrivate.h in Headers */, + EDC2CADF1A1AA52500942777 /* BlockRep.h in Headers */, + EDC2CAE01A1AA52500942777 /* BlockStackElem.h in Headers */, + EDC2CAE11A1AA52500942777 /* build_config.h in Headers */, + EDC2CAE21A1AA52500942777 /* FSDetailedObjectInspector.h in Headers */, + EDC2CAE31A1AA52500942777 /* CLIView.h in Headers */, + EDC2CAE41A1AA52500942777 /* FSCompilationResult.h in Headers */, + EDC2CAE51A1AA52500942777 /* CompiledCodeNode.h in Headers */, + EDC2CAE61A1AA52500942777 /* FSCompiler.h in Headers */, + EDC2CAE71A1AA52500942777 /* FSConstantsInitialization.h in Headers */, + EDC2CAE81A1AA52500942777 /* FSExecEngine.h in Headers */, + EDC2CAE91A1AA52500942777 /* FSExecutor.h in Headers */, + EDC2CAEA1A1AA52500942777 /* FSFlight.h in Headers */, + EDC2CAEB1A1AA52500942777 /* FSArchiver.h in Headers */, + EDC2CAEC1A1AA52500942777 /* FSBoolean.h in Headers */, + EDC2CAED1A1AA52500942777 /* FSBooleanPrivate.h in Headers */, + EDC2CAEE1A1AA52500942777 /* FScript.h in Headers */, + EDC2CAEF1A1AA52500942777 /* FScriptFunctions.h in Headers */, + EDC2CAF01A1AA52500942777 /* FSInterpreter.h in Headers */, + EDC2CAF11A1AA52500942777 /* FSInterpreterResult.h in Headers */, + EDC2CAF21A1AA52500942777 /* FSInterpreterResultPrivate.h in Headers */, + EDC2CAF31A1AA52500942777 /* FSInterpreterView.h in Headers */, + EDC2CAF41A1AA52500942777 /* FSInterpreterViewIBHeader.h in Headers */, + EDC2CAF51A1AA52500942777 /* FSNSArray.h in Headers */, + EDC2CAF61A1AA52500942777 /* FSNSArrayPrivate.h in Headers */, + EDC2CAF71A1AA52500942777 /* FSNSDate.h in Headers */, + EDC2CAF81A1AA52500942777 /* FSNSDictionary.h in Headers */, + EDC2CAF91A1AA52500942777 /* FSNSMutableString.h in Headers */, + EDC2CAFA1A1AA52500942777 /* FSNSNumber.h in Headers */, + EDC2CAFB1A1AA52500942777 /* FSNSObject.h in Headers */, + EDC2CAFC1A1AA52500942777 /* FSNSProxy.h in Headers */, + EDC2CAFD1A1AA52500942777 /* FSNSString.h in Headers */, + EDC2CAFE1A1AA52500942777 /* FSNSStringPrivate.h in Headers */, + EDC2CAFF1A1AA52500942777 /* FSPattern.h in Headers */, + EDC2CB001A1AA52500942777 /* FSUnarchiver.h in Headers */, + EDC2CB011A1AA52500942777 /* FSVoid.h in Headers */, + EDC2CB021A1AA52500942777 /* FSVoidPrivate.h in Headers */, + EDC2CB031A1AA52500942777 /* FSGenericObjectInspector.h in Headers */, + EDC2CB041A1AA52500942777 /* MessagePatternCodeNode.h in Headers */, + EDC2CB051A1AA52500942777 /* FSMiscTools.h in Headers */, + EDC2CB061A1AA52500942777 /* FSMsgContext.h in Headers */, + EDC2CB071A1AA52500942777 /* FSNewlyAllocatedObjectHolder.h in Headers */, + EDC2CB081A1AA52500942777 /* FSNumber.h in Headers */, + EDC2CB091A1AA52500942777 /* NumberPrivate.h in Headers */, + EDC2CB0A1A1AA52500942777 /* FSPilot.h in Headers */, + EDC2CB0B1A1AA52500942777 /* Pointer.h in Headers */, + EDC2CB0C1A1AA52500942777 /* FSReplacementForCoderForClass.h in Headers */, + EDC2CB0D1A1AA52500942777 /* FSObjectInspectorViewController.h in Headers */, + EDC2CB0E1A1AA52500942777 /* metamacros.h in Headers */, + EDC2CB0F1A1AA52500942777 /* ShellView.h in Headers */, + EDC2CB101A1AA52500942777 /* Space.h in Headers */, + EDC2CB111A1AA52500942777 /* FSCommandHistory.h in Headers */, + EDC2CB121A1AA52500942777 /* FSSystem.h in Headers */, + EDC2CB131A1AA52500942777 /* KTestManager.h in Headers */, + EDC2CB141A1AA52500942777 /* FSNSDistantObject.h in Headers */, + EDC2CB151A1AA52500942777 /* DOTest.h in Headers */, + EDC2CB161A1AA52500942777 /* FScriptTextView.h in Headers */, + EDC2CB171A1AA52500942777 /* FSObjectBrowserArgumentPanel.h in Headers */, + EDC2CB181A1AA52500942777 /* FSNSProtocolChecker.h in Headers */, + EDC2CB191A1AA52500942777 /* FSObjectBrowserToolbar.h in Headers */, + EDC2CB1A1A1AA52500942777 /* FSEvalCommand.h in Headers */, + EDC2CB1B1A1AA52500942777 /* FSServicesProvider.h in Headers */, + EDC2CB1C1A1AA52500942777 /* FSTask.h in Headers */, + EDC2CB1D1A1AA52500942777 /* FSObjectBrowserToolbarButton.h in Headers */, + EDC2CB1E1A1AA52500942777 /* FSObjectBrowserButtonCtxBlock.h in Headers */, + EDC2CB1F1A1AA52500942777 /* FSObjectBrowserButtonsInspector.h in Headers */, + EDC2CB201A1AA52500942777 /* FSObjectBrowserView.h in Headers */, + EDC2CB211A1AA52500942777 /* PointerPrivate.h in Headers */, + EDC2CB221A1AA52500942777 /* FSInterpreterPrivate.h in Headers */, + EDC2CB231A1AA52500942777 /* FSObjectFormatter.h in Headers */, + EDC2CB241A1AA52500942777 /* FSIdentifierFormatter.h in Headers */, + EDC2CB251A1AA52500942777 /* FSSystemPrivate.h in Headers */, + EDC2CB261A1AA52500942777 /* FSKeyedUnarchiver.h in Headers */, + EDC2CB271A1AA52500942777 /* FSKeyedArchiver.h in Headers */, + EDC2CB281A1AA52500942777 /* FSConstantListBuilder.h in Headers */, + EDC2CB291A1AA52500942777 /* FSImageInspector.h in Headers */, + EDC2CB2A1A1AA52500942777 /* FSNSImage.h in Headers */, + EDC2CB2B1A1AA52500942777 /* FSObjectBrowserToolbarItem.h in Headers */, + EDC2CB2C1A1AA52500942777 /* ArrayRepBoolean.h in Headers */, + EDC2CB2D1A1AA52500942777 /* FSNSObjectPrivate.h in Headers */, + EDC2CB2E1A1AA52500942777 /* FSArrayEnumerator.h in Headers */, + EDC2CB2F1A1AA52500942777 /* Util.h in Headers */, + EDC2CB301A1AA52500942777 /* TestFS.h in Headers */, + EDC2CB311A1AA52500942777 /* FSNSMutableArray.h in Headers */, + EDC2CB321A1AA52500942777 /* FSNSValue.h in Headers */, + EDC2CB331A1AA52500942777 /* FSReplacementForCoderForNilInArray.h in Headers */, + EDC2CB341A1AA52500942777 /* FSNamedNumber.h in Headers */, + EDC2CB351A1AA52500942777 /* CHMutableDictionary.h in Headers */, + EDC2CB361A1AA52500942777 /* FSCollectionInspectorTableView.h in Headers */, + EDC2CB371A1AA52500942777 /* FSNSSet.h in Headers */, + EDC2CB381A1AA52500942777 /* CHBidirectionalDictionary.h in Headers */, + EDC2CB391A1AA52500942777 /* FSAttributedStringInspector.h in Headers */, + EDC2CB3A1A1AA52500942777 /* FSNSAttributedString.h in Headers */, + EDC2CB3B1A1AA52500942777 /* FSInterpreterViewPrivate.h in Headers */, + EDC2CB3C1A1AA52500942777 /* FScriptMenuItem.h in Headers */, + EDC2CB3D1A1AA52500942777 /* FSNSFont.h in Headers */, + EDC2CB3E1A1AA52500942777 /* FSObjectBrowserMatrix.h in Headers */, + EDC2CB3F1A1AA52500942777 /* FSSymbolTable.h in Headers */, + EDC2CB401A1AA52500942777 /* FSObjectBrowserViewObjectInfo.h in Headers */, + EDC2CB411A1AA52500942777 /* FSCollectionInspectorView.h in Headers */, + EDC2CB421A1AA52500942777 /* ArrayRepFetchRequest.h in Headers */, + EDC2CB431A1AA52500942777 /* FSPointer.h in Headers */, + EDC2CB441A1AA52500942777 /* FSGenericPointer.h in Headers */, + EDC2CB451A1AA52500942777 /* FSPointerPrivate.h in Headers */, + EDC2CB461A1AA52500942777 /* FSGenericPointerPrivate.h in Headers */, + EDC2CB471A1AA52500942777 /* FSObjectPointer.h in Headers */, + EDC2CB481A1AA52500942777 /* FSObjectPointerPrivate.h in Headers */, + EDC2CB491A1AA52500942777 /* FSObjectBrowserNamedObjectWrapper.h in Headers */, + EDC2CB4A1A1AA52500942777 /* FSInspectorUniquier.h in Headers */, + EDC2CB4B1A1AA52500942777 /* FSPredicateTextView.h in Headers */, + EDC2CB4C1A1AA52500942777 /* FSCoreDataSample.h in Headers */, + EDC2CB4D1A1AA52500942777 /* FSManagedObjectContextInspector.h in Headers */, + EDC2CB4E1A1AA52500942777 /* FSObjectInspectorBackgroundView.h in Headers */, + EDC2CB4F1A1AA52500942777 /* FSNSManagedObjectContext.h in Headers */, + EDC2CB501A1AA52500942777 /* FSObjectBrowserSearchField.h in Headers */, + EDC2CB511A1AA52500942777 /* FSBlockCompilationResult.h in Headers */, + EDC2CB521A1AA52500942777 /* FSObjectEnumInfo.h in Headers */, + EDC2CB531A1AA52500942777 /* FSReturnSignal.h in Headers */, + EDC2CB541A1AA52500942777 /* FSMethod.h in Headers */, + EDC2CB551A1AA52500942777 /* FSCNClassDefinition.h in Headers */, + EDC2CB561A1AA52500942777 /* FSCNBase.h in Headers */, + EDC2CB571A1AA52500942777 /* FSCNIdentifier.h in Headers */, + EDC2CB581A1AA52500942777 /* FSTestObjCClass1.h in Headers */, + EDC2CB591A1AA52500942777 /* FSTestObjCClass2.h in Headers */, + EDC2CB5A1A1AA52500942777 /* FSCNCategory.h in Headers */, + EDC2CB5B1A1AA52500942777 /* FSCNMessage.h in Headers */, + EDC2CB5C1A1AA52500942777 /* FSCNSuper.h in Headers */, + EDC2CB5D1A1AA52500942777 /* FSCNUnaryMessage.h in Headers */, + EDC2CB5E1A1AA52500942777 /* FSCNBinaryMessage.h in Headers */, + EDC2CB5F1A1AA52500942777 /* FSCNKeywordMessage.h in Headers */, + EDC2CB601A1AA52500942777 /* FSCNCascade.h in Headers */, + EDC2CB611A1AA52500942777 /* FSCNStatementList.h in Headers */, + EDC2CB621A1AA52500942777 /* FSCNPrecomputedObject.h in Headers */, + EDC2CB631A1AA52500942777 /* FSCNArray.h in Headers */, + EDC2CB641A1AA52500942777 /* FSCNBlock.h in Headers */, + EDC2CB651A1AA52500942777 /* FSCNAssignment.h in Headers */, + EDC2CB661A1AA52500942777 /* FSCNMethod.h in Headers */, + EDC2CB671A1AA52500942777 /* FSCNReturn.h in Headers */, + EDC2CB681A1AA52500942777 /* FSClassDefinition.h in Headers */, + EDC2CB691A1AA52500942777 /* FSTranscript.h in Headers */, + EDC2CB6A1A1AA52500942777 /* FSArray.h in Headers */, + EDC2CB6B1A1AA52500942777 /* Array_fscript.h in Headers */, + EDC2CB6C1A1AA52500942777 /* Block_fscript.h in Headers */, + EDC2CB6D1A1AA52500942777 /* Number_fscript.h in Headers */, + EDC2CB6E1A1AA52500942777 /* FSGlobalScope.h in Headers */, + EDC2CB6F1A1AA52500942777 /* FSNSFileHandle.h in Headers */, + EDC2CB701A1AA52500942777 /* FSAssociation.h in Headers */, + EDC2CB711A1AA52500942777 /* FSCNDictionary.h in Headers */, + EDC2CB721A1AA52500942777 /* FSObjectBrowserBottomBarTextDisplay.h in Headers */, + EDC2CB731A1AA52500942777 /* FSNSAffineTransform.h in Headers */, + EDC2CB741A1AA52500942777 /* FSNewlyAllocatedObject.h in Headers */, + EDC2CB751A1AA52500942777 /* FSWorksWhenModalWindow.h in Headers */, + EDC2CB761A1AA52500942777 /* FSNSMutableDictionary.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ @@ -5768,6 +7132,47 @@ productReference = BA2237B0189FA432002C5B6A /* FScript.framework */; productType = "com.apple.product-type.framework"; }; + EDC2C8FF1A1AA50D00942777 /* F-Script 10.10 */ = { + isa = PBXNativeTarget; + buildConfigurationList = EDC2CACA1A1AA50D00942777 /* Build configuration list for PBXNativeTarget "F-Script 10.10" */; + buildPhases = ( + EDC2C9041A1AA50D00942777 /* Headers */, + EDC2C9AF1A1AA50D00942777 /* Resources */, + EDC2C9CC1A1AA50D00942777 /* Sources */, + EDC2CA641A1AA50D00942777 /* Frameworks */, + EDC2CAC91A1AA50D00942777 /* Rez */, + ); + buildRules = ( + ); + dependencies = ( + EDC2C9001A1AA50D00942777 /* PBXTargetDependency */, + EDC2C9021A1AA50D00942777 /* PBXTargetDependency */, + ); + name = "F-Script 10.10"; + productName = fs; + productReference = EDC2CACD1A1AA50D00942777 /* F-Script.app */; + productType = "com.apple.product-type.application"; + }; + EDC2CACF1A1AA52500942777 /* FScriptFramework 10.10 */ = { + isa = PBXNativeTarget; + buildConfigurationList = EDC2CC241A1AA52500942777 /* Build configuration list for PBXNativeTarget "FScriptFramework 10.10" */; + buildPhases = ( + EDC2CAD01A1AA52500942777 /* Headers */, + EDC2CB771A1AA52500942777 /* Resources */, + EDC2CB8F1A1AA52500942777 /* Sources */, + EDC2CC201A1AA52500942777 /* Frameworks */, + EDC2CC231A1AA52500942777 /* Rez */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "FScriptFramework 10.10"; + productInstallPath = ""; + productName = FScript; + productReference = EDC2CC271A1AA52500942777 /* FScriptFramework 10.10.framework */; + productType = "com.apple.product-type.framework"; + }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -5794,6 +7199,8 @@ BA223522189FA429002C5B6A /* FScriptFramework 10.8 */, BA223362189FA412002C5B6A /* F-Script 10.9 */, BA22366A189FA431002C5B6A /* FScriptFramework 10.9 */, + EDC2C8FF1A1AA50D00942777 /* F-Script 10.10 */, + EDC2CACF1A1AA52500942777 /* FScriptFramework 10.10 */, 8F6DA6D8055FC6C80050409A /* FSTest1 */, 8F6DA5DE055FC6980050409A /* FSTest2 */, 8F6392D00BDB8521005C8D94 /* FScriptIBPlugin */, @@ -5896,6 +7303,7 @@ 8F6DA876055FC70C0050409A /* FSImageInspector.nib in Resources */, 8F6DA878055FC70C0050409A /* ArrayTableView.nib in Resources */, 8F6DA879055FC70C0050409A /* constantsDictionary in Resources */, + ED3004F41A1A86EF00675D94 /* FSObjectInspectorViewController.xib in Resources */, 8FDCCD7C05C0A0A000747C0A /* FSAttributedStringInspector.nib in Resources */, EDE508DB19DD4FDC0012F16A /* FScriptPreferences.xib in Resources */, 8F2D067105CED9B9007EA81B /* run.tiff in Resources */, @@ -5913,6 +7321,7 @@ buildActionMask = 2147483647; files = ( EDE508D319DD4D310012F16A /* FSConsole.xib in Resources */, + ED3004F51A1A86EF00675D94 /* FSObjectInspectorViewController.xib in Resources */, 8F6DA964055FC71F0050409A /* FSCollectionInspector.nib in Resources */, 8F6DA965055FC71F0050409A /* blockInspector.nib in Resources */, 8F6DA968055FC71F0050409A /* FlightTutorial.txt in Resources */, @@ -5959,6 +7368,7 @@ BA223258189FA403002C5B6A /* FSImageInspector.nib in Resources */, BA223259189FA403002C5B6A /* ArrayTableView.nib in Resources */, BA22325A189FA403002C5B6A /* constantsDictionary in Resources */, + ED3004F61A1A86EF00675D94 /* FSObjectInspectorViewController.xib in Resources */, BA22325B189FA403002C5B6A /* FSAttributedStringInspector.nib in Resources */, EDE508DD19DD4FDC0012F16A /* FScriptPreferences.xib in Resources */, BA22325E189FA403002C5B6A /* run.tiff in Resources */, @@ -5993,6 +7403,7 @@ BA223418189FA412002C5B6A /* FSImageInspector.nib in Resources */, BA223419189FA412002C5B6A /* ArrayTableView.nib in Resources */, BA22341A189FA412002C5B6A /* constantsDictionary in Resources */, + ED3004F81A1A86EF00675D94 /* FSObjectInspectorViewController.xib in Resources */, BA22341B189FA412002C5B6A /* FSAttributedStringInspector.nib in Resources */, EDE508DF19DD4FDC0012F16A /* FScriptPreferences.xib in Resources */, BA22341E189FA412002C5B6A /* run.tiff in Resources */, @@ -6010,6 +7421,7 @@ buildActionMask = 2147483647; files = ( EDE508D519DD4D310012F16A /* FSConsole.xib in Resources */, + ED3004F71A1A86EF00675D94 /* FSObjectInspectorViewController.xib in Resources */, BA2235C2189FA429002C5B6A /* FSCollectionInspector.nib in Resources */, BA2235C3189FA429002C5B6A /* blockInspector.nib in Resources */, BA2235C4189FA429002C5B6A /* FlightTutorial.txt in Resources */, @@ -6039,6 +7451,7 @@ buildActionMask = 2147483647; files = ( EDE508D719DD4D310012F16A /* FSConsole.xib in Resources */, + ED3004F91A1A86EF00675D94 /* FSObjectInspectorViewController.xib in Resources */, BA22370A189FA431002C5B6A /* FSCollectionInspector.nib in Resources */, BA22370B189FA431002C5B6A /* blockInspector.nib in Resources */, BA22370C189FA431002C5B6A /* FlightTutorial.txt in Resources */, @@ -6063,6 +7476,71 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + EDC2C9AF1A1AA50D00942777 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + EDC2C9B01A1AA50D00942777 /* FSTest2.app in Resources */, + EDC2C9B11A1AA50D00942777 /* FSTest1.app in Resources */, + EDC2C9B21A1AA50D00942777 /* FSObjectBrowserButtonsInspector.xib in Resources */, + EDC2C9B31A1AA50D00942777 /* FSCollectionInspector.nib in Resources */, + EDC2C9B41A1AA50D00942777 /* blockInspector.nib in Resources */, + EDC2C9B51A1AA50D00942777 /* FlightTutorial.txt in Resources */, + EDC2C9B61A1AA50D00942777 /* genObjInspector.nib in Resources */, + EDC2C9B71A1AA50D00942777 /* FSConsole.xib in Resources */, + EDC2C9B81A1AA50D00942777 /* KTest.txt in Resources */, + EDC2C9B91A1AA50D00942777 /* license.txt in Resources */, + EDC2C9BA1A1AA50D00942777 /* fs.icns in Resources */, + EDC2C9BB1A1AA50D00942777 /* FScriptAppPreference.nib in Resources */, + EDC2C9BC1A1AA50D00942777 /* fs.nib in Resources */, + EDC2C9BD1A1AA50D00942777 /* fs.scriptSuite in Resources */, + EDC2C9BE1A1AA50D00942777 /* fs.scriptTerminology in Resources */, + EDC2C9BF1A1AA50D00942777 /* FSImageInspector.nib in Resources */, + EDC2C9C01A1AA50D00942777 /* ArrayTableView.nib in Resources */, + EDC2C9C11A1AA50D00942777 /* constantsDictionary in Resources */, + EDC2C9C21A1AA50D00942777 /* FSObjectInspectorViewController.xib in Resources */, + EDC2C9C31A1AA50D00942777 /* FSAttributedStringInspector.nib in Resources */, + EDC2C9C41A1AA50D00942777 /* FScriptPreferences.xib in Resources */, + EDC2C9C51A1AA50D00942777 /* run.tiff in Resources */, + EDC2C9C61A1AA50D00942777 /* build.tiff in Resources */, + EDC2C9C71A1AA50D00942777 /* FSCollectionInspectorView.nib in Resources */, + EDC2C9C81A1AA50D00942777 /* FSManagedObjectContextInspector.nib in Resources */, + EDC2C9C91A1AA50D00942777 /* FSMovieInspector.nib in Resources */, + EDC2C9CA1A1AA50D00942777 /* FSTestClasses.txt in Resources */, + EDC2C9CB1A1AA50D00942777 /* DemoAssistant.xib in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + EDC2CB771A1AA52500942777 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + EDC2CB781A1AA52500942777 /* FSConsole.xib in Resources */, + EDC2CB791A1AA52500942777 /* FSObjectInspectorViewController.xib in Resources */, + EDC2CB7A1A1AA52500942777 /* FSCollectionInspector.nib in Resources */, + EDC2CB7B1A1AA52500942777 /* blockInspector.nib in Resources */, + EDC2CB7C1A1AA52500942777 /* FlightTutorial.txt in Resources */, + EDC2CB7D1A1AA52500942777 /* genObjInspector.nib in Resources */, + EDC2CB7E1A1AA52500942777 /* FScriptPreferences.xib in Resources */, + EDC2CB7F1A1AA52500942777 /* KTest.txt in Resources */, + EDC2CB801A1AA52500942777 /* license.txt in Resources */, + EDC2CB811A1AA52500942777 /* fs.scriptSuite in Resources */, + EDC2CB821A1AA52500942777 /* fs.scriptTerminology in Resources */, + EDC2CB831A1AA52500942777 /* FSImageInspector.nib in Resources */, + EDC2CB841A1AA52500942777 /* ReadMe.txt in Resources */, + EDC2CB851A1AA52500942777 /* ArrayTableView.nib in Resources */, + EDC2CB861A1AA52500942777 /* constantsDictionary in Resources */, + EDC2CB871A1AA52500942777 /* FSAttributedStringInspector.nib in Resources */, + EDC2CB881A1AA52500942777 /* run.tiff in Resources */, + EDC2CB891A1AA52500942777 /* build.tiff in Resources */, + EDC2CB8A1A1AA52500942777 /* FSObjectBrowserButtonsInspector.xib in Resources */, + EDC2CB8B1A1AA52500942777 /* FSCollectionInspectorView.nib in Resources */, + EDC2CB8C1A1AA52500942777 /* FSManagedObjectContextInspector.nib in Resources */, + EDC2CB8D1A1AA52500942777 /* FSMovieInspector.nib in Resources */, + EDC2CB8E1A1AA52500942777 /* FSTestClasses.txt in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXResourcesBuildPhase section */ /* Begin PBXRezBuildPhase section */ @@ -6122,6 +7600,20 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + EDC2CAC91A1AA50D00942777 /* Rez */ = { + isa = PBXRezBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + EDC2CC231A1AA52500942777 /* Rez */ = { + isa = PBXRezBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXRezBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -6267,6 +7759,7 @@ 8F9D041D0F1DF1CB001B8286 /* FSNSFileHandle.m in Sources */, 8F940B850F2393B0004525E1 /* FSAssociation.m in Sources */, 8F940C720F23BC2E004525E1 /* FSCNDictionary.m in Sources */, + EDC2C8FE1A1AA34D00942777 /* FSObjectInspectorBackgroundView.m in Sources */, 8F7A712F0F48397C00E95364 /* FSObjectBrowserBottomBarTextDisplay.m in Sources */, 8F2D720B0F6BD9B100F0862A /* FSNSAffineTransform.m in Sources */, 8FCA593310883B0100F67841 /* FSNewlyAllocatedObject.m in Sources */, @@ -6376,6 +7869,7 @@ 8F8EA797077F6C9300AC1C96 /* FSGenericPointer.m in Sources */, 8FE9AE30078071CC005B2CC4 /* FSObjectPointer.m in Sources */, 8F86923B07F19BA8000D20A4 /* FSObjectBrowserNamedObjectWrapper.m in Sources */, + EDC2C8EB1A1A99BF00942777 /* FSDetailedObjectInspector.m in Sources */, 8F7F4F9F07FB274C008E42F4 /* FSInspectorUniquier.m in Sources */, 8F95E3CA08034A670030B65C /* FSPredicateTextView.m in Sources */, 8FE7E0EF082AD964008231E8 /* FSCoreDataSample.m in Sources */, @@ -6398,6 +7892,7 @@ 8F2E34250D8DB61C00912543 /* FSCNUnaryMessage.m in Sources */, 8F2E34380D8DBF6A00912543 /* FSCNBinaryMessage.m in Sources */, 8F2E34410D8DBFE700912543 /* FSCNKeywordMessage.m in Sources */, + EDC2C8ED1A1A99F600942777 /* FSObjectInspectorViewController.m in Sources */, 8F5900160D9468FC003A8B17 /* FSCNCascade.m in Sources */, 8F8F58690D9FE6AA00ED0FED /* FSCNStatementList.m in Sources */, EDFB301D1A188B4E002C8DD7 /* CHMutableDictionary.m in Sources */, @@ -6406,6 +7901,7 @@ 8FAE79B00DA0ED5D00CB6E14 /* FSCNBlock.m in Sources */, 8FAE79F70DA109C500CB6E14 /* FSCNAssignment.m in Sources */, 8F45CBC50DA813F200AFA8C8 /* FSCNMethod.m in Sources */, + EDC2C8FD1A1AA34D00942777 /* FSObjectInspectorBackgroundView.m in Sources */, 8FD0A31A0DD7276000E47459 /* FSCNReturn.m in Sources */, 8F8949D80DE08B110094EC14 /* FSClassDefinition.m in Sources */, 8F2DE6610E57254700CF83CB /* FSTranscript.m in Sources */, @@ -6454,6 +7950,7 @@ 8F6DA888055FC70C0050409A /* BlockStackElem.m in Sources */, 8F6DA889055FC70C0050409A /* CLIView.m in Sources */, 8F6DA88A055FC70C0050409A /* FSCompilationResult.m in Sources */, + ED3004EE1A1A86EF00675D94 /* FSObjectInspectorViewController.m in Sources */, 8F6DA88B055FC70C0050409A /* CompiledCodeNode.m in Sources */, 8F6DA88C055FC70C0050409A /* FSCompiler.m in Sources */, 8F6DA88D055FC70C0050409A /* FSConstantsInitialization.m in Sources */, @@ -6515,6 +8012,7 @@ 8F6DA8D4055FC70C0050409A /* FSConstantListBuilder.m in Sources */, 8F6DA8D5055FC70C0050409A /* FSImageInspector.m in Sources */, 8F6DA8D6055FC70C0050409A /* FSNSImage.m in Sources */, + EDC2C8E41A1A943600942777 /* FSDetailedObjectInspector.m in Sources */, 8F6DA8D7055FC70C0050409A /* FSObjectBrowserToolbarItem.m in Sources */, 8F6DA8D8055FC70C0050409A /* FSArrayEnumerator.m in Sources */, 8F6DA8D9055FC70C0050409A /* FSNSMutableArray.m in Sources */, @@ -6530,6 +8028,7 @@ 8F658B2E05C9694F0040FB24 /* FSNSFont.m in Sources */, 8FB5060605D53C8600153B33 /* FSObjectBrowserMatrix.m in Sources */, 8F130139064EC78200A90302 /* FSNSString.m in Sources */, + EDC2C8F71A1AA34D00942777 /* FSObjectInspectorBackgroundView.m in Sources */, 8F17C08206B1309C00F07862 /* FSSymbolTable.m in Sources */, 8F6B34B206E27E4600B3943E /* TestFS.m in Sources */, 8F4E2951075B8E5600F8DCDB /* FSObjectBrowserViewObjectInfo.m in Sources */, @@ -6618,6 +8117,7 @@ 8F6DA98C055FC71F0050409A /* FSBoolean.m in Sources */, ED8222DE1A194FD600C42C72 /* FSObjectInspectorViewModelItem.m in Sources */, 8F6DA98E055FC71F0050409A /* FScriptFunctions.m in Sources */, + EDC2C8E51A1A943600942777 /* FSDetailedObjectInspector.m in Sources */, 8F6DA98F055FC71F0050409A /* FSInterpreter.m in Sources */, 8F6DA990055FC71F0050409A /* FSInterpreterResult.m in Sources */, 8F6DA991055FC71F0050409A /* FSInterpreterView.m in Sources */, @@ -6718,6 +8218,7 @@ 8F747DB90DA0467100148342 /* FSCNArray.m in Sources */, 8FAE79AE0DA0ED5D00CB6E14 /* FSCNBlock.m in Sources */, 8FAE79F50DA109C500CB6E14 /* FSCNAssignment.m in Sources */, + ED3004EF1A1A86EF00675D94 /* FSObjectInspectorViewController.m in Sources */, 8F45CBC10DA813F200AFA8C8 /* FSCNMethod.m in Sources */, 8FD0A3160DD7276000E47459 /* FSCNReturn.m in Sources */, 8F8949DD0DE08B110094EC14 /* FSClassDefinition.m in Sources */, @@ -6730,6 +8231,7 @@ 8F9D041F0F1DF1CB001B8286 /* FSNSFileHandle.m in Sources */, 8F940B870F2393B0004525E1 /* FSAssociation.m in Sources */, 8F940C740F23BC2E004525E1 /* FSCNDictionary.m in Sources */, + EDC2C8F81A1AA34D00942777 /* FSObjectInspectorBackgroundView.m in Sources */, 8F7A712C0F48397C00E95364 /* FSObjectBrowserBottomBarTextDisplay.m in Sources */, 8F2D720D0F6BD9B100F0862A /* FSNSAffineTransform.m in Sources */, 8FCA593910883B0100F67841 /* FSNewlyAllocatedObject.m in Sources */, @@ -6757,6 +8259,7 @@ BA223272189FA403002C5B6A /* BlockStackElem.m in Sources */, BA223273189FA403002C5B6A /* CLIView.m in Sources */, BA223274189FA403002C5B6A /* FSCompilationResult.m in Sources */, + ED3004F01A1A86EF00675D94 /* FSObjectInspectorViewController.m in Sources */, BA223275189FA403002C5B6A /* CompiledCodeNode.m in Sources */, BA223276189FA403002C5B6A /* FSCompiler.m in Sources */, BA223277189FA403002C5B6A /* FSConstantsInitialization.m in Sources */, @@ -6818,6 +8321,7 @@ BA2232AB189FA403002C5B6A /* FSConstantListBuilder.m in Sources */, BA2232AC189FA403002C5B6A /* FSImageInspector.m in Sources */, BA2232AD189FA403002C5B6A /* FSNSImage.m in Sources */, + EDC2C8E61A1A943600942777 /* FSDetailedObjectInspector.m in Sources */, BA2232AE189FA403002C5B6A /* FSObjectBrowserToolbarItem.m in Sources */, BA2232AF189FA403002C5B6A /* FSArrayEnumerator.m in Sources */, BA2232B0189FA403002C5B6A /* FSNSMutableArray.m in Sources */, @@ -6833,6 +8337,7 @@ BA2232BA189FA403002C5B6A /* FSNSFont.m in Sources */, BA2232BB189FA403002C5B6A /* FSObjectBrowserMatrix.m in Sources */, BA2232BC189FA403002C5B6A /* FSNSString.m in Sources */, + EDC2C8F91A1AA34D00942777 /* FSObjectInspectorBackgroundView.m in Sources */, BA2232BD189FA403002C5B6A /* FSSymbolTable.m in Sources */, BA2232BE189FA403002C5B6A /* TestFS.m in Sources */, BA2232BF189FA403002C5B6A /* FSObjectBrowserViewObjectInfo.m in Sources */, @@ -6912,6 +8417,7 @@ BA223432189FA412002C5B6A /* BlockStackElem.m in Sources */, BA223433189FA412002C5B6A /* CLIView.m in Sources */, BA223434189FA412002C5B6A /* FSCompilationResult.m in Sources */, + ED3004F21A1A86EF00675D94 /* FSObjectInspectorViewController.m in Sources */, BA223435189FA412002C5B6A /* CompiledCodeNode.m in Sources */, BA223436189FA412002C5B6A /* FSCompiler.m in Sources */, BA223437189FA412002C5B6A /* FSConstantsInitialization.m in Sources */, @@ -6973,6 +8479,7 @@ BA22346B189FA412002C5B6A /* FSConstantListBuilder.m in Sources */, BA22346C189FA412002C5B6A /* FSImageInspector.m in Sources */, BA22346D189FA412002C5B6A /* FSNSImage.m in Sources */, + EDC2C8E81A1A943600942777 /* FSDetailedObjectInspector.m in Sources */, BA22346E189FA412002C5B6A /* FSObjectBrowserToolbarItem.m in Sources */, BA22346F189FA412002C5B6A /* FSArrayEnumerator.m in Sources */, BA223470189FA412002C5B6A /* FSNSMutableArray.m in Sources */, @@ -6988,6 +8495,7 @@ BA22347A189FA412002C5B6A /* FSNSFont.m in Sources */, BA22347B189FA412002C5B6A /* FSObjectBrowserMatrix.m in Sources */, BA22347C189FA412002C5B6A /* FSNSString.m in Sources */, + EDC2C8FB1A1AA34D00942777 /* FSObjectInspectorBackgroundView.m in Sources */, BA22347D189FA412002C5B6A /* FSSymbolTable.m in Sources */, BA22347E189FA412002C5B6A /* TestFS.m in Sources */, BA22347F189FA412002C5B6A /* FSObjectBrowserViewObjectInfo.m in Sources */, @@ -7076,6 +8584,7 @@ BA2235ED189FA429002C5B6A /* FSBoolean.m in Sources */, ED8222E01A194FD600C42C72 /* FSObjectInspectorViewModelItem.m in Sources */, BA2235EE189FA429002C5B6A /* FScriptFunctions.m in Sources */, + EDC2C8E71A1A943600942777 /* FSDetailedObjectInspector.m in Sources */, BA2235EF189FA429002C5B6A /* FSInterpreter.m in Sources */, BA2235F0189FA429002C5B6A /* FSInterpreterResult.m in Sources */, BA2235F1189FA429002C5B6A /* FSInterpreterView.m in Sources */, @@ -7176,6 +8685,7 @@ BA22364D189FA429002C5B6A /* FSCNArray.m in Sources */, BA22364E189FA429002C5B6A /* FSCNBlock.m in Sources */, BA22364F189FA429002C5B6A /* FSCNAssignment.m in Sources */, + ED3004F11A1A86EF00675D94 /* FSObjectInspectorViewController.m in Sources */, BA223650189FA429002C5B6A /* FSCNMethod.m in Sources */, BA223651189FA429002C5B6A /* FSCNReturn.m in Sources */, BA223652189FA429002C5B6A /* FSClassDefinition.m in Sources */, @@ -7188,6 +8698,7 @@ BA223659189FA429002C5B6A /* FSNSFileHandle.m in Sources */, BA22365A189FA429002C5B6A /* FSAssociation.m in Sources */, BA22365B189FA429002C5B6A /* FSCNDictionary.m in Sources */, + EDC2C8FA1A1AA34D00942777 /* FSObjectInspectorBackgroundView.m in Sources */, BA22365C189FA429002C5B6A /* FSObjectBrowserBottomBarTextDisplay.m in Sources */, BA22365D189FA429002C5B6A /* FSNSAffineTransform.m in Sources */, BA22365E189FA429002C5B6A /* FSNewlyAllocatedObject.m in Sources */, @@ -7224,6 +8735,7 @@ BA223735189FA431002C5B6A /* FSBoolean.m in Sources */, ED8222E21A194FD600C42C72 /* FSObjectInspectorViewModelItem.m in Sources */, BA223736189FA431002C5B6A /* FScriptFunctions.m in Sources */, + EDC2C8E91A1A943600942777 /* FSDetailedObjectInspector.m in Sources */, BA223737189FA431002C5B6A /* FSInterpreter.m in Sources */, BA223738189FA431002C5B6A /* FSInterpreterResult.m in Sources */, BA223739189FA431002C5B6A /* FSInterpreterView.m in Sources */, @@ -7324,6 +8836,7 @@ BA223795189FA432002C5B6A /* FSCNArray.m in Sources */, BA223796189FA432002C5B6A /* FSCNBlock.m in Sources */, BA223797189FA432002C5B6A /* FSCNAssignment.m in Sources */, + ED3004F31A1A86EF00675D94 /* FSObjectInspectorViewController.m in Sources */, BA223798189FA432002C5B6A /* FSCNMethod.m in Sources */, BA223799189FA432002C5B6A /* FSCNReturn.m in Sources */, BA22379A189FA432002C5B6A /* FSClassDefinition.m in Sources */, @@ -7336,6 +8849,7 @@ BA2237A1189FA432002C5B6A /* FSNSFileHandle.m in Sources */, BA2237A2189FA432002C5B6A /* FSAssociation.m in Sources */, BA2237A3189FA432002C5B6A /* FSCNDictionary.m in Sources */, + EDC2C8FC1A1AA34D00942777 /* FSObjectInspectorBackgroundView.m in Sources */, BA2237A4189FA432002C5B6A /* FSObjectBrowserBottomBarTextDisplay.m in Sources */, BA2237A5189FA432002C5B6A /* FSNSAffineTransform.m in Sources */, BA2237A6189FA432002C5B6A /* FSNewlyAllocatedObject.m in Sources */, @@ -7344,6 +8858,315 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + EDC2C9CC1A1AA50D00942777 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + EDC2C9CD1A1AA50D00942777 /* FSAirplane.m in Sources */, + EDC2C9CE1A1AA50D00942777 /* ArrayRepDouble.m in Sources */, + EDC2C9CF1A1AA50D00942777 /* ArrayRepEmpty.m in Sources */, + EDC2C9D01A1AA50D00942777 /* ArrayRepId.m in Sources */, + EDC2C9D11A1AA50D00942777 /* FSCollectionInspector.m in Sources */, + EDC2C9D21A1AA50D00942777 /* FSObjectBrowser.m in Sources */, + EDC2C9D31A1AA50D00942777 /* FSObjectBrowserArgumentPanel.m in Sources */, + EDC2C9D41A1AA50D00942777 /* FSObjectBrowserCell.m in Sources */, + EDC2C9D51A1AA50D00942777 /* FSObjectBrowserView.m in Sources */, + EDC2C9D61A1AA50D00942777 /* FSBlock.m in Sources */, + EDC2C9D71A1AA50D00942777 /* BlockInspector.m in Sources */, + EDC2C9D81A1AA50D00942777 /* BlockRep.m in Sources */, + EDC2C9D91A1AA50D00942777 /* BlockStackElem.m in Sources */, + EDC2C9DA1A1AA50D00942777 /* CLIView.m in Sources */, + EDC2C9DB1A1AA50D00942777 /* FSCompilationResult.m in Sources */, + EDC2C9DC1A1AA50D00942777 /* FSObjectInspectorViewController.m in Sources */, + EDC2C9DD1A1AA50D00942777 /* CompiledCodeNode.m in Sources */, + EDC2C9DE1A1AA50D00942777 /* FSCompiler.m in Sources */, + EDC2C9DF1A1AA50D00942777 /* FSConstantsInitialization.m in Sources */, + EDC2C9E01A1AA50D00942777 /* FSExecEngine.m in Sources */, + EDC2C9E11A1AA50D00942777 /* FSExecutor.m in Sources */, + EDC2C9E21A1AA50D00942777 /* FSFlight.m in Sources */, + EDC2C9E31A1AA50D00942777 /* Util.m in Sources */, + EDC2C9E41A1AA50D00942777 /* FSArchiver.m in Sources */, + EDC2C9E51A1AA50D00942777 /* FSBoolean.m in Sources */, + EDC2C9E61A1AA50D00942777 /* FScriptFunctions.m in Sources */, + EDC2C9E71A1AA50D00942777 /* FScriptTextView.m in Sources */, + EDC2C9E81A1AA50D00942777 /* FSInterpreter.m in Sources */, + EDC2C9E91A1AA50D00942777 /* FSInterpreterResult.m in Sources */, + EDC2C9EA1A1AA50D00942777 /* FSInterpreterView.m in Sources */, + EDC2C9EB1A1AA50D00942777 /* FSNSArray.m in Sources */, + EDC2C9EC1A1AA50D00942777 /* FSNSDate.m in Sources */, + EDC2C9ED1A1AA50D00942777 /* FSNSDictionary.m in Sources */, + EDC2C9EE1A1AA50D00942777 /* FSNSDistantObject.m in Sources */, + EDC2C9EF1A1AA50D00942777 /* FSNSMutableString.m in Sources */, + EDC2C9F01A1AA50D00942777 /* CHMutableDictionary.m in Sources */, + EDC2C9F11A1AA50D00942777 /* FSNSNumber.m in Sources */, + EDC2C9F21A1AA50D00942777 /* FSNSObject.m in Sources */, + EDC2C9F31A1AA50D00942777 /* FSNSProxy.m in Sources */, + EDC2C9F41A1AA50D00942777 /* FSPattern.m in Sources */, + EDC2C9F51A1AA50D00942777 /* FSUnarchiver.m in Sources */, + EDC2C9F61A1AA50D00942777 /* FSVoid.m in Sources */, + EDC2C9F71A1AA50D00942777 /* FSGenericObjectInspector.m in Sources */, + EDC2C9F81A1AA50D00942777 /* KTestManager.m in Sources */, + EDC2C9F91A1AA50D00942777 /* FSMiscTools.m in Sources */, + EDC2C9FA1A1AA50D00942777 /* FSMsgContext.m in Sources */, + EDC2C9FB1A1AA50D00942777 /* FSNewlyAllocatedObjectHolder.m in Sources */, + EDC2C9FC1A1AA50D00942777 /* FSNumber.m in Sources */, + EDC2C9FD1A1AA50D00942777 /* FSPilot.m in Sources */, + EDC2C9FE1A1AA50D00942777 /* MessagePatternCodeNode.m in Sources */, + EDC2C9FF1A1AA50D00942777 /* FSReplacementForCoderForClass.m in Sources */, + EDC2CA001A1AA50D00942777 /* ShellView.m in Sources */, + EDC2CA011A1AA50D00942777 /* Space.m in Sources */, + EDC2CA021A1AA50D00942777 /* FSCommandHistory.m in Sources */, + EDC2CA031A1AA50D00942777 /* FSSystem.m in Sources */, + EDC2CA041A1AA50D00942777 /* FSObjectEnumInfo.m in Sources */, + EDC2CA051A1AA50D00942777 /* DOTest.m in Sources */, + EDC2CA061A1AA50D00942777 /* FSNSProtocolChecker.m in Sources */, + EDC2CA071A1AA50D00942777 /* fs_main.m in Sources */, + EDC2CA081A1AA50D00942777 /* FScriptAppController.m in Sources */, + EDC2CA091A1AA50D00942777 /* FSObjectBrowserToolbar.m in Sources */, + EDC2CA0A1A1AA50D00942777 /* FSEvalCommand.m in Sources */, + EDC2CA0B1A1AA50D00942777 /* FSServicesProvider.m in Sources */, + EDC2CA0C1A1AA50D00942777 /* FSTask.m in Sources */, + EDC2CA0D1A1AA50D00942777 /* FSObjectBrowserToolbarButton.m in Sources */, + EDC2CA0E1A1AA50D00942777 /* FSObjectBrowserButtonsInspector.m in Sources */, + EDC2CA0F1A1AA50D00942777 /* FSObjectBrowserButtonCtxBlock.m in Sources */, + EDC2CA101A1AA50D00942777 /* DOCustom.m in Sources */, + EDC2CA111A1AA50D00942777 /* Pointer.m in Sources */, + EDC2CA121A1AA50D00942777 /* FSIdentifierFormatter.m in Sources */, + EDC2CA131A1AA50D00942777 /* FSObjectFormatter.m in Sources */, + EDC2CA141A1AA50D00942777 /* FSKeyedUnarchiver.m in Sources */, + EDC2CA151A1AA50D00942777 /* FSKeyedArchiver.m in Sources */, + EDC2CA161A1AA50D00942777 /* FSObjectInspectorViewModelItem.m in Sources */, + EDC2CA171A1AA50D00942777 /* FSConstantListBuilder.m in Sources */, + EDC2CA181A1AA50D00942777 /* FSImageInspector.m in Sources */, + EDC2CA191A1AA50D00942777 /* FSNSImage.m in Sources */, + EDC2CA1A1A1AA50D00942777 /* FSDetailedObjectInspector.m in Sources */, + EDC2CA1B1A1AA50D00942777 /* FSObjectBrowserToolbarItem.m in Sources */, + EDC2CA1C1A1AA50D00942777 /* FSArrayEnumerator.m in Sources */, + EDC2CA1D1A1AA50D00942777 /* FSNSMutableArray.m in Sources */, + EDC2CA1E1A1AA50D00942777 /* ArrayRepBoolean.m in Sources */, + EDC2CA1F1A1AA50D00942777 /* FSNSValue.m in Sources */, + EDC2CA201A1AA50D00942777 /* FSReplacementForCoderForNilInArray.m in Sources */, + EDC2CA211A1AA50D00942777 /* FSNamedNumber.m in Sources */, + EDC2CA221A1AA50D00942777 /* FSCollectionInspectorTableView.m in Sources */, + EDC2CA231A1AA50D00942777 /* FSNSSet.m in Sources */, + EDC2CA241A1AA50D00942777 /* FSAttributedStringInspector.m in Sources */, + EDC2CA251A1AA50D00942777 /* FSNSAttributedString.m in Sources */, + EDC2CA261A1AA50D00942777 /* FScriptMenuItem.m in Sources */, + EDC2CA271A1AA50D00942777 /* FSNSFont.m in Sources */, + EDC2CA281A1AA50D00942777 /* FSObjectBrowserMatrix.m in Sources */, + EDC2CA291A1AA50D00942777 /* FSNSString.m in Sources */, + EDC2CA2A1A1AA50D00942777 /* FSObjectInspectorBackgroundView.m in Sources */, + EDC2CA2B1A1AA50D00942777 /* FSSymbolTable.m in Sources */, + EDC2CA2C1A1AA50D00942777 /* TestFS.m in Sources */, + EDC2CA2D1A1AA50D00942777 /* FSObjectBrowserViewObjectInfo.m in Sources */, + EDC2CA2E1A1AA50D00942777 /* FSCollectionInspectorView.m in Sources */, + EDC2CA2F1A1AA50D00942777 /* ArrayRepFetchRequest.m in Sources */, + EDC2CA301A1AA50D00942777 /* FSPointer.m in Sources */, + EDC2CA311A1AA50D00942777 /* FSGenericPointer.m in Sources */, + EDC2CA321A1AA50D00942777 /* FSObjectPointer.m in Sources */, + EDC2CA331A1AA50D00942777 /* FSManagedObjectContextInspector.m in Sources */, + EDC2CA341A1AA50D00942777 /* FSObjectBrowserNamedObjectWrapper.m in Sources */, + EDC2CA351A1AA50D00942777 /* FSInspectorUniquier.m in Sources */, + EDC2CA361A1AA50D00942777 /* FSPredicateTextView.m in Sources */, + EDC2CA371A1AA50D00942777 /* FSCoreDataSample.m in Sources */, + EDC2CA381A1AA50D00942777 /* FSNSManagedObjectContext.m in Sources */, + EDC2CA391A1AA50D00942777 /* FSObjectBrowserSearchField.m in Sources */, + EDC2CA3A1A1AA50D00942777 /* FSBlockCompilationResult.m in Sources */, + EDC2CA3B1A1AA50D00942777 /* FSReturnSignal.m in Sources */, + EDC2CA3C1A1AA50D00942777 /* FSConstantsDictionaryGenerator.m in Sources */, + EDC2CA3D1A1AA50D00942777 /* FSQTMovie.m in Sources */, + EDC2CA3E1A1AA50D00942777 /* FSMovieInspector.m in Sources */, + EDC2CA3F1A1AA50D00942777 /* FSMethod.m in Sources */, + EDC2CA401A1AA50D00942777 /* FSCNClassDefinition.m in Sources */, + EDC2CA411A1AA50D00942777 /* FSCNBase.m in Sources */, + EDC2CA421A1AA50D00942777 /* FSCNIdentifier.m in Sources */, + EDC2CA431A1AA50D00942777 /* FSTestObjCClass1.m in Sources */, + EDC2CA441A1AA50D00942777 /* CHBidirectionalDictionary.m in Sources */, + EDC2CA451A1AA50D00942777 /* FSTestObjCClass2.m in Sources */, + EDC2CA461A1AA50D00942777 /* FSCNCategory.m in Sources */, + EDC2CA471A1AA50D00942777 /* FSCNMessage.m in Sources */, + EDC2CA481A1AA50D00942777 /* FSCNSuper.m in Sources */, + EDC2CA491A1AA50D00942777 /* FSCNUnaryMessage.m in Sources */, + EDC2CA4A1A1AA50D00942777 /* FSCNBinaryMessage.m in Sources */, + EDC2CA4B1A1AA50D00942777 /* FSCNKeywordMessage.m in Sources */, + EDC2CA4C1A1AA50D00942777 /* FSCNCascade.m in Sources */, + EDC2CA4D1A1AA50D00942777 /* FSCNStatementList.m in Sources */, + EDC2CA4E1A1AA50D00942777 /* FSCNPrecomputedObject.m in Sources */, + EDC2CA4F1A1AA50D00942777 /* FSCNArray.m in Sources */, + EDC2CA501A1AA50D00942777 /* FSCNBlock.m in Sources */, + EDC2CA511A1AA50D00942777 /* FSCNAssignment.m in Sources */, + EDC2CA521A1AA50D00942777 /* FSCNMethod.m in Sources */, + EDC2CA531A1AA50D00942777 /* FSCNReturn.m in Sources */, + EDC2CA541A1AA50D00942777 /* FSClassDefinition.m in Sources */, + EDC2CA551A1AA50D00942777 /* FSTranscript.m in Sources */, + EDC2CA561A1AA50D00942777 /* FSArray.m in Sources */, + EDC2CA571A1AA50D00942777 /* Array.m in Sources */, + EDC2CA581A1AA50D00942777 /* Block.m in Sources */, + EDC2CA591A1AA50D00942777 /* Number.m in Sources */, + EDC2CA5A1A1AA50D00942777 /* FSGlobalScope.m in Sources */, + EDC2CA5B1A1AA50D00942777 /* FSNSFileHandle.m in Sources */, + EDC2CA5C1A1AA50D00942777 /* FSAssociation.m in Sources */, + EDC2CA5D1A1AA50D00942777 /* FSCNDictionary.m in Sources */, + EDC2CA5E1A1AA50D00942777 /* FSObjectBrowserBottomBarTextDisplay.m in Sources */, + EDC2CA5F1A1AA50D00942777 /* FSNSAffineTransform.m in Sources */, + EDC2CA601A1AA50D00942777 /* FSDemoAssistant.m in Sources */, + EDC2CA611A1AA50D00942777 /* FSNewlyAllocatedObject.m in Sources */, + EDC2CA621A1AA50D00942777 /* FSWorksWhenModalWindow.m in Sources */, + EDC2CA631A1AA50D00942777 /* FSNSMutableDictionary.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + EDC2CB8F1A1AA52500942777 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + EDC2CB901A1AA52500942777 /* FSAirplane.m in Sources */, + EDC2CB911A1AA52500942777 /* ArrayRepDouble.m in Sources */, + EDC2CB921A1AA52500942777 /* ArrayRepEmpty.m in Sources */, + EDC2CB931A1AA52500942777 /* ArrayRepId.m in Sources */, + EDC2CB941A1AA52500942777 /* FSCollectionInspector.m in Sources */, + EDC2CB951A1AA52500942777 /* FSObjectBrowser.m in Sources */, + EDC2CB961A1AA52500942777 /* FSObjectBrowserCell.m in Sources */, + EDC2CB971A1AA52500942777 /* FSBlock.m in Sources */, + EDC2CB981A1AA52500942777 /* BlockInspector.m in Sources */, + EDC2CB991A1AA52500942777 /* BlockRep.m in Sources */, + EDC2CB9A1A1AA52500942777 /* BlockStackElem.m in Sources */, + EDC2CB9B1A1AA52500942777 /* CLIView.m in Sources */, + EDC2CB9C1A1AA52500942777 /* FSCompilationResult.m in Sources */, + EDC2CB9D1A1AA52500942777 /* CompiledCodeNode.m in Sources */, + EDC2CB9E1A1AA52500942777 /* FSCompiler.m in Sources */, + EDC2CB9F1A1AA52500942777 /* FSConstantsInitialization.m in Sources */, + EDC2CBA01A1AA52500942777 /* Util.m in Sources */, + EDC2CBA11A1AA52500942777 /* FSExecEngine.m in Sources */, + EDC2CBA21A1AA52500942777 /* FSExecutor.m in Sources */, + EDC2CBA31A1AA52500942777 /* FSFlight.m in Sources */, + EDC2CBA41A1AA52500942777 /* FSArchiver.m in Sources */, + EDC2CBA51A1AA52500942777 /* FSBoolean.m in Sources */, + EDC2CBA61A1AA52500942777 /* FSObjectInspectorViewModelItem.m in Sources */, + EDC2CBA71A1AA52500942777 /* FScriptFunctions.m in Sources */, + EDC2CBA81A1AA52500942777 /* FSDetailedObjectInspector.m in Sources */, + EDC2CBA91A1AA52500942777 /* FSInterpreter.m in Sources */, + EDC2CBAA1A1AA52500942777 /* FSInterpreterResult.m in Sources */, + EDC2CBAB1A1AA52500942777 /* FSInterpreterView.m in Sources */, + EDC2CBAC1A1AA52500942777 /* FSNSArray.m in Sources */, + EDC2CBAD1A1AA52500942777 /* FSNSDate.m in Sources */, + EDC2CBAE1A1AA52500942777 /* FSNSDictionary.m in Sources */, + EDC2CBAF1A1AA52500942777 /* CHBidirectionalDictionary.m in Sources */, + EDC2CBB01A1AA52500942777 /* FSNSMutableString.m in Sources */, + EDC2CBB11A1AA52500942777 /* FSNSNumber.m in Sources */, + EDC2CBB21A1AA52500942777 /* FSNSObject.m in Sources */, + EDC2CBB31A1AA52500942777 /* FSNSProxy.m in Sources */, + EDC2CBB41A1AA52500942777 /* FSNSString.m in Sources */, + EDC2CBB51A1AA52500942777 /* FSPattern.m in Sources */, + EDC2CBB61A1AA52500942777 /* FSUnarchiver.m in Sources */, + EDC2CBB71A1AA52500942777 /* FSVoid.m in Sources */, + EDC2CBB81A1AA52500942777 /* FSGenericObjectInspector.m in Sources */, + EDC2CBB91A1AA52500942777 /* MessagePatternCodeNode.m in Sources */, + EDC2CBBA1A1AA52500942777 /* FSMiscTools.m in Sources */, + EDC2CBBB1A1AA52500942777 /* FSMsgContext.m in Sources */, + EDC2CBBC1A1AA52500942777 /* FSNewlyAllocatedObjectHolder.m in Sources */, + EDC2CBBD1A1AA52500942777 /* FSNumber.m in Sources */, + EDC2CBBE1A1AA52500942777 /* FSPilot.m in Sources */, + EDC2CBBF1A1AA52500942777 /* FSReplacementForCoderForClass.m in Sources */, + EDC2CBC01A1AA52500942777 /* ShellView.m in Sources */, + EDC2CBC11A1AA52500942777 /* Space.m in Sources */, + EDC2CBC21A1AA52500942777 /* FSCommandHistory.m in Sources */, + EDC2CBC31A1AA52500942777 /* FSSystem.m in Sources */, + EDC2CBC41A1AA52500942777 /* KTestManager.m in Sources */, + EDC2CBC51A1AA52500942777 /* FSNSDistantObject.m in Sources */, + EDC2CBC61A1AA52500942777 /* DOTest.m in Sources */, + EDC2CBC71A1AA52500942777 /* FScriptTextView.m in Sources */, + EDC2CBC81A1AA52500942777 /* FSObjectBrowserArgumentPanel.m in Sources */, + EDC2CBC91A1AA52500942777 /* FSNSProtocolChecker.m in Sources */, + EDC2CBCA1A1AA52500942777 /* FSObjectBrowserToolbar.m in Sources */, + EDC2CBCB1A1AA52500942777 /* FSEvalCommand.m in Sources */, + EDC2CBCC1A1AA52500942777 /* FSServicesProvider.m in Sources */, + EDC2CBCD1A1AA52500942777 /* FSTask.m in Sources */, + EDC2CBCE1A1AA52500942777 /* FSObjectBrowserToolbarButton.m in Sources */, + EDC2CBCF1A1AA52500942777 /* FSObjectBrowserButtonCtxBlock.m in Sources */, + EDC2CBD01A1AA52500942777 /* FSObjectBrowserButtonsInspector.m in Sources */, + EDC2CBD11A1AA52500942777 /* FSObjectBrowserView.m in Sources */, + EDC2CBD21A1AA52500942777 /* Pointer.m in Sources */, + EDC2CBD31A1AA52500942777 /* FSObjectFormatter.m in Sources */, + EDC2CBD41A1AA52500942777 /* FSIdentifierFormatter.m in Sources */, + EDC2CBD51A1AA52500942777 /* FSKeyedUnarchiver.m in Sources */, + EDC2CBD61A1AA52500942777 /* FSKeyedArchiver.m in Sources */, + EDC2CBD71A1AA52500942777 /* FSConstantListBuilder.m in Sources */, + EDC2CBD81A1AA52500942777 /* FSImageInspector.m in Sources */, + EDC2CBD91A1AA52500942777 /* FSNSImage.m in Sources */, + EDC2CBDA1A1AA52500942777 /* FSObjectBrowserToolbarItem.m in Sources */, + EDC2CBDB1A1AA52500942777 /* ArrayRepBoolean.m in Sources */, + EDC2CBDC1A1AA52500942777 /* FSArrayEnumerator.m in Sources */, + EDC2CBDD1A1AA52500942777 /* FSNSMutableArray.m in Sources */, + EDC2CBDE1A1AA52500942777 /* FSNSValue.m in Sources */, + EDC2CBDF1A1AA52500942777 /* FSReplacementForCoderForNilInArray.m in Sources */, + EDC2CBE01A1AA52500942777 /* FSNamedNumber.m in Sources */, + EDC2CBE11A1AA52500942777 /* FSCollectionInspectorTableView.m in Sources */, + EDC2CBE21A1AA52500942777 /* FSNSSet.m in Sources */, + EDC2CBE31A1AA52500942777 /* FSAttributedStringInspector.m in Sources */, + EDC2CBE41A1AA52500942777 /* FSNSAttributedString.m in Sources */, + EDC2CBE51A1AA52500942777 /* FScriptMenuItem.m in Sources */, + EDC2CBE61A1AA52500942777 /* FSNSFont.m in Sources */, + EDC2CBE71A1AA52500942777 /* FSObjectBrowserMatrix.m in Sources */, + EDC2CBE81A1AA52500942777 /* FSSymbolTable.m in Sources */, + EDC2CBE91A1AA52500942777 /* FSObjectBrowserViewObjectInfo.m in Sources */, + EDC2CBEA1A1AA52500942777 /* FSCollectionInspectorView.m in Sources */, + EDC2CBEB1A1AA52500942777 /* ArrayRepFetchRequest.m in Sources */, + EDC2CBEC1A1AA52500942777 /* CHMutableDictionary.m in Sources */, + EDC2CBED1A1AA52500942777 /* FSPointer.m in Sources */, + EDC2CBEE1A1AA52500942777 /* FSGenericPointer.m in Sources */, + EDC2CBEF1A1AA52500942777 /* FSObjectPointer.m in Sources */, + EDC2CBF01A1AA52500942777 /* FSObjectBrowserNamedObjectWrapper.m in Sources */, + EDC2CBF11A1AA52500942777 /* FSInspectorUniquier.m in Sources */, + EDC2CBF21A1AA52500942777 /* FSPredicateTextView.m in Sources */, + EDC2CBF31A1AA52500942777 /* FSCoreDataSample.m in Sources */, + EDC2CBF41A1AA52500942777 /* FSManagedObjectContextInspector.m in Sources */, + EDC2CBF51A1AA52500942777 /* FSNSManagedObjectContext.m in Sources */, + EDC2CBF61A1AA52500942777 /* FSObjectBrowserSearchField.m in Sources */, + EDC2CBF71A1AA52500942777 /* FSBlockCompilationResult.m in Sources */, + EDC2CBF81A1AA52500942777 /* FSReturnSignal.m in Sources */, + EDC2CBF91A1AA52500942777 /* FSMovieInspector.m in Sources */, + EDC2CBFA1A1AA52500942777 /* FSMethod.m in Sources */, + EDC2CBFB1A1AA52500942777 /* FSCNClassDefinition.m in Sources */, + EDC2CBFC1A1AA52500942777 /* FSCNBase.m in Sources */, + EDC2CBFD1A1AA52500942777 /* FSCNIdentifier.m in Sources */, + EDC2CBFE1A1AA52500942777 /* FSObjectEnumInfo.m in Sources */, + EDC2CBFF1A1AA52500942777 /* FSTestObjCClass1.m in Sources */, + EDC2CC001A1AA52500942777 /* FSTestObjCClass2.m in Sources */, + EDC2CC011A1AA52500942777 /* FSCNCategory.m in Sources */, + EDC2CC021A1AA52500942777 /* FSCNMessage.m in Sources */, + EDC2CC031A1AA52500942777 /* FSCNSuper.m in Sources */, + EDC2CC041A1AA52500942777 /* FSCNUnaryMessage.m in Sources */, + EDC2CC051A1AA52500942777 /* FSCNBinaryMessage.m in Sources */, + EDC2CC061A1AA52500942777 /* FSCNKeywordMessage.m in Sources */, + EDC2CC071A1AA52500942777 /* FSCNCascade.m in Sources */, + EDC2CC081A1AA52500942777 /* FSCNStatementList.m in Sources */, + EDC2CC091A1AA52500942777 /* FSCNPrecomputedObject.m in Sources */, + EDC2CC0A1A1AA52500942777 /* FSCNArray.m in Sources */, + EDC2CC0B1A1AA52500942777 /* FSCNBlock.m in Sources */, + EDC2CC0C1A1AA52500942777 /* FSCNAssignment.m in Sources */, + EDC2CC0D1A1AA52500942777 /* FSObjectInspectorViewController.m in Sources */, + EDC2CC0E1A1AA52500942777 /* FSCNMethod.m in Sources */, + EDC2CC0F1A1AA52500942777 /* FSCNReturn.m in Sources */, + EDC2CC101A1AA52500942777 /* FSClassDefinition.m in Sources */, + EDC2CC111A1AA52500942777 /* FSTranscript.m in Sources */, + EDC2CC121A1AA52500942777 /* FSArray.m in Sources */, + EDC2CC131A1AA52500942777 /* Array.m in Sources */, + EDC2CC141A1AA52500942777 /* Block.m in Sources */, + EDC2CC151A1AA52500942777 /* Number.m in Sources */, + EDC2CC161A1AA52500942777 /* FSGlobalScope.m in Sources */, + EDC2CC171A1AA52500942777 /* FSNSFileHandle.m in Sources */, + EDC2CC181A1AA52500942777 /* FSAssociation.m in Sources */, + EDC2CC191A1AA52500942777 /* FSCNDictionary.m in Sources */, + EDC2CC1A1A1AA52500942777 /* FSObjectInspectorBackgroundView.m in Sources */, + EDC2CC1B1A1AA52500942777 /* FSObjectBrowserBottomBarTextDisplay.m in Sources */, + EDC2CC1C1A1AA52500942777 /* FSNSAffineTransform.m in Sources */, + EDC2CC1D1A1AA52500942777 /* FSNewlyAllocatedObject.m in Sources */, + EDC2CC1E1A1AA52500942777 /* FSWorksWhenModalWindow.m in Sources */, + EDC2CC1F1A1AA52500942777 /* FSNSMutableDictionary.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ @@ -7382,6 +9205,16 @@ target = 8F6DA5DE055FC6980050409A /* FSTest2 */; targetProxy = BA223366189FA412002C5B6A /* PBXContainerItemProxy */; }; + EDC2C9001A1AA50D00942777 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 8F6DA6D8055FC6C80050409A /* FSTest1 */; + targetProxy = EDC2C9011A1AA50D00942777 /* PBXContainerItemProxy */; + }; + EDC2C9021A1AA50D00942777 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 8F6DA5DE055FC6980050409A /* FSTest2 */; + targetProxy = EDC2C9031A1AA50D00942777 /* PBXContainerItemProxy */; + }; /* End PBXTargetDependency section */ /* Begin PBXVariantGroup section */ @@ -8068,6 +9901,155 @@ }; name = Release; }; + EDC2CACB1A1AA50D00942777 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + AUTO_SHADOW = YES; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = "$(value) NO"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", + "$(DEVELOPER_FRAMEWORKS_DIR)", + ); + FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(DEVELOPER_FRAMEWORKS_DIR)\""; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_PASCAL_STRINGS = NO; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_MODEL_TUNING = ""; + GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO; + GCC_WARN_UNKNOWN_PRAGMAS = NO; + HEADER_SEARCH_PATHS = ""; + INFOPLIST_FILE = "F-Script 10.9 copy-Info.plist"; + MACOSX_DEPLOYMENT_TARGET = 10.10; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = "-lffi"; + OTHER_REZFLAGS = ""; + PRODUCT_NAME = "F-Script"; + SDKROOT = macosx10.10; + SECTORDER_FLAGS = ""; + VALID_ARCHS = x86_64; + WRAPPER_EXTENSION = app; + ZERO_LINK = NO; + }; + name = Debug; + }; + EDC2CACC1A1AA50D00942777 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(FRAMEWORK_SEARCH_PATHS_QUOTED_1)", + "$(DEVELOPER_FRAMEWORKS_DIR)", + ); + FRAMEWORK_SEARCH_PATHS_QUOTED_1 = "\"$(DEVELOPER_FRAMEWORKS_DIR)\""; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = YES; + GCC_ENABLE_PASCAL_STRINGS = NO; + GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + GCC_MODEL_TUNING = ""; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_WARN_64_TO_32_BIT_CONVERSION = NO; + GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES; + GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_CHECK_SWITCH_STATEMENTS = YES; + GCC_WARN_FOUR_CHARACTER_CONSTANTS = YES; + GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES; + GCC_WARN_MISSING_PARENTHESES = NO; + GCC_WARN_SHADOW = NO; + GCC_WARN_UNKNOWN_PRAGMAS = NO; + GCC_WARN_UNUSED_PARAMETER = YES; + HEADER_SEARCH_PATHS = ""; + INFOPLIST_FILE = "F-Script 10.9 copy-Info.plist"; + MACOSX_DEPLOYMENT_TARGET = 10.10; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = "-lffi"; + OTHER_REZFLAGS = ""; + PRODUCT_NAME = "F-Script"; + SDKROOT = macosx10.10; + SECTORDER_FLAGS = ""; + VALID_ARCHS = x86_64; + WARNING_CFLAGS = "-Wmost"; + WRAPPER_EXTENSION = app; + ZERO_LINK = NO; + }; + name = Release; + }; + EDC2CC251A1AA52500942777 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = "$(value) NO"; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 2; + FRAMEWORK_SEARCH_PATHS = ""; + FRAMEWORK_VERSION = A; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_PASCAL_STRINGS = NO; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_MODEL_TUNING = ""; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO; + GCC_WARN_UNKNOWN_PRAGMAS = NO; + INFOPLIST_FILE = "FScriptFramework 10.9 copy-Info.plist"; + INSTALL_PATH = "@executable_path/../Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.10; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ( + "-lffi", + "-weak_framework", + Cocoa, + ); + OTHER_LIBTOOL_FLAGS = "$(value) "; + OTHER_REZFLAGS = ""; + PRINCIPAL_CLASS = ""; + PRODUCT_NAME = "FScriptFramework 10.10"; + SECTORDER_FLAGS = ""; + SKIP_INSTALL = YES; + WRAPPER_EXTENSION = framework; + ZERO_LINK = NO; + }; + name = Debug; + }; + EDC2CC261A1AA52500942777 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 2; + FRAMEWORK_SEARCH_PATHS = ""; + FRAMEWORK_VERSION = A; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_PASCAL_STRINGS = NO; + GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO; + GCC_WARN_UNKNOWN_PRAGMAS = NO; + INFOPLIST_FILE = "FScriptFramework 10.9 copy-Info.plist"; + INSTALL_PATH = "@executable_path/../Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.10; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ( + "-lffi", + "-weak_framework", + Cocoa, + ); + OTHER_LIBTOOL_FLAGS = "$(value) "; + OTHER_REZFLAGS = ""; + PRINCIPAL_CLASS = ""; + PRODUCT_NAME = "FScriptFramework 10.10"; + SECTORDER_FLAGS = ""; + SKIP_INSTALL = YES; + WRAPPER_EXTENSION = framework; + ZERO_LINK = NO; + }; + name = Release; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -8161,6 +10143,24 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; + EDC2CACA1A1AA50D00942777 /* Build configuration list for PBXNativeTarget "F-Script 10.10" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + EDC2CACB1A1AA50D00942777 /* Debug */, + EDC2CACC1A1AA50D00942777 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + EDC2CC241A1AA52500942777 /* Build configuration list for PBXNativeTarget "FScriptFramework 10.10" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + EDC2CC251A1AA52500942777 /* Debug */, + EDC2CC261A1AA52500942777 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; /* End XCConfigurationList section */ }; rootObject = 0CD4E2FA00D7DD4D7BE9C1BD /* Project object */; diff --git a/FScriptFramework 10.9 copy-Info.plist b/FScriptFramework 10.9 copy-Info.plist new file mode 100644 index 0000000..69012ac --- /dev/null +++ b/FScriptFramework 10.9 copy-Info.plist @@ -0,0 +1,28 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + FScript + CFBundleGetInfoString + + CFBundleIconFile + + CFBundleIdentifier + org.fscript.fscriptframework + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + F-Script Framework + CFBundlePackageType + FMWK + CFBundleShortVersionString + Version 2.0 + CFBundleSignature + ???? + CFBundleVersion + 2.2 + + diff --git a/FScriptFramework/FSDetailedObjectInspector.h b/FScriptFramework/FSDetailedObjectInspector.h new file mode 100644 index 0000000..76f0580 --- /dev/null +++ b/FScriptFramework/FSDetailedObjectInspector.h @@ -0,0 +1,17 @@ +// FSGenericObjectInspector.h Copyright (c) 2001-2009 Philippe Mougin. +// This software is open source. See the license. + +#import + +@class FSObjectInspectorViewModelItem; + +@interface FSDetailedObjectInspector : NSObject +@property (weak,nonatomic) id inspectedObject; +@property (readonly,nonatomic) NSWindow *window; ++ (FSDetailedObjectInspector *)detailedObjectInspectorWithObject:(id)object rootViewModelItem:(FSObjectInspectorViewModelItem*)root; +- (FSDetailedObjectInspector *)initWithObject:(id)object rootViewModelItem:(FSObjectInspectorViewModelItem*)root; +- (void)updateAction:(id)sender; + +- (void)windowWillClose:(NSNotification *)aNotification; + +@end diff --git a/FScriptFramework/FSDetailedObjectInspector.m b/FScriptFramework/FSDetailedObjectInspector.m new file mode 100644 index 0000000..0fc6c74 --- /dev/null +++ b/FScriptFramework/FSDetailedObjectInspector.m @@ -0,0 +1,62 @@ +// FSDetailedObjectInspector.m Copyright (c) 2001-2009 Philippe Mougin. +// This software is open source. See the license. + +#import "FSDetailedObjectInspector.h" +#import "FSMiscTools.h" +#import "FSObjectInspectorViewModelItem.h" +#import "FSObjectInspectorViewController.h" + +static NSPoint topLeftPoint = { 0, 0 }; // Used for cascading windows. +@interface FSDetailedObjectInspector () +@property (strong,readwrite,nonatomic) NSWindow *window; +@property (strong,nonatomic) FSObjectInspectorViewController *viewController; +@property (strong,nonatomic) FSObjectInspectorViewModelItem *rootViewModelItem; +@end + +@implementation FSDetailedObjectInspector + ++ (FSDetailedObjectInspector*)detailedObjectInspectorWithObject:(id)object rootViewModelItem:(FSObjectInspectorViewModelItem*)root +{ + return [[self alloc] initWithObject:object rootViewModelItem:root]; +} + +- (FSDetailedObjectInspector *)initWithObject:(id)object rootViewModelItem:(FSObjectInspectorViewModelItem*)root +{ + if ((self = [super init])) { + self.rootViewModelItem = root; + NSPanel* panel = [[NSPanel alloc] initWithContentRect:NSMakeRect(100.0, 100.0, 500.0, 300.0) + styleMask:(NSClosableWindowMask | NSTitledWindowMask | NSResizableWindowMask) + backing:NSBackingStoreBuffered + defer:NO]; + panel.delegate = self; +#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10 + panel.appearance = [NSAppearance appearanceNamed:NSAppearanceNameVibrantDark]; +#endif + self.window = panel; + _inspectedObject = object; + FSObjectInspectorViewController *objectInspectorViewController = [[FSObjectInspectorViewController alloc] initWithNibName:@"FSObjectInspectorViewController" bundle:nil]; + objectInspectorViewController.rootViewModelItem = root; + self.viewController = objectInspectorViewController; + panel.contentView = objectInspectorViewController.view; + [self updateAction:nil]; + topLeftPoint = [self.window cascadeTopLeftFromPoint:topLeftPoint]; + [self.window makeKeyAndOrderFront:nil]; + return self; + } + return nil; +} + + +- (void)updateAction:(id)sender +{ + [self.window setTitle:[NSString stringWithFormat:@"Inspecting %@ at address %p", descriptionForFSMessage(self.inspectedObject), self.inspectedObject]]; +} + +/////////////////// Window delegate callbacks + +- (void)windowWillClose:(NSNotification*)aNotification +{ +} + + +@end diff --git a/FScriptFramework/FSMiscTools.m b/FScriptFramework/FSMiscTools.m index 567c65f..54906ac 100644 --- a/FScriptFramework/FSMiscTools.m +++ b/FScriptFramework/FSMiscTools.m @@ -14,6 +14,7 @@ #import #import #import "FSCollectionInspector.h" +#import "FSDetailedObjectInspector.h" #import "FSGenericObjectInspector.h" #import "FSInterpreter.h" //#import "FScript.h" @@ -286,6 +287,31 @@ BOOL FSIsIgnoredSelector(SEL selector) return (selector == @selector(retain) && selector == @selector(release)); } +@interface FSInspectorRepository : NSObject ++(void)addInspector:(id)inspector; ++(void)removeInspector:(id) inspector; +@end +@implementation FSInspectorRepository +static NSMutableSet *sInspectors = nil; ++(void)initialize +{ + if (self == FSInspectorRepository.class) { + sInspectors = [NSMutableSet new]; + } +} + ++(void)addInspector:(id)inspector +{ + [sInspectors addObject:inspector]; +} ++(void)removeInspector:(NSNotification*)notification +{ + id inspector = [notification.object delegate]; + [sInspectors removeObject:inspector]; +} +@end + + void inspect(id object, FSInterpreter *interpreter, id argument) { BOOL error = NO; @@ -310,8 +336,18 @@ void inspect(id object, FSInterpreter *interpreter, id argument) [object inspectWithSystem:[interpreter objectForIdentifier:@"sys" found:NULL]]; else if ([object respondsToSelector:@selector(inspect)]) [object inspect]; - else [FSGenericObjectInspector genericObjectInspectorWithObject:object]; - } + else if (argument) { + FSDetailedObjectInspector *inspector = [FSDetailedObjectInspector detailedObjectInspectorWithObject:object rootViewModelItem:argument]; + [NSNotificationCenter.defaultCenter addObserver:FSInspectorRepository.class + selector:@selector(removeInspector:) + name:NSWindowWillCloseNotification + object:inspector.window ]; + [FSInspectorRepository addInspector:inspector]; + } + else { + [FSGenericObjectInspector genericObjectInspectorWithObject:object]; + } + } } } diff --git a/FScriptFramework/FSObjectBrowserMatrix.h b/FScriptFramework/FSObjectBrowserMatrix.h index 86b980c..b73fc8e 100644 --- a/FScriptFramework/FSObjectBrowserMatrix.h +++ b/FScriptFramework/FSObjectBrowserMatrix.h @@ -3,10 +3,8 @@ #import +@class FSObjectInspectorViewModelItem; @interface FSObjectBrowserMatrix : NSMatrix -{ - -} - +@property (strong,nonatomic) FSObjectInspectorViewModelItem *rootViewModelItem; @end diff --git a/FScriptFramework/FSObjectBrowserMatrix.m b/FScriptFramework/FSObjectBrowserMatrix.m index e09e94c..c048294 100644 --- a/FScriptFramework/FSObjectBrowserMatrix.m +++ b/FScriptFramework/FSObjectBrowserMatrix.m @@ -7,109 +7,9 @@ @implementation FSObjectBrowserMatrix -/*- (id)initWithFrame:(NSRect)frameRect mode:(int)aMode cellClass:(Class)classId numberOfRows:(int)numRows numberOfColumns:(int)numColumns +-(void)encodeWithCoder:(NSCoder *)aCoder { - NSLog(@"initWithFrameblabla:"); - [super initWithFrame:frameRect mode:NSRadioModeMatrix cellClass:classId numberOfRows:numRows numberOfColumns:numColumns]; - [self setMode:NSRadioModeMatrix]; - return self; - -} - -- (id)initWithFrame:(NSRect)frameRect -{ - NSLog(@"initWithFrame:"); - [super initWithFrame:frameRect]; - [self setMode:NSRadioModeMatrix]; - return self; -} */ - -/*- (id)initWithFrame:(NSRect)frameRect mode:(int)aMode prototype:(NSCell *)aCell numberOfRows:(int)numRows numberOfColumns:(int)numColumns -{ - NSLog(@"initWithFrameblabla2:"); - [super initWithFrame:frameRect mode:NSListModeMatrix prototype:aCell numberOfRows:numRows numberOfColumns:numColumns]; - [self setMode:NSListModeMatrix]; - return self; - -} - -- (void)mouseMoved:(NSEvent *)theEvent -{ - NSLog(@"moved"); -} - -- (void)mouseDragged:(NSEvent *)theEvent -{ - NSSize dragOffset = NSMakeSize(0.0, 0.0); - NSPasteboard *pboard; - - NSLog(@"dragged"); - - pboard = [NSPasteboard pasteboardWithName:NSDragPboard]; - [pboard declareTypes:[NSArray arrayWithObject:NSTIFFPboardType] owner:self]; - [pboard setData:[[[NSBundle mainBundle] loadImageNamed:@"build.tiff"] TIFFRepresentation] forType:NSTIFFPboardType]; - - [self dragImage:[[NSBundle mainBundle] loadImageNamed:@"build.tiff"] at:[NSEvent mouseLocation] offset:dragOffset event:theEvent pasteboard:pboard source:self slideBack:YES]; - - [super mouseDragged:(NSEvent *)theEvent]; -} - -- (void)setMode:(NSMatrixMode)aMode -{ - [super setMode:NSListModeMatrix]; -} - -- (NSMatrixMode)mode -{ - return NSListModeMatrix; -} - -- (void)mouseDown:(NSEvent *)theEvent -{ - //NSSize dragOffset = NSMakeSize(0.0, 0.0); - //NSPasteboard *pboard; - - NSLog(@"mouseDown:"); - NSLog(@"mode=%d", [self mode]); - - //pboard = [NSPasteboard pasteboardWithName:NSDragPboard]; - //[pboard declareTypes:[NSArray arrayWithObject:NSTIFFPboardType] owner:self]; - //[pboard setData:[[[NSBundle mainBundle] loadImageNamed:@"build.tiff"] TIFFRepresentation] forType:NSTIFFPboardType]; - - //[self dragImage:[[NSBundle mainBundle] loadImageNamed:@"build.tiff"] at:[NSEvent mouseLocation] offset:dragOffset event:theEvent pasteboard:pboard source:self slideBack:YES]; - - [super mouseDown:(NSEvent *)theEvent]; -} - -- (NSDragOperation)draggingSourceOperationMaskForLocal:(BOOL)isLocal -{ - if (isLocal) return NSDragOperationEvery; - else return NSDragOperationCopy; -}*/ - -+ (id)allocWithZone:(NSZone *)zone -{ - id r = [super allocWithZone:zone]; - //NSLog([NSString stringWithFormat:@"FSObjectBrowserMatrix %p allocWithZone:", r]); - return r; -} - -- (id)retain -{ - //NSLog([NSString stringWithFormat:@"FSObjectBrowserMatrix %p retain", self]); - return [super retain]; -} - -- (oneway void)release -{ - //NSLog([NSString stringWithFormat:@"FSObjectBrowserMatrix %p release", self]); - [super release]; -} - -- (void) dealloc -{ - //NSLog([NSString stringWithFormat:@"FSObjectBrowserMatrix %p dealloc", self]); - [super dealloc]; + [super encodeWithCoder:aCoder]; } @end diff --git a/FScriptFramework/FSObjectBrowserView.h b/FScriptFramework/FSObjectBrowserView.h index 8d0d205..91a4adf 100644 --- a/FScriptFramework/FSObjectBrowserView.h +++ b/FScriptFramework/FSObjectBrowserView.h @@ -6,6 +6,7 @@ @class FSInterpreter; @class FSObjectBrowserBottomBarTextDisplay; +@class FSObjectInspectorViewModelItem; NSInteger FSCompareClassNamesForAlphabeticalOrder(NSString* className1, NSString* className2, void* context); @@ -54,4 +55,6 @@ const int FSObjectBrowserBottomBarHeight; - (id)selectedObject; - (void)setInterpreter:(FSInterpreter*)theInterpreter; - (void)setRootObject:(id)theRootObject; +- (void)setRootViewModelObject:(id)viewModel forColumn:(NSUInteger)column; +-(FSObjectInspectorViewModelItem*)rootViewModelForColumn:(NSUInteger)column; @end diff --git a/FScriptFramework/FSObjectBrowserView.m b/FScriptFramework/FSObjectBrowserView.m index 13dd141..12c9fd5 100644 --- a/FScriptFramework/FSObjectBrowserView.m +++ b/FScriptFramework/FSObjectBrowserView.m @@ -238,6 +238,7 @@ static NSInteger FSCompareMethodsNamesForAlphabeticalOrder(NSString* m1, NSStrin static NSMutableArray* customButtons = nil; @interface FSObjectBrowserView () // Methods declaration to let the compiler know +@property (retain,nonatomic) NSMutableDictionary *columnToRootViewModelItem; - (void)fillMatrixForClassesBrowsing:(NSMatrix*)matrix; - (void)fillMatrixForWorkspaceBrowsing:(NSMatrix*)matrix; @@ -248,7 +249,6 @@ - (id)selectedObject; - (void)selectMethodNamed:(NSString*)methodName; - (void)selfAction:(id)sender; - (void)sendMessage:(SEL)selector withArguments:(FSArray*)arguments; -- (BOOL)sendMessageTo:(id)receiver selectorString:(NSString*)selectorStr arguments:(FSArray*)arguments putResultInMatrix:(NSMatrix*)matrix; - (void)setFilterString:(NSString*)theFilterString; - (void)setTitleOfLastColumn:(NSString*)title; - (id)validSelectedObject; @@ -347,6 +347,16 @@ + (void)saveCustomButtonsSettings:(NSNotification*)aNotification [self saveCustomButtonsSettings]; } +-(void)setRootViewModelObject:(FSObjectInspectorViewModelItem*)viewModel forColumn:(NSUInteger)column +{ + self.columnToRootViewModelItem[@(column)] = viewModel; +} + +-(FSObjectInspectorViewModelItem*)rootViewModelForColumn:(NSUInteger)column +{ + return [[self.columnToRootViewModelItem[@(column)] retain]autorelease]; +} + - (void)addBindingForObject:(id)object withName:(NSString*)name toMatrix:(NSMatrix*)matrix classLabel:(NSString*)classLabel selectedClassLabel:(NSString*)selectedClassLabel selectedLabel:(NSString*)selectedLabel selectedObject:(id)selectedObject { NSDictionary* infoForBinding = [object infoForBinding:name]; @@ -510,7 +520,7 @@ - (void)applyBlockAction:(id)sender interpreterResult = [contextualizedBlock executeWithArguments:[NSArray arrayWithObject:selectedObject]]; if ([interpreterResult isOK]) - [self fillMatrix:[browser matrixInColumn:[browser lastColumn]] withObject:[interpreterResult result]]; + [self fillMatrix:[browser matrixInColumn:[browser lastColumn]] column:browser.lastColumn withObject:[interpreterResult result]]; else { NSRunAlertPanel(@"Error", [interpreterResult errorMessage], @"OK", nil, nil, nil); [interpreterResult inspectBlocksInCallStack]; @@ -805,14 +815,14 @@ - (void)browser:(NSBrowser*)sender createRowsForColumn:(NSInteger)column inMatri [self fillMatrixForClassesBrowsing:matrix]; break; case FSBrowsingObject: - [self fillMatrix:matrix withObject:rootObject]; + [self fillMatrix:matrix column:column withObject:rootObject]; break; case FSBrowsingNothing: break; } } else if ([[browser selectedCell] objectBrowserCellType] == FSOBOBJECT || [[browser selectedCell] objectBrowserCellType] == FSOBCLASS) { - [self fillMatrix:matrix withObject:[[browser selectedCell] representedObject]]; + [self fillMatrix:matrix column:column withObject:[[browser selectedCell] representedObject]]; } else { NSString* selectedString = [[browser selectedCell] stringValue]; @@ -841,7 +851,7 @@ - (void)browser:(NSBrowser*)sender createRowsForColumn:(NSInteger)column inMatri return; } else if (nbarg == 0) { - [self sendMessageTo:selectedObject selectorString:selectedString arguments:(FSArray*)[NSArray array] putResultInMatrix:matrix]; + [self sendMessageTo:selectedObject selectorString:selectedString arguments:(FSArray*)[NSArray array] column:column putResultInMatrix:matrix]; } else { NSInteger i; @@ -959,6 +969,7 @@ - (void)dealloc { // NSLog(@"FSObjectBrowserView dealloc"); + [_columnToRootViewModelItem release]; [matrixes release]; [rootObject release]; [interpreter release]; @@ -1202,7 +1213,7 @@ - (void)filter } if ([matrix numberOfRows] > 0) - [self fillMatrix:matrix withObject:[[matrix cellAtRow:0 column:0] representedObject]]; + [self fillMatrix:matrix column:i withObject:[[matrix cellAtRow:0 column:0] representedObject]]; if (selectedRow != -1 && cellType == FSOBMETHOD) { for (j = 0, rowCount = [matrix numberOfRows]; j < rowCount; j++) { @@ -1274,8 +1285,11 @@ - (id)initWithFrame:(NSRect)frameRect CGFloat fontSize; fontSize = systemFontSize(); + _columnToRootViewModelItem = [NSMutableDictionary new]; browser = [[NSBrowser alloc] initWithFrame:NSMakeRect(0, FSObjectBrowserBottomBarHeight, baseWidth, baseHeight - FSObjectBrowserBottomBarHeight)]; + [browser setMatrixClass:FSObjectBrowserMatrix.class]; + [browser setCellClass:[FSObjectBrowserCell class]]; [browser setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable]; [browser setHasHorizontalScroller:YES]; @@ -1311,7 +1325,7 @@ - (id)initWithFrame:(NSRect)frameRect - (void)inspectAction:(id)sender { - inspect([self selectedObject], interpreter, nil); + inspect([self selectedObject], interpreter, [self rootViewModelForColumn:browser.selectedColumn]); } - (void)menuWillSendAction:(NSNotification*)notification; @@ -1627,7 +1641,7 @@ - (void)sendMessage:(SEL)selector withArguments:(FSArray*)arguments // You can p if (arguments && [arguments count] > 0) { [browser setDelegate:self]; - [self sendMessageTo:selectedObject selectorString:methodName arguments:arguments putResultInMatrix:[browser matrixInColumn:[browser lastColumn]]]; + [self sendMessageTo:selectedObject selectorString:methodName arguments:arguments column:browser.lastColumn putResultInMatrix:[browser matrixInColumn:[browser lastColumn]]]; } [browser scrollColumnToVisible:[browser lastColumn]]; @@ -1665,7 +1679,7 @@ - (void)sendMessageAction:(id)sender { BOOL success; NSMatrix* matrix = [browser matrixInColumn:[browser lastColumn]]; - success = [self sendMessageTo:selectedObject selectorString:selectedString arguments:arguments putResultInMatrix:matrix]; + success = [self sendMessageTo:selectedObject selectorString:selectedString arguments:arguments column:browser.lastColumn putResultInMatrix:matrix]; if (success) { [NSApp endSheet:[sender window]]; [[sender window] close]; @@ -1674,7 +1688,7 @@ - (void)sendMessageAction:(id)sender } } -- (BOOL)sendMessageTo:(id)receiver selectorString:(NSString*)selectorStr arguments:(FSArray*)arguments putResultInMatrix:(NSMatrix*)matrix +- (BOOL)sendMessageTo:(id)receiver selectorString:(NSString*)selectorStr arguments:(FSArray*)arguments column:(NSUInteger)column putResultInMatrix:(NSMatrix*)matrix { NSInteger nbarg = [arguments count]; id args[nbarg + 2]; @@ -1703,7 +1717,7 @@ - (BOOL)sendMessageTo:(id)receiver selectorString:(NSString*)selectorStr argumen result = [FSNewlyAllocatedObjectHolder newlyAllocatedObjectHolderWithObject:result]; if (FSEncode([[receiver methodSignatureForSelector:selector] methodReturnType]) != 'v') - [self fillMatrix:matrix withObject:result]; + [self fillMatrix:matrix column:column withObject:result]; return YES; } diff --git a/FScriptFramework/FSObjectBrowserViewObjectInfo.h b/FScriptFramework/FSObjectBrowserViewObjectInfo.h index 8e99ad1..39a1465 100644 --- a/FScriptFramework/FSObjectBrowserViewObjectInfo.h +++ b/FScriptFramework/FSObjectBrowserViewObjectInfo.h @@ -6,6 +6,6 @@ @interface FSObjectBrowserView (FSObjectBrowserViewObjectInfo) -- (void)fillMatrix:(NSMatrix *)m withObject:(id)object; +- (void)fillMatrix:(NSMatrix*)m column:(NSUInteger)col withObject:(id)object; @end diff --git a/FScriptFramework/FSObjectBrowserViewObjectInfo.m b/FScriptFramework/FSObjectBrowserViewObjectInfo.m index 1912e14..d4874f3 100644 --- a/FScriptFramework/FSObjectBrowserViewObjectInfo.m +++ b/FScriptFramework/FSObjectBrowserViewObjectInfo.m @@ -4,6 +4,7 @@ #import "FSObjectBrowserViewObjectInfo.h" #import "FSObjectEnumInfo.h" #import "FSObjectBrowserCell.h" +#import "FSObjectBrowserMatrix.h" #import "FSNamedNumber.h" #import "FSNumber.h" #import "FSMiscTools.h" @@ -127,14 +128,14 @@ - (void)processNSWindow:(id)object; @implementation FSObjectBrowserView (FSObjectBrowserViewObjectInfo) -- (void)fillMatrix:(NSMatrix*)m withObject:(id)object +- (void)fillMatrix:(NSMatrix*)m column:(NSUInteger)col withObject:(id)object { - FSObjectBrowserViewObjectHelper* objectHelper = [[FSObjectBrowserViewObjectHelper alloc] initWithObjectBrowserView:self]; [objectHelper fillMatrix:m withObject:object]; [self addBlankRowToMatrix:m]; [self fillMatrix:m withMethodsForObject:object]; + [self setRootViewModelObject:objectHelper.rootViewModelItem forColumn:col]; [m sizeToCells]; //[m scrollCellToVisibleAtRow:[matrix selectedRow] column:0]; @@ -148,11 +149,16 @@ - (void)fillMatrix:(NSMatrix*)m withObject:(id)object @implementation FSObjectBrowserViewObjectHelper -- (void)addObject:(id)object withLabel:(NSString*)label toMatrix:(NSMatrix*)matrix notNil:(BOOL)notNil +- (void)addObject:(id)object valueType:(FSInspectorVMValueType)valueType withLabel:(NSString*)label toMatrix:(NSMatrix*)matrix notNil:(BOOL)notNil { @try { if (!notNil || object) { [view addObject:object withLabel:label toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; + FSObjectInspectorViewModelItem *item = [[FSObjectInspectorViewModelItem new] autorelease]; + item.name = label; + item.valueType = valueType; + item.value = object; + [self.rootViewModelItem.mutableChildNodes addObject:item]; } } @catch (id exception) @@ -160,11 +166,8 @@ - (void)addObject:(id)object withLabel:(NSString*)label toMatrix:(NSMatrix*)matr NSLog(@"%@", exception); } } -#define ADD_ENUM(OBJECT, LABEL) \ - [self addObject:(OBJECT)withLabel:(LABEL)toMatrix:m notNil:NO]; - -#define ADD_ENUM_NOT_NIL(OBJECT, LABEL) \ - [self addObject:(OBJECT)withLabel:(LABEL)toMatrix:m notNil:YES]; +#define ADD_ENUM(ENUM, OBJECT, LABEL) \ + [self addObject:objectFrom ## ENUM(OBJECT) valueType:FS_ITEM_ENUM withLabel:(LABEL) toMatrix:m notNil:NO]; #define ADD_OBJECT(OBJECT, LABEL) \ @try { \ @@ -185,7 +188,7 @@ - (void)addObject:(id)object withLabel:(NSString*)label toMatrix:(NSMatrix*)matr if ([(OBJECTS)count] <= 20) \ [view addDictionary:(OBJECTS)withLabel:(LABEL)toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; \ else \ - [self addObject:(OBJECTS)withLabel:(LABEL)toMatrix:m notNil:NO]; \ + [self addObject:(OBJECTS) valueType:FS_ITEM_OBJECT withLabel:(LABEL)toMatrix:m notNil:NO]; \ } \ @catch (id exception) { NSLog(@"%@", exception); } @@ -194,15 +197,15 @@ - (void)addObject:(id)object withLabel:(NSString*)label toMatrix:(NSMatrix*)matr if ([(OBJECTS)count] <= 20) \ [view addObjects:(OBJECTS)withLabel:(LABEL)toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; \ else \ - [self addObject:(OBJECTS)withLabel:(LABEL)toMatrix:m notNil:NO]; \ + [self addObject:(OBJECTS)valueType:FS_ITEM_OBJECT withLabel:(LABEL)toMatrix:m notNil:NO]; \ } \ @catch (id exception) { NSLog(@"%@", exception); } #define ADD_BOOL(B, LABEL) \ - [self addObject:[FSBoolean booleanWithBool:(B)] withLabel:(LABEL)toMatrix:m notNil:NO]; + [self addObject:[FSBoolean booleanWithBool:(B)] valueType:FS_ITEM_BOOL withLabel:(LABEL)toMatrix:m notNil:NO]; #define ADD_NUMBER(NUMBER, LABEL) \ - [self addObject:[FSNumber numberWithDouble:(NUMBER)] withLabel:(LABEL)toMatrix:m notNil:NO]; + [self addObject:[FSNumber numberWithDouble:(NUMBER)] valueType:FS_ITEM_NUMBER withLabel:(LABEL)toMatrix:m notNil:NO]; #define ADD_SEL(S, LABEL) \ @try { \ @@ -221,13 +224,13 @@ - (void)addObject:(id)object withLabel:(NSString*)label toMatrix:(NSMatrix*)matr @catch (id exception) { NSLog(@"%@", exception); } #define ADD_SIZE(SIZE, LABEL) \ - [self addObject:[NSValue valueWithSize:(SIZE)] withLabel:(LABEL)toMatrix:m notNil:NO]; + [self addObject:[NSValue valueWithSize:(SIZE)] valueType:FS_ITEM_SIZE withLabel:(LABEL)toMatrix:m notNil:NO]; #define ADD_RECT(RECT, LABEL) \ - [self addObject:[NSValue valueWithRect:(RECT)] withLabel:(LABEL)toMatrix:m notNil:NO]; + [self addObject:[NSValue valueWithRect:(RECT)] valueType:FS_ITEM_RECT withLabel:(LABEL)toMatrix:m notNil:NO]; #define ADD_POINT(POINT, LABEL) \ - [self addObject:[NSValue valueWithPoint:(POINT)] withLabel:(LABEL)toMatrix:m notNil:NO]; + [self addObject:[NSValue valueWithPoint:(POINT)] valueType:FS_ITEM_POINT withLabel:(LABEL)toMatrix:m notNil:NO]; #define ADD_POINTER(POINTER, LABEL) \ @try { \ @@ -237,7 +240,7 @@ - (void)addObject:(id)object withLabel:(NSString*)label toMatrix:(NSMatrix*)matr @catch (id exception) { NSLog(@"%@", exception); } #define ADD_RANGE(RANGE, LABEL) \ - [self addObject:[NSValue valueWithRange:(RANGE)] withLabel:(LABEL)toMatrix:m notNil:NO]; + [self addObject:[NSValue valueWithRange:(RANGE)] valueType:FS_ITEM_RANGE withLabel:(LABEL)toMatrix:m notNil:NO]; #define ADD_CLASS_LABEL(LABEL) \ { \ @@ -262,6 +265,7 @@ - (id)initWithObjectBrowserView:(FSObjectBrowserView*)theView } view = [[theView retain] autorelease]; + self.rootViewModelItem = [FSObjectInspectorViewModelItem new]; } return self; @@ -270,6 +274,7 @@ - (id)initWithObjectBrowserView:(FSObjectBrowserView*)theView - (void)dealloc { [baseClasses release]; + [_rootViewModelItem release]; [super dealloc]; } @@ -683,7 +688,7 @@ - (void)addNSAlert:(id)object NSAlert* o = object; ADD_CLASS_LABEL(@"NSAlert Info"); ADD_OBJECT([o accessoryView], @"Accessory view") - ADD_OBJECT(objectFromAlertStyle([o alertStyle]), @"Alert style") + ADD_ENUM(AlertStyle, [o alertStyle], @"Alert style") ADD_OBJECTS([o buttons], @"Buttons") ADD_OBJECT_NOT_NIL([o delegate], @"Delegate") ADD_OBJECT_NOT_NIL([o helpAnchor], @"Help anchor") @@ -709,8 +714,8 @@ - (void)addNSAnimation:(id)object NSAnimation* o = object; ADD_CLASS_LABEL(@"NSAnimation Info"); - ADD_OBJECT(objectFromAnimationBlockingMode([o animationBlockingMode]), @"Animation blocking mode") - ADD_OBJECT(objectFromAnimationCurve([o animationCurve]), @"Animation curve") + ADD_ENUM(AnimationBlockingMode, [o animationBlockingMode], @"Animation blocking mode") + ADD_ENUM(AnimationCurve, [o animationCurve], @"Animation curve") ADD_NUMBER([o currentProgress], @"Current progress") ADD_NUMBER([o currentValue], @"Current value") ADD_OBJECT([o delegate], @"Delegate") @@ -737,7 +742,7 @@ - (void)addNSAttributedString:(id)object //ADD_OBJECT( [o attributeRuns] ,@"Attribute runs") ADD_NUMBER([o changeInLength], @"Change in length") ADD_OBJECT_NOT_NIL([o delegate], @"Delegate") - ADD_OBJECT(objectFromTextStorageEditedOptions([o editedMask]), @"Edited mask") + ADD_ENUM(TextStorageEditedOptions, [o editedMask], @"Edited mask") ADD_RANGE([o editedRange], @"Edited range") ADD_BOOL([o fixesAttributesLazily], @"Fixes attributes lazily") ADD_OBJECT([o font], @"Font") @@ -759,11 +764,11 @@ - (void)addNSBezierPath:(id)object ADD_NUMBER([o elementCount], @"Element count") ADD_NUMBER([o flatness], @"Flatness") ADD_BOOL([o isEmpty], @"Is empty") - ADD_OBJECT(objectFromLineCapStyle([o lineCapStyle]), @"Line cap style") - ADD_OBJECT(objectFromLineJoinStyle([o lineJoinStyle]), @"Line join style") + ADD_ENUM(LineCapStyle, [o lineCapStyle], @"Line cap style") + ADD_ENUM(LineJoinStyle, [o lineJoinStyle], @"Line join style") ADD_NUMBER([o lineWidth], @"Line width") ADD_NUMBER([o miterLimit], @"Miter limit") - ADD_OBJECT(objectFromWindingRule([o windingRule]), @"Winding rule") + ADD_ENUM(WindingRule, [o windingRule], @"Winding rule") } - (void)addNSCell:(id)object @@ -775,13 +780,13 @@ - (void)addNSCell:(id)object NSPopUpButtonCell* o = object; ADD_CLASS_LABEL(@"NSPopUpButtonCell Info"); ADD_BOOL([o altersStateOfSelectedItem], @"Alters state of selected item") - ADD_OBJECT(objectFromPopUpArrowPosition([o arrowPosition]), @"Arrow position") + ADD_ENUM(PopUpArrowPosition, [o arrowPosition], @"Arrow position") ADD_BOOL([o autoenablesItems], @"Autoenables Items") ADD_NUMBER([o indexOfSelectedItem], @"Index of selected item") ADD_OBJECTS([o itemArray], @"Item array") ADD_NUMBER([o numberOfItems], @"Number of items") ADD_OBJECT([o objectValue], @"Object value") - ADD_OBJECT(objectFromRectEdge([o preferredEdge]), @"Preferred edge") + ADD_ENUM(RectEdge, [o preferredEdge], @"Preferred edge") ADD_BOOL([o pullsDown], @"Pulls down") ADD_OBJECT([o selectedItem], @"Selected item") ADD_BOOL([o usesItemFromMenu], @"Uses item from menu") @@ -808,17 +813,17 @@ - (void)addNSCell:(id)object ADD_OBJECT([o attributedAlternateTitle], @"Attributed alternate title") ADD_OBJECT([o attributedTitle], @"Attributed title") ADD_OBJECT([o backgroundColor], @"Background color") - ADD_OBJECT(objectFromBezelStyle([o bezelStyle]), @"Bezel style") - ADD_OBJECT(objectFromGradientType([o gradientType]), @"Gradient type") - ADD_OBJECT(objectFromCellStyleMask([o highlightsBy]), @"Highlights by") + ADD_ENUM(BezelStyle, [o bezelStyle], @"Bezel style") + ADD_ENUM(GradientType, [o gradientType], @"Gradient type") + ADD_ENUM(CellStyleMask, [o highlightsBy], @"Highlights by") ADD_BOOL([o imageDimsWhenDisabled], @"Image dims when disabled") - ADD_OBJECT(objectFromCellImagePosition([o imagePosition]), @"Image position") - ADD_OBJECT(objectFromImageScaling([o imageScaling]), @"Image scaling") + ADD_ENUM(CellImagePosition, [o imagePosition], @"Image position") + ADD_ENUM(ImageScaling, [o imageScaling], @"Image scaling") ADD_BOOL([o isTransparent], @"Is transparent") ADD_OBJECT_NOT_NIL([o keyEquivalentFont], @"Key equivalent font") - ADD_OBJECT(objectFromKeyModifierMask([o keyEquivalentModifierMask]), @"Key equivalent modifier mask") + ADD_ENUM(KeyModifierMask, [o keyEquivalentModifierMask], @"Key equivalent modifier mask") ADD_BOOL([o showsBorderOnlyWhileMouseInside], @"Shows border only while mouse inside") - ADD_OBJECT(objectFromCellStyleMask([o showsStateBy]), @"Shows state by") + ADD_ENUM(CellStyleMask, [o showsStateBy], @"Shows state by") ADD_OBJECT_NOT_NIL([o sound], @"Sound") ADD_OBJECT([o title], @"Title") } @@ -827,9 +832,9 @@ - (void)addNSCell:(id)object ADD_CLASS_LABEL(@"NSDatePickerCell Info"); ADD_OBJECT([o backgroundColor], @"Background color") ADD_OBJECT([o calendar], @"Calendar") - ADD_OBJECT(objectFromDatePickerElementFlags([o datePickerElements]), @"Date picker elements") - ADD_OBJECT(objectFromDatePickerMode([o datePickerMode]), @"Date picker mode") - ADD_OBJECT(objectFromDatePickerStyle([o datePickerStyle]), @"Date picker style") + ADD_ENUM(DatePickerElementFlags, [o datePickerElements], @"Date picker elements") + ADD_ENUM(DatePickerMode, [o datePickerMode], @"Date picker mode") + ADD_ENUM(DatePickerStyle, [o datePickerStyle], @"Date picker style") ADD_OBJECT([o dateValue], @"Date value") ADD_OBJECT_NOT_NIL([o delegate], @"Delegate") ADD_BOOL([o drawsBackground], @"Draws background") @@ -846,8 +851,8 @@ - (void)addNSCell:(id)object ADD_OBJECT([o attributedTitle], @"Attributed title") ADD_OBJECT_NOT_NIL([o placeholderAttributedString], @"Placeholder attributed string") ADD_OBJECT_NOT_NIL([o placeholderString], @"Placeholder string") - ADD_OBJECT(objectFromTextAlignment([o titleAlignment]), @"Title alignment") - ADD_OBJECT(objectFromWritingDirection([o titleBaseWritingDirection]), @"Title base writing direction") + ADD_ENUM(TextAlignment, [o titleAlignment], @"Title alignment") + ADD_ENUM(WritingDirection, [o titleBaseWritingDirection], @"Title base writing direction") ADD_OBJECT([o titleFont], @"Title font") ADD_NUMBER([o titleWidth], @"Title width") } @@ -855,7 +860,7 @@ - (void)addNSCell:(id)object NSLevelIndicatorCell* o = object; ADD_CLASS_LABEL(@"NSLevelIndicatorCell Info"); ADD_NUMBER([o criticalValue], @"Critical value") - ADD_OBJECT(objectFromLevelIndicatorStyle([o levelIndicatorStyle]), @"Level indicator style") + ADD_ENUM(LevelIndicatorStyle, [o levelIndicatorStyle], @"Level indicator style") ADD_NUMBER([o maxValue], @"Max value") ADD_NUMBER([o minValue], @"Min value") ADD_NUMBER([o numberOfMajorTickMarks], @"Number of major tick marks") @@ -871,7 +876,7 @@ - (void)addNSCell:(id)object ADD_OBJECT([o delegate], @"Delegate") ADD_SEL([o doubleAction], @"Double action") ADD_OBJECTS([o pathComponentCells], @"Path component cells") - ADD_OBJECT(objectFromPathStyle([o pathStyle]), @"Path style") + ADD_ENUM(PathStyle, [o pathStyle], @"Path style") ADD_OBJECT_NOT_NIL([o placeholderAttributedString], @"Placeholder attributed string") ADD_OBJECT_NOT_NIL([o placeholderString], @"Placeholder string") ADD_OBJECT_NOT_NIL([o URL], @"URL") @@ -883,7 +888,7 @@ - (void)addNSCell:(id)object ADD_NUMBER(segmentCount, @"Segment count") ADD_NUMBER([o selectedSegment], @"Selected segment") - ADD_OBJECT(objectFromSegmentSwitchTracking([o trackingMode]), @"Tracking mode") + ADD_ENUM(SegmentSwitchTracking, [o trackingMode], @"Tracking mode") for (NSInteger i = 0; i < segmentCount; i++) { ADD_OBJECT_NOT_NIL([o imageForSegment:i], ([NSString stringWithFormat:@"Image for segment %ld", (long)i])) @@ -907,7 +912,7 @@ - (void)addNSCell:(id)object ADD_NUMBER([o maxValue], @"Max value") ADD_NUMBER([o minValue], @"Min value") ADD_NUMBER([o numberOfTickMarks], @"Number of tick marks") - ADD_OBJECT(objectFromSliderType([o sliderType]), @"Slider type") + ADD_ENUM(SliderType, [o sliderType], @"Slider type") ADD_OBJECT(objectFromTickMarkPosition([o tickMarkPosition], [(NSSliderCell*)o isVertical] == 1), @"Tick mark position") ADD_RECT([o trackRect], @"Track rect") } @@ -963,14 +968,14 @@ - (void)addNSCell:(id)object ADD_NUMBER([o completionDelay], @"Completion delay") ADD_OBJECT_NOT_NIL([o delegate], @"Delegate") ADD_OBJECT([o tokenizingCharacterSet], @"Tokenizing character set") - ADD_OBJECT(objectFromTokenStyle([o tokenStyle]), @"Token style") + ADD_ENUM(TokenStyle, [o tokenStyle], @"Token style") } NSTextFieldCell* o = object; ADD_CLASS_LABEL(@"NSTextFieldCell Info"); ADD_OBJECTS([o allowedInputSourceLocales], @"Allowed input source locales") ADD_OBJECT([o backgroundColor], @"Background color") - ADD_OBJECT(objectFromTextFieldBezelStyle([o bezelStyle]), @"Bezel style") + ADD_ENUM(TextFieldBezelStyle, [o bezelStyle], @"Bezel style") ADD_BOOL([o drawsBackground], @"Draws background") ADD_OBJECT_NOT_NIL([o placeholderAttributedString], @"Placeholder attributed string") ADD_OBJECT_NOT_NIL([o placeholderString], @"Placeholder string") @@ -987,8 +992,8 @@ - (void)addNSCell:(id)object else if ([object isKindOfClass:[NSImageCell class]]) { NSImageCell* o = object; ADD_CLASS_LABEL(@"NSImageCell Info"); - ADD_OBJECT(objectFromImageAlignment([o imageAlignment]), @"Image alignment") - ADD_OBJECT(objectFromImageScaling([o imageScaling]), @"Image scaling") + ADD_ENUM(ImageAlignment, [o imageAlignment], @"Image alignment") + ADD_ENUM(ImageScaling, [o imageScaling], @"Image scaling") } else if ([object isKindOfClass:[NSTextAttachmentCell class]]) { NSTextAttachmentCell* o = object; @@ -1003,24 +1008,24 @@ - (void)addNSCell:(id)object ADD_CLASS_LABEL(@"NSCell Info"); ADD_BOOL([o acceptsFirstResponder], @"Accepts first responder") ADD_SEL_NOT_NULL([o action], @"Action") - ADD_OBJECT(objectFromTextAlignment([o alignment]), @"Alignment") + ADD_ENUM(TextAlignment, [o alignment], @"Alignment") ADD_BOOL([o allowsEditingTextAttributes], @"Allows editing text attributes") ADD_BOOL([o allowsMixedState], @"Allows mixed state") ADD_BOOL([o allowsUndo], @"Allows undo") //ADD_OBJECT( [o attributedStringValue] ,@"Attributed string value") - ADD_OBJECT(objectFromBackgroundStyle([o backgroundStyle]), @"Background style") - ADD_OBJECT(objectFromWritingDirection([o baseWritingDirection]), @"Base writing direction") + ADD_ENUM(BackgroundStyle, [o backgroundStyle], @"Background style") + ADD_ENUM(WritingDirection, [o baseWritingDirection], @"Base writing direction") ADD_SIZE([o cellSize], @"Cell size") - ADD_OBJECT(objectFromControlSize([o controlSize]), @"Control size") - ADD_OBJECT(objectFromControlTint([o controlTint]), @"Control tint") + ADD_ENUM(ControlSize, [o controlSize], @"Control size") + ADD_ENUM(ControlTint, [o controlTint], @"Control tint") ADD_OBJECT_NOT_NIL([o controlView], @"Control view") - ADD_OBJECT(objectFromFocusRingType([o focusRingType]), @"Focus ring type") + ADD_ENUM(FocusRingType, [o focusRingType], @"Focus ring type") ADD_OBJECT([o font], @"Font") ADD_OBJECT_NOT_NIL([o formatter], @"Formatter") ADD_OBJECT_NOT_NIL([o image], @"Image") if ([(NSCell*)o type] == NSTextCellType) ADD_BOOL([o importsGraphics], @"Imports graphics") - ADD_OBJECT(objectFromBackgroundStyle([o interiorBackgroundStyle]), @"Interior background style") + ADD_ENUM(BackgroundStyle, [o interiorBackgroundStyle], @"Interior background style") ADD_BOOL([o isBezeled], @"Is bezeled") ADD_BOOL([o isBordered], @"Is bordered") ADD_BOOL([o isContinuous], @"Is continuous") @@ -1032,22 +1037,22 @@ - (void)addNSCell:(id)object ADD_BOOL([o isSelectable], @"Is selectable") if ([[o keyEquivalent] length] != 0) ADD_OBJECT([o keyEquivalent], @"Key equivalent") - ADD_OBJECT(objectFromLineBreakMode([o lineBreakMode]), @"Line break mode") + ADD_ENUM(LineBreakMode, [o lineBreakMode], @"Line break mode") ADD_OBJECT_NOT_NIL([o menu], @"Menu") if ([[o mnemonic] length] != 0) ADD_OBJECT([o mnemonic], @"Mnemonic") if ([o mnemonicLocation] != NSNotFound) ADD_NUMBER([o mnemonicLocation], @"Mnemonic location") - ADD_OBJECT(objectFromCellStateValue([o nextState]), @"Next state") + ADD_ENUM(CellStateValue, [o nextState], @"Next state") //ADD_OBJECT( [o objectValue] ,@"Object value") ADD_BOOL([o refusesFirstResponder], @"Refuses first responder") ADD_OBJECT_NOT_NIL([o representedObject], @"Represented object") ADD_BOOL([o sendsActionOnEndEditing], @"Sends action on end editing") ADD_BOOL([o showsFirstResponder], @"Shows first responder") - ADD_OBJECT(objectFromCellStateValue([o state]), @"State") + ADD_ENUM(CellStateValue, [o state], @"State") ADD_NUMBER([o tag], @"Tag") ADD_OBJECT_NOT_NIL([o target], @"Target") - ADD_OBJECT(objectFromCellType([(NSCell*)o type]), @"Type") + ADD_ENUM(CellType, [(NSCell*)o type], @"Type") ADD_BOOL([o wantsNotificationForMarkedText], @"Wants notification for marked text") ADD_BOOL([o wraps], @"Wraps") } @@ -1066,10 +1071,10 @@ - (void)addNSComparisonPredicate:(id)object { NSComparisonPredicate* o = object; ADD_CLASS_LABEL(@"NSComparisonPredicate Info"); - ADD_OBJECT(objectFromComparisonPredicateModifier([o comparisonPredicateModifier]), @"Comparison predicate modifier") + ADD_ENUM(ComparisonPredicateModifier, [o comparisonPredicateModifier], @"Comparison predicate modifier") ADD_SEL_NOT_NULL([o customSelector], @"Custom selector") ADD_OBJECT([o leftExpression], @"Left expression") - ADD_OBJECT(objectFromPredicateOperatorType([o predicateOperatorType]), @"Predicate operator type") + ADD_ENUM(PredicateOperatorType, [o predicateOperatorType], @"Predicate operator type") ADD_OBJECT([o rightExpression], @"Right expression") } @@ -1077,7 +1082,7 @@ - (void)addNSCompoundPredicate:(id)object { NSCompoundPredicate* o = object; ADD_CLASS_LABEL(@"NSCompoundPredicate Info") - ADD_OBJECT(objectFromCompoundPredicateType([o compoundPredicateType]), @"Compound predicate type") + ADD_ENUM(CompoundPredicateType, [o compoundPredicateType], @"Compound predicate type") ADD_OBJECTS([o subpredicates], @"Subpredicates") } @@ -1252,7 +1257,7 @@ - (void)addNSEvent:(id)object ADD_NUMBER([o absoluteX], @"Absolute x") ADD_NUMBER([o absoluteY], @"Absolute y") ADD_NUMBER([o absoluteZ], @"Absolute z") - ADD_OBJECT(objectFromEventButtonMask([o buttonMask]), @"Button mask") + ADD_ENUM(EventButtonMask, [o buttonMask], @"Button mask") } if (type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp) ADD_NUMBER([o buttonNumber], @"Button number") @@ -1288,18 +1293,18 @@ - (void)addNSEvent:(id)object ADD_NUMBER([o keyCode], @"Key code") if (type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) ADD_POINT([o locationInWindow], @"Location in window") - ADD_OBJECT(objectFromKeyModifierMask([o modifierFlags]), @"Modifier flags") + ADD_ENUM(KeyModifierMask, [o modifierFlags], @"Modifier flags") if (type == NSTabletProximity || ((type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) && [object subtype] == NSTabletProximityEventSubtype)) { ADD_NUMBER([o pointingDeviceID], @"Pointing device ID") ADD_NUMBER([o pointingDeviceSerialNumber], @"Pointing device serial number") - ADD_OBJECT(objectFromPointingDeviceType([o pointingDeviceType]), @"Pointing device type") + ADD_ENUM(PointingDeviceType, [o pointingDeviceType], @"Pointing device type") } if (type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) ADD_NUMBER([o pressure], @"Pressure") if (type == NSTabletPoint || ((type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) && [object subtype] == NSTabletPointEventSubtype)) ADD_NUMBER([o rotation], @"Rotation") if (type == NSAppKitDefined || type == NSSystemDefined || type == NSApplicationDefined || type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) - ADD_OBJECT(objectFromEventSubtype([o subtype]), @"Subtype") + ADD_ENUM(EventSubtype, [o subtype], @"Subtype") if (type == NSTabletProximity || ((type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) && [object subtype] == NSTabletProximityEventSubtype)) { ADD_NUMBER([o systemTabletID], @"System tablet ID") ADD_NUMBER([o tabletID], @"Tablet ID") @@ -1313,7 +1318,7 @@ - (void)addNSEvent:(id)object ADD_OBJECT([o trackingArea], @"Tracking area") ADD_NUMBER([o trackingNumber], @"Tracking number") } - ADD_OBJECT(objectFromEventType([(NSEvent*)o type]), @"Type") + ADD_ENUM(EventType, [(NSEvent*)o type], @"Type") if (type == NSTabletProximity || ((type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) && [object subtype] == NSTabletProximityEventSubtype)) ADD_NUMBER([o uniqueID], @"Unique ID") if (type == NSMouseEntered || type == NSMouseExited || type == NSCursorUpdate) { @@ -1423,7 +1428,7 @@ - (void)addNSExpression:(id)object if (constantValueIsInitialized) ADD_OBJECT(constantValue, @"Constant value"); if (expressionTypeIsInitialized) - ADD_OBJECT(objectFromExpressionType(expressionType), @"Expression type"); + ADD_ENUM(ExpressionType, expressionType, @"Expression type"); if (functionIsInitialized) ADD_OBJECT(function, @"Function"); if (keyPathIsInitialized) @@ -1451,7 +1456,7 @@ - (void)addNSFetchRequest:(id)object ADD_BOOL([o includesSubentities], @"Includes bubentities") ADD_OBJECT([o predicate], @"Predicate") ADD_OBJECTS([o relationshipKeyPathsForPrefetching], @"Relationship key paths for prefetching") - ADD_OBJECT(objectFromFetchRequestResultType([o resultType]), @"Result type") + ADD_ENUM(FetchRequestResultType, [o resultType], @"Result type") ADD_BOOL([o returnsObjectsAsFaults], @"Returns objects as faults") ADD_OBJECTS([o sortDescriptors], @"Sort descriptors") } @@ -1493,11 +1498,11 @@ - (void)addNSFont:(id)object [view addObject:matrixString withLabel:@"Matrix" toMatrix:m leaf:YES classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject indentationLevel:0]; ADD_SIZE([o maximumAdvancement], @"Maximum advancement") - ADD_OBJECT(objectFromStringEncoding([o mostCompatibleStringEncoding]), @"Most compatible string encoding") + ADD_ENUM(StringEncoding, [o mostCompatibleStringEncoding], @"Most compatible string encoding") ADD_NUMBER([o numberOfGlyphs], @"Number of glyphs") ADD_NUMBER([o pointSize], @"Point size") ADD_OBJECT([o printerFont], @"Printer font") - ADD_OBJECT(objectFromFontRenderingMode([o renderingMode]), @"Rendering mode") + ADD_ENUM(FontRenderingMode, [o renderingMode], @"Rendering mode") ADD_OBJECT_NOT_NIL([o screenFont], @"Screen font") ADD_NUMBER([o underlinePosition], @"Underline position") ADD_NUMBER([o underlineThickness], @"Underline thickness") @@ -1534,7 +1539,7 @@ - (void)addNSGlyphInfo:(id)object { NSGlyphInfo* o = object; ADD_CLASS_LABEL(@"NSGlyphInfo Info"); - ADD_OBJECT(objectFromCharacterCollection([o characterCollection]), @"Character collection") + ADD_ENUM(CharacterCollection, [o characterCollection], @"Character collection") if ([o characterIdentifier]) ADD_NUMBER([o characterIdentifier], @"Character identifier"); ADD_OBJECT_NOT_NIL([o glyphName], @"Glyph name") @@ -1560,10 +1565,10 @@ - (void)addNSGraphicsContext:(id)object NSGraphicsContext* o = object; ADD_CLASS_LABEL(@"NSGraphicsContext Info"); ADD_DICTIONARY([o attributes], @"Attributes") - ADD_OBJECT(objectFromColorRenderingIntent([o colorRenderingIntent]), @"Color rendering intent") - ADD_OBJECT(objectFromCompositingOperation([o compositingOperation]), @"Compositing operation") + ADD_ENUM(ColorRenderingIntent, [o colorRenderingIntent], @"Color rendering intent") + ADD_ENUM(CompositingOperation, [o compositingOperation], @"Compositing operation") ADD_POINTER([o graphicsPort], @"Graphics port") - ADD_OBJECT(objectFromImageInterpolation([o imageInterpolation]), @"Image interpolation") + ADD_ENUM(ImageInterpolation, [o imageInterpolation], @"Image interpolation") ADD_BOOL([o isDrawingToScreen], @"Is drawing to screen") ADD_BOOL([o isFlipped], @"Is flipped") ADD_POINT([o patternPhase], @"Pattern phase") @@ -1577,7 +1582,7 @@ - (void)addNSImage:(id)object ADD_RECT([o alignmentRect], @"Alignment rect") ADD_OBJECT([o backgroundColor], @"Background color") ADD_BOOL([o cacheDepthMatchesImageDepth], @"Cache depth matches image depth") - ADD_OBJECT(objectFromImageCacheMode([o cacheMode]), @"Cache mode") + ADD_ENUM(ImageCacheMode, [o cacheMode], @"Cache mode") ADD_OBJECT_NOT_NIL([o delegate], @"Delegate") ADD_BOOL([o isCachedSeparately], @"Is cached separately") ADD_BOOL([o isDataRetained], @"Is data retained") @@ -1598,7 +1603,7 @@ - (void)addNSImageRep:(id)object if ([object isKindOfClass:[NSBitmapImageRep class]]) { NSBitmapImageRep* o = object; ADD_CLASS_LABEL(@"NSBitmapImageRep Info"); - ADD_OBJECT(objectFromBitmapFormat([o bitmapFormat]), @"Bitmap format") + ADD_ENUM(BitmapFormat, [o bitmapFormat], @"Bitmap format") ADD_NUMBER([o bitsPerPixel], @"Bits per pixel") ADD_NUMBER([o bytesPerPlane], @"Bytes per plane") ADD_NUMBER([o bytesPerRow], @"Bytes per row") @@ -1607,7 +1612,7 @@ - (void)addNSImageRep:(id)object { id compressionMethod = [o valueForProperty:NSImageCompressionMethod]; if ([compressionMethod isKindOfClass:[NSNumber class]]) - ADD_OBJECT(objectFromTIFFCompression([[o valueForProperty:NSImageCompressionMethod] longValue]), @"Compression method") + ADD_ENUM(TIFFCompression, [[o valueForProperty:NSImageCompressionMethod] longValue], @"Compression method") } ADD_OBJECT_NOT_NIL([o valueForProperty:NSImageCurrentFrame], @"Current frame") ADD_OBJECT_NOT_NIL([o valueForProperty:NSImageCurrentFrameDuration], @"Current frame duration") @@ -1670,7 +1675,7 @@ - (void)addNSLayoutManager:(id)object ADD_CLASS_LABEL(@"NSLayoutManager Info"); ADD_BOOL([o allowsNonContiguousLayout], @"Allows non contiguous layout") ADD_BOOL([o backgroundLayoutEnabled], @"Background layout enabled") - ADD_OBJECT(objectFromImageScaling([o defaultAttachmentScaling]), @"Default attachment scaling") + ADD_ENUM(ImageScaling, [o defaultAttachmentScaling], @"Default attachment scaling") ADD_OBJECT_NOT_NIL([o delegate], @"Delegate") ADD_RECT([o extraLineFragmentRect], @"Extra line fragment rect") ADD_OBJECT_NOT_NIL([o extraLineFragmentTextContainer], @"Extra line fragment text container") @@ -1681,14 +1686,14 @@ - (void)addNSLayoutManager:(id)object ADD_OBJECT([o glyphGenerator], @"Glyph generator") ADD_BOOL([o hasNonContiguousLayout], @"Has non contiguous layout") ADD_NUMBER([o hyphenationFactor], @"Hyphenation factor") - ADD_OBJECT(objectFromGlyphStorageLayoutOptions([o layoutOptions]), @"Layout options") + ADD_ENUM(GlyphStorageLayoutOptions, [o layoutOptions], @"Layout options") ADD_BOOL([o showsControlCharacters], @"Shows control characters") ADD_BOOL([o showsInvisibleCharacters], @"Shows invisible characters") ADD_OBJECTS([o textContainers], @"Text containers") ADD_OBJECT([o textStorage], @"Text storage") ADD_OBJECT([o textViewForBeginningOfSelection], @"Text view for beginning of selection") ADD_OBJECT([o typesetter], @"Typesetter") - ADD_OBJECT(objectFromTypesetterBehavior([o typesetterBehavior]), @"Typesetter behavior") + ADD_ENUM(TypesetterBehavior, [o typesetterBehavior], @"Typesetter behavior") ADD_BOOL([o usesFontLeading], @"Uses font leading") ADD_BOOL([o usesScreenFonts], @"Uses screen fonts") } @@ -1700,7 +1705,7 @@ - (void)addNSManagedObjectContext:(id)object ADD_OBJECT([o deletedObjects], @"Deleted objects") ADD_BOOL([o hasChanges], @"Has changes") ADD_OBJECT([o insertedObjects], @"Inserted objects") - ADD_OBJECT(objectFromMergePolicy([o mergePolicy]), @"Merge policy") + ADD_ENUM(MergePolicy, [o mergePolicy], @"Merge policy") ADD_OBJECT([o persistentStoreCoordinator], @"Persistent store coordinator") ADD_BOOL([o propagatesDeletesAtEndOfEvent], @"Propagates deletes at end of event") ADD_OBJECT([o registeredObjects], @"Registered objects") @@ -1762,13 +1767,13 @@ - (void)addNSMenuItem:(id)object ADD_BOOL([o isHighlighted], @"Is highlighted") ADD_BOOL([o isSeparatorItem], @"Is separatorItem") ADD_OBJECT([o keyEquivalent], @"Key equivalent") - ADD_OBJECT(objectFromKeyModifierMask([o keyEquivalentModifierMask]), @"Key equivalent modifier mask") + ADD_ENUM(KeyModifierMask, [o keyEquivalentModifierMask], @"Key equivalent modifier mask") ADD_OBJECT([o menu], @"Menu") ADD_OBJECT_NOT_NIL([o mixedStateImage], @"Mixed state image") ADD_OBJECT_NOT_NIL([o offStateImage], @"Off state image") ADD_OBJECT_NOT_NIL([o onStateImage], @"On state image") ADD_OBJECT_NOT_NIL([o representedObject], @"Represented object") - ADD_OBJECT(objectFromCellStateValue([o state]), @"State") + ADD_ENUM(CellStateValue, [o state], @"State") ADD_OBJECT_NOT_NIL([o submenu], @"Submenu") ADD_NUMBER([o tag], @"Tag") ADD_OBJECT_NOT_NIL([o target], @"Target") @@ -1824,14 +1829,14 @@ - (void)addNSParagraphStyle:(id)object { NSParagraphStyle* o = object; ADD_CLASS_LABEL(@"NSParagraphStyle Info") - ADD_OBJECT(objectFromTextAlignment([o alignment]), @"Alignment") - ADD_OBJECT(objectFromWritingDirection([o baseWritingDirection]), @"Base writing direction") + ADD_ENUM(TextAlignment, [o alignment], @"Alignment") + ADD_ENUM(WritingDirection, [o baseWritingDirection], @"Base writing direction") ADD_NUMBER([o defaultTabInterval], @"Default tab interval") ADD_NUMBER([o firstLineHeadIndent], @"First line head indent") ADD_NUMBER([o headerLevel], @"HeaderLevel") ADD_NUMBER([o headIndent], @"Head indent") ADD_NUMBER([o hyphenationFactor], @"hyphenationFactor") - ADD_OBJECT(objectFromLineBreakMode([o lineBreakMode]), @"Line break mode") + ADD_ENUM(LineBreakMode, [o lineBreakMode], @"Line break mode") ADD_NUMBER([o lineHeightMultiple], @"Line height multiple") ADD_NUMBER([o lineSpacing], @"Line spacing") ADD_NUMBER([o maximumLineHeight], @"Maximum line height") @@ -1859,10 +1864,10 @@ - (void)addNSPredicateEditorRowTemplate:(id)object ADD_CLASS_LABEL(@"NSPredicateEditorRowTemplate Info") ADD_OBJECTS([o compoundTypes], @"Compound types") ADD_OBJECTS([o leftExpressions], @"Left expressions") - ADD_OBJECT(objectFromComparisonPredicateModifier([o modifier]), @"Modifier") + ADD_ENUM(ComparisonPredicateModifier, [o modifier], @"Modifier") ADD_OBJECTS([o operators], @"Operators") - ADD_OBJECT(objectFromComparisonPredicateOptions([o options]), @"Options") - ADD_OBJECT(objectFromAttributeType([o rightExpressionAttributeType]), @"Right expression attribute type") + ADD_ENUM(ComparisonPredicateOptions, [o options], @"Options") + ADD_ENUM(AttributeType, [o rightExpressionAttributeType], @"Right expression attribute type") ADD_OBJECTS([o rightExpressions], @"Right expressions") ADD_OBJECTS([o templateViews], @"Template views") } @@ -1872,7 +1877,7 @@ - (void)addNSPropertyDescription:(id)object if ([object isKindOfClass:[NSAttributeDescription class]]) { NSAttributeDescription* o = object; ADD_CLASS_LABEL(@"NSAttributeDescription Info") - ADD_OBJECT(objectFromAttributeType([o attributeType]), @"Attribute type") + ADD_ENUM(AttributeType, [o attributeType], @"Attribute type") ADD_OBJECT([o attributeValueClassName], @"Attribute value class name") ADD_OBJECT([o defaultValue], @"Default value") @@ -1887,7 +1892,7 @@ - (void)addNSPropertyDescription:(id)object else if ([object isKindOfClass:[NSRelationshipDescription class]]) { NSRelationshipDescription* o = object; ADD_CLASS_LABEL(@"NSRelationshipDescription Info") - ADD_OBJECT(objectFromDeleteRule([o deleteRule]), @"Delete rule") + ADD_ENUM(DeleteRule, [o deleteRule], @"Delete rule") ADD_OBJECT([o destinationEntity], @"Destination entity") ADD_OBJECT([o inverseRelationship], @"Inverse relationship") ADD_BOOL([o isToMany], @"Is to many") @@ -1937,13 +1942,13 @@ - (void)addNSResponder:(id)object ADD_SIZE([o contentSize], @"Content size") ADD_OBJECT([o contentView], @"Content view") ADD_OBJECT([o delegate], @"Delegate") - ADD_OBJECT(objectFromRectEdge([o edge]), @"Edge") + ADD_ENUM(RectEdge, [o edge], @"Edge") ADD_NUMBER([o leadingOffset], @"Leading offset") ADD_SIZE([o maxContentSize], @"Max content size") ADD_SIZE([o minContentSize], @"Min content size") ADD_OBJECT([o parentWindow], @"Parent window") - ADD_OBJECT(objectFromRectEdge([o preferredEdge]), @"Preferred edge") - ADD_OBJECT(objectFromDrawerState([o state]), @"State") + ADD_ENUM(RectEdge, [o preferredEdge], @"Preferred edge") + ADD_ENUM(DrawerState, [o state], @"State") ADD_NUMBER([o trailingOffset], @"Trailing offset") } else if ([object isKindOfClass:[NSView class]]) { @@ -2053,7 +2058,7 @@ - (void)addNSStatusItem:(id)object ADD_BOOL([o highlightMode], @"Highlight mode") ADD_OBJECT_NOT_NIL([o image], @"Image") ADD_BOOL([o isEnabled], @"Is enabled") - ADD_OBJECT(objectFromStatusItemLength([o length]), @"Length") + ADD_ENUM(StatusItemLength, [o length], @"Length") ADD_OBJECT_NOT_NIL([o menu], @"Menu") ADD_OBJECT([o statusBar], @"Status bar") ADD_OBJECT([o target], @"Target") @@ -2070,7 +2075,7 @@ - (void)addNSTabViewItem:(id)object ADD_OBJECT([(NSTabViewItem*)o identifier], @"Identifier") ADD_OBJECT([o initialFirstResponder], @"Initial first responder") ADD_OBJECT([o label], @"Label") - ADD_OBJECT(objectFromTabState([o tabState]), @"Tab state") + ADD_ENUM(TabState, [o tabState], @"Tab state") ADD_OBJECT([o tabView], @"Parent tab view") ADD_OBJECT([o view], @"View") } @@ -2087,7 +2092,7 @@ - (void)addNSTableColumn:(id)object ADD_BOOL([o isHidden], @"Is hidden") ADD_NUMBER([o maxWidth], @"Max width") ADD_NUMBER([o minWidth], @"Min width") - ADD_OBJECT(objectFromTableColumnResizingOptions([o resizingMask]), @"Resizing mask") + ADD_ENUM(TableColumnResizingOptions, [o resizingMask], @"Resizing mask") ADD_OBJECT_NOT_NIL([o sortDescriptorPrototype], @"Sort descriptor prototype") ADD_OBJECT([o tableView], @"Table view") ADD_NUMBER([o width], @"Width") @@ -2117,7 +2122,7 @@ - (void)addNSTextBlock:(id)object ADD_CLASS_LABEL(@"NSTextTable Info"); ADD_BOOL([o collapsesBorders], @"Collapses borders") ADD_BOOL([o hidesEmptyCells], @"Hides empty cells") - ADD_OBJECT(objectFromTextTableLayoutAlgorithm([o layoutAlgorithm]), @"Layout algorithm") + ADD_ENUM(TextTableLayoutAlgorithm, [o layoutAlgorithm], @"Layout algorithm") ADD_NUMBER([o numberOfColumns], @"Number of columns") } @@ -2125,8 +2130,8 @@ - (void)addNSTextBlock:(id)object ADD_CLASS_LABEL(@"NSTextBlock Info"); ADD_OBJECT([o backgroundColor], @"Background color") ADD_NUMBER([o contentWidth], @"Content width") - ADD_OBJECT(objectFromTextBlockValueType([o contentWidthValueType]), @"Content width value type") - ADD_OBJECT(objectFromTextBlockVerticalAlignment([o verticalAlignment]), @"Vertical alignment") + ADD_ENUM(TextBlockValueType, [o contentWidthValueType], @"Content width value type") + ADD_ENUM(TextBlockVerticalAlignment, [o verticalAlignment], @"Vertical alignment") } - (void)addNSTextContainer:(id)object @@ -2146,7 +2151,7 @@ - (void)addNSTextList:(id)object { NSTextList* o = object; ADD_CLASS_LABEL(@"NSTextList Info"); - ADD_OBJECT(objectFromTextListOptions([o listOptions]), @"List options") + ADD_ENUM(TextListOptions, [o listOptions], @"List options") ADD_OBJECT([o markerFormat], @"Marker format") } @@ -2154,10 +2159,10 @@ - (void)addNSTextTab:(id)object { NSTextTab* o = object; ADD_CLASS_LABEL(@"NSTextTab Info"); - ADD_OBJECT(objectFromTextAlignment([o alignment]), @"Alignment") + ADD_ENUM(TextAlignment, [o alignment], @"Alignment") ADD_NUMBER([o location], @"Location") ADD_OBJECT([o options], @"Options") - ADD_OBJECT(objectFromTextTabType([o tabStopType]), @"Tab stop type") + ADD_ENUM(TextTabType, [o tabStopType], @"Tab stop type") } - (void)addNSToolbar:(id)object @@ -2169,13 +2174,13 @@ - (void)addNSToolbar:(id)object ADD_DICTIONARY([o configurationDictionary], @"Configuration dictionary") ADD_BOOL([o customizationPaletteIsRunning], @"Customization palette is running") ADD_OBJECT([o delegate], @"Delegate") - ADD_OBJECT(objectFromToolbarDisplayMode([o displayMode]), @"Display mode") + ADD_ENUM(ToolbarDisplayMode, [o displayMode], @"Display mode") ADD_OBJECT([(NSToolbar*)o identifier], @"Identifier") ADD_BOOL([o isVisible], @"Is visible") ADD_OBJECTS([o items], @"Items") ADD_OBJECT_NOT_NIL([o selectedItemIdentifier], @"Selected item identifier") ADD_BOOL([o showsBaselineSeparator], @"Shows baseline separator") - ADD_OBJECT(objectFromToolbarSizeMode([o sizeMode]), @"Identifier") + ADD_ENUM(ToolbarSizeMode, [o sizeMode], @"Identifier") ADD_OBJECTS([o visibleItems], @"Visible items") } @@ -2205,14 +2210,14 @@ - (void)addNSToolbarItem:(id)object ADD_OBJECT([o toolbar], @"Toolbar") ADD_OBJECT_NOT_NIL([o toolTip], @"Tool tip") ADD_OBJECT([o view], @"View") - ADD_OBJECT(objectFromToolbarItemVisibilityPriority([o visibilityPriority]), @"Visibility priority") + ADD_ENUM(ToolbarItemVisibilityPriority, [o visibilityPriority], @"Visibility priority") } - (void)addNSTrackingArea:(id)object { NSTrackingArea* o = object; ADD_CLASS_LABEL(@"NSTrackingArea Info"); - ADD_OBJECT(objectFromTrackingAreaOptions([o options]), @"Options") + ADD_ENUM(TrackingAreaOptions, [o options], @"Options") ADD_OBJECT([o owner], @"Owner") ADD_RECT([o rect], @"Rect") ADD_DICTIONARY([o userInfo], @"User info") @@ -2249,7 +2254,7 @@ - (void)addNSATSTypesetter:(id)object ADD_NUMBER([o hyphenationFactor], @"Hyphenation factor") ADD_OBJECT_NOT_NIL([o layoutManager], @"Layout manager") ADD_NUMBER([o lineFragmentPadding], @"Line fragment padding") - ADD_OBJECT(objectFromTypesetterBehavior([o typesetterBehavior]), @"Typesetter behavior") + ADD_ENUM(TypesetterBehavior, [o typesetterBehavior], @"Typesetter behavior") ADD_BOOL([o usesFontLeading], @"Uses font leading") } @@ -2261,9 +2266,9 @@ - (void)processNSView:(id)object ADD_CLASS_LABEL(@"NSBox Info"); ADD_OBJECT([o borderColor], @"Border color") ADD_RECT([o borderRect], @"Border rect") - ADD_OBJECT(objectFromBorderType([o borderType]), @"Border type") + ADD_ENUM(BorderType, [o borderType], @"Border type") ADD_NUMBER([o borderWidth], @"Border width") - ADD_OBJECT(objectFromBoxType([o boxType]), @"Box type") + ADD_ENUM(BoxType, [o boxType], @"Box type") ADD_OBJECT([o contentView], @"Content view") ADD_SIZE([o contentViewMargins], @"Content view margins") ADD_NUMBER([o cornerRadius], @"Corner radius") @@ -2272,7 +2277,7 @@ - (void)processNSView:(id)object ADD_OBJECT([o title], @"Title") ADD_OBJECT([o titleCell], @"Title cell") ADD_OBJECT([o titleFont], @"Title font") - ADD_OBJECT(objectFromTitlePosition([o titlePosition]), @"Title position") + ADD_ENUM(TitlePosition, [o titlePosition], @"Title position") ADD_RECT([o titleRect], @"Title rect") } if ([object isKindOfClass:[NSCollectionView class]]) { @@ -2313,8 +2318,8 @@ - (void)processNSView:(id)object else if ([object isKindOfClass:[NSProgressIndicator class]]) { NSProgressIndicator* o = object; ADD_CLASS_LABEL(@"NSProgressIndicator Info"); - ADD_OBJECT(objectFromControlSize([o controlSize]), @"Control size") - ADD_OBJECT(objectFromControlTint([o controlTint]), @"Control tint") + ADD_ENUM(ControlSize, [o controlSize], @"Control size") + ADD_ENUM(ControlTint, [o controlTint], @"Control tint") if ([o style] == NSProgressIndicatorBarStyle && ![o isIndeterminate]) ADD_NUMBER([o doubleValue], @"Double value") ADD_BOOL([o isBezeled], @"Is bezeled") @@ -2323,7 +2328,7 @@ - (void)processNSView:(id)object ADD_NUMBER([o maxValue], @"Max value") ADD_NUMBER([o minValue], @"Min value") } - ADD_OBJECT(objectFromProgressIndicatorStyle([o style]), @"Style") + ADD_ENUM(ProgressIndicatorStyle, [o style], @"Style") ADD_BOOL([o usesThreadedAnimation], @"Uses threaded animation") } else if ([object isKindOfClass:[NSRulerView class]]) { @@ -2335,7 +2340,7 @@ - (void)processNSView:(id)object ADD_BOOL([o isFlipped], @"Is flipped") ADD_OBJECTS([o markers], @"Markers") ADD_OBJECT([o measurementUnits], @"Measurement units") - ADD_OBJECT(objectFromRulerOrientation([o orientation]), @"Orientation") + ADD_ENUM(RulerOrientation, [o orientation], @"Orientation") ADD_NUMBER([o originOffset], @"Origin offset") ADD_NUMBER([o requiredThickness], @"Required thickness") ADD_NUMBER([o reservedThicknessForAccessoryView], @"Reserved thickness for accessory view") @@ -2348,7 +2353,7 @@ - (void)processNSView:(id)object ADD_CLASS_LABEL(@"NSScrollView Info"); ADD_BOOL([o autohidesScrollers], @"Autohides scrollers") ADD_OBJECT([o backgroundColor], @"Background color") - ADD_OBJECT(objectFromBorderType([o borderType]), @"Border type") + ADD_ENUM(BorderType, [o borderType], @"Border type") ADD_SIZE([o contentSize], @"Content size") ADD_OBJECT([o contentView], @"Content view") ADD_OBJECT([o documentCursor], @"Document cursor") @@ -2385,15 +2390,15 @@ - (void)processNSView:(id)object ADD_CLASS_LABEL(@"NSTabView Info"); ADD_BOOL([o allowsTruncatedLabels], @"Allows truncated labels") ADD_RECT([o contentRect], @"Content rect") - ADD_OBJECT(objectFromControlSize([o controlSize]), @"Control size") - ADD_OBJECT(objectFromControlTint([o controlTint]), @"Control tint") + ADD_ENUM(ControlSize, [o controlSize], @"Control size") + ADD_ENUM(ControlTint, [o controlTint], @"Control tint") ADD_OBJECT([o delegate], @"Delegate") ADD_BOOL([o drawsBackground], @"Draws background") ADD_OBJECT([o font], @"Font") ADD_SIZE([o minimumSize], @"Minimum size") ADD_OBJECT([o selectedTabViewItem], @"Selected tab view item") ADD_OBJECTS([o tabViewItems], @"Tab view items") - ADD_OBJECT(objectFromTabViewType([o tabViewType]), @"Tab view type") + ADD_ENUM(TabViewType, [o tabViewType], @"Tab view type") } else if ([object isKindOfClass:[NSTableHeaderView class]]) { NSTableHeaderView* o = object; @@ -2427,8 +2432,8 @@ - (void)processNSView:(id)object ADD_OBJECTS([o readablePasteboardTypes], @"Readable pasteboard types") ADD_OBJECTS([o selectedRanges], @"Selected ranges") ADD_DICTIONARY([o selectedTextAttributes], @"Selected text attributes") - ADD_OBJECT(objectFromSelectionAffinity([o selectionAffinity]), @"Selection affinity") - ADD_OBJECT(objectFromSelectionGranularity([o selectionGranularity]), @"Selection granularity") + ADD_ENUM(SelectionAffinity, [o selectionAffinity], @"Selection affinity") + ADD_ENUM(SelectionGranularity, [o selectionGranularity], @"Selection granularity") ADD_BOOL([o shouldDrawInsertionPoint], @"Should draw insertion point") ADD_BOOL([o smartInsertDeleteEnabled], @"Smart insert delete enabled") ADD_NUMBER([o spellCheckerDocumentTag], @"Spell checker document tag") @@ -2445,9 +2450,9 @@ - (void)processNSView:(id)object NSText* o = object; ADD_CLASS_LABEL(@"NSText Info"); - ADD_OBJECT(objectFromTextAlignment([o alignment]), @"Alignment") + ADD_ENUM(TextAlignment, [o alignment], @"Alignment") ADD_OBJECT([o backgroundColor], @"Background color") - ADD_OBJECT(objectFromWritingDirection([o baseWritingDirection]), @"Base writing direction") + ADD_ENUM(WritingDirection, [o baseWritingDirection], @"Base writing direction") ADD_OBJECT_NOT_NIL([o delegate], @"Delegate") ADD_BOOL([o drawsBackground], @"Draws background") ADD_OBJECT([o font], @"Font") @@ -2469,7 +2474,7 @@ - (void)processNSView:(id)object NSView* o = object; ADD_CLASS_LABEL(@"NSView Info"); - ADD_OBJECT(objectFromAutoresizingMaskOptions([o autoresizingMask]), @"Autoresizing mask") + ADD_ENUM(AutoresizingMaskOptions, [o autoresizingMask], @"Autoresizing mask") ADD_BOOL([o autoresizesSubviews], @"Autoresizes subviews") ADD_RECT([o bounds], @"Bounds") ADD_NUMBER([o boundsRotation], @"Bounds rotation") @@ -2479,7 +2484,7 @@ - (void)processNSView:(id)object ADD_OBJECT_NOT_NIL([o enclosingScrollView], @"Enclosing scroll view") ADD_RECT([o frame], @"Frame") ADD_NUMBER([o frameRotation], @"Frame rotation") - ADD_OBJECT(objectFromFocusRingType([o focusRingType]), @"Focus ring type") + ADD_ENUM(FocusRingType, [o focusRingType], @"Focus ring type") ADD_NUMBER([o gState], @"gState") ADD_NUMBER([o heightAdjustLimit], @"Height adjust limit") ADD_BOOL([o isFlipped], @"Is flipped") @@ -2525,7 +2530,7 @@ - (void)processNSControl:(id)object ADD_BOOL([o allowsTypeSelect], @"Allows type select") ADD_OBJECT([o backgroundColor], @"Background color") ADD_OBJECT([o cellPrototype], @"Cell prototype") - ADD_OBJECT(objectFromBrowserColumnResizingType([o columnResizingType]), @"Column resizing type") + ADD_ENUM(BrowserColumnResizingType, [o columnResizingType], @"Column resizing type") ADD_OBJECT([o columnsAutosaveName], @"Columns autosave name") ADD_OBJECT([o delegate], @"Delegate") ADD_SEL([o doubleAction], @"Double action") @@ -2559,7 +2564,7 @@ - (void)processNSControl:(id)object ADD_OBJECTS([o itemArray], @"Item array") ADD_NUMBER([o numberOfItems], @"Number of items") ADD_OBJECT([o objectValue], @"Object value") - ADD_OBJECT(objectFromRectEdge([o preferredEdge]), @"Preferred edge") + ADD_ENUM(RectEdge, [o preferredEdge], @"Preferred edge") ADD_BOOL([o pullsDown], @"Pulls down") ADD_OBJECT([o selectedItem], @"Selected item") } @@ -2571,16 +2576,16 @@ - (void)processNSControl:(id)object ADD_OBJECT([o alternateTitle], @"Alternate title") ADD_OBJECT([o attributedAlternateTitle], @"Attributed alternate title") ADD_OBJECT([o attributedTitle], @"Attributed title") - ADD_OBJECT(objectFromBezelStyle([o bezelStyle]), @"Bezel style") + ADD_ENUM(BezelStyle, [o bezelStyle], @"Bezel style") ADD_OBJECT([o image], @"Image") - ADD_OBJECT(objectFromCellImagePosition([o imagePosition]), @"Image position") + ADD_ENUM(CellImagePosition, [o imagePosition], @"Image position") ADD_BOOL([o isBordered], @"Is bordered") ADD_BOOL([o isTransparent], @"Is transparent") ADD_OBJECT([o keyEquivalent], @"Key equivalent") - ADD_OBJECT(objectFromKeyModifierMask([o keyEquivalentModifierMask]), @"Key equivalent modifier mask") + ADD_ENUM(KeyModifierMask, [o keyEquivalentModifierMask], @"Key equivalent modifier mask") ADD_BOOL([o showsBorderOnlyWhileMouseInside], @"Shows border only while mouse inside") ADD_OBJECT_NOT_NIL([o sound], @"Sound") - ADD_OBJECT(objectFromCellStateValue([o state]), @"State") + ADD_ENUM(CellStateValue, [o state], @"State") ADD_OBJECT([o title], @"Title") } else if ([object isKindOfClass:[NSColorWell class]]) { @@ -2595,9 +2600,9 @@ - (void)processNSControl:(id)object ADD_CLASS_LABEL(@"NSDatePicker Info"); ADD_OBJECT([o backgroundColor], @"Background color") ADD_OBJECT([o calendar], @"Calendar") - ADD_OBJECT(objectFromDatePickerElementFlags([o datePickerElements]), @"Date picker elements") - ADD_OBJECT(objectFromDatePickerMode([o datePickerMode]), @"Date picker mode") - ADD_OBJECT(objectFromDatePickerStyle([o datePickerStyle]), @"Date picker style") + ADD_ENUM(DatePickerElementFlags, [o datePickerElements], @"Date picker elements") + ADD_ENUM(DatePickerMode, [o datePickerMode], @"Date picker mode") + ADD_ENUM(DatePickerStyle, [o datePickerStyle], @"Date picker style") ADD_OBJECT([o dateValue], @"Date value") ADD_OBJECT_NOT_NIL([o delegate], @"Delegate") ADD_BOOL([o drawsBackground], @"Draws background") @@ -2616,9 +2621,9 @@ - (void)processNSControl:(id)object ADD_BOOL([o allowsCutCopyPaste], @"Allows cut copy paste") ADD_BOOL([o animates], @"Animates") ADD_OBJECT([o image], @"Image") - ADD_OBJECT(objectFromImageAlignment([o imageAlignment]), @"Image alignment") - ADD_OBJECT(objectFromImageFrameStyle([o imageFrameStyle]), @"Image frame style") - ADD_OBJECT(objectFromImageScaling([o imageScaling]), @"Image scaling") + ADD_ENUM(ImageAlignment, [o imageAlignment], @"Image alignment") + ADD_ENUM(ImageFrameStyle, [o imageFrameStyle], @"Image frame style") + ADD_ENUM(ImageScaling, [o imageScaling], @"Image scaling") ADD_BOOL([o isEditable], @"Is editable") } else if ([object isKindOfClass:[NSLevelIndicator class]]) { @@ -2662,7 +2667,7 @@ - (void)processNSControl:(id)object ADD_BOOL([o isAutoscroll], @"Is autoscroll") ADD_BOOL([o isSelectionByRect], @"Is selection by rect") ADD_OBJECT([o keyCell], @"Key cell") - ADD_OBJECT(objectFromMatrixMode([(NSMatrix*)o mode]), @"Mode") + ADD_ENUM(MatrixMode, [(NSMatrix*)o mode], @"Mode") ADD_NUMBER([o numberOfColumns], @"Number of columns") ADD_NUMBER([o numberOfRows], @"Number of rows") ADD_OBJECT([o prototype], @"Prototype") @@ -2678,7 +2683,7 @@ - (void)processNSControl:(id)object ADD_OBJECT([o delegate], @"Delegate") ADD_SEL([o doubleAction], @"Double action") ADD_OBJECTS([o pathComponentCells], @"Path component cells") - ADD_OBJECT(objectFromPathStyle([o pathStyle]), @"Path style") + ADD_ENUM(PathStyle, [o pathStyle], @"Path style") ADD_OBJECT([o URL], @"URL") } else if ([object isKindOfClass:[NSRuleEditor class]]) { @@ -2697,7 +2702,7 @@ - (void)processNSControl:(id)object ADD_DICTIONARY([o formattingDictionary], @"Formatting dictionary") ADD_OBJECT_NOT_NIL([o formattingStringsFilename], @"Formatting strings filename") ADD_BOOL([o isEditable], @"Is editable") - ADD_OBJECT(objectFromRuleEditorNestingMode([o nestingMode]), @"Nesting mode") + ADD_ENUM(RuleEditorNestingMode, [o nestingMode], @"Nesting mode") ADD_NUMBER([o numberOfRows], @"Number of rows") ADD_OBJECT([o predicate], @"Predicate") ADD_OBJECT([o rowClass], @"Row class") @@ -2709,13 +2714,13 @@ - (void)processNSControl:(id)object else if ([object isKindOfClass:[NSScroller class]]) { NSScroller* o = object; ADD_CLASS_LABEL(@"NSScroller Info"); - ADD_OBJECT(objectFromScrollArrowPosition([o arrowsPosition]), @"Arrows position") - ADD_OBJECT(objectFromControlSize([o controlSize]), @"Control size") - ADD_OBJECT(objectFromControlTint([o controlTint]), @"Control tint") + ADD_ENUM(ScrollArrowPosition, [o arrowsPosition], @"Arrows position") + ADD_ENUM(ControlSize, [o controlSize], @"Control size") + ADD_ENUM(ControlTint, [o controlTint], @"Control tint") ADD_NUMBER([o doubleValue], @"Double value") - ADD_OBJECT(objectFromScrollerPart([o hitPart]), @"Hit part") + ADD_ENUM(ScrollerPart, [o hitPart], @"Hit part") ADD_NUMBER([o knobProportion], @"Knob proportion") - ADD_OBJECT(objectFromUsableScrollerParts([o usableParts]), @"Usable parts") + ADD_ENUM(UsableScrollerParts, [o usableParts], @"Usable parts") } else if ([object isKindOfClass:[NSSegmentedControl class]]) { NSSegmentedControl* o = object; @@ -2770,13 +2775,13 @@ - (void)processNSControl:(id)object ADD_OBJECT_NOT_NIL([o autosaveName], @"Autosave name") ADD_BOOL([o autosaveTableColumns], @"Autosave table columns") ADD_OBJECT([o backgroundColor], @"Background color") - ADD_OBJECT(objectFromTableViewColumnAutoresizingStyle([o columnAutoresizingStyle]), @"Column autoresizing style") + ADD_ENUM(TableViewColumnAutoresizingStyle, [o columnAutoresizingStyle], @"Column autoresizing style") ADD_OBJECT([o cornerView], @"Corner view") ADD_OBJECT([o dataSource], @"Data source") ADD_OBJECT([o delegate], @"Delegate") ADD_SEL([o doubleAction], @"Double action") ADD_OBJECT([o gridColor], @"Grid color") - ADD_OBJECT(objectFromTableViewGridLineStyle([o gridStyleMask]), @"Grid style mask") + ADD_ENUM(TableViewGridLineStyle, [o gridStyleMask], @"Grid style mask") ADD_OBJECT([o headerView], @"Header view") ADD_OBJECT_NOT_NIL([o highlightedTableColumn], @"Highlighted table column") ADD_SIZE([o intercellSpacing], @"Intercell spacing") @@ -2789,7 +2794,7 @@ - (void)processNSControl:(id)object ADD_OBJECT([o selectedColumnIndexes], @"Selected column indexes") ADD_NUMBER([o selectedRow], @"Selected row") ADD_OBJECT([o selectedRowIndexes], @"Selected row indexes") - ADD_OBJECT(objectFromTableViewSelectionHighlightStyle([o selectionHighlightStyle]), @"Selection highlight style") + ADD_ENUM(TableViewSelectionHighlightStyle, [o selectionHighlightStyle], @"Selection highlight style") ADD_OBJECTS([o sortDescriptors], @"Sort descriptors") ADD_OBJECTS([o tableColumns], @"Table columns") ADD_BOOL([o usesAlternatingRowBackgroundColors], @"Uses alternating row background colors") @@ -2835,14 +2840,14 @@ - (void)processNSControl:(id)object ADD_CLASS_LABEL(@"NSTokenField Info"); ADD_NUMBER([o completionDelay], @"Completion delay") ADD_OBJECT([o tokenizingCharacterSet], @"Tokenizing character set") - ADD_OBJECT(objectFromTokenStyle([o tokenStyle]), @"Token style") + ADD_ENUM(TokenStyle, [o tokenStyle], @"Token style") } NSTextField* o = object; ADD_CLASS_LABEL(@"NSTextField Info"); ADD_BOOL([o allowsEditingTextAttributes], @"Allows editing text attributes") ADD_OBJECT([o backgroundColor], @"Background color") - ADD_OBJECT(objectFromTextFieldBezelStyle([o bezelStyle]), @"Bezel style") + ADD_ENUM(TextFieldBezelStyle, [o bezelStyle], @"Bezel style") ADD_OBJECT_NOT_NIL([o delegate], @"Delegate") ADD_BOOL([o drawsBackground], @"Draws background") ADD_BOOL([o importsGraphics], @"Imports graphics") @@ -2856,10 +2861,10 @@ - (void)processNSControl:(id)object NSControl* o = object; ADD_CLASS_LABEL(@"NSControl Info"); ADD_SEL([o action], @"Action") - ADD_OBJECT(objectFromTextAlignment([o alignment]), @"Alignment") - ADD_OBJECT(objectFromWritingDirection([o baseWritingDirection]), @"Base writing direction") + ADD_ENUM(TextAlignment, [o alignment], @"Alignment") + ADD_ENUM(WritingDirection, [o baseWritingDirection], @"Base writing direction") ADD_OBJECT([o cell], @"Cell") - ADD_OBJECT(objectFromControlSize([o controlSize]), @"Control size") + ADD_ENUM(ControlSize, [o controlSize], @"Control size") ADD_OBJECT_NOT_NIL([o currentEditor], @"Current editor") ADD_OBJECT([o font], @"Font") ADD_OBJECT([o formatter], @"Formatter") @@ -2886,7 +2891,7 @@ - (void)processNSWindow:(id)object ADD_NUMBER([o alpha], @"Alpha") ADD_OBJECT([o color], @"Color") ADD_BOOL([o isContinuous], @"Is continuous") - ADD_OBJECT(objectFromColorPanelMode([o mode]), @"Mode") + ADD_ENUM(ColorPanelMode, [o mode], @"Mode") ADD_BOOL([o showsAlpha], @"Shows alpha") } else if ([object isKindOfClass:[NSFontPanel class]]) { @@ -2942,15 +2947,15 @@ - (void)processNSWindow:(id)object ADD_SIZE([o aspectRatio], @"Aspect ratio") ADD_OBJECT_NOT_NIL([o attachedSheet], @"Attached sheet") ADD_BOOL([o autorecalculatesKeyViewLoop], @"Autorecalculates key view loop") - ADD_OBJECT(objectFromWindowBackingLocation([o backingLocation]), @"Backing location") + ADD_ENUM(WindowBackingLocation, [o backingLocation], @"Backing location") ADD_OBJECT([o backgroundColor], @"Background color") - ADD_OBJECT(objectFromBackingStoreType([o backingType]), @"Backing type") + ADD_ENUM(BackingStoreType, [o backingType], @"Backing type") ADD_BOOL([o canBecomeKeyWindow], @"Can become key window") ADD_BOOL([o canBecomeMainWindow], @"Can become main window") ADD_BOOL([o canBecomeVisibleWithoutLogin], @"Can become visible without login") ADD_BOOL([o canHide], @"Can hide") ADD_BOOL([o canStoreColor], @"Can store color") - ADD_OBJECT(objectFromWindowCollectionBehavior([o collectionBehavior]), @"Collection behavior") + ADD_ENUM(WindowCollectionBehavior, [o collectionBehavior], @"Collection behavior") ADD_OBJECTS([o childWindows], @"Child windows") ADD_SIZE([o contentAspectRatio], @"Content aspect ratio") ADD_SIZE([o contentMaxSize], @"Content max size") @@ -2987,23 +2992,23 @@ - (void)processNSWindow:(id)object ADD_BOOL([o isSheet], @"Is sheet") ADD_BOOL([o isVisible], @"Is visible") ADD_BOOL([o isZoomed], @"Is zoomed") - ADD_OBJECT(objectFromSelectionDirection([o keyViewSelectionDirection]), @"Key view selection direction") - ADD_OBJECT(objectFromWindowLevel([o level]), @"Level") + ADD_ENUM(SelectionDirection, [o keyViewSelectionDirection], @"Key view selection direction") + ADD_ENUM(WindowLevel, [o level], @"Level") ADD_SIZE([o maxSize], @"Max size") ADD_SIZE([o minSize], @"Min size") ADD_OBJECT_NOT_NIL([o miniwindowImage], @"Miniwindow image") ADD_OBJECT([o miniwindowTitle], @"Miniwindow title") ADD_OBJECT_NOT_NIL([o parentWindow], @"Parent window") - ADD_OBJECT(objectFromWindowBackingLocation([o preferredBackingLocation]), @"Preferred backing location") + ADD_ENUM(WindowBackingLocation, [o preferredBackingLocation], @"Preferred backing location") ADD_BOOL([o preservesContentDuringLiveResize], @"Preserves content during live resize") ADD_OBJECT_NOT_NIL([o representedFilename], @"Represented filename") ADD_OBJECT_NOT_NIL([o representedURL], @"Represented URL") ADD_SIZE([o resizeIncrements], @"Resize increments") ADD_OBJECT([o screen], @"Screen") - ADD_OBJECT(objectFromWindowSharingType([o sharingType]), @"Sharing type") + ADD_ENUM(WindowSharingType, [o sharingType], @"Sharing type") ADD_BOOL([o showsResizeIndicator], @"Shows resize indicator") ADD_BOOL([o showsToolbarButton], @"Shows toolbar button") - ADD_OBJECT(objectFromWindowMask([o styleMask]), @"Style mask") + ADD_ENUM(WindowMask, [o styleMask], @"Style mask") ADD_OBJECT([o title], @"Title") ADD_OBJECT_NOT_NIL([o toolbar], @"Toolbar") ADD_NUMBER([o userSpaceScaleFactor], @"User space scale factor") diff --git a/FScriptFramework/FSObjectInspectorBackgroundView.h b/FScriptFramework/FSObjectInspectorBackgroundView.h new file mode 100644 index 0000000..f5ff375 --- /dev/null +++ b/FScriptFramework/FSObjectInspectorBackgroundView.h @@ -0,0 +1,13 @@ +// +// FSObjectInspectorBackgroundView.h +// FScript +// +// Created by Anthony Dervish on 17/11/2014. +// +// + +#import + +@interface FSObjectInspectorBackgroundView : NSView + +@end diff --git a/FScriptFramework/FSObjectInspectorBackgroundView.m b/FScriptFramework/FSObjectInspectorBackgroundView.m new file mode 100644 index 0000000..382ccf5 --- /dev/null +++ b/FScriptFramework/FSObjectInspectorBackgroundView.m @@ -0,0 +1,20 @@ +// +// FSObjectInspectorBackgroundView.m +// FScript +// +// Created by Anthony Dervish on 17/11/2014. +// +// + +#import "FSObjectInspectorBackgroundView.h" + +@implementation FSObjectInspectorBackgroundView + +- (void)drawRect:(NSRect)dirtyRect { + [super drawRect:dirtyRect]; + + // Drawing code here. +} + +-(BOOL)allowsVibrancy { return YES; } +@end diff --git a/FScriptFramework/FSObjectInspectorViewController.h b/FScriptFramework/FSObjectInspectorViewController.h new file mode 100644 index 0000000..b821ee9 --- /dev/null +++ b/FScriptFramework/FSObjectInspectorViewController.h @@ -0,0 +1,16 @@ +// +// FSObjectInspectorViewController.h +// FScript +// +// Created by Anthony Dervish on 17/11/2014. +// +// + +#import + +@class FSObjectInspectorViewModelItem; + +@interface FSObjectInspectorViewController : NSViewController +@property (assign) IBOutlet NSOutlineView *outlineView; +@property (weak,nonatomic) FSObjectInspectorViewModelItem *rootViewModelItem; +@end diff --git a/FScriptFramework/FSObjectInspectorViewController.m b/FScriptFramework/FSObjectInspectorViewController.m new file mode 100644 index 0000000..a9e6a73 --- /dev/null +++ b/FScriptFramework/FSObjectInspectorViewController.m @@ -0,0 +1,37 @@ +// +// FSObjectInspectorViewController.m +// FScript +// +// Created by Anthony Dervish on 17/11/2014. +// +// + +#import "FSObjectInspectorViewController.h" +#import + +@interface FSObjectInspectorViewController () +@property (nonatomic) BOOL hasAwoken; + +@end + +@implementation FSObjectInspectorViewController + +- (void)viewDidLoad +{ + [super viewDidLoad]; +#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10 + self.view.appearance = [NSAppearance appearanceNamed:NSAppearanceNameVibrantDark]; +#endif + +} + +-(void)awakeFromNib +{ + if (!self.hasAwoken) { + self.hasAwoken = YES; + [self.outlineView expandItem:nil expandChildren:YES]; + } + +} + +@end diff --git a/FScriptFramework/FSObjectInspectorViewController.xib b/FScriptFramework/FSObjectInspectorViewController.xib new file mode 100644 index 0000000..68ec899 --- /dev/null +++ b/FScriptFramework/FSObjectInspectorViewController.xib @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/FScriptFramework/FSObjectInspectorViewModelItem.h b/FScriptFramework/FSObjectInspectorViewModelItem.h index 1667e7d..c56f614 100644 --- a/FScriptFramework/FSObjectInspectorViewModelItem.h +++ b/FScriptFramework/FSObjectInspectorViewModelItem.h @@ -8,17 +8,22 @@ #import -typedef NS_ENUM(NSUInteger, FSInspectorVMItemType) { +typedef NS_ENUM(NSUInteger, FSInspectorVMValueType) { FS_ITEM_HEADER, FS_ITEM_ENUM, FS_ITEM_OPTIONS, - FS_ITEM_CONTINUOUS, + FS_ITEM_NUMBER, FS_ITEM_SIZE, - FS_ITEM_RECT + FS_ITEM_RECT, + FS_ITEM_OBJECT, + FS_ITEM_POINT, + FS_ITEM_RANGE, + FS_ITEM_BOOL, }; @interface FSObjectInspectorViewModelItem : NSTreeNode @property (copy,nonatomic) NSString *name; -@property (retain,nonatomic) id value; -@property (assign,nonatomic) FSInspectorVMItemType itemType; +@property (strong,nonatomic) id value; +@property (assign,nonatomic) FSInspectorVMValueType valueType; +@property (readonly,nonatomic) NSString *displayValue; @end diff --git a/FScriptFramework/FSObjectInspectorViewModelItem.m b/FScriptFramework/FSObjectInspectorViewModelItem.m index 903fa62..c973844 100644 --- a/FScriptFramework/FSObjectInspectorViewModelItem.m +++ b/FScriptFramework/FSObjectInspectorViewModelItem.m @@ -7,7 +7,51 @@ // #import "FSObjectInspectorViewModelItem.h" +#import "FSNamedNumber.h" +#import "FSNumber.h" @implementation FSObjectInspectorViewModelItem +-(NSString *)displayValue +{ + switch (self.valueType) { + case FS_ITEM_HEADER: + return self.name; + break; + case FS_ITEM_ENUM: + return [self.value description]; + break; + case FS_ITEM_OPTIONS: + return [self.value description]; + break; + case FS_ITEM_NUMBER: + return [self.value description]; + break; + case FS_ITEM_SIZE: + return NSStringFromSize([(NSValue*)self.value sizeValue]); + break; + case FS_ITEM_RECT: + return NSStringFromRect([(NSValue*)self.value rectValue]); + break; + case FS_ITEM_OBJECT: + return [self.value description]; + break; + case FS_ITEM_POINT: + return NSStringFromPoint([(NSValue*)self.value pointValue]); + break; + case FS_ITEM_RANGE: + return NSStringFromRange([(NSValue*)self.value rangeValue]); + break; + case FS_ITEM_BOOL: + return [self.value description]; + break; + default: + break; + } + +} ++(NSSet *)keyPathsForValuesAffectingDisplayValue +{ + return [NSSet setWithObject:@"value"]; +} @end From 39b8e055b66fa7e3734ba562d12fb1c38e70c39b Mon Sep 17 00:00:00 2001 From: Ant Date: Tue, 18 Nov 2014 18:33:04 +0000 Subject: [PATCH 14/33] Improvements to inspector view --- FScript.xcodeproj/project.pbxproj | 106 +- FScriptFramework/FSDetailedObjectInspector.m | 15 +- .../FSObjectBrowserViewObjectInfo.m | 19 +- FScriptFramework/FSObjectEnumInfo.h | 16 +- FScriptFramework/FSObjectEnumInfo.m | 554 ++++----- .../FSObjectInspectorViewController.h | 1 + .../FSObjectInspectorViewController.m | 18 +- .../FSObjectInspectorViewController.xib | 2 +- .../FSObjectInspectorViewModelItem.h | 3 + .../FSObjectInspectorViewModelItem.m | 1 + FScriptFramework/FSUtils.h | 28 + FScriptFramework/FSUtils.m | 13 + .../blockInspector.nib/designable.nib | 1006 ++++++++++------- .../blockInspector.nib/keyedobjects.nib | Bin 14882 -> 15401 bytes 14 files changed, 957 insertions(+), 825 deletions(-) create mode 100644 FScriptFramework/FSUtils.h create mode 100644 FScriptFramework/FSUtils.m diff --git a/FScript.xcodeproj/project.pbxproj b/FScript.xcodeproj/project.pbxproj index ee45bc7..6086734 100644 --- a/FScript.xcodeproj/project.pbxproj +++ b/FScript.xcodeproj/project.pbxproj @@ -2761,6 +2761,25 @@ ED8222F31A19554F00C42C72 /* FSObjectEnumInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8222E61A19554F00C42C72 /* FSObjectEnumInfo.m */; }; ED8222F41A19554F00C42C72 /* FSObjectEnumInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8222E61A19554F00C42C72 /* FSObjectEnumInfo.m */; }; ED8222F51A19554F00C42C72 /* FSObjectEnumInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8222E61A19554F00C42C72 /* FSObjectEnumInfo.m */; }; + ED83191D1A1BC2B500290EE2 /* FSUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = ED83191B1A1BC2B500290EE2 /* FSUtils.h */; }; + ED83191E1A1BC2B500290EE2 /* FSUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = ED83191B1A1BC2B500290EE2 /* FSUtils.h */; }; + ED83191F1A1BC2B500290EE2 /* FSUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = ED83191B1A1BC2B500290EE2 /* FSUtils.h */; }; + ED8319201A1BC2B500290EE2 /* FSUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = ED83191B1A1BC2B500290EE2 /* FSUtils.h */; }; + ED8319211A1BC2B500290EE2 /* FSUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = ED83191B1A1BC2B500290EE2 /* FSUtils.h */; }; + ED8319221A1BC2B500290EE2 /* FSUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = ED83191B1A1BC2B500290EE2 /* FSUtils.h */; }; + ED8319231A1BC2B500290EE2 /* FSUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = ED83191B1A1BC2B500290EE2 /* FSUtils.h */; }; + ED8319241A1BC2B500290EE2 /* FSUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = ED83191B1A1BC2B500290EE2 /* FSUtils.h */; }; + ED8319251A1BC2B500290EE2 /* FSUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = ED83191B1A1BC2B500290EE2 /* FSUtils.h */; }; + ED8319261A1BC2B500290EE2 /* FSUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = ED83191C1A1BC2B500290EE2 /* FSUtils.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; + ED8319271A1BC2B500290EE2 /* FSUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = ED83191C1A1BC2B500290EE2 /* FSUtils.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; + ED8319281A1BC2B500290EE2 /* FSUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = ED83191C1A1BC2B500290EE2 /* FSUtils.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; + ED8319291A1BC2B500290EE2 /* FSUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = ED83191C1A1BC2B500290EE2 /* FSUtils.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; + ED83192A1A1BC2B500290EE2 /* FSUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = ED83191C1A1BC2B500290EE2 /* FSUtils.m */; }; + ED83192B1A1BC2B500290EE2 /* FSUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = ED83191C1A1BC2B500290EE2 /* FSUtils.m */; }; + ED83192C1A1BC2B500290EE2 /* FSUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = ED83191C1A1BC2B500290EE2 /* FSUtils.m */; }; + ED83192D1A1BC2B500290EE2 /* FSUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = ED83191C1A1BC2B500290EE2 /* FSUtils.m */; }; + ED83192E1A1BC2B500290EE2 /* FSUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = ED83191C1A1BC2B500290EE2 /* FSUtils.m */; }; + ED83192F1A1BC2B500290EE2 /* FSUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = ED83191C1A1BC2B500290EE2 /* FSUtils.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; EDC2C8DE1A1A943600942777 /* FSDetailedObjectInspector.h in Headers */ = {isa = PBXBuildFile; fileRef = EDC2C8DC1A1A943600942777 /* FSDetailedObjectInspector.h */; }; EDC2C8DF1A1A943600942777 /* FSDetailedObjectInspector.h in Headers */ = {isa = PBXBuildFile; fileRef = EDC2C8DC1A1A943600942777 /* FSDetailedObjectInspector.h */; }; EDC2C8E01A1A943600942777 /* FSDetailedObjectInspector.h in Headers */ = {isa = PBXBuildFile; fileRef = EDC2C8DC1A1A943600942777 /* FSDetailedObjectInspector.h */; }; @@ -4168,7 +4187,9 @@ ED8222D41A194FD600C42C72 /* FSObjectInspectorViewModelItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSObjectInspectorViewModelItem.h; sourceTree = ""; }; ED8222D51A194FD600C42C72 /* FSObjectInspectorViewModelItem.m */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 8; lastKnownFileType = sourcecode.c.objc; path = FSObjectInspectorViewModelItem.m; sourceTree = ""; tabWidth = 8; }; ED8222E51A19554F00C42C72 /* FSObjectEnumInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSObjectEnumInfo.h; sourceTree = ""; }; - ED8222E61A19554F00C42C72 /* FSObjectEnumInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FSObjectEnumInfo.m; sourceTree = ""; }; + ED8222E61A19554F00C42C72 /* FSObjectEnumInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 8; lastKnownFileType = sourcecode.c.objc; path = FSObjectEnumInfo.m; sourceTree = ""; tabWidth = 8; }; + ED83191B1A1BC2B500290EE2 /* FSUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 8; lastKnownFileType = sourcecode.c.h; path = FSUtils.h; sourceTree = ""; tabWidth = 8; }; + ED83191C1A1BC2B500290EE2 /* FSUtils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FSUtils.m; sourceTree = ""; }; EDC2C8DC1A1A943600942777 /* FSDetailedObjectInspector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSDetailedObjectInspector.h; sourceTree = ""; }; EDC2C8DD1A1A943600942777 /* FSDetailedObjectInspector.m */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 8; lastKnownFileType = sourcecode.c.objc; path = FSDetailedObjectInspector.m; sourceTree = ""; tabWidth = 8; }; EDC2C8EE1A1AA34D00942777 /* FSObjectInspectorBackgroundView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSObjectInspectorBackgroundView.h; sourceTree = ""; }; @@ -4789,13 +4810,6 @@ 0CD4E30D00D7DFE17BE9C1BD /* FScriptFramework */ = { isa = PBXGroup; children = ( - EDFB302E1A18CA26002C8DD7 /* metamacros.h */, - EDFB2FFB1A188B4E002C8DD7 /* CHBidirectionalDictionary.h */, - EDFB2FFC1A188B4E002C8DD7 /* CHBidirectionalDictionary.m */, - EDFB2FFD1A188B4E002C8DD7 /* CHMutableDictionary.h */, - EDFB2FFE1A188B4E002C8DD7 /* CHMutableDictionary.m */, - EDFB2FFF1A188B4E002C8DD7 /* Util.h */, - EDFB30001A188B4E002C8DD7 /* Util.m */, 8F31A4C00EC74A2E00D1B8E8 /* Array_fscript.h */, 8F31A4C10EC74A2E00D1B8E8 /* Array.m */, 0CD4E31300D7DFE17BE9C1BD /* ArrayPrivate.h */, @@ -4826,29 +4840,26 @@ 0CD4E32E00D7DFE17BE9C1BD /* BlockSignature.h */, 0CD4E32F00D7DFE17BE9C1BD /* BlockStackElem.h */, 0CD4E33000D7DFE17BE9C1BD /* BlockStackElem.m */, - 8F56036505CF22660044FA65 /* build.tiff */, 0CD4E33200D7DFE17BE9C1BD /* build_config.h */, + 8F56036505CF22660044FA65 /* build.tiff */, + ED83191A1A1BB90300290EE2 /* CHDataStructures */, 0CD4E33300D7DFE17BE9C1BD /* CLIView.h */, 0CD4E33400D7DFE17BE9C1BD /* CLIView.m */, 0CD4E33700D7DFE17BE9C1BD /* CompiledCodeNode.h */, 0CD4E33800D7DFE17BE9C1BD /* CompiledCodeNode.m */, 8F92F0380463F2A400F4C61F /* constantsDictionary */, - 8F92F0340463F03300F4C61F /* FSConstantsDictionaryGenerator.h */, - 8F92F0350463F03300F4C61F /* FSConstantsDictionaryGenerator.m */, - 0CD4E33B00D7DFE17BE9C1BD /* FSConstantsInitialization.h */, - 0CD4E33C00D7DFE17BE9C1BD /* FSConstantsInitialization.m */, F5F13B4701C8BE3401CB6DF7 /* DOTest.h */, F5F13B4801C8BE3401CB6DF7 /* DOTest.m */, 8FE99A49082CF1C1005BD642 /* Employee.xcdatamodel */, 0CD4E34400D7DFE17BE9C1BD /* FlightTutorial.txt */, 0CD4E30F00D7DFE17BE9C1BD /* FSAirplane.h */, 0CD4E31000D7DFE17BE9C1BD /* FSAirplane.m */, - 8FA3AE55044D4D6700CF7A3A /* FSArrayEnumerator.h */, - 8FA3AE56044D4D6700CF7A3A /* FSArrayEnumerator.m */, 0CD4E34500D7DFE17BE9C1BD /* FSArchiver.h */, 0CD4E34600D7DFE17BE9C1BD /* FSArchiver.m */, 8FE6AD8F0EC740650096019D /* FSArray.h */, 8FE6AD900EC740650096019D /* FSArray.m */, + 8FA3AE55044D4D6700CF7A3A /* FSArrayEnumerator.h */, + 8FA3AE56044D4D6700CF7A3A /* FSArrayEnumerator.m */, 8F940B810F2393B0004525E1 /* FSAssociation.h */, 8F940B820F2393B0004525E1 /* FSAssociation.m */, 8FDCCD4E05C09F8200747C0A /* FSAttributedStringInspector.h */, @@ -4916,6 +4927,10 @@ EDE508D119DD4D310012F16A /* FSConsole.xib */, F52EECA6036210E2016141BB /* FSConstantListBuilder.h */, F52EECA7036210E2016141BB /* FSConstantListBuilder.m */, + 8F92F0340463F03300F4C61F /* FSConstantsDictionaryGenerator.h */, + 8F92F0350463F03300F4C61F /* FSConstantsDictionaryGenerator.m */, + 0CD4E33B00D7DFE17BE9C1BD /* FSConstantsInitialization.h */, + 0CD4E33C00D7DFE17BE9C1BD /* FSConstantsInitialization.m */, 8FE7E0E6082AD964008231E8 /* FSCoreDataSample.h */, 8FE7E0E7082AD964008231E8 /* FSCoreDataSample.m */, 0CD4E34C00D7DFE17BE9C1BD /* FScript.h */, @@ -4935,8 +4950,8 @@ 0CD4E37700D7DFE17BE9C1BD /* FSGenericObjectInspector.h */, 0CD4E37800D7DFE17BE9C1BD /* FSGenericObjectInspector.m */, 8F8EA779077F6C9300AC1C96 /* FSGenericPointer.h */, - 8F8EA841077F79A000AC1C96 /* FSGenericPointerPrivate.h */, 8F8EA786077F6C9300AC1C96 /* FSGenericPointer.m */, + 8F8EA841077F79A000AC1C96 /* FSGenericPointerPrivate.h */, 8FB9D5970F1CEE2100E10274 /* FSGlobalScope.h */, 8FB9D5980F1CEE2100E10274 /* FSGlobalScope.m */, F5073A2102FC5400013656B0 /* FSIdentifierFormatter.h */, @@ -4947,15 +4962,15 @@ 8F7F4F9C07FB274C008E42F4 /* FSInspectorUniquier.h */, 8F7F4F9D07FB274C008E42F4 /* FSInspectorUniquier.m */, 0CD4E35000D7DFE17BE9C1BD /* FSInterpreter.h */, - F54CA17602FB2CAF01C25A35 /* FSInterpreterPrivate.h */, 0CD4E35100D7DFE17BE9C1BD /* FSInterpreter.m */, + F54CA17602FB2CAF01C25A35 /* FSInterpreterPrivate.h */, 0CD4E35200D7DFE17BE9C1BD /* FSInterpreterResult.h */, 0CD4E35300D7DFE17BE9C1BD /* FSInterpreterResult.m */, 0CD4E35400D7DFE17BE9C1BD /* FSInterpreterResultPrivate.h */, - 8F71F72205C43A7D00C34794 /* FSInterpreterViewPrivate.h */, 0CD4E35500D7DFE17BE9C1BD /* FSInterpreterView.h */, 0CD4E35600D7DFE17BE9C1BD /* FSInterpreterView.m */, 0CD4E35700D7DFE17BE9C1BD /* FSInterpreterViewIBHeader.h */, + 8F71F72205C43A7D00C34794 /* FSInterpreterViewPrivate.h */, F55D44CE0358B5D201B9E934 /* FSKeyedArchiver.h */, F55D44CF0358B5D201B9E934 /* FSKeyedArchiver.m */, F55D44C40358A88801B9E934 /* FSKeyedUnarchiver.h */, @@ -4981,8 +4996,8 @@ 8F2D72090F6BD9B100F0862A /* FSNSAffineTransform.h */, 8F2D720A0F6BD9B100F0862A /* FSNSAffineTransform.m */, 0CD4E35800D7DFE17BE9C1BD /* FSNSArray.h */, - 0CD4E35A00D7DFE17BE9C1BD /* FSNSArrayPrivate.h */, 0CD4E35900D7DFE17BE9C1BD /* FSNSArray.m */, + 0CD4E35A00D7DFE17BE9C1BD /* FSNSArrayPrivate.h */, 8FDCCDBF05C0A23000747C0A /* FSNSAttributedString.h */, 8FDCCDC005C0A23000747C0A /* FSNSAttributedString.m */, 0CD4E35B00D7DFE17BE9C1BD /* FSNSDate.h */, @@ -5008,8 +5023,8 @@ 0CD4E36100D7DFE17BE9C1BD /* FSNSNumber.h */, 0CD4E36200D7DFE17BE9C1BD /* FSNSNumber.m */, 0CD4E36300D7DFE17BE9C1BD /* FSNSObject.h */, - 8F63CC08044B95DB00B84480 /* FSNSObjectPrivate.h */, 0CD4E36400D7DFE17BE9C1BD /* FSNSObject.m */, + 8F63CC08044B95DB00B84480 /* FSNSObjectPrivate.h */, F5F140590223CC9D01DD698C /* FSNSProtocolChecker.h */, F5F1405A0223CC9D01DD698C /* FSNSProtocolChecker.m */, 0CD4E36500D7DFE17BE9C1BD /* FSNSProxy.h */, @@ -5050,21 +5065,20 @@ 0CD4E32500D7DFE17BE9C1BD /* FSObjectBrowserView.m */, 8F4E294C075B8E5600F8DCDB /* FSObjectBrowserViewObjectInfo.h */, 8F4E294D075B8E5600F8DCDB /* FSObjectBrowserViewObjectInfo.m */, - EDC2C8DB1A1A925800942777 /* Object Inspector */, ED8222E51A19554F00C42C72 /* FSObjectEnumInfo.h */, ED8222E61A19554F00C42C72 /* FSObjectEnumInfo.m */, - F5EBBE810321029601CA10C6 /* FSObjectFormatter.m */, F5EBBE820321029601CA10C6 /* FSObjectFormatter.h */, + F5EBBE810321029601CA10C6 /* FSObjectFormatter.m */, 8FE9AE12078071CC005B2CC4 /* FSObjectPointer.h */, - 8FE9AE8207807269005B2CC4 /* FSObjectPointerPrivate.h */, 8FE9AE1F078071CC005B2CC4 /* FSObjectPointer.m */, - 0CD4E39000D7DFE17BE9C1BD /* FSPilot.h */, - 0CD4E39100D7DFE17BE9C1BD /* FSPilot.m */, - 8F8EA7E8077F719800AC1C96 /* FSPointerPrivate.h */, + 8FE9AE8207807269005B2CC4 /* FSObjectPointerPrivate.h */, 0CD4E36C00D7DFE17BE9C1BD /* FSPattern.h */, 0CD4E36D00D7DFE17BE9C1BD /* FSPattern.m */, + 0CD4E39000D7DFE17BE9C1BD /* FSPilot.h */, + 0CD4E39100D7DFE17BE9C1BD /* FSPilot.m */, 8F8EA70B077F6A5200AC1C96 /* FSPointer.h */, 8F8EA718077F6A5200AC1C96 /* FSPointer.m */, + 8F8EA7E8077F719800AC1C96 /* FSPointerPrivate.h */, 8F95E3C108034A670030B65C /* FSPredicateTextView.h */, 8F95E3C208034A670030B65C /* FSPredicateTextView.m */, 8F573F8F056B780500F2796A /* FSQTMovie.h */, @@ -5078,8 +5092,8 @@ 8F17C07D06B1309C00F07862 /* FSSymbolTable.h */, 8F17C07E06B1309C00F07862 /* FSSymbolTable.m */, 0CD4E39E00D7DFE17BE9C1BD /* FSSystem.h */, - F5A25E260357B373011A39F8 /* FSSystemPrivate.h */, 0CD4E39F00D7DFE17BE9C1BD /* FSSystem.m */, + F5A25E260357B373011A39F8 /* FSSystemPrivate.h */, 8FE3DC990D26C0FD00A1D767 /* FSTestClasses.txt */, 8FE3DD200D26D49900A1D767 /* FSTestObjCClass1.h */, 8FE3DD210D26D49900A1D767 /* FSTestObjCClass1.m */, @@ -5089,6 +5103,8 @@ 8F2DE65A0E57254700CF83CB /* FSTranscript.m */, 0CD4E37200D7DFE17BE9C1BD /* FSUnarchiver.h */, 0CD4E37300D7DFE17BE9C1BD /* FSUnarchiver.m */, + ED83191B1A1BC2B500290EE2 /* FSUtils.h */, + ED83191C1A1BC2B500290EE2 /* FSUtils.m */, 0CD4E37400D7DFE17BE9C1BD /* FSVoid.h */, 0CD4E37500D7DFE17BE9C1BD /* FSVoid.m */, 0CD4E37600D7DFE17BE9C1BD /* FSVoidPrivate.h */, @@ -5101,12 +5117,14 @@ 0CD4E37E00D7DFE17BE9C1BD /* license.txt */, 0CD4E37F00D7DFE17BE9C1BD /* MessagePatternCodeNode.h */, 0CD4E38000D7DFE17BE9C1BD /* MessagePatternCodeNode.m */, + EDFB302E1A18CA26002C8DD7 /* metamacros.h */, 8FBB2FF00EEB3467007A3163 /* Number_fscript.h */, 8FBB2FF10EEB3467007A3163 /* Number.m */, 0CD4E38F00D7DFE17BE9C1BD /* NumberPrivate.h */, + EDC2C8DB1A1A925800942777 /* Object Inspector */, F505648002DF417501FE0326 /* Pointer.h */, - F5F856C002EB281C01F7E6F0 /* PointerPrivate.h */, F505647F02DF417501FE0326 /* Pointer.m */, + F5F856C002EB281C01F7E6F0 /* PointerPrivate.h */, 8F2D066F05CED9B9007EA81B /* run.tiff */, 0CD4E39600D7DFE17BE9C1BD /* ShellView.h */, 0CD4E39700D7DFE17BE9C1BD /* ShellView.m */, @@ -5292,6 +5310,19 @@ name = Frameworks; sourceTree = ""; }; + ED83191A1A1BB90300290EE2 /* CHDataStructures */ = { + isa = PBXGroup; + children = ( + EDFB2FFB1A188B4E002C8DD7 /* CHBidirectionalDictionary.h */, + EDFB2FFC1A188B4E002C8DD7 /* CHBidirectionalDictionary.m */, + EDFB2FFD1A188B4E002C8DD7 /* CHMutableDictionary.h */, + EDFB2FFE1A188B4E002C8DD7 /* CHMutableDictionary.m */, + EDFB2FFF1A188B4E002C8DD7 /* Util.h */, + EDFB30001A188B4E002C8DD7 /* Util.m */, + ); + name = CHDataStructures; + sourceTree = ""; + }; EDC2C8DB1A1A925800942777 /* Object Inspector */ = { isa = PBXGroup; children = ( @@ -5507,6 +5538,7 @@ 8F8112F40D85E58200CB3407 /* FSCNCategory.h in Headers */, 8F59CA710D86DD0800D67A78 /* FSCNMessage.h in Headers */, 8F7223810D870C6A00394C99 /* FSCNSuper.h in Headers */, + ED8319251A1BC2B500290EE2 /* FSUtils.h in Headers */, 8F2E34240D8DB61C00912543 /* FSCNUnaryMessage.h in Headers */, 8F2E34370D8DBF6A00912543 /* FSCNBinaryMessage.h in Headers */, 8F2E34400D8DBFE700912543 /* FSCNKeywordMessage.h in Headers */, @@ -5580,6 +5612,7 @@ 8F6DA80C055FC70C0050409A /* FSExecutor.h in Headers */, 8F6DA80D055FC70C0050409A /* FSFlight.h in Headers */, 8F6DA80E055FC70C0050409A /* FSArchiver.h in Headers */, + ED83191D1A1BC2B500290EE2 /* FSUtils.h in Headers */, 8F6DA80F055FC70C0050409A /* FSBoolean.h in Headers */, 8F6DA810055FC70C0050409A /* FSBooleanPrivate.h in Headers */, 8F6DA812055FC70C0050409A /* FScript.h in Headers */, @@ -5766,6 +5799,7 @@ 8F6DA916055FC71F0050409A /* FSInterpreterView.h in Headers */, 8F6DA917055FC71F0050409A /* FSInterpreterViewIBHeader.h in Headers */, 8F6DA918055FC71F0050409A /* FSNSArray.h in Headers */, + ED83191E1A1BC2B500290EE2 /* FSUtils.h in Headers */, 8F6DA919055FC71F0050409A /* FSNSArrayPrivate.h in Headers */, 8F6DA91A055FC71F0050409A /* FSNSDate.h in Headers */, 8F6DA91B055FC71F0050409A /* FSNSDictionary.h in Headers */, @@ -5930,6 +5964,7 @@ BA2231C0189FA403002C5B6A /* FSExecutor.h in Headers */, BA2231C1189FA403002C5B6A /* FSFlight.h in Headers */, BA2231C2189FA403002C5B6A /* FSArchiver.h in Headers */, + ED83191F1A1BC2B500290EE2 /* FSUtils.h in Headers */, BA2231C3189FA403002C5B6A /* FSBoolean.h in Headers */, BA2231C4189FA403002C5B6A /* FSBooleanPrivate.h in Headers */, BA2231C5189FA403002C5B6A /* FScript.h in Headers */, @@ -6107,6 +6142,7 @@ BA223380189FA412002C5B6A /* FSExecutor.h in Headers */, BA223381189FA412002C5B6A /* FSFlight.h in Headers */, BA223382189FA412002C5B6A /* FSArchiver.h in Headers */, + ED8319211A1BC2B500290EE2 /* FSUtils.h in Headers */, BA223383189FA412002C5B6A /* FSBoolean.h in Headers */, BA223384189FA412002C5B6A /* FSBooleanPrivate.h in Headers */, BA223385189FA412002C5B6A /* FScript.h in Headers */, @@ -6293,6 +6329,7 @@ BA223544189FA429002C5B6A /* FSInterpreterView.h in Headers */, BA223545189FA429002C5B6A /* FSInterpreterViewIBHeader.h in Headers */, BA223546189FA429002C5B6A /* FSNSArray.h in Headers */, + ED8319201A1BC2B500290EE2 /* FSUtils.h in Headers */, BA223547189FA429002C5B6A /* FSNSArrayPrivate.h in Headers */, BA223548189FA429002C5B6A /* FSNSDate.h in Headers */, BA223549189FA429002C5B6A /* FSNSDictionary.h in Headers */, @@ -6466,6 +6503,7 @@ BA22368C189FA431002C5B6A /* FSInterpreterView.h in Headers */, BA22368D189FA431002C5B6A /* FSInterpreterViewIBHeader.h in Headers */, BA22368E189FA431002C5B6A /* FSNSArray.h in Headers */, + ED8319221A1BC2B500290EE2 /* FSUtils.h in Headers */, BA22368F189FA431002C5B6A /* FSNSArrayPrivate.h in Headers */, BA223690189FA431002C5B6A /* FSNSDate.h in Headers */, BA223691189FA431002C5B6A /* FSNSDictionary.h in Headers */, @@ -6630,6 +6668,7 @@ EDC2C91E1A1AA50D00942777 /* FSExecutor.h in Headers */, EDC2C91F1A1AA50D00942777 /* FSFlight.h in Headers */, EDC2C9201A1AA50D00942777 /* FSArchiver.h in Headers */, + ED8319231A1BC2B500290EE2 /* FSUtils.h in Headers */, EDC2C9211A1AA50D00942777 /* FSBoolean.h in Headers */, EDC2C9221A1AA50D00942777 /* FSBooleanPrivate.h in Headers */, EDC2C9231A1AA50D00942777 /* FScript.h in Headers */, @@ -6816,6 +6855,7 @@ EDC2CAF31A1AA52500942777 /* FSInterpreterView.h in Headers */, EDC2CAF41A1AA52500942777 /* FSInterpreterViewIBHeader.h in Headers */, EDC2CAF51A1AA52500942777 /* FSNSArray.h in Headers */, + ED8319241A1BC2B500290EE2 /* FSUtils.h in Headers */, EDC2CAF61A1AA52500942777 /* FSNSArrayPrivate.h in Headers */, EDC2CAF71A1AA52500942777 /* FSNSDate.h in Headers */, EDC2CAF81A1AA52500942777 /* FSNSDictionary.h in Headers */, @@ -7707,6 +7747,7 @@ 8F0CBC410BDB94AD002B0AD7 /* FSAttributedStringInspector.m in Sources */, 8F0CBC420BDB94AD002B0AD7 /* FSNSAttributedString.m in Sources */, 8F0CBC430BDB94AD002B0AD7 /* FScriptMenuItem.m in Sources */, + ED83192F1A1BC2B500290EE2 /* FSUtils.m in Sources */, 8F0CBC440BDB94AD002B0AD7 /* FSNSFont.m in Sources */, 8F0CBC450BDB94AD002B0AD7 /* FSObjectBrowserMatrix.m in Sources */, 8F0CBC460BDB94AD002B0AD7 /* FSSymbolTable.m in Sources */, @@ -7902,6 +7943,7 @@ 8FAE79F70DA109C500CB6E14 /* FSCNAssignment.m in Sources */, 8F45CBC50DA813F200AFA8C8 /* FSCNMethod.m in Sources */, EDC2C8FD1A1AA34D00942777 /* FSObjectInspectorBackgroundView.m in Sources */, + ED83192E1A1BC2B500290EE2 /* FSUtils.m in Sources */, 8FD0A31A0DD7276000E47459 /* FSCNReturn.m in Sources */, 8F8949D80DE08B110094EC14 /* FSClassDefinition.m in Sources */, 8F2DE6610E57254700CF83CB /* FSTranscript.m in Sources */, @@ -8077,6 +8119,7 @@ 8FCA00C60EEAF34300B10420 /* Block.m in Sources */, 8FBB2FF50EEB3467007A3163 /* Number.m in Sources */, 8FB9D59B0F1CEE2100E10274 /* FSGlobalScope.m in Sources */, + ED8319261A1BC2B500290EE2 /* FSUtils.m in Sources */, 8F9D041C0F1DF1CB001B8286 /* FSNSFileHandle.m in Sources */, 8F940B890F2393B0004525E1 /* FSAssociation.m in Sources */, 8F940C760F23BC2E004525E1 /* FSCNDictionary.m in Sources */, @@ -8179,6 +8222,7 @@ 8FDCCD5305C09F8200747C0A /* FSAttributedStringInspector.m in Sources */, 8FDCCDC405C0A23100747C0A /* FSNSAttributedString.m in Sources */, 8F0B670005C5639E0099180D /* FScriptMenuItem.m in Sources */, + ED8319271A1BC2B500290EE2 /* FSUtils.m in Sources */, 8F658B3005C9694F0040FB24 /* FSNSFont.m in Sources */, 8FB5060805D53C8600153B33 /* FSObjectBrowserMatrix.m in Sources */, 8F17C08006B1309C00F07862 /* FSSymbolTable.m in Sources */, @@ -8386,6 +8430,7 @@ BA2232E9189FA403002C5B6A /* Block.m in Sources */, BA2232EA189FA403002C5B6A /* Number.m in Sources */, BA2232EB189FA403002C5B6A /* FSGlobalScope.m in Sources */, + ED8319281A1BC2B500290EE2 /* FSUtils.m in Sources */, BA2232EC189FA403002C5B6A /* FSNSFileHandle.m in Sources */, BA2232ED189FA403002C5B6A /* FSAssociation.m in Sources */, BA2232EE189FA403002C5B6A /* FSCNDictionary.m in Sources */, @@ -8544,6 +8589,7 @@ BA2234A9189FA412002C5B6A /* Block.m in Sources */, BA2234AA189FA412002C5B6A /* Number.m in Sources */, BA2234AB189FA412002C5B6A /* FSGlobalScope.m in Sources */, + ED83192A1A1BC2B500290EE2 /* FSUtils.m in Sources */, BA2234AC189FA412002C5B6A /* FSNSFileHandle.m in Sources */, BA2234AD189FA412002C5B6A /* FSAssociation.m in Sources */, BA2234AE189FA412002C5B6A /* FSCNDictionary.m in Sources */, @@ -8646,6 +8692,7 @@ BA223628189FA429002C5B6A /* FSAttributedStringInspector.m in Sources */, BA223629189FA429002C5B6A /* FSNSAttributedString.m in Sources */, BA22362A189FA429002C5B6A /* FScriptMenuItem.m in Sources */, + ED8319291A1BC2B500290EE2 /* FSUtils.m in Sources */, BA22362B189FA429002C5B6A /* FSNSFont.m in Sources */, BA22362C189FA429002C5B6A /* FSObjectBrowserMatrix.m in Sources */, BA22362D189FA429002C5B6A /* FSSymbolTable.m in Sources */, @@ -8797,6 +8844,7 @@ BA223770189FA431002C5B6A /* FSAttributedStringInspector.m in Sources */, BA223771189FA431002C5B6A /* FSNSAttributedString.m in Sources */, BA223772189FA431002C5B6A /* FScriptMenuItem.m in Sources */, + ED83192B1A1BC2B500290EE2 /* FSUtils.m in Sources */, BA223773189FA431002C5B6A /* FSNSFont.m in Sources */, BA223774189FA431002C5B6A /* FSObjectBrowserMatrix.m in Sources */, BA223775189FA431002C5B6A /* FSSymbolTable.m in Sources */, @@ -9004,6 +9052,7 @@ EDC2CA581A1AA50D00942777 /* Block.m in Sources */, EDC2CA591A1AA50D00942777 /* Number.m in Sources */, EDC2CA5A1A1AA50D00942777 /* FSGlobalScope.m in Sources */, + ED83192C1A1BC2B500290EE2 /* FSUtils.m in Sources */, EDC2CA5B1A1AA50D00942777 /* FSNSFileHandle.m in Sources */, EDC2CA5C1A1AA50D00942777 /* FSAssociation.m in Sources */, EDC2CA5D1A1AA50D00942777 /* FSCNDictionary.m in Sources */, @@ -9106,6 +9155,7 @@ EDC2CBE31A1AA52500942777 /* FSAttributedStringInspector.m in Sources */, EDC2CBE41A1AA52500942777 /* FSNSAttributedString.m in Sources */, EDC2CBE51A1AA52500942777 /* FScriptMenuItem.m in Sources */, + ED83192D1A1BC2B500290EE2 /* FSUtils.m in Sources */, EDC2CBE61A1AA52500942777 /* FSNSFont.m in Sources */, EDC2CBE71A1AA52500942777 /* FSObjectBrowserMatrix.m in Sources */, EDC2CBE81A1AA52500942777 /* FSSymbolTable.m in Sources */, diff --git a/FScriptFramework/FSDetailedObjectInspector.m b/FScriptFramework/FSDetailedObjectInspector.m index 0fc6c74..ce1125e 100644 --- a/FScriptFramework/FSDetailedObjectInspector.m +++ b/FScriptFramework/FSDetailedObjectInspector.m @@ -5,15 +5,18 @@ #import "FSMiscTools.h" #import "FSObjectInspectorViewModelItem.h" #import "FSObjectInspectorViewController.h" +#import "FSUtils.h" -static NSPoint topLeftPoint = { 0, 0 }; // Used for cascading windows. +static NSPoint sTopLeftPoint = { 0, 0 }; // Used for cascading windows. +static BOOL sIsFirstWindow = YES; @interface FSDetailedObjectInspector () @property (strong,readwrite,nonatomic) NSWindow *window; @property (strong,nonatomic) FSObjectInspectorViewController *viewController; @property (strong,nonatomic) FSObjectInspectorViewModelItem *rootViewModelItem; @end -@implementation FSDetailedObjectInspector +@implementation FSDetailedObjectInspector { +} + (FSDetailedObjectInspector*)detailedObjectInspectorWithObject:(id)object rootViewModelItem:(FSObjectInspectorViewModelItem*)root { @@ -38,8 +41,14 @@ - (FSDetailedObjectInspector *)initWithObject:(id)object rootViewModelItem:(FSOb objectInspectorViewController.rootViewModelItem = root; self.viewController = objectInspectorViewController; panel.contentView = objectInspectorViewController.view; + NSSize desiredSize = self.viewController.desiredSize; + [panel setFrame:[panel frameRectForContentRect:rectWithSize(desiredSize)] display:YES]; [self updateAction:nil]; - topLeftPoint = [self.window cascadeTopLeftFromPoint:topLeftPoint]; + sTopLeftPoint = [self.window cascadeTopLeftFromPoint:sTopLeftPoint]; + if (sIsFirstWindow) { + sIsFirstWindow = NO; + sTopLeftPoint = [self.window cascadeTopLeftFromPoint:sTopLeftPoint]; + } [self.window makeKeyAndOrderFront:nil]; return self; } diff --git a/FScriptFramework/FSObjectBrowserViewObjectInfo.m b/FScriptFramework/FSObjectBrowserViewObjectInfo.m index d4874f3..86c8c2c 100644 --- a/FScriptFramework/FSObjectBrowserViewObjectInfo.m +++ b/FScriptFramework/FSObjectBrowserViewObjectInfo.m @@ -149,7 +149,7 @@ - (void)fillMatrix:(NSMatrix*)m column:(NSUInteger)col withObject:(id)object @implementation FSObjectBrowserViewObjectHelper -- (void)addObject:(id)object valueType:(FSInspectorVMValueType)valueType withLabel:(NSString*)label toMatrix:(NSMatrix*)matrix notNil:(BOOL)notNil +- (void)addObject:(id)object valueType:(FSInspectorVMValueType)valueType withLabel:(NSString*)label toMatrix:(NSMatrix*)matrix enumBiDict:(CHBidirectionalDictionary*)enumBiDict notNil:(BOOL)notNil { @try { if (!notNil || object) { @@ -158,6 +158,7 @@ - (void)addObject:(id)object valueType:(FSInspectorVMValueType)valueType withLab item.name = label; item.valueType = valueType; item.value = object; + item.enumBiDict = enumBiDict; [self.rootViewModelItem.mutableChildNodes addObject:item]; } } @@ -166,8 +167,12 @@ - (void)addObject:(id)object valueType:(FSInspectorVMValueType)valueType withLab NSLog(@"%@", exception); } } +- (void)addObject:(id)object valueType:(FSInspectorVMValueType)valueType withLabel:(NSString*)label toMatrix:(NSMatrix*)matrix notNil:(BOOL)notNil +{ + [self addObject:object valueType:valueType withLabel:label toMatrix:matrix enumBiDict:nil notNil:notNil]; +} #define ADD_ENUM(ENUM, OBJECT, LABEL) \ - [self addObject:objectFrom ## ENUM(OBJECT) valueType:FS_ITEM_ENUM withLabel:(LABEL) toMatrix:m notNil:NO]; + [self addObject:objectFrom ## ENUM(OBJECT) valueType:FS_ITEM_ENUM withLabel:(LABEL) toMatrix:m enumBiDict:FSObjectEnumInfo.optionsFor ## ENUM notNil:NO]; #define ADD_OBJECT(OBJECT, LABEL) \ @try { \ @@ -821,7 +826,7 @@ - (void)addNSCell:(id)object ADD_ENUM(ImageScaling, [o imageScaling], @"Image scaling") ADD_BOOL([o isTransparent], @"Is transparent") ADD_OBJECT_NOT_NIL([o keyEquivalentFont], @"Key equivalent font") - ADD_ENUM(KeyModifierMask, [o keyEquivalentModifierMask], @"Key equivalent modifier mask") + ADD_ENUM(EventModifierFlags, [o keyEquivalentModifierMask] & NSDeviceIndependentModifierFlagsMask, @"Key equivalent modifier mask") ADD_BOOL([o showsBorderOnlyWhileMouseInside], @"Shows border only while mouse inside") ADD_ENUM(CellStyleMask, [o showsStateBy], @"Shows state by") ADD_OBJECT_NOT_NIL([o sound], @"Sound") @@ -1293,7 +1298,7 @@ - (void)addNSEvent:(id)object ADD_NUMBER([o keyCode], @"Key code") if (type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) ADD_POINT([o locationInWindow], @"Location in window") - ADD_ENUM(KeyModifierMask, [o modifierFlags], @"Modifier flags") + ADD_ENUM(EventModifierFlags, [o modifierFlags] & NSDeviceIndependentModifierFlagsMask, @"Modifier flags") if (type == NSTabletProximity || ((type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) && [object subtype] == NSTabletProximityEventSubtype)) { ADD_NUMBER([o pointingDeviceID], @"Pointing device ID") ADD_NUMBER([o pointingDeviceSerialNumber], @"Pointing device serial number") @@ -1705,7 +1710,7 @@ - (void)addNSManagedObjectContext:(id)object ADD_OBJECT([o deletedObjects], @"Deleted objects") ADD_BOOL([o hasChanges], @"Has changes") ADD_OBJECT([o insertedObjects], @"Inserted objects") - ADD_ENUM(MergePolicy, [o mergePolicy], @"Merge policy") + ADD_ENUM(MergePolicyMarker, [o mergePolicy], @"Merge policy") ADD_OBJECT([o persistentStoreCoordinator], @"Persistent store coordinator") ADD_BOOL([o propagatesDeletesAtEndOfEvent], @"Propagates deletes at end of event") ADD_OBJECT([o registeredObjects], @"Registered objects") @@ -1767,7 +1772,7 @@ - (void)addNSMenuItem:(id)object ADD_BOOL([o isHighlighted], @"Is highlighted") ADD_BOOL([o isSeparatorItem], @"Is separatorItem") ADD_OBJECT([o keyEquivalent], @"Key equivalent") - ADD_ENUM(KeyModifierMask, [o keyEquivalentModifierMask], @"Key equivalent modifier mask") + ADD_ENUM(EventModifierFlags, [o keyEquivalentModifierMask] & NSDeviceIndependentModifierFlagsMask, @"Key equivalent modifier mask") ADD_OBJECT([o menu], @"Menu") ADD_OBJECT_NOT_NIL([o mixedStateImage], @"Mixed state image") ADD_OBJECT_NOT_NIL([o offStateImage], @"Off state image") @@ -2582,7 +2587,7 @@ - (void)processNSControl:(id)object ADD_BOOL([o isBordered], @"Is bordered") ADD_BOOL([o isTransparent], @"Is transparent") ADD_OBJECT([o keyEquivalent], @"Key equivalent") - ADD_ENUM(KeyModifierMask, [o keyEquivalentModifierMask], @"Key equivalent modifier mask") + ADD_ENUM(EventModifierFlags, [o keyEquivalentModifierMask] & NSDeviceIndependentModifierFlagsMask, @"Key equivalent modifier mask") ADD_BOOL([o showsBorderOnlyWhileMouseInside], @"Shows border only while mouse inside") ADD_OBJECT_NOT_NIL([o sound], @"Sound") ADD_ENUM(CellStateValue, [o state], @"State") diff --git a/FScriptFramework/FSObjectEnumInfo.h b/FScriptFramework/FSObjectEnumInfo.h index 6cb50a5..ca308df 100644 --- a/FScriptFramework/FSObjectEnumInfo.h +++ b/FScriptFramework/FSObjectEnumInfo.h @@ -15,11 +15,13 @@ typedef CGFloat NSStatusItemLength; typedef NSUInteger NSToolbarItemVisibilityPriority; typedef CGWindowLevelKey NSWindowLevel; typedef NSUInteger NSWindowMask; +typedef id NSMergePolicyMarker; +@class CHBidirectionalDictionary; -#define BIMAP_CLASS_METHODS_DECL(_name) \ -+(id)objectFor ## _name :(NS ## _name)mask; \ -+(NSDictionary*)optionsFor ## _name ; \ -extern id objectFrom ## _name(NS ## _name _name); +#define BIMAP_CLASS_METHODS_DECL(_name) \ + +(id)objectFor##_name : (NS##_name)mask; \ + +(CHBidirectionalDictionary*)optionsFor##_name; \ + extern id objectFrom##_name(NS##_name _name); @interface FSObjectEnumInfo : NSObject @@ -73,8 +75,8 @@ BIMAP_CLASS_METHODS_DECL(LineBreakMode); BIMAP_CLASS_METHODS_DECL(LineCapStyle); BIMAP_CLASS_METHODS_DECL(LineJoinStyle); BIMAP_CLASS_METHODS_DECL(MatrixMode); -id objectFromMergePolicy(id mergePolicy); -id objectFromKeyModifierMask(NSUInteger mask); +BIMAP_CLASS_METHODS_DECL(MergePolicyMarker); +BIMAP_CLASS_METHODS_DECL(EventModifierFlags); BIMAP_CLASS_METHODS_DECL(PathStyle); BIMAP_CLASS_METHODS_DECL(PointingDeviceType); BIMAP_CLASS_METHODS_DECL(PopUpArrowPosition); @@ -107,7 +109,6 @@ BIMAP_CLASS_METHODS_DECL(TextListOptions); BIMAP_CLASS_METHODS_DECL(TextStorageEditedOptions); BIMAP_CLASS_METHODS_DECL(TextTabType); BIMAP_CLASS_METHODS_DECL(TextTableLayoutAlgorithm); -id objectFromTickMarkPosition(NSTickMarkPosition tickMarkPosition, BOOL isVertical); BIMAP_CLASS_METHODS_DECL(TitlePosition); BIMAP_CLASS_METHODS_DECL(TokenStyle); BIMAP_CLASS_METHODS_DECL(ToolbarDisplayMode); @@ -123,5 +124,6 @@ BIMAP_CLASS_METHODS_DECL(WindowLevel); BIMAP_CLASS_METHODS_DECL(WindowMask); BIMAP_CLASS_METHODS_DECL(WindowSharingType); BIMAP_CLASS_METHODS_DECL(WritingDirection); +id objectFromTickMarkPosition(NSTickMarkPosition tickMarkPosition, BOOL isVertical); @end diff --git a/FScriptFramework/FSObjectEnumInfo.m b/FScriptFramework/FSObjectEnumInfo.m index 1cd6018..75b5d9a 100644 --- a/FScriptFramework/FSObjectEnumInfo.m +++ b/FScriptFramework/FSObjectEnumInfo.m @@ -14,109 +14,119 @@ #import "CHBidirectionalDictionary.h" #import "metamacros.h" -#define _BIDICT(_idx, _enum) \ -@(_enum): @metamacro_stringify(_enum), - -#define _BIDICT_LEADER(_name) \ -static inline CHBidirectionalDictionary *_name ## Bimap() { \ -static CHBidirectionalDictionary *dict = nil; \ -if (!dict) { \ -dict = [CHBidirectionalDictionary new]; \ -[dict addEntriesFromDictionary: - -#define BIDICT(_name, ...) \ -_BIDICT_LEADER(_name) \ -@{ metamacro_foreach(_BIDICT, ,__VA_ARGS__) } \ -];} \ -return dict; \ -} +#define _BIDICT(_idx, _enum) \ + @(_enum) \ + : @metamacro_stringify(_enum) \ + , + +#define _BIDICT_LEADER(_name) \ + static inline CHBidirectionalDictionary* _name##Bimap() \ + { \ + static CHBidirectionalDictionary* dict = nil; \ + if (!dict) { \ + dict = [CHBidirectionalDictionary new]; \ + [dict addEntriesFromDictionary: + + +#define BIDICT(_name, ...) \ + _BIDICT_LEADER(_name) \ + @{ metamacro_foreach(_BIDICT, ,__VA_ARGS__) } \ + ]; \ + } \ + return dict; \ + } #define BIDICT_LIT(_name, _dict) \ -_BIDICT_LEADER(_name) \ -_dict \ -];} \ -return dict; \ -} + _BIDICT_LEADER(_name) \ + _dict \ + ]; \ + } \ + return dict; \ + } #define _IDENTITY(_idx, _val) _val #define OPTSMASK(...) \ -metamacro_foreach(_IDENTITY, |, __VA_ARGS__) + metamacro_foreach(_IDENTITY, |, __VA_ARGS__) -#define BIMAP_CLASS_METHODS_DECL(_name) \ -+(id)objectFor ## _name :(NS ## _name)mask; \ -+(NSDictionary*)optionsFor ## _name ; \ -extern id objectFrom ## _name(NS ## _name _name); -#define BIMAP_CLASS_METHODS_DEFN(_name) \ -+(id)objectFor ## _name :(NS ## _name)mask { return objectFrom ## _name(mask); } \ -+(NSDictionary*)optionsFor ## _name { return (_name ## Bimap()).inverseDictionary; } +#define BIMAP_CLASS_METHODS_DEFN(_name) \ + +(id)objectFor##_name : (NS##_name)mask { return objectFrom##_name(mask); } \ + +(CHBidirectionalDictionary*)optionsFor##_name { return (_name##Bimap()); } -#define ENUM_FUNC(_name) \ -id objectFrom ## _name(NS ## _name _name) \ -{ \ - CHBidirectionalDictionary *dict = _name ## Bimap(); \ - id lookup = dict[@(_name)]; \ - return lookup ? [FSNamedNumber namedNumberWithDouble:(double)_name name:lookup] : [FSNumber numberWithDouble:_name]; \ -} \ +#define _FS_NUMBER_WRAPPER(_name) \ + lookup ? [FSNamedNumber namedNumberWithDouble:(double)value name:lookup] : [FSNumber numberWithDouble:value] +#define _FS_OBJECT_WRAPPER(_name) \ + lookup ? [FSObjectBrowserNamedObjectWrapper namedObjectWrapperWithObject:value name:lookup] : value + +#define ENUM_FUNC(_name, _lookup, _boxed_value) \ + id objectFrom##_name(NS##_name value) \ + { \ + CHBidirectionalDictionary* dict = _name##Bimap(); \ + id lookup = dict[_boxed_value]; \ + return _lookup; \ + } // Define a lookup function 'objectTo', for simple enumerations (can take one, and only one value from the enum) -#define ENUMTOOBJ(_name, ...) \ -BIDICT(_name, __VA_ARGS__) \ -ENUM_FUNC(_name) \ -BIMAP_CLASS_METHODS_DEFN(_name) +#define ENUMTOOBJ(_name, ...) \ + BIDICT(_name, __VA_ARGS__) \ + ENUM_FUNC(_name, _FS_NUMBER_WRAPPER(_name), @(value)) \ + BIMAP_CLASS_METHODS_DEFN(_name) +// Define a lookup function 'objectTo', for 'marker' objects (e.g. NSMergePolicy) +#define OBJTOOBJ_LIT(_name, _dict) \ + BIDICT_LIT(_name, _dict) \ + ENUM_FUNC(_name, _FS_OBJECT_WRAPPER(_name), value) \ + BIMAP_CLASS_METHODS_DEFN(_name) // Same as 'ENUMTOOBJ', but use when the elements of the 'enumeration' are actually macros -#define ENUMTOOBJ_DICT(_name, _dict) \ -BIDICT_LIT(_name, _dict) \ -ENUM_FUNC(_name) \ -BIMAP_CLASS_METHODS_DEFN(_name) +#define ENUMTOOBJ_DICT(_name, _dict) \ + BIDICT_LIT(_name, _dict) \ + ENUM_FUNC(_name, _FS_NUMBER_WRAPPER(_name), @(value)) \ + BIMAP_CLASS_METHODS_DEFN(_name) -#define OPTSDICT(_name, ...) \ -const NSUInteger _name ## Mask = OPTSMASK(__VA_ARGS__); \ -BIDICT(_name, __VA_ARGS__) +#define OPTSDICT(_name, ...) \ + const NSUInteger _name##Mask = OPTSMASK(__VA_ARGS__); \ + BIDICT(_name, __VA_ARGS__) // Define a lookup function 'objectTo', for flag enumerations (can take a logical OR of enumeration values) -#define OPTSTOOBJ(_name, ...) \ -OPTSDICT(_name, __VA_ARGS__) \ -id objectFrom ## _name(NS ## _name mask) \ -{ \ -if (_name ## Mask == 0 || (mask & ~(_name ## Mask))) { return [FSNumber numberWithDouble:mask]; } \ -CHBidirectionalDictionary *dict = _name ## Bimap(); \ -NSMutableArray *result = [NSMutableArray array] ; \ -for (NSNumber *opt in dict.allKeys) { \ -if (mask & opt.unsignedIntegerValue) { \ -[result addObject:dict[opt]]; \ -} \ -} \ -return result.count ? [FSNamedNumber namedNumberWithDouble:mask name:[result componentsJoinedByString:@" + "]] : [FSNumber numberWithDouble:mask];\ -} \ -BIMAP_CLASS_METHODS_DEFN(_name) +#define OPTSTOOBJ(_name, ...) \ + OPTSDICT(_name, __VA_ARGS__) \ + id objectFrom##_name(NS##_name mask) \ + { \ + if (_name##Mask == 0 || (mask & ~(_name##Mask))) { \ + return [FSNumber numberWithDouble:mask]; \ + } \ + CHBidirectionalDictionary* dict = _name##Bimap(); \ + NSMutableArray* result = [NSMutableArray array]; \ + for (NSNumber * opt in dict.allKeys) { \ + if (mask & opt.unsignedIntegerValue) { \ + [result addObject:dict[opt]]; \ + } \ + } \ + return result.count ? [FSNamedNumber namedNumberWithDouble:mask name:[result componentsJoinedByString:@" + "]] : [FSNumber numberWithDouble:mask]; \ + } \ + BIMAP_CLASS_METHODS_DEFN(_name) @implementation FSObjectEnumInfo ENUMTOOBJ(AnimationBlockingMode, NSAnimationBlocking, NSAnimationNonblocking, - NSAnimationNonblockingThreaded - ); - + NSAnimationNonblockingThreaded); ENUMTOOBJ(AnimationCurve, NSAnimationEaseInOut, NSAnimationEaseIn, NSAnimationEaseOut, - NSAnimationLinear - ); + NSAnimationLinear); ENUMTOOBJ(AlertStyle, NSWarningAlertStyle, NSInformationalAlertStyle, - NSCriticalAlertStyle - ); + NSCriticalAlertStyle); OPTSTOOBJ(AutoresizingMaskOptions, @@ -125,8 +135,7 @@ @implementation FSObjectEnumInfo NSViewMaxXMargin, NSViewMinYMargin, NSViewHeightSizable, - NSViewMaxYMargin - ); + NSViewMaxYMargin); ENUMTOOBJ(AttributeType, NSUndefinedAttributeType, @@ -140,32 +149,27 @@ @implementation FSObjectEnumInfo NSBooleanAttributeType, NSDateAttributeType, NSBinaryDataAttributeType, - NSTransformableAttributeType - ); + NSTransformableAttributeType); ENUMTOOBJ(BackgroundStyle, NSBackgroundStyleLight, NSBackgroundStyleDark, NSBackgroundStyleRaised, - NSBackgroundStyleLowered - ); - + NSBackgroundStyleLowered); ENUMTOOBJ(BackingStoreType, NSBackingStoreBuffered, NSBackingStoreRetained, - NSBackingStoreNonretained - ); + NSBackingStoreNonretained); ENUMTOOBJ(BorderType, NSNoBorder, NSLineBorder, NSBezelBorder, - NSGrooveBorder - ); + NSGrooveBorder); ENUMTOOBJ(BezelStyle, NSRoundedBezelStyle, @@ -178,55 +182,33 @@ @implementation FSObjectEnumInfo NSTexturedSquareBezelStyle, NSHelpButtonBezelStyle, NSSmallSquareBezelStyle, - NSTexturedRoundedBezelStyle - ); - + NSTexturedRoundedBezelStyle); OPTSTOOBJ(BitmapFormat, NSAlphaFirstBitmapFormat, NSAlphaNonpremultipliedBitmapFormat, - NSFloatingPointSamplesBitmapFormat - ); + NSFloatingPointSamplesBitmapFormat); ENUMTOOBJ(BoxType, NSBoxPrimary, NSBoxSecondary, NSBoxSeparator, NSBoxOldStyle, - NSBoxCustom - ); + NSBoxCustom); OPTSTOOBJ(EventButtonMask, NSPenTipMask, NSPenLowerSideMask, - NSPenUpperSideMask - ); + NSPenUpperSideMask); ENUMTOOBJ(BrowserColumnResizingType, NSBrowserNoColumnResizing, NSBrowserAutoColumnResizing, - NSBrowserUserColumnResizing - ); - - -/*static id objectFromButtonType(NSButtonType buttonType) - { - switch (buttonType) - { - case NSMomentaryLight: return [NamedNumber namedNumberWithDouble:buttonType name:@"NSMomentaryLight"]; - case NSMomentaryPushButton: return [NamedNumber namedNumberWithDouble:buttonType name:@"NSMomentaryPushButton"]; - case NSMomentaryChangeButton: return [NamedNumber namedNumberWithDouble:buttonType name:@"NSMomentaryChangeButton"]; - case NSPushOnPushOffButton: return [NamedNumber namedNumberWithDouble:buttonType name:@"NSPushOnPushOffButton"]; - case NSOnOffButton: return [NamedNumber namedNumberWithDouble:buttonType name:@"NSOnOffButton"]; - case NSToggleButton: return [NamedNumber namedNumberWithDouble:buttonType name:@"NSToggleButton"]; - case NSSwitchButton: return [NamedNumber namedNumberWithDouble:buttonType name:@"NSSwitchButton"]; - case NSRadioButton: return [NamedNumber namedNumberWithDouble:buttonType name:@"NSRadioButton"]; - default: return [Number numberWithDouble:buttonType]; - } - }*/ + NSBrowserUserColumnResizing); + ENUMTOOBJ(CellImagePosition, NSNoImage, @@ -235,8 +217,7 @@ @implementation FSObjectEnumInfo NSImageRight, NSImageBelow, NSImageAbove, - NSImageOverlaps - ); + NSImageOverlaps); OPTSTOOBJ(CellStyleMask, @@ -244,21 +225,18 @@ @implementation FSObjectEnumInfo NSContentsCellMask, NSPushInCellMask, NSChangeGrayCellMask, - NSChangeBackgroundCellMask - ); + NSChangeBackgroundCellMask); ENUMTOOBJ(CellStateValue, NSMixedState, NSOffState, - NSOnState - ); + NSOnState); ENUMTOOBJ(CellType, NSNullCellType, NSTextCellType, - NSImageCellType - ); + NSImageCellType); ENUMTOOBJ(CharacterCollection, @@ -267,8 +245,7 @@ @implementation FSObjectEnumInfo NSAdobeGB1CharacterCollection, NSAdobeJapan1CharacterCollection, NSAdobeJapan2CharacterCollection, - NSAdobeKorea1CharacterCollection - ); + NSAdobeKorea1CharacterCollection); ENUMTOOBJ(ColorPanelMode, @@ -279,8 +256,7 @@ @implementation FSObjectEnumInfo NSCustomPaletteModeColorPanel, NSColorListModeColorPanel, NSWheelModeColorPanel, - NSCrayonModeColorPanel - ); + NSCrayonModeColorPanel); ENUMTOOBJ(ColorRenderingIntent, @@ -288,21 +264,18 @@ @implementation FSObjectEnumInfo NSColorRenderingIntentAbsoluteColorimetric, NSColorRenderingIntentRelativeColorimetric, NSColorRenderingIntentPerceptual, - NSColorRenderingIntentSaturation - ); + NSColorRenderingIntentSaturation); OPTSTOOBJ(ComparisonPredicateOptions, NSCaseInsensitivePredicateOption, NSDiacriticInsensitivePredicateOption, - NSNormalizedPredicateOption - ); + NSNormalizedPredicateOption); ENUMTOOBJ(ComparisonPredicateModifier, NSDirectPredicateModifier, NSAllPredicateModifier, - NSAnyPredicateModifier - ); + NSAnyPredicateModifier); ENUMTOOBJ(CompositingOperation, @@ -319,31 +292,26 @@ @implementation FSObjectEnumInfo NSCompositeXOR, NSCompositePlusDarker, NSCompositeHighlight, - NSCompositePlusLighter - ); - + NSCompositePlusLighter); ENUMTOOBJ(CompoundPredicateType, NSNotPredicateType, NSAndPredicateType, - NSOrPredicateType - ); + NSOrPredicateType); ENUMTOOBJ(ControlSize, NSRegularControlSize, NSSmallControlSize, - NSMiniControlSize - ); + NSMiniControlSize); ENUMTOOBJ(ControlTint, NSDefaultControlTint, NSBlueControlTint, NSGraphiteControlTint, - NSClearControlTint - ); + NSClearControlTint); OPTSTOOBJ(DatePickerElementFlags, NSHourMinuteDatePickerElementFlag, @@ -351,36 +319,30 @@ @implementation FSObjectEnumInfo NSTimeZoneDatePickerElementFlag, NSYearMonthDatePickerElementFlag, NSYearMonthDayDatePickerElementFlag, - NSEraDatePickerElementFlag - ); + NSEraDatePickerElementFlag); ENUMTOOBJ(DatePickerMode, NSSingleDateMode, - NSRangeDateMode - ); + NSRangeDateMode); ENUMTOOBJ(DatePickerStyle, NSTextFieldAndStepperDatePickerStyle, - NSClockAndCalendarDatePickerStyle - ); + NSClockAndCalendarDatePickerStyle); ENUMTOOBJ(DeleteRule, NSNoActionDeleteRule, NSNullifyDeleteRule, NSCascadeDeleteRule, - NSDenyDeleteRule - ); + NSDenyDeleteRule); ENUMTOOBJ(DrawerState, NSDrawerClosedState, NSDrawerOpeningState, NSDrawerOpenState, - NSDrawerClosingState - ); - + NSDrawerClosingState); ENUMTOOBJ(EventType, @@ -406,15 +368,13 @@ @implementation FSObjectEnumInfo NSPeriodic, NSScrollWheel, NSTabletPoint, - NSTabletProximity - ); + NSTabletProximity); ENUMTOOBJ(EventSubtype, NSMouseEventSubtype, NSTabletPointEventSubtype, - NSTabletProximityEventSubtype - ); + NSTabletProximityEventSubtype); ENUMTOOBJ(ExpressionType, @@ -427,30 +387,25 @@ @implementation FSObjectEnumInfo NSIntersectSetExpressionType, NSMinusSetExpressionType, NSSubqueryExpressionType, - NSAggregateExpressionType - ); - + NSAggregateExpressionType); ENUMTOOBJ(FetchRequestResultType, NSManagedObjectResultType, - NSManagedObjectIDResultType - ); + NSManagedObjectIDResultType); ENUMTOOBJ(FocusRingType, NSFocusRingTypeDefault, NSFocusRingTypeNone, - NSFocusRingTypeExterior - ); + NSFocusRingTypeExterior); ENUMTOOBJ(FontRenderingMode, NSFontDefaultRenderingMode, NSFontAntialiasedRenderingMode, NSFontIntegerAdvancementsRenderingMode, - NSFontAntialiasedIntegerAdvancementsRenderingMode - ); + NSFontAntialiasedIntegerAdvancementsRenderingMode); ENUMTOOBJ(GradientType, @@ -458,16 +413,14 @@ @implementation FSObjectEnumInfo NSGradientConcaveWeak, NSGradientConcaveStrong, NSGradientConvexWeak, - NSGradientConvexStrong - ); + NSGradientConvexStrong); OPTSTOOBJ(TableViewGridLineStyle, NSTableViewSolidVerticalGridLineMask, NSTableViewSolidHorizontalGridLineMask, - NSTableViewDashedHorizontalGridLineMask - ); - + NSTableViewDashedHorizontalGridLineMask); + ENUMTOOBJ(ImageAlignment, NSImageAlignCenter, @@ -478,17 +431,14 @@ @implementation FSObjectEnumInfo NSImageAlignBottom, NSImageAlignBottomLeft, NSImageAlignBottomRight, - NSImageAlignRight - ); + NSImageAlignRight); ENUMTOOBJ(ImageCacheMode, NSImageCacheDefault, NSImageCacheAlways, NSImageCacheBySize, - NSImageCacheNever - ); - + NSImageCacheNever); ENUMTOOBJ(ImageFrameStyle, @@ -496,25 +446,21 @@ @implementation FSObjectEnumInfo NSImageFramePhoto, NSImageFrameGrayBezel, NSImageFrameGroove, - NSImageFrameButton - ); - + NSImageFrameButton); ENUMTOOBJ(ImageInterpolation, NSImageInterpolationDefault, NSImageInterpolationNone, NSImageInterpolationLow, - NSImageInterpolationHigh - ); + NSImageInterpolationHigh); ENUMTOOBJ(ImageScaling, NSImageScaleProportionallyDown, NSImageScaleAxesIndependently, NSImageScaleNone, - NSImageScaleProportionallyUpOrDown - ); + NSImageScaleProportionallyUpOrDown); OPTSTOOBJ(EventModifierFlags, @@ -525,28 +471,19 @@ @implementation FSObjectEnumInfo NSCommandKeyMask, NSNumericPadKeyMask, NSHelpKeyMask, - NSFunctionKeyMask - ); - -id objectFromKeyModifierMask(NSUInteger mask) -{ - NSUInteger deviceIndependentMask = mask & ~(NSUInteger)32767; // The lower 16 bits of the modifier flags are reserved for device-dependent bits. - return objectFromEventModifierFlags(deviceIndependentMask); -} + NSFunctionKeyMask); OPTSTOOBJ(GlyphStorageLayoutOptions, NSShowControlGlyphs, NSShowInvisibleGlyphs, - NSWantsBidiLevels - ); + NSWantsBidiLevels); ENUMTOOBJ(LevelIndicatorStyle, NSRelevancyLevelIndicatorStyle, NSContinuousCapacityLevelIndicatorStyle, NSDiscreteCapacityLevelIndicatorStyle, - NSRatingLevelIndicatorStyle - ); + NSRatingLevelIndicatorStyle); ENUMTOOBJ(LineBreakMode, @@ -555,67 +492,54 @@ id objectFromKeyModifierMask(NSUInteger mask) NSLineBreakByClipping, NSLineBreakByTruncatingHead, NSLineBreakByTruncatingTail, - NSLineBreakByTruncatingMiddle - ); + NSLineBreakByTruncatingMiddle); ENUMTOOBJ(LineCapStyle, NSButtLineCapStyle, NSRoundLineCapStyle, - NSSquareLineCapStyle - ); + NSSquareLineCapStyle); ENUMTOOBJ(LineJoinStyle, NSMiterLineJoinStyle, NSRoundLineJoinStyle, - NSBevelLineJoinStyle - ); + NSBevelLineJoinStyle); ENUMTOOBJ(MatrixMode, NSRadioModeMatrix, NSHighlightModeMatrix, NSListModeMatrix, - NSTrackModeMatrix - ); + NSTrackModeMatrix); -id objectFromMergePolicy(id mergePolicy) -{ - NSString *name = nil; - - if (mergePolicy == NSErrorMergePolicy) name = @"NSErrorMergePolicy"; - else if (mergePolicy == NSMergeByPropertyStoreTrumpMergePolicy) name = @"NSMergeByPropertyStoreTrumpMergePolicy"; - else if (mergePolicy == NSMergeByPropertyObjectTrumpMergePolicy) name = @"NSMergeByPropertyObjectTrumpMergePolicy"; - else if (mergePolicy == NSOverwriteMergePolicy) name = @"NSOverwriteMergePolicy"; - else if (mergePolicy == NSRollbackMergePolicy) name = @"NSRollbackMergePolicy"; - - if (name) return [FSObjectBrowserNamedObjectWrapper namedObjectWrapperWithObject:mergePolicy name:name]; - else return mergePolicy; -} +OBJTOOBJ_LIT(MergePolicyMarker, (@{ + NSErrorMergePolicy : @"NSErrorMergePolicy", + NSMergeByPropertyStoreTrumpMergePolicy : @"NSMergeByPropertyStoreTrumpMergePolicy", + NSMergeByPropertyObjectTrumpMergePolicy : @"NSMergeByPropertyObjectTrumpMergePolicy", + NSOverwriteMergePolicy : @"NSOverwriteMergePolicy", + NSRollbackMergePolicy : @"NSRollbackMergePolicy" + })); ENUMTOOBJ(RuleEditorNestingMode, NSRuleEditorNestingModeSingle, NSRuleEditorNestingModeList, NSRuleEditorNestingModeCompound, - NSRuleEditorNestingModeSimple - ); + NSRuleEditorNestingModeSimple); ENUMTOOBJ(PathStyle, NSPathStyleStandard, NSPathStyleNavigationBar, - NSPathStylePopUp - ); + NSPathStylePopUp); ENUMTOOBJ(PointingDeviceType, NSUnknownPointingDevice, NSPenPointingDevice, NSCursorPointingDevice, - NSEraserPointingDevice - ); + NSEraserPointingDevice); ENUMTOOBJ(PredicateOperatorType, @@ -632,42 +556,36 @@ id objectFromMergePolicy(id mergePolicy) NSInPredicateOperatorType, NSCustomSelectorPredicateOperatorType, NSContainsPredicateOperatorType, - NSBetweenPredicateOperatorType - ); + NSBetweenPredicateOperatorType); ENUMTOOBJ(ProgressIndicatorStyle, NSProgressIndicatorBarStyle, - NSProgressIndicatorSpinningStyle - ); + NSProgressIndicatorSpinningStyle); ENUMTOOBJ(PopUpArrowPosition, NSPopUpNoArrow, NSPopUpArrowAtCenter, - NSPopUpArrowAtBottom - ); + NSPopUpArrowAtBottom); -ENUMTOOBJ_DICT(RectEdge, - (@{@(NSMinXEdge):@"NSMinXEdge", - @(NSMinYEdge):@"NSMinYEdge", - @(NSMaxXEdge):@"NSMaxXEdge", - @(NSMaxYEdge):@"NSMaxYEdge" - }) - ); +ENUMTOOBJ_DICT(RectEdge, (@{ + @(NSMinXEdge) : @"NSMinXEdge", + @(NSMinYEdge) : @"NSMinYEdge", + @(NSMaxXEdge) : @"NSMaxXEdge", + @(NSMaxYEdge) : @"NSMaxYEdge" + })); ENUMTOOBJ(RulerOrientation, NSHorizontalRuler, - NSVerticalRuler - ); + NSVerticalRuler); ENUMTOOBJ(ScrollArrowPosition, NSScrollerArrowsDefaultSetting, - NSScrollerArrowsNone - ); + NSScrollerArrowsNone); ENUMTOOBJ(ScrollerPart, @@ -677,53 +595,45 @@ id objectFromMergePolicy(id mergePolicy) NSScrollerIncrementPage, NSScrollerDecrementLine, NSScrollerIncrementLine, - NSScrollerKnobSlot - ); + NSScrollerKnobSlot); ENUMTOOBJ(SegmentSwitchTracking, NSSegmentSwitchTrackingSelectOne, NSSegmentSwitchTrackingSelectAny, - NSSegmentSwitchTrackingMomentary - ); + NSSegmentSwitchTrackingMomentary); ENUMTOOBJ(SelectionAffinity, NSSelectionAffinityUpstream, - NSSelectionAffinityDownstream - ); + NSSelectionAffinityDownstream); ENUMTOOBJ(SelectionDirection, NSDirectSelection, NSSelectingNext, - NSSelectingPrevious - ); + NSSelectingPrevious); ENUMTOOBJ(SelectionGranularity, NSSelectByCharacter, NSSelectByWord, - NSSelectByParagraph - ); + NSSelectByParagraph); ENUMTOOBJ(TableViewSelectionHighlightStyle, NSTableViewSelectionHighlightStyleRegular, - NSTableViewSelectionHighlightStyleSourceList - ); + NSTableViewSelectionHighlightStyleSourceList); ENUMTOOBJ(SliderType, NSLinearSlider, - NSCircularSlider - ); + NSCircularSlider); ENUMTOOBJ(StatusItemLength, NSVariableStatusItemLength, - NSSquareStatusItemLength - ); + NSSquareStatusItemLength); ENUMTOOBJ(StringEncoding, NSASCIIStringEncoding, @@ -742,15 +652,13 @@ id objectFromMergePolicy(id mergePolicy) NSWindowsCP1254StringEncoding, NSWindowsCP1250StringEncoding, NSISO2022JPStringEncoding, - NSMacOSRomanStringEncoding - ); + NSMacOSRomanStringEncoding); OPTSTOOBJ(TableColumnResizingOptions, NSTableColumnNoResizing, NSTableColumnAutoresizingMask, - NSTableColumnUserResizingMask - ); + NSTableColumnUserResizingMask); ENUMTOOBJ(TableViewColumnAutoresizingStyle, NSTableViewNoColumnAutoresizing, @@ -758,16 +666,13 @@ id objectFromMergePolicy(id mergePolicy) NSTableViewSequentialColumnAutoresizingStyle, NSTableViewReverseSequentialColumnAutoresizingStyle, NSTableViewLastColumnOnlyAutoresizingStyle, - NSTableViewFirstColumnOnlyAutoresizingStyle - ); - + NSTableViewFirstColumnOnlyAutoresizingStyle); ENUMTOOBJ(TabState, NSBackgroundTab, NSPressedTab, - NSSelectedTab - ); + NSSelectedTab); ENUMTOOBJ(TabViewType, @@ -777,8 +682,7 @@ id objectFromMergePolicy(id mergePolicy) NSRightTabsBezelBorder, NSNoTabsBezelBorder, NSNoTabsLineBorder, - NSNoTabsNoBorder - ); + NSNoTabsNoBorder); ENUMTOOBJ(TextAlignment, @@ -786,64 +690,44 @@ id objectFromMergePolicy(id mergePolicy) NSRightTextAlignment, NSCenterTextAlignment, NSJustifiedTextAlignment, - NSNaturalTextAlignment - ); + NSNaturalTextAlignment); ENUMTOOBJ(TextBlockValueType, NSTextBlockAbsoluteValueType, - NSTextBlockPercentageValueType - ); + NSTextBlockPercentageValueType); ENUMTOOBJ(TextBlockVerticalAlignment, NSTextBlockTopAlignment, NSTextBlockMiddleAlignment, NSTextBlockBottomAlignment, - NSTextBlockBaselineAlignment - ); + NSTextBlockBaselineAlignment); ENUMTOOBJ(TextFieldBezelStyle, NSTextFieldSquareBezel, - NSTextFieldRoundedBezel - ); + NSTextFieldRoundedBezel); OPTSTOOBJ(TextListOptions, - NSTextListPrependEnclosingMarker - ); + NSTextListPrependEnclosingMarker); OPTSTOOBJ(TextStorageEditedOptions, NSTextStorageEditedAttributes, - NSTextStorageEditedCharacters - ); + NSTextStorageEditedCharacters); ENUMTOOBJ(TextTableLayoutAlgorithm, NSTextTableAutomaticLayoutAlgorithm, - NSTextTableFixedLayoutAlgorithm - ); + NSTextTableFixedLayoutAlgorithm); ENUMTOOBJ(TextTabType, NSLeftTabStopType, NSRightTabStopType, NSCenterTabStopType, - NSDecimalTabStopType - ); - + NSDecimalTabStopType); -id objectFromTickMarkPosition(NSTickMarkPosition tickMarkPosition, BOOL isVertical) -{ - switch (tickMarkPosition) - { - case NSTickMarkBelow: return [FSNamedNumber namedNumberWithDouble:tickMarkPosition name: isVertical ? @"NSTickMarkRight" : @"NSTickMarkBelow"]; - case NSTickMarkAbove: return [FSNamedNumber namedNumberWithDouble:tickMarkPosition name: isVertical ? @"NSTickMarkLeft" : @"NSTickMarkAbove"]; - //case NSTickMarkLeft: return [NamedNumber namedNumberWithDouble:tickMarkPosition name:@"NSTickMarkLeft"]; - //case NSTickMarkRight: return [NamedNumber namedNumberWithDouble:tickMarkPosition name:@"NSTickMarkRight"]; - default: return [FSNumber numberWithDouble:tickMarkPosition]; - } -} ENUMTOOBJ(TIFFCompression, NSTIFFCompressionNone, @@ -853,8 +737,7 @@ id objectFromTickMarkPosition(NSTickMarkPosition tickMarkPosition, BOOL isVertic NSTIFFCompressionJPEG, NSTIFFCompressionNEXT, NSTIFFCompressionPackBits, - NSTIFFCompressionOldJPEG - ); + NSTIFFCompressionOldJPEG); ENUMTOOBJ(TitlePosition, @@ -864,37 +747,32 @@ id objectFromTickMarkPosition(NSTickMarkPosition tickMarkPosition, BOOL isVertic NSBelowTop, NSAboveBottom, NSAtBottom, - NSBelowBottom - ); + NSBelowBottom); ENUMTOOBJ(TokenStyle, NSDefaultTokenStyle, NSPlainTextTokenStyle, - NSRoundedTokenStyle - ); + NSRoundedTokenStyle); ENUMTOOBJ(ToolbarDisplayMode, NSToolbarDisplayModeDefault, NSToolbarDisplayModeIconAndLabel, NSToolbarDisplayModeIconOnly, - NSToolbarDisplayModeLabelOnly - ); + NSToolbarDisplayModeLabelOnly); ENUMTOOBJ(ToolbarItemVisibilityPriority, NSToolbarItemVisibilityPriorityStandard, NSToolbarItemVisibilityPriorityLow, NSToolbarItemVisibilityPriorityHigh, - NSToolbarItemVisibilityPriorityUser - ); + NSToolbarItemVisibilityPriorityUser); ENUMTOOBJ(ToolbarSizeMode, NSToolbarSizeModeDefault, NSToolbarSizeModeRegular, - NSToolbarSizeModeSmall - ); + NSToolbarSizeModeSmall); OPTSTOOBJ(TrackingAreaOptions, @@ -907,8 +785,7 @@ id objectFromTickMarkPosition(NSTickMarkPosition tickMarkPosition, BOOL isVertic NSTrackingActiveAlways, NSTrackingAssumeInside, NSTrackingInVisibleRect, - NSTrackingEnabledDuringMouseDrag - ); + NSTrackingEnabledDuringMouseDrag); ENUMTOOBJ(TypesetterBehavior, @@ -917,34 +794,31 @@ id objectFromTickMarkPosition(NSTickMarkPosition tickMarkPosition, BOOL isVertic NSTypesetterBehavior_10_2_WithCompatibility, NSTypesetterBehavior_10_2, NSTypesetterBehavior_10_3, - NSTypesetterBehavior_10_4 - ); + NSTypesetterBehavior_10_4); ENUMTOOBJ(UsableScrollerParts, NSNoScrollerParts, NSOnlyScrollerArrows, - NSAllScrollerParts - ); + NSAllScrollerParts); ENUMTOOBJ(WindingRule, NSNonZeroWindingRule, - NSEvenOddWindingRule - ); - -ENUMTOOBJ_DICT(WindowLevel, - (@{@(NSNormalWindowLevel):@"NSNormalWindowLevel", - @(NSFloatingWindowLevel):@"NSFloatingWindowLevel", - @(NSSubmenuWindowLevel):@"NSSubmenuWindowLevel", - @(NSTornOffMenuWindowLevel):@"NSTornOffMenuWindowLevel", - @(NSMainMenuWindowLevel):@"NSMainMenuWindowLevel", - @(NSStatusWindowLevel):@"NSStatusWindowLevel", - @(NSDockWindowLevel):@"NSDockWindowLevel", - @(NSModalPanelWindowLevel):@"NSModalPanelWindowLevel", - @(NSPopUpMenuWindowLevel):@"NSPopUpMenuWindowLevel", - @(NSScreenSaverWindowLevel):@"NSScreenSaverWindowLevel"}) - ); + NSEvenOddWindingRule); + +ENUMTOOBJ_DICT(WindowLevel, (@{ + @(NSNormalWindowLevel) : @"NSNormalWindowLevel", + @(NSFloatingWindowLevel) : @"NSFloatingWindowLevel", + @(NSSubmenuWindowLevel) : @"NSSubmenuWindowLevel", + @(NSTornOffMenuWindowLevel) : @"NSTornOffMenuWindowLevel", + @(NSMainMenuWindowLevel) : @"NSMainMenuWindowLevel", + @(NSStatusWindowLevel) : @"NSStatusWindowLevel", + @(NSDockWindowLevel) : @"NSDockWindowLevel", + @(NSModalPanelWindowLevel) : @"NSModalPanelWindowLevel", + @(NSPopUpMenuWindowLevel) : @"NSPopUpMenuWindowLevel", + @(NSScreenSaverWindowLevel) : @"NSScreenSaverWindowLevel" + })); OPTSTOOBJ(WindowMask, @@ -956,45 +830,43 @@ id objectFromTickMarkPosition(NSTickMarkPosition tickMarkPosition, BOOL isVertic NSTexturedBackgroundWindowMask, NSUnifiedTitleAndToolbarWindowMask, NSFullScreenWindowMask, - NSFullSizeContentViewWindowMask - ); + NSFullSizeContentViewWindowMask); ENUMTOOBJ(WindowBackingLocation, NSWindowBackingLocationDefault, NSWindowBackingLocationVideoMemory, - NSWindowBackingLocationMainMemory - ); + NSWindowBackingLocationMainMemory); ENUMTOOBJ(WindowCollectionBehavior, NSWindowCollectionBehaviorDefault, NSWindowCollectionBehaviorCanJoinAllSpaces, - NSWindowCollectionBehaviorMoveToActiveSpace - ); + NSWindowCollectionBehaviorMoveToActiveSpace); ENUMTOOBJ(WindowSharingType, NSWindowSharingNone, NSWindowSharingReadOnly, - NSWindowSharingReadWrite - ); + NSWindowSharingReadWrite); -/*static id objectFromWindowOrderingMode(NSWindowOrderingMode orderingMode) - { - switch (orderingMode) - { - case NSWindowAbove: return [NamedNumber namedNumberWithDouble:orderingMode name:@"NSWindowAbove"]; - case NSWindowBelow: return [NamedNumber namedNumberWithDouble:orderingMode name:@"NSWindowBelow"]; - case NSWindowOut: return [NamedNumber namedNumberWithDouble:orderingMode name:@"NSWindowOut"]; - default: return [Number numberWithDouble:orderingMode]; - } - }*/ - ENUMTOOBJ(WritingDirection, NSWritingDirectionNatural, NSWritingDirectionLeftToRight, - NSWritingDirectionRightToLeft - ); + NSWritingDirectionRightToLeft); + +id objectFromTickMarkPosition(NSTickMarkPosition tickMarkPosition, BOOL isVertical) +{ + switch (tickMarkPosition) { + case NSTickMarkBelow: + return [FSNamedNumber namedNumberWithDouble:tickMarkPosition name:isVertical ? @"NSTickMarkRight" : @"NSTickMarkBelow"]; + case NSTickMarkAbove: + return [FSNamedNumber namedNumberWithDouble:tickMarkPosition name:isVertical ? @"NSTickMarkLeft" : @"NSTickMarkAbove"]; + //case NSTickMarkLeft: return [NamedNumber namedNumberWithDouble:tickMarkPosition name:@"NSTickMarkLeft"]; + //case NSTickMarkRight: return [NamedNumber namedNumberWithDouble:tickMarkPosition name:@"NSTickMarkRight"]; + default: + return [FSNumber numberWithDouble:tickMarkPosition]; + } +} @end diff --git a/FScriptFramework/FSObjectInspectorViewController.h b/FScriptFramework/FSObjectInspectorViewController.h index b821ee9..4858e99 100644 --- a/FScriptFramework/FSObjectInspectorViewController.h +++ b/FScriptFramework/FSObjectInspectorViewController.h @@ -13,4 +13,5 @@ @interface FSObjectInspectorViewController : NSViewController @property (assign) IBOutlet NSOutlineView *outlineView; @property (weak,nonatomic) FSObjectInspectorViewModelItem *rootViewModelItem; +@property (readonly,nonatomic) NSSize desiredSize; @end diff --git a/FScriptFramework/FSObjectInspectorViewController.m b/FScriptFramework/FSObjectInspectorViewController.m index a9e6a73..feeb3ad 100644 --- a/FScriptFramework/FSObjectInspectorViewController.m +++ b/FScriptFramework/FSObjectInspectorViewController.m @@ -22,16 +22,28 @@ - (void)viewDidLoad #if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10 self.view.appearance = [NSAppearance appearanceNamed:NSAppearanceNameVibrantDark]; #endif - } --(void)awakeFromNib +- (void)awakeFromNib { if (!self.hasAwoken) { self.hasAwoken = YES; [self.outlineView expandItem:nil expandChildren:YES]; + NSLog(@"outline view size = %@", NSStringFromSize(self.outlineView.bounds.size)); } - +} + +- (NSSize)desiredSize +{ + NSScrollView* scrollView = self.outlineView.enclosingScrollView; + NSSize scrollViewSize = [NSScrollView frameSizeForContentSize:self.outlineView.bounds.size + horizontalScrollerClass:scrollView.horizontalScroller.class + verticalScrollerClass:scrollView.verticalScroller.class + borderType:scrollView.borderType + controlSize:scrollView.horizontalScroller.controlSize + scrollerStyle:scrollView.scrollerStyle]; + scrollViewSize.height += NSHeight(self.outlineView.headerView.bounds); + return scrollViewSize; } @end diff --git a/FScriptFramework/FSObjectInspectorViewController.xib b/FScriptFramework/FSObjectInspectorViewController.xib index 68ec899..86346d0 100644 --- a/FScriptFramework/FSObjectInspectorViewController.xib +++ b/FScriptFramework/FSObjectInspectorViewController.xib @@ -1,5 +1,5 @@ - + diff --git a/FScriptFramework/FSObjectInspectorViewModelItem.h b/FScriptFramework/FSObjectInspectorViewModelItem.h index c56f614..abe8b8e 100644 --- a/FScriptFramework/FSObjectInspectorViewModelItem.h +++ b/FScriptFramework/FSObjectInspectorViewModelItem.h @@ -21,9 +21,12 @@ typedef NS_ENUM(NSUInteger, FSInspectorVMValueType) { FS_ITEM_BOOL, }; +@class CHBidirectionalDictionary; + @interface FSObjectInspectorViewModelItem : NSTreeNode @property (copy,nonatomic) NSString *name; @property (strong,nonatomic) id value; @property (assign,nonatomic) FSInspectorVMValueType valueType; @property (readonly,nonatomic) NSString *displayValue; +@property (assign,nonatomic) CHBidirectionalDictionary *enumBiDict; @end diff --git a/FScriptFramework/FSObjectInspectorViewModelItem.m b/FScriptFramework/FSObjectInspectorViewModelItem.m index c973844..13ddc04 100644 --- a/FScriptFramework/FSObjectInspectorViewModelItem.m +++ b/FScriptFramework/FSObjectInspectorViewModelItem.m @@ -9,6 +9,7 @@ #import "FSObjectInspectorViewModelItem.h" #import "FSNamedNumber.h" #import "FSNumber.h" +#import "CHBidirectionalDictionary.h" @implementation FSObjectInspectorViewModelItem diff --git a/FScriptFramework/FSUtils.h b/FScriptFramework/FSUtils.h new file mode 100644 index 0000000..2d727e6 --- /dev/null +++ b/FScriptFramework/FSUtils.h @@ -0,0 +1,28 @@ +// +// FSUtils.h +// FScript +// +// Created by Anthony Dervish on 18/11/2014. +// +// + +#import + +@interface FSUtils : NSObject + +@end + + +static inline NSRect rectWithWidthAndHeight(CGFloat width, CGFloat height) +{ + return NSMakeRect(0.0, 0.0, width, height); +} +static inline NSRect rectWithSize(NSSize size) +{ + return NSMakeRect(0.0, 0.0, size.width, size.height); +} + +static inline NSSize addSizes(NSSize size1, NSSize size2) +{ + return NSMakeSize(size1.width + size2.width, size1.height + size2.height); +} \ No newline at end of file diff --git a/FScriptFramework/FSUtils.m b/FScriptFramework/FSUtils.m new file mode 100644 index 0000000..7d8d260 --- /dev/null +++ b/FScriptFramework/FSUtils.m @@ -0,0 +1,13 @@ +// +// FSUtils.m +// FScript +// +// Created by Anthony Dervish on 18/11/2014. +// +// + +#import "FSUtils.h" + +@implementation FSUtils + +@end diff --git a/FScriptFramework/blockInspector.nib/designable.nib b/FScriptFramework/blockInspector.nib/designable.nib index e023a8f..82f36f2 100644 --- a/FScriptFramework/blockInspector.nib/designable.nib +++ b/FScriptFramework/blockInspector.nib/designable.nib @@ -1,41 +1,38 @@ - + 1060 - 11C74 - 1938 - 1138.23 - 567.00 + 14B25 + 6254 + 1343.16 + 755.00 com.apple.InterfaceBuilder.CocoaPlugin - 1938 + 6254 - - YES - NSToolbar + + NSBox + NSCustomObject + NSCustomView + NSScrollView NSScroller NSSplitView + NSTextView + NSToolbar NSToolbarFlexibleSpaceItem - NSScrollView + NSToolbarItem NSToolbarSpaceItem - NSBox - NSCustomObject - NSCustomView NSView NSWindowTemplate - NSTextView - NSToolbarItem - - - YES + + com.apple.InterfaceBuilder.CocoaPlugin - + PluginDependencyRecalculationVersion - - YES + BlockInspector @@ -63,163 +60,148 @@ YES 2 1 - - YES - - YES - 771145F7-3AD6-4F13-BC83-CA31D4D6D0AD - C119E078-D0E8-4EEB-B2C1-BB21CC86A3CA - NSToolbarFlexibleSpaceItem - NSToolbarSpaceItem + + + + 771145F7-3AD6-4F13-BC83-CA31D4D6D0AD + + run + run + + + + NSImage + run + + + + {0, 0} + {0, 0} + YES + YES + -1 + YES + 0 - - YES - - - 771145F7-3AD6-4F13-BC83-CA31D4D6D0AD - - run - run - - - - NSImage - run - - - - {0, 0} - {0, 0} - YES - YES - -1 - YES - 0 + + + C119E078-D0E8-4EEB-B2C1-BB21CC86A3CA - - - C119E078-D0E8-4EEB-B2C1-BB21CC86A3CA - - build - build - - - + build + build + + + + NSImage + build + + + + {0, 0} + {0, 0} + YES + YES + -1 + YES + 0 + + + NSToolbarFlexibleSpaceItem + + Flexible Space + + + + + + {1, 5} + {20000, 32} + YES + YES + -1 + YES + 0 + + YES + YES + + + 1048576 + 2147483647 + NSImage - build + NSMenuCheckmark - - - {0, 0} - {0, 0} - YES - YES - -1 - YES - 0 - - - NSToolbarFlexibleSpaceItem - - Flexible Space - - - - - - {1, 5} - {20000, 32} - YES - YES - -1 - YES - 0 - - YES - YES - - - 1048576 - 2147483647 - - NSImage - NSMenuCheckmark - - - NSImage - NSMenuMixedState - + + NSImage + NSMenuMixedState - - NSToolbarSpaceItem - - Space - - - - - - {32, 5} - {32, 32} - YES - YES - -1 - YES - 0 - - YES - YES - - - 1048576 - 2147483647 - - - + + + NSToolbarSpaceItem + + Space + + + + + + {32, 5} + {32, 10000} + YES + YES + -1 + YES + 0 + + YES + YES + + + 1048576 + 2147483647 + + - - - YES + + - - - YES + + - - - YES - + + {290, 158} 256 - - YES + 266 - - YES + 274 - {{2, 2}, {429, 0}} + {{2, 2}, {429, 2}} + - - {{-7, 245}, {433, 2}} + + {{-7, 243}, {433, 6}} + {0, 0} - 67239424 + 67108864 0 @@ -237,8 +219,13 @@ - 3 - MCAwLjgwMDAwMDAxAA + 6 + System + labelColor + + 3 + MAA + @@ -250,29 +237,28 @@ 274 - - YES + 256 - - YES + - 2304 - - YES + 2322 + 274 - {339, 197} + {354, 197} + FScriptTextView NSTextView - - {{1, 1}, {339, 222}} + + {{1, 1}, {354, 222}} + @@ -285,12 +271,17 @@ 4 + YES 256 - {{340, 1}, {15, 222}} + {{339, 1}, {16, 222}} + + NO + _doScroller: + _doScroller: 1 @@ -301,123 +292,127 @@ -2147483392 {{-100, -100}, {356, 15}} + + NO + _doScroller: + 1 _doScroller: 0.22752810000000001 - + {356, 224} + + YES 133138 + 0.25 + 4 + 1 256 - - YES + - 2304 - - YES + 2322 + 2322 - - YES - - YES - Apple HTML pasteboard type - Apple PDF pasteboard type - Apple PICT pasteboard type - CorePasteboardFlavorType 0x6D6F6F76 - NSColor pasteboard type - NSFilenamesPboardType - NSStringPboardType - NSTypedFilenamesPboardType:'.SGI' - NSTypedFilenamesPboardType:'8BPS' - NSTypedFilenamesPboardType:'BMPf' - NSTypedFilenamesPboardType:'EPSF' - NSTypedFilenamesPboardType:'FPix' - NSTypedFilenamesPboardType:'GIFf' - NSTypedFilenamesPboardType:'ICO ' - NSTypedFilenamesPboardType:'JPEG' - NSTypedFilenamesPboardType:'PDF ' - NSTypedFilenamesPboardType:'PICT' - NSTypedFilenamesPboardType:'PNGf' - NSTypedFilenamesPboardType:'PNTG' - NSTypedFilenamesPboardType:'TIFF' - NSTypedFilenamesPboardType:'TPIC' - NSTypedFilenamesPboardType:'qtif' - NSTypedFilenamesPboardType:BMP - NSTypedFilenamesPboardType:CUR - NSTypedFilenamesPboardType:FAX - NSTypedFilenamesPboardType:FPIX - NSTypedFilenamesPboardType:FPX - NSTypedFilenamesPboardType:GIF - NSTypedFilenamesPboardType:ICNS - NSTypedFilenamesPboardType:ICO - NSTypedFilenamesPboardType:JPEG - NSTypedFilenamesPboardType:JPG - NSTypedFilenamesPboardType:MAC - NSTypedFilenamesPboardType:PCT - NSTypedFilenamesPboardType:PDF - NSTypedFilenamesPboardType:PICT - NSTypedFilenamesPboardType:PNG - NSTypedFilenamesPboardType:PNT - NSTypedFilenamesPboardType:PNTG - NSTypedFilenamesPboardType:PSD - NSTypedFilenamesPboardType:QTI - NSTypedFilenamesPboardType:QTIF - NSTypedFilenamesPboardType:RGB - NSTypedFilenamesPboardType:SGI - NSTypedFilenamesPboardType:TARGA - NSTypedFilenamesPboardType:TGA - NSTypedFilenamesPboardType:TIF - NSTypedFilenamesPboardType:TIFF - NSTypedFilenamesPboardType:bmp - NSTypedFilenamesPboardType:cur - NSTypedFilenamesPboardType:eps - NSTypedFilenamesPboardType:fax - NSTypedFilenamesPboardType:fpix - NSTypedFilenamesPboardType:fpx - NSTypedFilenamesPboardType:gif - NSTypedFilenamesPboardType:icns - NSTypedFilenamesPboardType:ico - NSTypedFilenamesPboardType:jpeg - NSTypedFilenamesPboardType:jpg - NSTypedFilenamesPboardType:mac - NSTypedFilenamesPboardType:pct - NSTypedFilenamesPboardType:pdf - NSTypedFilenamesPboardType:pict - NSTypedFilenamesPboardType:png - NSTypedFilenamesPboardType:pnt - NSTypedFilenamesPboardType:pntg - NSTypedFilenamesPboardType:psd - NSTypedFilenamesPboardType:qti - NSTypedFilenamesPboardType:qtif - NSTypedFilenamesPboardType:rgb - NSTypedFilenamesPboardType:sgi - NSTypedFilenamesPboardType:targa - NSTypedFilenamesPboardType:tga - NSTypedFilenamesPboardType:tif - NSTypedFilenamesPboardType:tiff - NXTypedFilenamePboardType:eps - NXTypedFilenamePboardType:tif - NXTypedFilenamePboardType:tiff - NeXT Encapsulated PostScript v1.2 pasteboard type - NeXT RTFD pasteboard type - NeXT Rich Text Format v1.0 pasteboard type - NeXT TIFF v4.0 pasteboard type - - - {338, 14} + + Apple HTML pasteboard type + Apple PDF pasteboard type + Apple PICT pasteboard type + CorePasteboardFlavorType 0x6D6F6F76 + NSColor pasteboard type + NSFilenamesPboardType + NSStringPboardType + NSTypedFilenamesPboardType:'.SGI' + NSTypedFilenamesPboardType:'8BPS' + NSTypedFilenamesPboardType:'BMPf' + NSTypedFilenamesPboardType:'EPSF' + NSTypedFilenamesPboardType:'FPix' + NSTypedFilenamesPboardType:'GIFf' + NSTypedFilenamesPboardType:'ICO ' + NSTypedFilenamesPboardType:'JPEG' + NSTypedFilenamesPboardType:'PDF ' + NSTypedFilenamesPboardType:'PICT' + NSTypedFilenamesPboardType:'PNGf' + NSTypedFilenamesPboardType:'PNTG' + NSTypedFilenamesPboardType:'TIFF' + NSTypedFilenamesPboardType:'TPIC' + NSTypedFilenamesPboardType:'qtif' + NSTypedFilenamesPboardType:BMP + NSTypedFilenamesPboardType:CUR + NSTypedFilenamesPboardType:FAX + NSTypedFilenamesPboardType:FPIX + NSTypedFilenamesPboardType:FPX + NSTypedFilenamesPboardType:GIF + NSTypedFilenamesPboardType:ICNS + NSTypedFilenamesPboardType:ICO + NSTypedFilenamesPboardType:JPEG + NSTypedFilenamesPboardType:JPG + NSTypedFilenamesPboardType:MAC + NSTypedFilenamesPboardType:PCT + NSTypedFilenamesPboardType:PDF + NSTypedFilenamesPboardType:PICT + NSTypedFilenamesPboardType:PNG + NSTypedFilenamesPboardType:PNT + NSTypedFilenamesPboardType:PNTG + NSTypedFilenamesPboardType:PSD + NSTypedFilenamesPboardType:QTI + NSTypedFilenamesPboardType:QTIF + NSTypedFilenamesPboardType:RGB + NSTypedFilenamesPboardType:SGI + NSTypedFilenamesPboardType:TARGA + NSTypedFilenamesPboardType:TGA + NSTypedFilenamesPboardType:TIF + NSTypedFilenamesPboardType:TIFF + NSTypedFilenamesPboardType:bmp + NSTypedFilenamesPboardType:cur + NSTypedFilenamesPboardType:eps + NSTypedFilenamesPboardType:fax + NSTypedFilenamesPboardType:fpix + NSTypedFilenamesPboardType:fpx + NSTypedFilenamesPboardType:gif + NSTypedFilenamesPboardType:icns + NSTypedFilenamesPboardType:ico + NSTypedFilenamesPboardType:jpeg + NSTypedFilenamesPboardType:jpg + NSTypedFilenamesPboardType:mac + NSTypedFilenamesPboardType:pct + NSTypedFilenamesPboardType:pdf + NSTypedFilenamesPboardType:pict + NSTypedFilenamesPboardType:png + NSTypedFilenamesPboardType:pnt + NSTypedFilenamesPboardType:pntg + NSTypedFilenamesPboardType:psd + NSTypedFilenamesPboardType:qti + NSTypedFilenamesPboardType:qtif + NSTypedFilenamesPboardType:rgb + NSTypedFilenamesPboardType:sgi + NSTypedFilenamesPboardType:targa + NSTypedFilenamesPboardType:tga + NSTypedFilenamesPboardType:tif + NSTypedFilenamesPboardType:tiff + NXTypedFilenamePboardType:eps + NXTypedFilenamePboardType:tif + NXTypedFilenamePboardType:tiff + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT RTFD pasteboard type + NeXT Rich Text Format v1.0 pasteboard type + NeXT TIFF v4.0 pasteboard type + + {353, 51} + @@ -426,15 +421,14 @@ - - YES + - - 6 + + 38 - 338 + 353 1 @@ -445,54 +439,37 @@ 2 MC45NDUwOTgxIDAuOTQ1MDk4MSAwLjk0NTA5ODEAA - - YES - - YES - NSBackgroundColor - NSColor + + + 6 + System + selectedTextBackgroundColor + - - YES - - 6 - System - selectedTextBackgroundColor - - - - 6 - System - selectedTextColor - - 3 - MAA - - + + 6 + System + selectedTextColor + + + + 6 + System + controlTextColor + - - - YES - - YES - NSColor - NSCursor - NSUnderline + + + 1 + MCAwIDEAA - - YES - - 1 - MCAwIDEAA - - - {8, -8} - 13 - - + + {8, -8} + 13 - + + @@ -501,12 +478,13 @@ 6 {694, 10000000} - {338, 0} + {354, 51} - - {{1, 1}, {339, 51}} + + {{1, 1}, {354, 51}} + @@ -517,10 +495,8 @@ {4, 5} 12582912 - - YES - - YES + + @@ -531,8 +507,8 @@ AAEAAAAIARIAAwAAAAEAAQAAARUAAwAAAAEAAgAAARYAAwAAAAEAEAAAARcABAAAAAEAAABnARwAAwAA AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA - - + + 3 MCAwAA @@ -540,12 +516,17 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 4 + YES 256 - {{340, 1}, {15, 51}} + {{339, 1}, {16, 51}} + + NO + _doScroller: + _doScroller: 1 @@ -555,38 +536,48 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA -2147483392 {{-100, -100}, {87, 18}} + + NO + _doScroller: + 1 _doScroller: 1 0.94565220000000005 - + {{0, 233}, {356, 53}} + + YES 133138 + 0.25 + 4 + 1 - + {356, 286} + - + {356, 286} + - {{0, 0}, {1440, 878}} + {{0, 0}, {2560, 1417}} {290, 219} {10000000000000, 10000000000000} YES - + - - YES + sourceView @@ -643,10 +634,9 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 59 - + - - YES + 0 @@ -674,51 +664,45 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 8 - - YES + - + Window1 6 - - YES + - + 4 - - YES - + 57 - - YES + - + 51 - - YES + - + @@ -729,12 +713,11 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 52 - - YES + - + @@ -765,13 +748,12 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 90 - - YES + - + @@ -794,112 +776,266 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA - - - - YES - - YES - -1.IBPluginDependency - -2.IBPluginDependency - -3.IBPluginDependency - 112.IBPluginDependency - 113.IBPluginDependency - 4.IBPluginDependency - 50.IBPluginDependency - 51.IBPluginDependency - 52.IBPluginDependency - 53.IBPluginDependency - 57.IBPluginDependency - 6.IBPluginDependency - 76.IBPluginDependency - 76.IBShouldRemoveOnLegacySave - 77.IBPluginDependency - 77.IBShouldRemoveOnLegacySave - 78.IBPluginDependency - 78.IBShouldRemoveOnLegacySave - 79.IBPluginDependency - 79.IBShouldRemoveOnLegacySave - 8.IBPluginDependency - 8.IBWindowTemplateEditedContentRect - 8.NSWindowTemplate.visibleAtLaunch - 90.IBPluginDependency - 98.IBPluginDependency - 99.IBPluginDependency - - - YES - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - {{328, 129}, {356, 286}} - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - - YES - - + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + {{328, 129}, {356, 286}} + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + - - YES - - - + 113 - + + + + BlockInspector + NSObject + + id + id + + + + compil: + id + + + run: + id + + + + NSScrollView + NSScrollView + NSSplitView + + + + messageView + NSScrollView + + + sourceView + NSScrollView + + + splitView + NSSplitView + + + + IBProjectSource + ../FScriptFramework/BlockInspector.h + + + + BlockInspector + + id + id + id + id + + + + cancelArgumentsSheetAction: + id + + + compil: + id + + + evaluateBlockAction: + id + + + run: + id + + + + IBProjectSource + ../FScriptFramework/BlockInspector.m + + + + FScriptTextView + NSTextView + + IBProjectSource + ../FScriptFramework/FScriptTextView.h + + + + + + NSApplication + NSResponder + + IBFrameworkSource + AppKit.framework/Headers/NSApplication.h + + + + NSBox + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSBox.h + + + + NSControl + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSControl.h + + + + NSFormatter + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSFormatter.h + + + + NSMenu + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSMenu.h + + + + NSResponder + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSResponder.h + + + + NSScrollView + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSScrollView.h + + + + NSScroller + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSScroller.h + + + + NSSplitView + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSSplitView.h + + + + NSText + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSText.h + + + + NSTextView + NSText + + IBFrameworkSource + AppKit.framework/Headers/NSTextView.h + + + + NSToolbar + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSToolbar.h + + + + NSToolbarItem + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSToolbarItem.h + + + + NSView + NSResponder + + IBFrameworkSource + AppKit.framework/Headers/NSView.h + + + + NSWindow + NSResponder + + IBFrameworkSource + AppKit.framework/Headers/NSWindow.h + + + + 0 IBCocoaFramework + NO com.apple.InterfaceBuilder.CocoaPlugin.macosx com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 - + YES 3 - - YES - - YES - NSMenuCheckmark - NSMenuMixedState - build - run - - - YES - {9, 8} - {7, 2} - {32, 32} - {32, 32} - - + + {12, 12} + {10, 2} + {32, 32} + {32, 32} + diff --git a/FScriptFramework/blockInspector.nib/keyedobjects.nib b/FScriptFramework/blockInspector.nib/keyedobjects.nib index 605f322dccf7cf76c176c53dcc9c6a0ec4f2a925..b89a20b230eb54e6beede5f22c4dbd10ad179c50 100644 GIT binary patch delta 8861 zcma)B349aPx<6;mK$~Wpq)C%WOBYI-g=~{jKtxIxiWORv7Lc{1Z77k_)FfpqHK$&$ zKD~MoBMK@gZIuhiB8bW^APNGCY!Z#k!J zk>#@3mbXeZi@_M&&u0dxp`j!vPk=0BDiwP6p=#r^TEcn~hYg?Ko= z3s1rK;6{8eZo)J01NiUwG5k+FA3uwq!;A4!+<}+l6?he1hd1EO_)YvFK8b(8KjB~T z75p2%imx+>>Be+tWQ>BzU^1C3#>{w`T&54xj~T)YW5zJ!nd!_ zTxG5?zcbefBA76Q5SDZ!-AMvTBr=jjki1BoC8$t>A+M25XffGNc9FNpUb3IOPd+Bc$v5OQ`Iej^Ka#WL9QlcyCzr@|Hi1oK6|9EU zvIf@3_F&W5Y_=C`W9_Vq&1L(rrR;FFjICy)>~rj5b_x4D`vSX^ZDZTn4)#U%C3YG6 zFLpV*f?dhJ%&ubftJyW|TJ{xo9lM@=mEFL;#%^S{#M&80F^|$v50pN-ykcZ97@1gJ zQ50-w@Yh5F!G`dJ@`@3G+VE&!eUm?2#i`+E^*!*ca|9;Gf5#d~mbQxH$}2_(!hz~~ z|Cm5SZE$AnZsLrMAW5a8d)3tY!r^goa>M+y!<3;{Td}qkbFEm}ie0oDe6(U`D|WYH z%^{SDv?vSp91r4%E6aV;{ghBP_BI*j>J85v$OY6~!MHd}k&||(+dt*h$b$srMY*UC z%0qooKctQ2v;ATZu$d~5HZE3WAX4v-b+9WrL=)*1+MoU^qnGJ#v|p^MTcuKq?nYzL zI5ZwjK>6$6?B>HdK_=rcmD9d7S4NeIw9g@+o0l-9UkHi9gwZV2G6uw%2AXxC2x>wz z&`heLYRXYf2bzuMpk_3eYH23Tp$_Vaosjp4olR&pYtiFqK6(Ph(32=16~mQ}7D;yz zv=}XcyBAP?Y(e7Gm`2t^t0}Lj3im(| zG1*vyjH2Z0oiB=HR0T@wDT>6!^3 zDh(G0!al%7Em%o1KMaFYyUT|Zk*|Znn2;GCGp)aWd@L(}igqj*|7WA+rXwTSM#R%|L z7go;wh1U$=bs5I4!22q?2DY>O!HuI<;MN=7HfkSL(deu3k7>^JIx_QG#!KIV2VO1z zM$18#{{s&kfMO#}|HD18e<-KK)yHbA{NDNJE$L+ik=pwtiuDA;)(D$4-6s6Rtd6|gAvMc0}g`l-a+tj zn+8KQ(Ka^&O1&+P%;rAcTg1DTxC25s4An|Zf9*JgBe4%SKAI~{%guFU_HAkT5YGhS zv+!&@2RGxnxCP&bqnP4Wd_Vr1m`Ffi$&4U1DBBneMWozT=&PAl7Ya5t)D{KngCS8r z@QQQ~4uQHD@i#=oqIiRVSIZ)VXjzmN(joK?TEL+@kKhOKL-@Zyf`{=V_#gOD5Vq5K zQzWkNTTENogRQU@UK~e@Xz|$F{q-~akwA?vuH`)ZI7}=7rfqm0vK<9_Pv97S5--3{ z;ivIJya+!d>LN;79{X9tWkLon@iVLzHzdA|;+pG?}Ui31u9gD{f z9u4A`0Bm2!Z@}j!fK7jTC%pupKgUtFMT~{5cpJTo*3mp@3h)lRQ;LOMSa=Hpq6qH> z*bRYjcpJZi_u#$wU3l-u2k?7%1RjBk@i2S{AI3-UQG6`cH#s{BXoQdtG?e-38UjxO_i~(SI67^F9Q*&ZA68D$x-a@I`zHMBj^p_%hgR$SjDoFqoK*rFYXYG^qkK z8a=K#H?L1@fX)`ZhJP2MP%84Gm>u|993xenuDMx&Tq~vnm|l*zFn_=U65vyn5bM#2latQi8qrJ=Y4`v;z~w^w2T^z z4Jnu57!9Lkk{KPNM|F%rGWRg?lSzZIbjap$@KR(A>e|c$Wt*y3-GxPy^&Jz*6U|IAKxDrjXRWQy-n2NUJ5kfN!$% z&(35PoM?KT`fi}8iqkhY=jKAHmCPsf?X=#6s@h-|hzE$#8O>pOGTCB{>V)=-@Vi&s z3Ls9W2%&32e{bPkHzNKWDdP7q{qeiZE%3RY8OYq$74b{~Q^*uC z#WX-K!h1?*=t1P2lVa~i)X}N*e0F~H=FnqGAoQ62%xz2&EImih)4UT9XrD+SR|#Mr z%?uY20ijpSl;KlMIb3%_7;a-KAo#YSVrDcr6nqs9hUh6e4X!UClZEB z8{&s4hevrQP_B!az)WN&iL`MEQw6k#Fq0V{Q_a*cwTz#c0{Wdn`5@Fi%rvGxW-<)V z*g^L~CHMkFMDTu-eoi6TLS1GWkZTP$GPcDKie+FgL#MBI85`tLq9-X}qAU%+~V5 ze7sOMM0|k;e<%!rHd26W|2Z7z zQACPkf>{?G(mCZ%dK@Q1$?c>R7~O$qlVM~yDI?`%1hm@uWF)B|m1GndO~$~P!rf?b zXL$)t^Vb$cK(Feih+phgM2aP_9ruU8Ba-bTgAETfO#5SAOr67Cq+}>H z+mb|6{Wa6TQqc9q7Mjyzd(ElhrUF6tBlpu!=~4PF-A518lZVMTvArPU(e3ytfXT?A zg|V-#S(UW(FbauKBa?`a)V7f-GMVnD2iizAsiE)DgY?k<)PemeZK>q5T9sTGmg_5L=pNCX&oSbXruczn^b z#rI$Dc1HZ8yd4i=>@&h^aQV%Gy)kIkBb7^UFlfi$0Hv zs;-b!T?wkL0`y6HefkaP_VwsykwME5c)pgrf)|i=WIcJ6Yyg8uv$`7Pk$%wbtQNhA z5Is$Ql+qP>9m0;hLBAElPQ=t^*s+lmiY zip*mhdzYnrN4|$ntD>*pS3P16<<09WZe9Bb{aRW&_p#7X z#l|@7(F^3FWW3HpHUIQRu>)=+7etJTZuuDxSVn#!m&vc>3i*v(CD-V+R*YIP(~8+v z+`SbiwqiNWJHjFsvkc^49p1)vW4nu)SvuW;>|5*)M*HcsS61-SZB&4!3Hc4`Nd7yek6P)tF=1n@x42Ig_nHS(l<{U!Rn<+BU+=F(CcHvUH1E9k`w9JRG0*`T5&ge{qEY%LUq#=e45RY zri^OE3G_O2UV#SKVEgJz0-A|(P7Fz@fs127#JNEzrZhy#I!#&W8&W8F8GcIP(zVJdNt&1NjhC)ow;Q|#01LUs}ROzf1qoT1*B z*V8vD8XU5ibfzTUZ^G^uI*+B;t?V{HX=!2nXuTMA^lj|c&h`M#RH3|wYNiHe_(O-- z9qdlzV|P_?rqV)Jcy<^LE5!qYQH`|_iKC$rf=WIS9>tHzVbDi0N<@6@ZI6aO$$ZCL zhJSq+;oloWp(?jPiJ3>{lUVGW$0^TYt?<8w06T+yDrOb_R{DCv#)QoYTNAb?>`8bx zVSmDV2?rAnC7ex6N$j0CGI3Gj>cn>wKTG^gW|TQ(`LfZn>9U7p%VlrMj>*1DVv?*$ z_9RD=E6JVYiCq-3qa8_aB<)N(m~=epbkez`YjQ@;%4Kr7Tp?G<)pCtIS)M6($ZwV3 zCeN1_$V=tp<+bve^11Sd<^PaBCZ8v7ldqJ&Cf_W7Oa8h1w4$3LSut91w_==Pf?}d# zl47!=T2Z6$E9w*h#WclqMNlzIF-Ngf@uFg#;#I|KiZ`N)?TS5$V~XR7ZeO3Kc15`z-A*y;+NEKDJs{W?>yXv2+ z4%JFk^bOSx)w`(t+*dmYc#&qrSZUOf+w}^X=dxhJ??cnxsN4W1b zGL2r7p~=)BK?MO-r=hvbmI?bTXY*m#XWf>#cL@+&V#*tDCI5M;FoE zr|ZzYr2Cg{h3;kD>Zoq5Zk_H`-RruIx=p%Wy0>+EbnoiE(OuA8(*2_QRrj0jn(n$j zNuQ>-=so(|^df~_C_}Yjnqh_EWy5O2TEjZSX2Vv)cEb+CPQyOK0mJ)-j|`t1P8-e` zzBl}6IA_c<+KmpQ%jhwBjeU%Ljs1-SjJFzZGnN=jjl+y(#`}zq8y6dw8P^#%8{aYR zHSRMWFuor(eqcOoJZk*V_;2HJ<4NP!{A2t)em)=L7w}K>i}+{x#r*U9Qofykkzd9y z=U4Kp_%-}1{Ca)^|2n^s-^_32xAQyrUHoqT9eyvrk3Yb_&ws!l=8y6p^8e}aX}|Q~dkp9?zQ^1i3wvzo@mV^Xo|8T_eQNr{=_}IrN7H}I zP-l2DDl;M(3o>5I_%P#QrarT8=D5tcnM*RaXMUJ@Ig8J_HEUAV{aNiEo)7k1(Q|*#AF?&s-s~ya4`u%=duR67y%Ks^dzJQ@)@xp`S9%@lb=i!~Dzo04 zYBrk(mgN&9E^FYKr6KiJRPFWP^$U+#^28+)62r#S{WhC0SMe2$1C>Uh*K-w|^>=jd=O zcN}wk5Y1BE=S?L_@ta8qA zKH*&Ke95`ax!L)S^N{m9=g%(Q)zg*d8sI8&jdWGI#<<40Cb}lOYFtxXQ(d!N_q!f< zEp$EOdd{`P^@8hV*9O;q*J0Net_!Y9u3ubNTvy!*Zll}ePIG6tv)sMi1Koq%gWW~$ zA?|W_mD}g8aZhnar@ELYj~+WC}fnUP6vw73_jTa0^}`Pv|e)Dhv_^3#9@T{w6#qJS;pa%oCmv76=Q4 zXN4ugQlUdwCae%v32TM*!fV1tVT-U`*eUE5_6Ylg_k@GOA>oK{O!!FnSg1K6d?I`% zd?B0?z7|dkXN2#CABA(mdEuh)vv66sB3u=I_aZOjWxYzT%FB6qugRO{HGAP7LEd5B YO7Fd1I1(3M3={um-->^CeR^B}8xr$_r~m)} delta 8196 zcma)B30zdw{y*oQt1PpxTsB1+W?`0lK@_!2L_$$O0t9y)V8qdZ!I=RUq&ZY(y;i$s zS(*l#sg;)XS~N?|EVE5hQ|s9)vwFSK>Q#R$?f<)XK&|)Q=l`F}ow>_7zxDfD&SCSS z?#R7nvW8u|B6()gE9h0U2fc>gKyRW$=za7F`V5^xU#_?#HEPA#I0xt95%^j>8jr_o`gty>r_!;~Hei3;3}T#24s$J2z*I4hGn<($%vP}>Ih$ej zi0L>Sy~O-Z;)#}+2uB8x!Nf|k$tW_0l;DkI0+~cA$YfGOrjqHzN9K?wGLN*91;|U< z$YRn-y2wrBW^x<3o!m)Qko(ALvKFl+-Q+Q{i9A8Jk!Q$DWG8uz>?g021LQ4oh`deS zA@7pI^EOX|?55HU6-_KH#hMw=@P9hG&*nO{$;gYlws= z`WA<4%Bw1a!N?4F=x+?ycmr*|aE+xQ;0=eT#hyu{V9wZJOAAc$2V25*TFqq|@(gh{ zNf*ZvmzYfw^J%{>tfEX8)^}mP3+w1_U0B|;IP<{@GUHH+)xlt( z-Ww{3_?m0{zJ=ni@dHIqLZ`Sl!E7@A;dPn6rOLm=Cmu_fnnY28;rHGTTvN3cfz~Fm zIFXNTL0iGnPoO8!Q)nC7j-E!(pdIL05T^)^7mx@ZFY_<*HI_7cn|yUz5CR;1{em`s zds(ot%p0CR6@1(xzXf;ny#s5PgsXh5-jFvE3;~UjaFIXk1#~sStFjhfbFjtVP#PT5 z07jENLeum}ixB1L0BT4`&__XFYB&PI?F1m~LNBA;vjBs>aIh`Z;FHmiN>gaEI7X4- z*^Bnc2p-!Ojs%_j>u5JkrRgx`9z}B6LG%{LTjpzNldRc|4kE{4l!dJ5 zZS;=hoPIs%UG$!KRxz<8=Ay&s@ShxXQg+Zs=wtLZ^bs8l2N*Z@HwX-zMXfZGW=Tk% zhvuVCsS+G+ORWmEwOkSEtSpp;CQFaS7nGBtR{(MTPy80j{4Sth;Q4RpA~jI^6^>fq z=%6n6&Zf@ERju9zUv0;bTvx`>&METmklfA_Xfyi19Ig^+TAvfBL0qMpGe(vOYp~{z z^5CRC{c$Sj&%<$9e^0Oef~>zdN}Zq4>qwj_Yn(%qC)c<61C6rLu?^eByVYFOh8@TO za4GW3Da0FEESb-Vo!CY5HlR*9h?Y>d97Ouq+*~{aKr|*4@-FVixsn@WGltQ;ZfS-z zI`(WNzJ}(nkIfo|uLC@lwM8UQ%9DHWsAz0HzyKHEF@Wsefa}JE$Z_R%T1V~(!IhCS zba>}6q{7$ZVmuCy$0c|Io`_4~EXR`|Z&kIm`a<@eCPS4!??E z*e@k*u|Ug33+ZS&iH_9aL@j~bcpV)ZgRv8j#PezXqj)wQeH2f*ta=M5UWFInDp~+? zkJ4d19aX2*cXR;!aywla9eKGUTp2=VXUz0%xE;!gl)!p$8(xSUV1&yCsneRG9Ubm` zn3*?Jo;zfSM5XgMUV=ODQefJNZ^ThdaTmS`-;8g;%kZsImGA`uvXMc<%h$OO<4}G+Bd zfbZ@2FZd38C%y~cjqd>sq$C7ClIy_3b7bap94*c)up{}S)lMDn3$*(p{swPM_4}|0 zGm1f?ZhRkd9L4to-BtJj{2*S9AHomgHF)jJ;UKd&;td3wBo2~llE~7vq?&Xc3-8_= zT0%?d1Z{shQB>&%M1kM~_)#F%h_XQdy^KQUf@ss!|Ia-@o$g%)` z1>awT64x&R@P;8W=~Oxm|Lq>?K$q_w|zmq^A*FA~-27Eqd={l{kqaz2B zloUfS8e%9HqUg_v`w0;Dvy7mbbk>Xp04A7BRtajKAl;siMOYNlMMuYwJSiJXislUM)pJH&W3bQt zBV{x)8b%9r`yOtDdtFRi;49?_P+SuH6-o4%OL_%2GA0mM5;_^qR9X+6pf4tfLT;=m zf=pd0rX>xF4rDUGA2BAfO_+f(CNT(K$=4EyOYk0MFy6;x!nX`!#)hjI2a`?b(SN}y zq4hkRe)@ecY#29Sl^M*~l5GIew!zY+w0M}jkV`c>2#asiX z2D^rXA$o=e;P?!HIhTG8=lnhf*8wh>JR0~24PnMGh0NHPDVQP&oy_%2F*A-C&y+9| zn28`q87hG93g!l;Qce-#&D^+}z4RbtqfhBPU4kC^fO&Ke{X1=z86X!knZCMBTglWg zwagS|Dl?6l&dgwDGP9UEW;Wwx>X`|x}0l5ZlrUKfB103=?j}k<{lY}9Ju#A!PWAaFxEM}>9aj-2? z=52wVR;mTnW98%x@Q^Bm5GD*3@Lm@HQKvGE>tfmasvCuI>79$ywX$kv6QllZ~81YV9x)Ds>SGOhJ#jyPJiPLS#VxBE&lpg%- z4bAs8j){PU>f0i|Fg;2?rbp;$J&P1Ru;p9y5JhsfBG=)E(0Eb+K&Tv7NK3`{ZG$SM zUK^HZq>zjy#q@)2Qbew&Z_{_W$v85ezDwW#4;?`0Pic~rT~3ql(OF`#ePG%jD>tda zYsfG;j~=E+#4furdR6`;Q=k9~y-CwSrgckQ?iIOa5-A_ zBUP=zh*m{U(o?k^5G3y5v6hU4Ncb|FZW2L`%Xf!KI~cHlERur5TMrm-4TI7D76Z)^ z(jhOrDqx}46!Nytt%@uT_`1nbB(8I$kQ+%<+~r8dR6OQzT45a`MW)cp^A@t~s({-_ zZY9g5R4LlC2PaAOYG_Vp=M^=_lRIJ#jUFKZau+ChH@Sxd0X*{Blb)qt&{H)XdD4Oh znl&PlmH0t&KUqZ{AP+*%Rq1ODgF)oMu}K;ogDdw{&Po~(~imGWV7gX8T$2*Eo7@$=NfcX|3#jnrA6SF znB&QI@^qiH-DEp*d>E^eSC<;{EM(~f$k(NK7kLp%-*=Fj8{nLKx#G!n{f`AtGStbw z$~E*)Ro6&f23oHG-DHU}*#}gAkm!9|_(qfR#+5M!VvW1Z{04awAXe2H@XIN1134)B z<3)FB1{7H+v4UJ;^Q3A!Jb!p+XYV>FH)n+SqdPnL9)Vbb81LO@@in&wyb%DydwpxN zk>mrKzlj_r$H;N=Avr-#l2i0z7e-we_JP7`2s8ky}G}CQX6di zK>IK6PX$9gOk9`qfqjtwGFsMO5V zaG&|E9`rLZ!|oJN>PH#ce@de-;A;ZYTs`C>J{}tq2TfytXlwi}upsjWiv6MRmF42) z87#vRAlli56T5H%P<7X88-mTP{y?nTVdL2Z@d-X98qX&FcO`*}3aE6*RFps^qZ+m$ zfP%b&W(_oNn^w;nkq4S|Sa(A6c3f(c0Ze&P3xX!Xdb|_1wU%^YHSG`mJ1k7WRy9%= z4ZsS}^HKUeO@!6D8#cXQy)JL+v33f+ma68MRbl~rXchGN0~nX6rlNEl)GBD z|Ab@EX|&9Jmdu^4V`sBoww`TZ8(AMahizi#vVL|RJD&}(&1?%BWLwzf?VX;`{n(Mm`V@Qy!A53*@xJN0mdbTvHjX2SUYyJ5B1h<*pY+c z8ETm8Z})}XXCGnLi3@VGlD}epW-dVwqbKQ5%SXW$br{m=3bIn%mg`nzv3A%y_Jatw zh+pL1T(Ujx#kieuFUP$Sw9Pf;;j9(r9RQ$pCPvU<~&?LAL zMkmxHG$$-i*qrc6!m)&}6PZMNVs@e{(UZt0=7>9nWJY@upHJMAcqs8?;uncOCSFYZ zUBN2)E8-Q23WY+c&?yXx3YF>y%z)gEF9OQQogyt$a-RxN?i~ z3FY>v@_FT}%6F7Ulz&&*RoN<+%A?{{IjUS$o@%HnUo}E?jcSx?v}%lMtg1wHgKC;8 zs_IhRtXig8uDVTiyXp?rO4Vl7cGZ5>5w%&(sZ-Qx>U8x$b%uJdI#Zpcwy7Ozr`oON z)x*^z)n0XzI-+h@FH$d2Q}ylYb?WG2>K*D`>fP!C>NnMIsoz$=tNu{^iTZQ(x9aoi zAJsprFK8GItLdjvYtl6qja!qixmHuGxj{2e)2@kXR%q609@lKqJfYd9d0MkW^PFb4 z=2gvp%>m7unoHVvtyw!j>(Y+UPSn$d8i)9u#n*B#WI)_tS9pzp6&>$Q5l-l#Y0IsHKWP<^3( zg1%HgNk2tDTkq4u_DV#5ll~659`0yf1^LA|4#pd{zv^K12Xh8 z#2FF{!wf}+GQ(7Z&(LHD7+MUihL9m*Xg4e}EHNxKEHf-O+--7soGRy znqu;r7MpH0-D7&lw9&N9^nvM^=|j^=(?_PinLaUnW%}CmFSFL1YPOhj%p=WBX1{s9 zx!D{vM;DmG<~H*}^J4Q&=3C5nnC~**V_sq2Z9ZUr)BKkCZS%Y4_svJlN6p90C(NIk z&zQe3f0dMy-Jfcy0n$%9TgC3a*l?=4!Yp+%#?mH;bFi)pL#99BwW* zj|*@uTq_siB3wJSh+D!fcCM0XANv0 z_`tvy2A&*vF=J3hVaA+{j*K-KuS7FG8H5LA4JsKlf6$$SwhwxLaKFLU!Q%#d2QM4^ z*x&<$zsyX`^ki0KF35Z!bA9HMna^gvl=)ibiOjDvf3zS=yd}}1w5Tmf7MEqDrN~li znQEDCnQ5uB1T1Zqg_gyZ4$Cc;TP@2i_gWsYY_dFOdEau@a?bLda*Tz6|MJMAF{5oK4R^$ZnSQ)?zFyVJ#78Jdd&Kv^(ULcrm|^lI-9{}v*p=_*+$q3 zZR2d!wi??^Tb<2oYp~6;1#B%*TdQrcZJF&p+e+KRw#RMH*TcFWL9lkK51K&pP59Mn{@s zfFr{(*x_)Dbc}J7J1QKNj#|f5N4=xb(d6(uLXL=Iv7^J$>A2MqUF%rqcr<%o_Mz<4 z*=MsaI9aF8X>fARK~9I$;?5uT8bxwCSIy;;joR2vlcW!a+a6adJ-ua?) zuk&N)k1pg&aG6{KT-mOnt}@pYSBL8s*8{FKu8pouuD`loaP4&McI|P!<~ray=sM;4 z%=Mk?7uRpDOKuc(Gj6pz$?b6ubr-oOyKCLk+%w#>+|}S(I-9IJWqRecy@Vqd-izV^?c|# z$zz`I{rEUOfmiS8n18?G!_+&nnPv-~ngZNB7i}&yX-^Ba*0N=v5@*zILxATkm zCHzwUM)>#3P5dqVt^95LU-&!uyZL*0kzd8H=GXA+_-=kH|0I8g|APMq|4o!X&;P*x z#9!cl<9`hC~@ItPTCkzvY3nPVVh3kX@p-?Ci ziiPpQ1ff(Y7b=8Gp<1XBrU=u78Nw`KwoorL3Uh>@us{e29YUvYqp)09B|I!VDLf;< VVhcX0h+*Ul#IBG1_I(R`{} Date: Wed, 19 Nov 2014 00:04:35 +0000 Subject: [PATCH 15/33] Added different cell types for different value types in inspector. Editing does not work. --- FScript.xcodeproj/project.pbxproj | 46 +- FScriptFramework/FSObjectBrowserView.m | 491 +++++++++--------- .../FSObjectInspectorViewController+NonArc.h | 17 + .../FSObjectInspectorViewController+NonArc.m | 73 +++ .../FSObjectInspectorViewController.h | 2 + .../FSObjectInspectorViewController.m | 70 ++- .../FSObjectInspectorViewController.xib | 86 ++- .../FSObjectInspectorViewModelItem.h | 3 + .../FSObjectInspectorViewModelItem.m | 35 ++ FScriptFramework/FSUtils.h | 4 +- FScriptFramework/FSUtils.m | 13 +- 11 files changed, 576 insertions(+), 264 deletions(-) create mode 100644 FScriptFramework/FSObjectInspectorViewController+NonArc.h create mode 100644 FScriptFramework/FSObjectInspectorViewController+NonArc.m diff --git a/FScript.xcodeproj/project.pbxproj b/FScript.xcodeproj/project.pbxproj index 6086734..bb5910c 100644 --- a/FScript.xcodeproj/project.pbxproj +++ b/FScript.xcodeproj/project.pbxproj @@ -2780,6 +2780,25 @@ ED83192D1A1BC2B500290EE2 /* FSUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = ED83191C1A1BC2B500290EE2 /* FSUtils.m */; }; ED83192E1A1BC2B500290EE2 /* FSUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = ED83191C1A1BC2B500290EE2 /* FSUtils.m */; }; ED83192F1A1BC2B500290EE2 /* FSUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = ED83191C1A1BC2B500290EE2 /* FSUtils.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; + ED8319321A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.h in Headers */ = {isa = PBXBuildFile; fileRef = ED8319301A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.h */; }; + ED8319331A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.h in Headers */ = {isa = PBXBuildFile; fileRef = ED8319301A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.h */; }; + ED8319341A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.h in Headers */ = {isa = PBXBuildFile; fileRef = ED8319301A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.h */; }; + ED8319351A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.h in Headers */ = {isa = PBXBuildFile; fileRef = ED8319301A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.h */; }; + ED8319361A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.h in Headers */ = {isa = PBXBuildFile; fileRef = ED8319301A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.h */; }; + ED8319371A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.h in Headers */ = {isa = PBXBuildFile; fileRef = ED8319301A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.h */; }; + ED8319381A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.h in Headers */ = {isa = PBXBuildFile; fileRef = ED8319301A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.h */; }; + ED8319391A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.h in Headers */ = {isa = PBXBuildFile; fileRef = ED8319301A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.h */; }; + ED83193A1A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.h in Headers */ = {isa = PBXBuildFile; fileRef = ED8319301A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.h */; }; + ED83193B1A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8319311A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.m */; }; + ED83193C1A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8319311A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.m */; }; + ED83193D1A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8319311A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.m */; }; + ED83193E1A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8319311A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.m */; }; + ED83193F1A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8319311A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.m */; }; + ED8319401A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8319311A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.m */; }; + ED8319411A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8319311A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.m */; }; + ED8319421A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8319311A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.m */; }; + ED8319431A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8319311A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.m */; }; + ED8319441A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8319311A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.m */; }; EDC2C8DE1A1A943600942777 /* FSDetailedObjectInspector.h in Headers */ = {isa = PBXBuildFile; fileRef = EDC2C8DC1A1A943600942777 /* FSDetailedObjectInspector.h */; }; EDC2C8DF1A1A943600942777 /* FSDetailedObjectInspector.h in Headers */ = {isa = PBXBuildFile; fileRef = EDC2C8DC1A1A943600942777 /* FSDetailedObjectInspector.h */; }; EDC2C8E01A1A943600942777 /* FSDetailedObjectInspector.h in Headers */ = {isa = PBXBuildFile; fileRef = EDC2C8DC1A1A943600942777 /* FSDetailedObjectInspector.h */; }; @@ -4189,7 +4208,9 @@ ED8222E51A19554F00C42C72 /* FSObjectEnumInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSObjectEnumInfo.h; sourceTree = ""; }; ED8222E61A19554F00C42C72 /* FSObjectEnumInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 8; lastKnownFileType = sourcecode.c.objc; path = FSObjectEnumInfo.m; sourceTree = ""; tabWidth = 8; }; ED83191B1A1BC2B500290EE2 /* FSUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 8; lastKnownFileType = sourcecode.c.h; path = FSUtils.h; sourceTree = ""; tabWidth = 8; }; - ED83191C1A1BC2B500290EE2 /* FSUtils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FSUtils.m; sourceTree = ""; }; + ED83191C1A1BC2B500290EE2 /* FSUtils.m */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 8; lastKnownFileType = sourcecode.c.objc; path = FSUtils.m; sourceTree = ""; tabWidth = 8; }; + ED8319301A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "FSObjectInspectorViewController+NonArc.h"; sourceTree = ""; }; + ED8319311A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.m */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 8; lastKnownFileType = sourcecode.c.objc; path = "FSObjectInspectorViewController+NonArc.m"; sourceTree = ""; tabWidth = 8; }; EDC2C8DC1A1A943600942777 /* FSDetailedObjectInspector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSDetailedObjectInspector.h; sourceTree = ""; }; EDC2C8DD1A1A943600942777 /* FSDetailedObjectInspector.m */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 8; lastKnownFileType = sourcecode.c.objc; path = FSDetailedObjectInspector.m; sourceTree = ""; tabWidth = 8; }; EDC2C8EE1A1AA34D00942777 /* FSObjectInspectorBackgroundView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSObjectInspectorBackgroundView.h; sourceTree = ""; }; @@ -5065,6 +5086,7 @@ 0CD4E32500D7DFE17BE9C1BD /* FSObjectBrowserView.m */, 8F4E294C075B8E5600F8DCDB /* FSObjectBrowserViewObjectInfo.h */, 8F4E294D075B8E5600F8DCDB /* FSObjectBrowserViewObjectInfo.m */, + EDC2C8DB1A1A925800942777 /* Object Inspector */, ED8222E51A19554F00C42C72 /* FSObjectEnumInfo.h */, ED8222E61A19554F00C42C72 /* FSObjectEnumInfo.m */, F5EBBE820321029601CA10C6 /* FSObjectFormatter.h */, @@ -5121,7 +5143,6 @@ 8FBB2FF00EEB3467007A3163 /* Number_fscript.h */, 8FBB2FF10EEB3467007A3163 /* Number.m */, 0CD4E38F00D7DFE17BE9C1BD /* NumberPrivate.h */, - EDC2C8DB1A1A925800942777 /* Object Inspector */, F505648002DF417501FE0326 /* Pointer.h */, F505647F02DF417501FE0326 /* Pointer.m */, F5F856C002EB281C01F7E6F0 /* PointerPrivate.h */, @@ -5332,6 +5353,8 @@ ED8222D51A194FD600C42C72 /* FSObjectInspectorViewModelItem.m */, ED3004E51A1A86EF00675D94 /* FSObjectInspectorViewController.h */, ED3004E61A1A86EF00675D94 /* FSObjectInspectorViewController.m */, + ED8319301A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.h */, + ED8319311A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.m */, ED3004E71A1A86EF00675D94 /* FSObjectInspectorViewController.xib */, EDC2C8EE1A1AA34D00942777 /* FSObjectInspectorBackgroundView.h */, EDC2C8EF1A1AA34D00942777 /* FSObjectInspectorBackgroundView.m */, @@ -5524,6 +5547,7 @@ 8F95E3C908034A670030B65C /* FSPredicateTextView.h in Headers */, 8FE7E0EE082AD964008231E8 /* FSCoreDataSample.h in Headers */, 8F936BF5082E8DBA00A04EBF /* FSManagedObjectContextInspector.h in Headers */, + ED83193A1A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.h in Headers */, 8F936C00082E8E6D00A04EBF /* FSNSManagedObjectContext.h in Headers */, 8F917E20095F5DE3000932D0 /* FSObjectBrowserSearchField.h in Headers */, 8F90A2F5096DB0660064F4BC /* FSBlockCompilationResult.h in Headers */, @@ -5708,6 +5732,7 @@ 8F8EA860077F79A000AC1C96 /* FSGenericPointerPrivate.h in Headers */, 8FE9AE35078071CC005B2CC4 /* FSObjectPointer.h in Headers */, 8FE9AE9207807269005B2CC4 /* FSObjectPointerPrivate.h in Headers */, + ED8319321A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.h in Headers */, 8F37AEC6078B7E900083565D /* FSManagedObjectContextInspector.h in Headers */, 8F86923E07F19BA8000D20A4 /* FSObjectBrowserNamedObjectWrapper.h in Headers */, 8F7F4FA007FB274C008E42F4 /* FSInspectorUniquier.h in Headers */, @@ -5834,6 +5859,7 @@ 8F6DA93D055FC71F0050409A /* DOTest.h in Headers */, 8F6DA93E055FC71F0050409A /* FScriptTextView.h in Headers */, 8F6DA93F055FC71F0050409A /* FSObjectBrowserArgumentPanel.h in Headers */, + ED8319331A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.h in Headers */, 8F6DA940055FC71F0050409A /* FSNSProtocolChecker.h in Headers */, 8F6DA941055FC71F0050409A /* FSObjectBrowserToolbar.h in Headers */, 8F6DA942055FC71F0050409A /* FSEvalCommand.h in Headers */, @@ -6060,6 +6086,7 @@ BA223218189FA403002C5B6A /* FSGenericPointerPrivate.h in Headers */, BA223219189FA403002C5B6A /* FSObjectPointer.h in Headers */, BA22321A189FA403002C5B6A /* FSObjectPointerPrivate.h in Headers */, + ED8319341A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.h in Headers */, BA22321B189FA403002C5B6A /* FSManagedObjectContextInspector.h in Headers */, BA22321C189FA403002C5B6A /* FSObjectBrowserNamedObjectWrapper.h in Headers */, BA22321D189FA403002C5B6A /* FSInspectorUniquier.h in Headers */, @@ -6238,6 +6265,7 @@ BA2233D8189FA412002C5B6A /* FSGenericPointerPrivate.h in Headers */, BA2233D9189FA412002C5B6A /* FSObjectPointer.h in Headers */, BA2233DA189FA412002C5B6A /* FSObjectPointerPrivate.h in Headers */, + ED8319361A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.h in Headers */, BA2233DB189FA412002C5B6A /* FSManagedObjectContextInspector.h in Headers */, BA2233DC189FA412002C5B6A /* FSObjectBrowserNamedObjectWrapper.h in Headers */, BA2233DD189FA412002C5B6A /* FSInspectorUniquier.h in Headers */, @@ -6364,6 +6392,7 @@ BA223564189FA429002C5B6A /* DOTest.h in Headers */, BA223565189FA429002C5B6A /* FScriptTextView.h in Headers */, BA223566189FA429002C5B6A /* FSObjectBrowserArgumentPanel.h in Headers */, + ED8319351A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.h in Headers */, BA223567189FA429002C5B6A /* FSNSProtocolChecker.h in Headers */, BA223568189FA429002C5B6A /* FSObjectBrowserToolbar.h in Headers */, BA223569189FA429002C5B6A /* FSEvalCommand.h in Headers */, @@ -6538,6 +6567,7 @@ BA2236AC189FA431002C5B6A /* DOTest.h in Headers */, BA2236AD189FA431002C5B6A /* FScriptTextView.h in Headers */, BA2236AE189FA431002C5B6A /* FSObjectBrowserArgumentPanel.h in Headers */, + ED8319371A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.h in Headers */, BA2236AF189FA431002C5B6A /* FSNSProtocolChecker.h in Headers */, BA2236B0189FA431002C5B6A /* FSObjectBrowserToolbar.h in Headers */, BA2236B1189FA431002C5B6A /* FSEvalCommand.h in Headers */, @@ -6764,6 +6794,7 @@ EDC2C97D1A1AA50D00942777 /* FSGenericPointerPrivate.h in Headers */, EDC2C97E1A1AA50D00942777 /* FSObjectPointer.h in Headers */, EDC2C97F1A1AA50D00942777 /* FSObjectPointerPrivate.h in Headers */, + ED8319381A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.h in Headers */, EDC2C9801A1AA50D00942777 /* FSManagedObjectContextInspector.h in Headers */, EDC2C9811A1AA50D00942777 /* FSObjectBrowserNamedObjectWrapper.h in Headers */, EDC2C9821A1AA50D00942777 /* FSInspectorUniquier.h in Headers */, @@ -6890,6 +6921,7 @@ EDC2CB151A1AA52500942777 /* DOTest.h in Headers */, EDC2CB161A1AA52500942777 /* FScriptTextView.h in Headers */, EDC2CB171A1AA52500942777 /* FSObjectBrowserArgumentPanel.h in Headers */, + ED8319391A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.h in Headers */, EDC2CB181A1AA52500942777 /* FSNSProtocolChecker.h in Headers */, EDC2CB191A1AA52500942777 /* FSObjectBrowserToolbar.h in Headers */, EDC2CB1A1A1AA52500942777 /* FSEvalCommand.h in Headers */, @@ -7742,6 +7774,7 @@ 8F0CBC3C0BDB94AD002B0AD7 /* FSNSValue.m in Sources */, 8F0CBC3D0BDB94AD002B0AD7 /* FSReplacementForCoderForNilInArray.m in Sources */, 8F0CBC3E0BDB94AD002B0AD7 /* FSNamedNumber.m in Sources */, + ED8319441A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.m in Sources */, 8F0CBC3F0BDB94AD002B0AD7 /* FSCollectionInspectorTableView.m in Sources */, 8F0CBC400BDB94AD002B0AD7 /* FSNSSet.m in Sources */, 8F0CBC410BDB94AD002B0AD7 /* FSAttributedStringInspector.m in Sources */, @@ -7930,6 +7963,7 @@ 8F8112F50D85E58200CB3407 /* FSCNCategory.m in Sources */, 8F59CA720D86DD0800D67A78 /* FSCNMessage.m in Sources */, 8F7223820D870C6A00394C99 /* FSCNSuper.m in Sources */, + ED8319431A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.m in Sources */, 8F2E34250D8DB61C00912543 /* FSCNUnaryMessage.m in Sources */, 8F2E34380D8DBF6A00912543 /* FSCNBinaryMessage.m in Sources */, 8F2E34410D8DBFE700912543 /* FSCNKeywordMessage.m in Sources */, @@ -7993,6 +8027,7 @@ 8F6DA889055FC70C0050409A /* CLIView.m in Sources */, 8F6DA88A055FC70C0050409A /* FSCompilationResult.m in Sources */, ED3004EE1A1A86EF00675D94 /* FSObjectInspectorViewController.m in Sources */, + ED83193B1A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.m in Sources */, 8F6DA88B055FC70C0050409A /* CompiledCodeNode.m in Sources */, 8F6DA88C055FC70C0050409A /* FSCompiler.m in Sources */, 8F6DA88D055FC70C0050409A /* FSConstantsInitialization.m in Sources */, @@ -8217,6 +8252,7 @@ 8F553BFA0585222700A92293 /* FSNSValue.m in Sources */, 8F7D7DC0058E32CD00F1B8A8 /* FSReplacementForCoderForNilInArray.m in Sources */, 8F0E3B83059F3DBB003F6CE9 /* FSNamedNumber.m in Sources */, + ED83193C1A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.m in Sources */, 8F60217305A25CDC0004EFF1 /* FSCollectionInspectorTableView.m in Sources */, 8F60F24C05A9FE8B00985FEC /* FSNSSet.m in Sources */, 8FDCCD5305C09F8200747C0A /* FSAttributedStringInspector.m in Sources */, @@ -8304,6 +8340,7 @@ BA223273189FA403002C5B6A /* CLIView.m in Sources */, BA223274189FA403002C5B6A /* FSCompilationResult.m in Sources */, ED3004F01A1A86EF00675D94 /* FSObjectInspectorViewController.m in Sources */, + ED83193D1A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.m in Sources */, BA223275189FA403002C5B6A /* CompiledCodeNode.m in Sources */, BA223276189FA403002C5B6A /* FSCompiler.m in Sources */, BA223277189FA403002C5B6A /* FSConstantsInitialization.m in Sources */, @@ -8463,6 +8500,7 @@ BA223433189FA412002C5B6A /* CLIView.m in Sources */, BA223434189FA412002C5B6A /* FSCompilationResult.m in Sources */, ED3004F21A1A86EF00675D94 /* FSObjectInspectorViewController.m in Sources */, + ED83193F1A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.m in Sources */, BA223435189FA412002C5B6A /* CompiledCodeNode.m in Sources */, BA223436189FA412002C5B6A /* FSCompiler.m in Sources */, BA223437189FA412002C5B6A /* FSConstantsInitialization.m in Sources */, @@ -8687,6 +8725,7 @@ BA223623189FA429002C5B6A /* FSNSValue.m in Sources */, BA223624189FA429002C5B6A /* FSReplacementForCoderForNilInArray.m in Sources */, BA223625189FA429002C5B6A /* FSNamedNumber.m in Sources */, + ED83193E1A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.m in Sources */, BA223626189FA429002C5B6A /* FSCollectionInspectorTableView.m in Sources */, BA223627189FA429002C5B6A /* FSNSSet.m in Sources */, BA223628189FA429002C5B6A /* FSAttributedStringInspector.m in Sources */, @@ -8839,6 +8878,7 @@ BA22376B189FA431002C5B6A /* FSNSValue.m in Sources */, BA22376C189FA431002C5B6A /* FSReplacementForCoderForNilInArray.m in Sources */, BA22376D189FA431002C5B6A /* FSNamedNumber.m in Sources */, + ED8319401A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.m in Sources */, BA22376E189FA431002C5B6A /* FSCollectionInspectorTableView.m in Sources */, BA22376F189FA431002C5B6A /* FSNSSet.m in Sources */, BA223770189FA431002C5B6A /* FSAttributedStringInspector.m in Sources */, @@ -8926,6 +8966,7 @@ EDC2C9DA1A1AA50D00942777 /* CLIView.m in Sources */, EDC2C9DB1A1AA50D00942777 /* FSCompilationResult.m in Sources */, EDC2C9DC1A1AA50D00942777 /* FSObjectInspectorViewController.m in Sources */, + ED8319411A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.m in Sources */, EDC2C9DD1A1AA50D00942777 /* CompiledCodeNode.m in Sources */, EDC2C9DE1A1AA50D00942777 /* FSCompiler.m in Sources */, EDC2C9DF1A1AA50D00942777 /* FSConstantsInitialization.m in Sources */, @@ -9150,6 +9191,7 @@ EDC2CBDE1A1AA52500942777 /* FSNSValue.m in Sources */, EDC2CBDF1A1AA52500942777 /* FSReplacementForCoderForNilInArray.m in Sources */, EDC2CBE01A1AA52500942777 /* FSNamedNumber.m in Sources */, + ED8319421A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.m in Sources */, EDC2CBE11A1AA52500942777 /* FSCollectionInspectorTableView.m in Sources */, EDC2CBE21A1AA52500942777 /* FSNSSet.m in Sources */, EDC2CBE31A1AA52500942777 /* FSAttributedStringInspector.m in Sources */, diff --git a/FScriptFramework/FSObjectBrowserView.m b/FScriptFramework/FSObjectBrowserView.m index 12c9fd5..2745a84 100644 --- a/FScriptFramework/FSObjectBrowserView.m +++ b/FScriptFramework/FSObjectBrowserView.m @@ -43,218 +43,35 @@ @interface ArgumentsWindow : NSWindow @end @implementation ArgumentsWindow -- (BOOL)canBecomeKeyWindow -{ - return YES; -} +- (BOOL)canBecomeKeyWindow { return YES; } @end const int FSObjectBrowserBottomBarHeight = 22; static Class NSManagedObjectClass; +static FSObjectBrowserCell* addRowToMatrix(NSMatrix* matrix); +NSInteger FSCompareClassNamesForAlphabeticalOrder(NSString* className1, NSString* className2, void* context); +static NSInteger FSCompareMethodsNamesForAlphabeticalOrder(NSString* m1, NSString* m2, void* context); +static NSString* printStringForObjectBrowser(id object); +static NSString* humanReadableFScriptTypeDescriptionFromEncodedObjCType(const char* ptr); +static NSString* FScriptObjectTemplateForEncodedObjCType(const char* ptr); -static FSObjectBrowserCell* addRowToMatrix(NSMatrix* matrix) -{ - // Since we reuse cells when filtering (because we use renewRows:columns:), we must - // ensure that they are correctly set-up when reused. This is the job of this function. - - FSObjectBrowserCell* cell; - - // For an unknown reason, the following does not correctly maintain the selection: - // *********** - // int numberOfRows = [matrix numberOfRows]; - // [matrix renewRows:numberOfRows+1 columns:1]; - // cell = [matrix cellAtRow:numberOfRows column:0]; - // *********** - // We do the folowing instead: - // *********** - [matrix addRow]; - cell = [matrix cellAtRow:[matrix numberOfRows] - 1 column:0]; - // *********** - - [cell setLeaf:NO]; - [cell setEnabled:YES]; - [cell setObjectValue:nil]; - [cell setObjectBrowserCellType:FSOBUNKNOWN]; - [cell setClassLabel:nil]; - [cell setLabel:nil]; - [cell setRepresentedObject:nil]; - return cell; -} - - -NSInteger FSCompareClassNamesForAlphabeticalOrder(NSString* className1, NSString* className2, void* context) -{ - if ([className1 hasPrefix:@"%"] && ![className2 hasPrefix:@"%"]) - return NSOrderedDescending; - else if ([className2 hasPrefix:@"%"] && ![className1 hasPrefix:@"%"]) - return NSOrderedAscending; - else - return [className1 caseInsensitiveCompare:className2]; -} - - -static NSInteger FSCompareMethodsNamesForAlphabeticalOrder(NSString* m1, NSString* m2, void* context) -{ - if ([m1 hasPrefix:@"_"] && ![m2 hasPrefix:@"_"]) - return NSOrderedDescending; - else if ([m2 hasPrefix:@"_"] && ![m1 hasPrefix:@"_"]) - return NSOrderedAscending; - else - return [m1 caseInsensitiveCompare:m2]; -} - -static NSString* printStringForObjectBrowser(id object) -{ - NSString* entityName; - NSString* result = nil; - - @try { - if (NSManagedObjectClass && [object isKindOfClass:NSManagedObjectClass] && (entityName = [[object entity] name]) != nil) { - result = [@"Managed object: " stringByAppendingString:entityName]; - } - } - @catch (id exception) - { - result = [NSString stringWithFormat:@"*** Non printable object. The following exception was raised when " - @"trying to get a textual representation of the object: %@", - FSErrorMessageFromException(exception)]; - } - - if (!result) { - result = printStringLimited(object, 1000); - if ([result length] > 510) - result = [[result substringWithRange:NSMakeRange(0, 500)] stringByAppendingString:@" ..."]; - } - - return result; -} - - -static NSString* humanReadableFScriptTypeDescriptionFromEncodedObjCType(const char* ptr) -{ - while (*ptr == 'r' || *ptr == 'n' || *ptr == 'N' || *ptr == 'o' || *ptr == 'O' || *ptr == 'R' || *ptr == 'V') - ptr++; - - if (strcmp(ptr, @encode(id)) == 0) - return @""; - else if (strcmp(ptr, @encode(char)) == 0) - return @""; - else if (strcmp(ptr, @encode(int)) == 0) - return @"int"; - else if (strcmp(ptr, @encode(short)) == 0) - return @"short"; - else if (strcmp(ptr, @encode(long)) == 0) - return @"long"; - else if (strcmp(ptr, @encode(long long)) == 0) - return @"long long"; - else if (strcmp(ptr, @encode(unsigned char)) == 0) - return @"unsigned char"; - else if (strcmp(ptr, @encode(unsigned short)) == 0) - return @"unsigned short"; - else if (strcmp(ptr, @encode(unsigned int)) == 0) - return @"unsigned int"; - else if (strcmp(ptr, @encode(unsigned long)) == 0) - return @"unsigned long"; - else if (strcmp(ptr, @encode(unsigned long long)) == 0) - return @"unsigned long long"; - else if (strcmp(ptr, @encode(float)) == 0) - return @"float"; - else if (strcmp(ptr, @encode(double)) == 0) - return @"double"; - else if (strcmp(ptr, @encode(char*)) == 0) - return @"pointer"; - else if (strcmp(ptr, @encode(SEL)) == 0) - return @"SEL"; - else if (strcmp(ptr, @encode(Class)) == 0) - return @"Class"; - else if (strcmp(ptr, @encode(NSRange)) == 0) - return @"NSRange"; - else if (strcmp(ptr, @encode(NSPoint)) == 0) - return @"NSPoint"; - else if (strcmp(ptr, @encode(NSSize)) == 0) - return @"NSSize"; - else if (strcmp(ptr, @encode(NSRect)) == 0) - return @"NSRect"; - else if (strcmp(ptr, @encode(CGPoint)) == 0) - return @"CGPoint"; - else if (strcmp(ptr, @encode(CGSize)) == 0) - return @"CGSize"; - else if (strcmp(ptr, @encode(CGRect)) == 0) - return @"CGRect"; - else if (strcmp(ptr, @encode(CGAffineTransform)) == 0) - return @"CGAffineTransform"; - else if (strcmp(ptr, @encode(_Bool)) == 0) - return @"boolean"; - else if (*ptr == '{') { - NSMutableString* structName = [NSMutableString string]; - ptr++; - while (isalnum(*ptr) || *ptr == '_') { - [structName appendString:[[[NSString alloc] initWithBytes:ptr length:1 encoding:NSASCIIStringEncoding] autorelease]]; - ptr++; - } - if (*ptr == '=' && ![structName isEqualToString:@""]) - return [@"struct " stringByAppendingString:structName]; - else - return @""; - } - else if (*ptr == '^') { - NSString* pointed = humanReadableFScriptTypeDescriptionFromEncodedObjCType(++ptr); - if ([pointed isEqualToString:@""]) - return @"pointer"; - else - return [@"pointer to " stringByAppendingString:pointed]; - } - else - return @""; -} - -static NSString* FScriptObjectTemplateForEncodedObjCType(const char* ptr) -{ - while (*ptr == 'r' || *ptr == 'n' || *ptr == 'N' || *ptr == 'o' || *ptr == 'O' || *ptr == 'R' || *ptr == 'V') - ptr++; - if (strcmp(ptr, @encode(SEL)) == 0) - return @"#selector"; - else if (strcmp(ptr, @encode(NSRange)) == 0) - return @"NSValue rangeWithLocation:0 length:0"; - else if (strcmp(ptr, @encode(NSPoint)) == 0) - return @"0<>0"; - else if (strcmp(ptr, @encode(NSSize)) == 0) - return @"NSValue sizeWithWidth:0 height:0"; - else if (strcmp(ptr, @encode(NSRect)) == 0) - return @"0<>0 extent:0<>0"; - else if (strcmp(ptr, @encode(CGPoint)) == 0) - return @"0<>0"; - else if (strcmp(ptr, @encode(CGSize)) == 0) - return @"NSValue sizeWithWidth:0 height:0"; - else if (strcmp(ptr, @encode(CGRect)) == 0) - return @"0<>0 extent:0<>0"; - //else if (strcmp(ptr,@encode(_Bool)) == 0) return @""; - else - return @""; -} static NSMutableArray* customButtons = nil; @interface FSObjectBrowserView () // Methods declaration to let the compiler know @property (retain,nonatomic) NSMutableDictionary *columnToRootViewModelItem; - -- (void)fillMatrixForClassesBrowsing:(NSMatrix*)matrix; -- (void)fillMatrixForWorkspaceBrowsing:(NSMatrix*)matrix; -- (void)fillMatrix:(NSMatrix*)matrix withMethodsForObject:(id)object; -- (void)filter; -- (void)inspectAction:(id)sender; -- (id)selectedObject; -- (void)selectMethodNamed:(NSString*)methodName; -- (void)selfAction:(id)sender; -- (void)sendMessage:(SEL)selector withArguments:(FSArray*)arguments; -- (void)setFilterString:(NSString*)theFilterString; -- (void)setTitleOfLastColumn:(NSString*)title; -- (id)validSelectedObject; - @end +/* + * + * + *================================================================================================*/ +#pragma mark - FSObjectBrowserView Implementation +/*================================================================================================== + */ + @implementation FSObjectBrowserView @@ -347,6 +164,56 @@ + (void)saveCustomButtonsSettings:(NSNotification*)aNotification [self saveCustomButtonsSettings]; } + +- (id)initWithFrame:(NSRect)frameRect +{ + self = [super initWithFrame:frameRect]; + if (self) { + CGFloat baseWidth = NSWidth([self bounds]); + CGFloat baseHeight = NSHeight([self bounds]); + CGFloat fontSize; + + fontSize = systemFontSize(); + _columnToRootViewModelItem = [NSMutableDictionary new]; + + browser = [[NSBrowser alloc] initWithFrame:NSMakeRect(0, FSObjectBrowserBottomBarHeight, baseWidth, baseHeight - FSObjectBrowserBottomBarHeight)]; + [browser setMatrixClass:FSObjectBrowserMatrix.class]; + + [browser setCellClass:[FSObjectBrowserCell class]]; + [browser setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable]; + [browser setHasHorizontalScroller:YES]; + [browser setMinColumnWidth:145 + (fontSize * 6)]; + [browser setTakesTitleFromPreviousColumn:NO]; + [browser setTitled:NO]; + [browser setTarget:self]; + [browser setDoubleAction:@selector(doubleClickAction:)]; + [[browser cellPrototype] setFont:[NSFont systemFontOfSize:fontSize]]; + [browser setDelegate:self]; + [browser setFocusRingType:NSFocusRingTypeNone]; + [browser setAutohidesScroller:YES]; + + if ([browser respondsToSelector:@selector(setColumnResizingType:)]) + [browser setColumnResizingType:2]; + + if ([browser respondsToSelector:@selector(setColumnsAutosaveName:)]) + [browser setColumnsAutosaveName:@"Object browser columns autosave configuration"]; + + bottomBarTextDisplay = [[FSObjectBrowserBottomBarTextDisplay alloc] initWithFrame:NSMakeRect(0, 0, baseWidth, FSObjectBrowserBottomBarHeight)]; + + [self addSubview:browser]; + [self addSubview:bottomBarTextDisplay]; + + browsingMode = FSBrowsingWorkspace; + + filterString = @""; + + matrixes = [[NSMutableSet alloc] init]; + } + return self; +} + + + -(void)setRootViewModelObject:(FSObjectInspectorViewModelItem*)viewModel forColumn:(NSUInteger)column { self.columnToRootViewModelItem[@(column)] = viewModel; @@ -1276,53 +1143,6 @@ - (BOOL)hasEmptyFilterString return [filterString isEqualToString:@""]; } -- (id)initWithFrame:(NSRect)frameRect -{ - self = [super initWithFrame:frameRect]; - if (self) { - CGFloat baseWidth = NSWidth([self bounds]); - CGFloat baseHeight = NSHeight([self bounds]); - CGFloat fontSize; - - fontSize = systemFontSize(); - _columnToRootViewModelItem = [NSMutableDictionary new]; - - browser = [[NSBrowser alloc] initWithFrame:NSMakeRect(0, FSObjectBrowserBottomBarHeight, baseWidth, baseHeight - FSObjectBrowserBottomBarHeight)]; - [browser setMatrixClass:FSObjectBrowserMatrix.class]; - - [browser setCellClass:[FSObjectBrowserCell class]]; - [browser setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable]; - [browser setHasHorizontalScroller:YES]; - [browser setMinColumnWidth:145 + (fontSize * 6)]; - [browser setTakesTitleFromPreviousColumn:NO]; - [browser setTitled:NO]; - [browser setTarget:self]; - [browser setDoubleAction:@selector(doubleClickAction:)]; - [[browser cellPrototype] setFont:[NSFont systemFontOfSize:fontSize]]; - [browser setDelegate:self]; - [browser setFocusRingType:NSFocusRingTypeNone]; - [browser setAutohidesScroller:YES]; - - if ([browser respondsToSelector:@selector(setColumnResizingType:)]) - [browser setColumnResizingType:2]; - - if ([browser respondsToSelector:@selector(setColumnsAutosaveName:)]) - [browser setColumnsAutosaveName:@"Object browser columns autosave configuration"]; - - bottomBarTextDisplay = [[FSObjectBrowserBottomBarTextDisplay alloc] initWithFrame:NSMakeRect(0, 0, baseWidth, FSObjectBrowserBottomBarHeight)]; - - [self addSubview:browser]; - [self addSubview:bottomBarTextDisplay]; - - browsingMode = FSBrowsingWorkspace; - - filterString = @""; - - matrixes = [[NSMutableSet alloc] init]; - } - return self; -} - - (void)inspectAction:(id)sender { inspect([self selectedObject], interpreter, [self rootViewModelForColumn:browser.selectedColumn]); @@ -1778,3 +1598,184 @@ - (void)workspaceAction:(id)sender } @end + +static FSObjectBrowserCell* addRowToMatrix(NSMatrix* matrix) +{ + // Since we reuse cells when filtering (because we use renewRows:columns:), we must + // ensure that they are correctly set-up when reused. This is the job of this function. + + FSObjectBrowserCell* cell; + + // For an unknown reason, the following does not correctly maintain the selection: + // *********** + // int numberOfRows = [matrix numberOfRows]; + // [matrix renewRows:numberOfRows+1 columns:1]; + // cell = [matrix cellAtRow:numberOfRows column:0]; + // *********** + // We do the folowing instead: + // *********** + [matrix addRow]; + cell = [matrix cellAtRow:[matrix numberOfRows] - 1 column:0]; + // *********** + + [cell setLeaf:NO]; + [cell setEnabled:YES]; + [cell setObjectValue:nil]; + [cell setObjectBrowserCellType:FSOBUNKNOWN]; + [cell setClassLabel:nil]; + [cell setLabel:nil]; + [cell setRepresentedObject:nil]; + return cell; +} + + +NSInteger FSCompareClassNamesForAlphabeticalOrder(NSString* className1, NSString* className2, void* context) +{ + if ([className1 hasPrefix:@"%"] && ![className2 hasPrefix:@"%"]) + return NSOrderedDescending; + else if ([className2 hasPrefix:@"%"] && ![className1 hasPrefix:@"%"]) + return NSOrderedAscending; + else + return [className1 caseInsensitiveCompare:className2]; +} + + +static NSInteger FSCompareMethodsNamesForAlphabeticalOrder(NSString* m1, NSString* m2, void* context) +{ + if ([m1 hasPrefix:@"_"] && ![m2 hasPrefix:@"_"]) + return NSOrderedDescending; + else if ([m2 hasPrefix:@"_"] && ![m1 hasPrefix:@"_"]) + return NSOrderedAscending; + else + return [m1 caseInsensitiveCompare:m2]; +} + +static NSString* printStringForObjectBrowser(id object) +{ + NSString* entityName; + NSString* result = nil; + + @try { + if (NSManagedObjectClass && [object isKindOfClass:NSManagedObjectClass] && (entityName = [[object entity] name]) != nil) { + result = [@"Managed object: " stringByAppendingString:entityName]; + } + } + @catch (id exception) + { + result = [NSString stringWithFormat:@"*** Non printable object. The following exception was raised when " + @"trying to get a textual representation of the object: %@", + FSErrorMessageFromException(exception)]; + } + + if (!result) { + result = printStringLimited(object, 1000); + if ([result length] > 510) + result = [[result substringWithRange:NSMakeRange(0, 500)] stringByAppendingString:@" ..."]; + } + + return result; +} + + +static NSString* humanReadableFScriptTypeDescriptionFromEncodedObjCType(const char* ptr) +{ + while (*ptr == 'r' || *ptr == 'n' || *ptr == 'N' || *ptr == 'o' || *ptr == 'O' || *ptr == 'R' || *ptr == 'V') + ptr++; + + if (strcmp(ptr, @encode(id)) == 0) + return @""; + else if (strcmp(ptr, @encode(char)) == 0) + return @""; + else if (strcmp(ptr, @encode(int)) == 0) + return @"int"; + else if (strcmp(ptr, @encode(short)) == 0) + return @"short"; + else if (strcmp(ptr, @encode(long)) == 0) + return @"long"; + else if (strcmp(ptr, @encode(long long)) == 0) + return @"long long"; + else if (strcmp(ptr, @encode(unsigned char)) == 0) + return @"unsigned char"; + else if (strcmp(ptr, @encode(unsigned short)) == 0) + return @"unsigned short"; + else if (strcmp(ptr, @encode(unsigned int)) == 0) + return @"unsigned int"; + else if (strcmp(ptr, @encode(unsigned long)) == 0) + return @"unsigned long"; + else if (strcmp(ptr, @encode(unsigned long long)) == 0) + return @"unsigned long long"; + else if (strcmp(ptr, @encode(float)) == 0) + return @"float"; + else if (strcmp(ptr, @encode(double)) == 0) + return @"double"; + else if (strcmp(ptr, @encode(char*)) == 0) + return @"pointer"; + else if (strcmp(ptr, @encode(SEL)) == 0) + return @"SEL"; + else if (strcmp(ptr, @encode(Class)) == 0) + return @"Class"; + else if (strcmp(ptr, @encode(NSRange)) == 0) + return @"NSRange"; + else if (strcmp(ptr, @encode(NSPoint)) == 0) + return @"NSPoint"; + else if (strcmp(ptr, @encode(NSSize)) == 0) + return @"NSSize"; + else if (strcmp(ptr, @encode(NSRect)) == 0) + return @"NSRect"; + else if (strcmp(ptr, @encode(CGPoint)) == 0) + return @"CGPoint"; + else if (strcmp(ptr, @encode(CGSize)) == 0) + return @"CGSize"; + else if (strcmp(ptr, @encode(CGRect)) == 0) + return @"CGRect"; + else if (strcmp(ptr, @encode(CGAffineTransform)) == 0) + return @"CGAffineTransform"; + else if (strcmp(ptr, @encode(_Bool)) == 0) + return @"boolean"; + else if (*ptr == '{') { + NSMutableString* structName = [NSMutableString string]; + ptr++; + while (isalnum(*ptr) || *ptr == '_') { + [structName appendString:[[[NSString alloc] initWithBytes:ptr length:1 encoding:NSASCIIStringEncoding] autorelease]]; + ptr++; + } + if (*ptr == '=' && ![structName isEqualToString:@""]) + return [@"struct " stringByAppendingString:structName]; + else + return @""; + } + else if (*ptr == '^') { + NSString* pointed = humanReadableFScriptTypeDescriptionFromEncodedObjCType(++ptr); + if ([pointed isEqualToString:@""]) + return @"pointer"; + else + return [@"pointer to " stringByAppendingString:pointed]; + } + else + return @""; +} + +static NSString* FScriptObjectTemplateForEncodedObjCType(const char* ptr) +{ + while (*ptr == 'r' || *ptr == 'n' || *ptr == 'N' || *ptr == 'o' || *ptr == 'O' || *ptr == 'R' || *ptr == 'V') + ptr++; + if (strcmp(ptr, @encode(SEL)) == 0) + return @"#selector"; + else if (strcmp(ptr, @encode(NSRange)) == 0) + return @"NSValue rangeWithLocation:0 length:0"; + else if (strcmp(ptr, @encode(NSPoint)) == 0) + return @"0<>0"; + else if (strcmp(ptr, @encode(NSSize)) == 0) + return @"NSValue sizeWithWidth:0 height:0"; + else if (strcmp(ptr, @encode(NSRect)) == 0) + return @"0<>0 extent:0<>0"; + else if (strcmp(ptr, @encode(CGPoint)) == 0) + return @"0<>0"; + else if (strcmp(ptr, @encode(CGSize)) == 0) + return @"NSValue sizeWithWidth:0 height:0"; + else if (strcmp(ptr, @encode(CGRect)) == 0) + return @"0<>0 extent:0<>0"; + //else if (strcmp(ptr,@encode(_Bool)) == 0) return @""; + else + return @""; +} \ No newline at end of file diff --git a/FScriptFramework/FSObjectInspectorViewController+NonArc.h b/FScriptFramework/FSObjectInspectorViewController+NonArc.h new file mode 100644 index 0000000..88795df --- /dev/null +++ b/FScriptFramework/FSObjectInspectorViewController+NonArc.h @@ -0,0 +1,17 @@ +// +// FSObjectInspectorViewController+NonArc.h +// FScript +// +// Created by Anthony Dervish on 18/11/2014. +// +// + +#import +#import "FSObjectInspectorViewController.h" + +@class FSArray, FSBlock; +@interface FSObjectInspectorViewController (NonArc) +- (void)applyBlock:(FSBlock*)block withObject:(id)selectedObject newValue:(id)value; +- (BOOL)sendMessageTo:(id)receiver selectorString:(NSString*)selectorStr arguments:(FSArray*)arguments column:(NSUInteger)column putResultInMatrix:(NSMatrix*)matrix; + +@end diff --git a/FScriptFramework/FSObjectInspectorViewController+NonArc.m b/FScriptFramework/FSObjectInspectorViewController+NonArc.m new file mode 100644 index 0000000..6048d60 --- /dev/null +++ b/FScriptFramework/FSObjectInspectorViewController+NonArc.m @@ -0,0 +1,73 @@ +// +// FSObjectInspectorViewController+NonArc.m +// FScript +// +// Created by Anthony Dervish on 18/11/2014. +// +// + +#import "FSObjectInspectorViewController+NonArc.h" +#import "FSCompiler.h" +#import "FSInterpreter.h" +#import "FSInterpreterPrivate.h" +#import "FSInterpreterResult.h" +#import "FSExecEngine.h" +#import "FSBlock.h" +#import "FSObjectBrowserButtonCtxBlock.h" +#import "FSMiscTools.h" +#import "FSUtils.h" + +@implementation FSObjectInspectorViewController (NonArc) + + +- (void)applyBlock:(FSBlock*)block withObject:(id)selectedObject newValue:(id)value +{ + FSInterpreter* interpreter = self.interpreter; + + @try { + [block compilIfNeeded]; + } + @catch (id exception) + { + NSRunAlertPanel(@"Syntax Error", FSErrorMessageFromException(exception), @"OK", nil, nil, nil); + FSInspectBlocksInCallStackForException(exception); + return; + } + + FSObjectBrowserButtonCtxBlock* contextualizedBlock; + + contextualizedBlock = [interpreter objectBrowserButtonCtxBlockFromString:[block printString]]; + [contextualizedBlock setMaster:block]; + + FSInterpreterResult* interpreterResult = [contextualizedBlock executeWithArguments:@[selectedObject, value]]; + if (!checkInterpreterResult(interpreterResult)) { + return; + } +} + +- (BOOL)sendMessageTo:(id)receiver selectorString:(NSString*)selectorStr arguments:(FSArray*)arguments column:(NSUInteger)column putResultInMatrix:(NSMatrix*)matrix +{ + NSInteger nbarg = [arguments count]; + id args[nbarg + 2]; + SEL selector = [FSCompiler selectorFromString:selectorStr]; + NSInteger i; + id result = nil; // To avoid a warning "might be used uninitialized" + + args[0] = receiver; + args[1] = (__bridge id)(void*)selector; + for (i = 0; i < nbarg; i++) + args[i + 2] = [arguments objectAtIndex:i]; + + @try { + result = sendMsgNoPattern(receiver, selector, nbarg + 2, args, [FSMsgContext msgContext], nil); + } + @catch (id exception) + { + FSInspectBlocksInCallStackForException(exception); + NSRunAlertPanel(@"Error", FSErrorMessageFromException(exception), @"OK", nil, nil, nil); + return NO; + } + + return YES; +} +@end diff --git a/FScriptFramework/FSObjectInspectorViewController.h b/FScriptFramework/FSObjectInspectorViewController.h index 4858e99..0d33687 100644 --- a/FScriptFramework/FSObjectInspectorViewController.h +++ b/FScriptFramework/FSObjectInspectorViewController.h @@ -9,9 +9,11 @@ #import @class FSObjectInspectorViewModelItem; +@class FSInterpreter; @interface FSObjectInspectorViewController : NSViewController @property (assign) IBOutlet NSOutlineView *outlineView; @property (weak,nonatomic) FSObjectInspectorViewModelItem *rootViewModelItem; @property (readonly,nonatomic) NSSize desiredSize; +@property (strong,nonatomic) FSInterpreter *interpreter; @end diff --git a/FScriptFramework/FSObjectInspectorViewController.m b/FScriptFramework/FSObjectInspectorViewController.m index feeb3ad..2e653d6 100644 --- a/FScriptFramework/FSObjectInspectorViewController.m +++ b/FScriptFramework/FSObjectInspectorViewController.m @@ -7,6 +7,9 @@ // #import "FSObjectInspectorViewController.h" +#import "FSObjectInspectorViewController+NonArc.h" +#import "FSObjectInspectorViewModelItem.h" +#import #import @interface FSObjectInspectorViewController () @@ -37,13 +40,70 @@ - (NSSize)desiredSize { NSScrollView* scrollView = self.outlineView.enclosingScrollView; NSSize scrollViewSize = [NSScrollView frameSizeForContentSize:self.outlineView.bounds.size - horizontalScrollerClass:scrollView.horizontalScroller.class - verticalScrollerClass:scrollView.verticalScroller.class - borderType:scrollView.borderType - controlSize:scrollView.horizontalScroller.controlSize - scrollerStyle:scrollView.scrollerStyle]; + horizontalScrollerClass:scrollView.horizontalScroller.class + verticalScrollerClass:scrollView.verticalScroller.class + borderType:scrollView.borderType + controlSize:scrollView.horizontalScroller.controlSize + scrollerStyle:scrollView.scrollerStyle]; scrollViewSize.height += NSHeight(self.outlineView.headerView.bounds); return scrollViewSize; } +/* + * + * + *================================================================================================*/ +#pragma mark - NSOutlineViewDelegate +/*================================================================================================== + */ + +- (NSView*)outlineView:(NSOutlineView*)outlineView viewForTableColumn:(NSTableColumn*)tableColumn item:(id)item +{ + if ([tableColumn.identifier isEqualToString:@"Name"]) { + return [self.outlineView makeViewWithIdentifier:@"Name" owner:self]; + } + NSView *view = nil; + FSObjectInspectorViewModelItem* viewModel = [item representedObject]; + if ([viewModel respondsToSelector:@selector(valueType)]) { + switch (viewModel.valueType) { + case FS_ITEM_HEADER: + view = [self.outlineView makeViewWithIdentifier:@"ObjectInspectorReadOnlyView" owner:self]; + break; + case FS_ITEM_ENUM: + view = [self.outlineView makeViewWithIdentifier:@"ObjectInspectorEnumView" owner:self]; + break; + case FS_ITEM_OPTIONS: + view = [self.outlineView makeViewWithIdentifier:@"ObjectInspectorReadOnlyView" owner:self]; + break; + case FS_ITEM_NUMBER: + view = [self.outlineView makeViewWithIdentifier:@"ObjectInspectorNumberView" owner:self]; + break; + case FS_ITEM_SIZE: + view = [self.outlineView makeViewWithIdentifier:@"ObjectInspectorReadOnlyView" owner:self]; + break; + case FS_ITEM_RECT: + view = [self.outlineView makeViewWithIdentifier:@"ObjectInspectorReadOnlyView" owner:self]; + break; + case FS_ITEM_OBJECT: + view = [self.outlineView makeViewWithIdentifier:@"ObjectInspectorReadOnlyView" owner:self]; + break; + case FS_ITEM_POINT: + view = [self.outlineView makeViewWithIdentifier:@"ObjectInspectorReadOnlyView" owner:self]; + break; + case FS_ITEM_RANGE: + view = [self.outlineView makeViewWithIdentifier:@"ObjectInspectorReadOnlyView" owner:self]; + break; + case FS_ITEM_BOOL: + view = [self.outlineView makeViewWithIdentifier:@"ObjectInspectorReadOnlyView" owner:self]; + break; + + default: + break; + } + } + else { + view = [self.outlineView makeViewWithIdentifier:@"ObjectInspectorReadOnlyView" owner:self]; + } + return view; +} @end diff --git a/FScriptFramework/FSObjectInspectorViewController.xib b/FScriptFramework/FSObjectInspectorViewController.xib index 86346d0..ce57089 100644 --- a/FScriptFramework/FSObjectInspectorViewController.xib +++ b/FScriptFramework/FSObjectInspectorViewController.xib @@ -16,19 +16,19 @@ - + - + - + @@ -41,12 +41,12 @@ - - + + - + @@ -67,7 +67,7 @@ - + @@ -80,12 +80,12 @@ - - + + - + @@ -104,11 +104,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/FScriptFramework/FSObjectInspectorViewModelItem.h b/FScriptFramework/FSObjectInspectorViewModelItem.h index abe8b8e..27781fd 100644 --- a/FScriptFramework/FSObjectInspectorViewModelItem.h +++ b/FScriptFramework/FSObjectInspectorViewModelItem.h @@ -29,4 +29,7 @@ typedef NS_ENUM(NSUInteger, FSInspectorVMValueType) { @property (assign,nonatomic) FSInspectorVMValueType valueType; @property (readonly,nonatomic) NSString *displayValue; @property (assign,nonatomic) CHBidirectionalDictionary *enumBiDict; +@property (readonly,nonatomic) NSArray *enumNames; +@property (readonly,nonatomic) NSArray *enumValues; +@property (nonatomic) NSInteger numValue; @end diff --git a/FScriptFramework/FSObjectInspectorViewModelItem.m b/FScriptFramework/FSObjectInspectorViewModelItem.m index 13ddc04..e7a2304 100644 --- a/FScriptFramework/FSObjectInspectorViewModelItem.m +++ b/FScriptFramework/FSObjectInspectorViewModelItem.m @@ -11,6 +11,19 @@ #import "FSNumber.h" #import "CHBidirectionalDictionary.h" +@interface FSNamedInteger : NSObject +@property NSInteger integer; +@property NSString *name; +@end +@implementation FSNamedInteger ++(instancetype)integer:(NSInteger)num withName:(NSString*)name { + FSNamedInteger *n = [self new]; + n.integer = num; + n.name = name.copy; + return n; +} +@end + @implementation FSObjectInspectorViewModelItem -(NSString *)displayValue @@ -51,8 +64,30 @@ -(NSString *)displayValue } } + +-(NSArray *)enumObjects +{ + NSMutableArray *objs = [NSMutableArray new]; + for (NSNumber *num in self.enumBiDict.allKeys) { + [objs addObject:[FSNamedInteger integer:num.integerValue withName:self.enumBiDict[num]]]; + } + return objs; +} + + +-(NSInteger)numValue +{ + return (NSUInteger)[self.value doubleValue]; +} + +-(void)setNumValue:(NSInteger)value +{ + self.value = [FSNumber numberWithDouble:value]; +} + +(NSSet *)keyPathsForValuesAffectingDisplayValue { return [NSSet setWithObject:@"value"]; } + @end diff --git a/FScriptFramework/FSUtils.h b/FScriptFramework/FSUtils.h index 2d727e6..46dd65f 100644 --- a/FScriptFramework/FSUtils.h +++ b/FScriptFramework/FSUtils.h @@ -25,4 +25,6 @@ static inline NSRect rectWithSize(NSSize size) static inline NSSize addSizes(NSSize size1, NSSize size2) { return NSMakeSize(size1.width + size2.width, size1.height + size2.height); -} \ No newline at end of file +} +@class FSInterpreterResult; +BOOL checkInterpreterResult(FSInterpreterResult *result); \ No newline at end of file diff --git a/FScriptFramework/FSUtils.m b/FScriptFramework/FSUtils.m index 7d8d260..9646780 100644 --- a/FScriptFramework/FSUtils.m +++ b/FScriptFramework/FSUtils.m @@ -7,7 +7,18 @@ // #import "FSUtils.h" +#import "FSInterpreterResult.h" +#import @implementation FSUtils - @end + +BOOL checkInterpreterResult(FSInterpreterResult* interpreterResult) +{ + if (![interpreterResult isOK]) { + NSRunAlertPanel(@"Error", [interpreterResult errorMessage], @"OK", nil, nil, nil); + [interpreterResult inspectBlocksInCallStack]; + return NO; + } + return YES; +} From 40a7be1c00871135e0d3ae0f209f4fa6deace8d6 Mon Sep 17 00:00:00 2001 From: Ant Date: Wed, 19 Nov 2014 12:49:00 +0000 Subject: [PATCH 16/33] Tweaks --- .../FSObjectInspectorViewController.m | 2 +- .../FSObjectInspectorViewController.xib | 52 ++++----- .../FSObjectInspectorViewModelItem.m | 105 ++++++++++-------- 3 files changed, 88 insertions(+), 71 deletions(-) diff --git a/FScriptFramework/FSObjectInspectorViewController.m b/FScriptFramework/FSObjectInspectorViewController.m index 2e653d6..6277b1b 100644 --- a/FScriptFramework/FSObjectInspectorViewController.m +++ b/FScriptFramework/FSObjectInspectorViewController.m @@ -94,7 +94,7 @@ - (NSView*)outlineView:(NSOutlineView*)outlineView viewForTableColumn:(NSTableCo view = [self.outlineView makeViewWithIdentifier:@"ObjectInspectorReadOnlyView" owner:self]; break; case FS_ITEM_BOOL: - view = [self.outlineView makeViewWithIdentifier:@"ObjectInspectorReadOnlyView" owner:self]; + view = [self.outlineView makeViewWithIdentifier:@"ObjectInspectorEnumView" owner:self]; break; default: diff --git a/FScriptFramework/FSObjectInspectorViewController.xib b/FScriptFramework/FSObjectInspectorViewController.xib index ce57089..dd311c2 100644 --- a/FScriptFramework/FSObjectInspectorViewController.xib +++ b/FScriptFramework/FSObjectInspectorViewController.xib @@ -28,7 +28,7 @@ - + @@ -42,7 +42,7 @@ - + @@ -67,7 +67,7 @@ - + @@ -81,7 +81,7 @@ - + @@ -105,39 +105,39 @@ - + - - - - + + + + + + + + + + + - - + + - - + + - - - - - - - - + + + + - - - - + @@ -206,7 +206,7 @@ - + diff --git a/FScriptFramework/FSObjectInspectorViewModelItem.m b/FScriptFramework/FSObjectInspectorViewModelItem.m index e7a2304..37fccc9 100644 --- a/FScriptFramework/FSObjectInspectorViewModelItem.m +++ b/FScriptFramework/FSObjectInspectorViewModelItem.m @@ -13,79 +13,96 @@ @interface FSNamedInteger : NSObject @property NSInteger integer; -@property NSString *name; +@property NSString* name; @end @implementation FSNamedInteger -+(instancetype)integer:(NSInteger)num withName:(NSString*)name { - FSNamedInteger *n = [self new]; + ++ (instancetype)integer:(NSInteger)num withName:(NSString*)name +{ + FSNamedInteger* n = [self new]; n.integer = num; n.name = name.copy; return n; } @end +static NSArray *sBOOLEnum = nil; @implementation FSObjectInspectorViewModelItem --(NSString *)displayValue ++(void)initialize { - switch (self.valueType) { - case FS_ITEM_HEADER: - return self.name; - break; - case FS_ITEM_ENUM: - return [self.value description]; - break; - case FS_ITEM_OPTIONS: - return [self.value description]; - break; - case FS_ITEM_NUMBER: - return [self.value description]; - break; - case FS_ITEM_SIZE: - return NSStringFromSize([(NSValue*)self.value sizeValue]); - break; - case FS_ITEM_RECT: - return NSStringFromRect([(NSValue*)self.value rectValue]); - break; - case FS_ITEM_OBJECT: - return [self.value description]; - break; - case FS_ITEM_POINT: - return NSStringFromPoint([(NSValue*)self.value pointValue]); - break; - case FS_ITEM_RANGE: - return NSStringFromRange([(NSValue*)self.value rangeValue]); - break; - case FS_ITEM_BOOL: - return [self.value description]; - break; - default: - break; + if (self == FSObjectInspectorViewModelItem.class) { + sBOOLEnum = @[[FSNamedInteger integer:NO withName:@"NO"], + [FSNamedInteger integer:YES withName:@"YES"]]; } +} +- (NSString*)displayValue +{ + switch (self.valueType) { + case FS_ITEM_HEADER: + return self.name; + break; + case FS_ITEM_ENUM: + return [self.value description]; + break; + case FS_ITEM_OPTIONS: + return [self.value description]; + break; + case FS_ITEM_NUMBER: + return [self.value description]; + break; + case FS_ITEM_SIZE: + return NSStringFromSize([(NSValue*)self.value sizeValue]); + break; + case FS_ITEM_RECT: + return NSStringFromRect([(NSValue*)self.value rectValue]); + break; + case FS_ITEM_OBJECT: + return [self.value description]; + break; + case FS_ITEM_POINT: + return NSStringFromPoint([(NSValue*)self.value pointValue]); + break; + case FS_ITEM_RANGE: + return NSStringFromRange([(NSValue*)self.value rangeValue]); + break; + case FS_ITEM_BOOL: + return [self.value description]; + break; + default: + break; + } } --(NSArray *)enumObjects +- (NSArray*)enumObjects { - NSMutableArray *objs = [NSMutableArray new]; - for (NSNumber *num in self.enumBiDict.allKeys) { - [objs addObject:[FSNamedInteger integer:num.integerValue withName:self.enumBiDict[num]]]; + NSArray* objs = nil; + if (self.valueType == FS_ITEM_ENUM) { + NSMutableArray *enumObjs = [NSMutableArray new]; + for (NSNumber* num in self.enumBiDict.allKeys) { + [enumObjs addObject:[FSNamedInteger integer:num.integerValue withName:self.enumBiDict[num]]]; + } + objs = enumObjs; + } + else if (self.valueType == FS_ITEM_BOOL) { + objs = sBOOLEnum; } return objs; } --(NSInteger)numValue +- (NSInteger)numValue { return (NSUInteger)[self.value doubleValue]; } --(void)setNumValue:(NSInteger)value +- (void)setNumValue:(NSInteger)value { self.value = [FSNumber numberWithDouble:value]; } -+(NSSet *)keyPathsForValuesAffectingDisplayValue ++ (NSSet*)keyPathsForValuesAffectingDisplayValue { return [NSSet setWithObject:@"value"]; } From 4b3238c206a52d27adccfb3ea4f37f456f57f369 Mon Sep 17 00:00:00 2001 From: Ant Date: Wed, 19 Nov 2014 13:09:01 +0000 Subject: [PATCH 17/33] Added getter and setter to object info --- .../FSObjectBrowserViewObjectInfo.m | 298 +++++++++--------- .../FSObjectInspectorViewModelItem.h | 2 + 2 files changed, 152 insertions(+), 148 deletions(-) diff --git a/FScriptFramework/FSObjectBrowserViewObjectInfo.m b/FScriptFramework/FSObjectBrowserViewObjectInfo.m index 86c8c2c..109a0d1 100644 --- a/FScriptFramework/FSObjectBrowserViewObjectInfo.m +++ b/FScriptFramework/FSObjectBrowserViewObjectInfo.m @@ -149,7 +149,7 @@ - (void)fillMatrix:(NSMatrix*)m column:(NSUInteger)col withObject:(id)object @implementation FSObjectBrowserViewObjectHelper -- (void)addObject:(id)object valueType:(FSInspectorVMValueType)valueType withLabel:(NSString*)label toMatrix:(NSMatrix*)matrix enumBiDict:(CHBidirectionalDictionary*)enumBiDict notNil:(BOOL)notNil +- (void)addObject:(id)object valueType:(FSInspectorVMValueType)valueType getter:(NSString*)getter setter:(NSString*)setter withLabel:(NSString*)label toMatrix:(NSMatrix*)matrix enumBiDict:(CHBidirectionalDictionary*)enumBiDict notNil:(BOOL)notNil { @try { if (!notNil || object) { @@ -159,6 +159,8 @@ - (void)addObject:(id)object valueType:(FSInspectorVMValueType)valueType withLab item.valueType = valueType; item.value = object; item.enumBiDict = enumBiDict; + item.getter = getter; + item.setter = setter; [self.rootViewModelItem.mutableChildNodes addObject:item]; } } @@ -169,10 +171,10 @@ - (void)addObject:(id)object valueType:(FSInspectorVMValueType)valueType withLab } - (void)addObject:(id)object valueType:(FSInspectorVMValueType)valueType withLabel:(NSString*)label toMatrix:(NSMatrix*)matrix notNil:(BOOL)notNil { - [self addObject:object valueType:valueType withLabel:label toMatrix:matrix enumBiDict:nil notNil:notNil]; + [self addObject:object valueType:valueType getter:nil setter:nil withLabel:label toMatrix:matrix enumBiDict:nil notNil:notNil]; } -#define ADD_ENUM(ENUM, OBJECT, LABEL) \ - [self addObject:objectFrom ## ENUM(OBJECT) valueType:FS_ITEM_ENUM withLabel:(LABEL) toMatrix:m enumBiDict:FSObjectEnumInfo.optionsFor ## ENUM notNil:NO]; +#define ADD_ENUM(ENUM, OBJECT, GETTER, SETTER, LABEL) \ + [self addObject:objectFrom ## ENUM(OBJECT) valueType:FS_ITEM_ENUM getter:@#GETTER setter:@#SETTER withLabel:(LABEL) toMatrix:m enumBiDict:FSObjectEnumInfo.optionsFor ## ENUM notNil:NO]; #define ADD_OBJECT(OBJECT, LABEL) \ @try { \ @@ -693,7 +695,7 @@ - (void)addNSAlert:(id)object NSAlert* o = object; ADD_CLASS_LABEL(@"NSAlert Info"); ADD_OBJECT([o accessoryView], @"Accessory view") - ADD_ENUM(AlertStyle, [o alertStyle], @"Alert style") + ADD_ENUM(AlertStyle, [o alertStyle], alertStyle, setalertStyle, @"Alert style") ADD_OBJECTS([o buttons], @"Buttons") ADD_OBJECT_NOT_NIL([o delegate], @"Delegate") ADD_OBJECT_NOT_NIL([o helpAnchor], @"Help anchor") @@ -719,8 +721,8 @@ - (void)addNSAnimation:(id)object NSAnimation* o = object; ADD_CLASS_LABEL(@"NSAnimation Info"); - ADD_ENUM(AnimationBlockingMode, [o animationBlockingMode], @"Animation blocking mode") - ADD_ENUM(AnimationCurve, [o animationCurve], @"Animation curve") + ADD_ENUM(AnimationBlockingMode, [o animationBlockingMode], animationBlockingMode, setanimationBlockingMode, @"Animation blocking mode") + ADD_ENUM(AnimationCurve, [o animationCurve], animationCurve, setanimationCurve, @"Animation curve") ADD_NUMBER([o currentProgress], @"Current progress") ADD_NUMBER([o currentValue], @"Current value") ADD_OBJECT([o delegate], @"Delegate") @@ -747,7 +749,7 @@ - (void)addNSAttributedString:(id)object //ADD_OBJECT( [o attributeRuns] ,@"Attribute runs") ADD_NUMBER([o changeInLength], @"Change in length") ADD_OBJECT_NOT_NIL([o delegate], @"Delegate") - ADD_ENUM(TextStorageEditedOptions, [o editedMask], @"Edited mask") + ADD_ENUM(TextStorageEditedOptions, [o editedMask], editedMask, seteditedMask, @"Edited mask") ADD_RANGE([o editedRange], @"Edited range") ADD_BOOL([o fixesAttributesLazily], @"Fixes attributes lazily") ADD_OBJECT([o font], @"Font") @@ -769,11 +771,11 @@ - (void)addNSBezierPath:(id)object ADD_NUMBER([o elementCount], @"Element count") ADD_NUMBER([o flatness], @"Flatness") ADD_BOOL([o isEmpty], @"Is empty") - ADD_ENUM(LineCapStyle, [o lineCapStyle], @"Line cap style") - ADD_ENUM(LineJoinStyle, [o lineJoinStyle], @"Line join style") + ADD_ENUM(LineCapStyle, [o lineCapStyle], lineCapStyle, setlineCapStyle, @"Line cap style") + ADD_ENUM(LineJoinStyle, [o lineJoinStyle], lineJoinStyle, setlineJoinStyle, @"Line join style") ADD_NUMBER([o lineWidth], @"Line width") ADD_NUMBER([o miterLimit], @"Miter limit") - ADD_ENUM(WindingRule, [o windingRule], @"Winding rule") + ADD_ENUM(WindingRule, [o windingRule], windingRule, setwindingRule, @"Winding rule") } - (void)addNSCell:(id)object @@ -785,13 +787,13 @@ - (void)addNSCell:(id)object NSPopUpButtonCell* o = object; ADD_CLASS_LABEL(@"NSPopUpButtonCell Info"); ADD_BOOL([o altersStateOfSelectedItem], @"Alters state of selected item") - ADD_ENUM(PopUpArrowPosition, [o arrowPosition], @"Arrow position") + ADD_ENUM(PopUpArrowPosition, [o arrowPosition], arrowPosition, setarrowPosition, @"Arrow position") ADD_BOOL([o autoenablesItems], @"Autoenables Items") ADD_NUMBER([o indexOfSelectedItem], @"Index of selected item") ADD_OBJECTS([o itemArray], @"Item array") ADD_NUMBER([o numberOfItems], @"Number of items") ADD_OBJECT([o objectValue], @"Object value") - ADD_ENUM(RectEdge, [o preferredEdge], @"Preferred edge") + ADD_ENUM(RectEdge, [o preferredEdge], preferredEdge, setpreferredEdge, @"Preferred edge") ADD_BOOL([o pullsDown], @"Pulls down") ADD_OBJECT([o selectedItem], @"Selected item") ADD_BOOL([o usesItemFromMenu], @"Uses item from menu") @@ -818,17 +820,17 @@ - (void)addNSCell:(id)object ADD_OBJECT([o attributedAlternateTitle], @"Attributed alternate title") ADD_OBJECT([o attributedTitle], @"Attributed title") ADD_OBJECT([o backgroundColor], @"Background color") - ADD_ENUM(BezelStyle, [o bezelStyle], @"Bezel style") - ADD_ENUM(GradientType, [o gradientType], @"Gradient type") - ADD_ENUM(CellStyleMask, [o highlightsBy], @"Highlights by") + ADD_ENUM(BezelStyle, [o bezelStyle], bezelStyle, setbezelStyle, @"Bezel style") + ADD_ENUM(GradientType, [o gradientType], gradientType, setgradientType, @"Gradient type") + ADD_ENUM(CellStyleMask, [o highlightsBy], highlightsBy, sethighlightsBy, @"Highlights by") ADD_BOOL([o imageDimsWhenDisabled], @"Image dims when disabled") - ADD_ENUM(CellImagePosition, [o imagePosition], @"Image position") - ADD_ENUM(ImageScaling, [o imageScaling], @"Image scaling") + ADD_ENUM(CellImagePosition, [o imagePosition], imagePosition, setimagePosition, @"Image position") + ADD_ENUM(ImageScaling, [o imageScaling], imageScaling, setimageScaling, @"Image scaling") ADD_BOOL([o isTransparent], @"Is transparent") ADD_OBJECT_NOT_NIL([o keyEquivalentFont], @"Key equivalent font") - ADD_ENUM(EventModifierFlags, [o keyEquivalentModifierMask] & NSDeviceIndependentModifierFlagsMask, @"Key equivalent modifier mask") + ADD_ENUM(EventModifierFlags, [o keyEquivalentModifierMask] & NSDeviceIndependentModifierFlagsMask, keyEquivalentModifierMask, setKeyEquivalentModifierMask, @"Key equivalent modifier mask") ADD_BOOL([o showsBorderOnlyWhileMouseInside], @"Shows border only while mouse inside") - ADD_ENUM(CellStyleMask, [o showsStateBy], @"Shows state by") + ADD_ENUM(CellStyleMask, [o showsStateBy], showsStateBy, setshowsStateBy, @"Shows state by") ADD_OBJECT_NOT_NIL([o sound], @"Sound") ADD_OBJECT([o title], @"Title") } @@ -837,9 +839,9 @@ - (void)addNSCell:(id)object ADD_CLASS_LABEL(@"NSDatePickerCell Info"); ADD_OBJECT([o backgroundColor], @"Background color") ADD_OBJECT([o calendar], @"Calendar") - ADD_ENUM(DatePickerElementFlags, [o datePickerElements], @"Date picker elements") - ADD_ENUM(DatePickerMode, [o datePickerMode], @"Date picker mode") - ADD_ENUM(DatePickerStyle, [o datePickerStyle], @"Date picker style") + ADD_ENUM(DatePickerElementFlags, [o datePickerElements], datePickerElements, setdatePickerElements, @"Date picker elements") + ADD_ENUM(DatePickerMode, [o datePickerMode], datePickerMode, setdatePickerMode, @"Date picker mode") + ADD_ENUM(DatePickerStyle, [o datePickerStyle], datePickerStyle, setdatePickerStyle, @"Date picker style") ADD_OBJECT([o dateValue], @"Date value") ADD_OBJECT_NOT_NIL([o delegate], @"Delegate") ADD_BOOL([o drawsBackground], @"Draws background") @@ -856,8 +858,8 @@ - (void)addNSCell:(id)object ADD_OBJECT([o attributedTitle], @"Attributed title") ADD_OBJECT_NOT_NIL([o placeholderAttributedString], @"Placeholder attributed string") ADD_OBJECT_NOT_NIL([o placeholderString], @"Placeholder string") - ADD_ENUM(TextAlignment, [o titleAlignment], @"Title alignment") - ADD_ENUM(WritingDirection, [o titleBaseWritingDirection], @"Title base writing direction") + ADD_ENUM(TextAlignment, [o titleAlignment], titleAlignment, settitleAlignment, @"Title alignment") + ADD_ENUM(WritingDirection, [o titleBaseWritingDirection], titleBaseWritingDirection, settitleBaseWritingDirection, @"Title base writing direction") ADD_OBJECT([o titleFont], @"Title font") ADD_NUMBER([o titleWidth], @"Title width") } @@ -865,7 +867,7 @@ - (void)addNSCell:(id)object NSLevelIndicatorCell* o = object; ADD_CLASS_LABEL(@"NSLevelIndicatorCell Info"); ADD_NUMBER([o criticalValue], @"Critical value") - ADD_ENUM(LevelIndicatorStyle, [o levelIndicatorStyle], @"Level indicator style") + ADD_ENUM(LevelIndicatorStyle, [o levelIndicatorStyle], levelIndicatorStyle, setlevelIndicatorStyle, @"Level indicator style") ADD_NUMBER([o maxValue], @"Max value") ADD_NUMBER([o minValue], @"Min value") ADD_NUMBER([o numberOfMajorTickMarks], @"Number of major tick marks") @@ -881,7 +883,7 @@ - (void)addNSCell:(id)object ADD_OBJECT([o delegate], @"Delegate") ADD_SEL([o doubleAction], @"Double action") ADD_OBJECTS([o pathComponentCells], @"Path component cells") - ADD_ENUM(PathStyle, [o pathStyle], @"Path style") + ADD_ENUM(PathStyle, [o pathStyle], pathStyle, setpathStyle, @"Path style") ADD_OBJECT_NOT_NIL([o placeholderAttributedString], @"Placeholder attributed string") ADD_OBJECT_NOT_NIL([o placeholderString], @"Placeholder string") ADD_OBJECT_NOT_NIL([o URL], @"URL") @@ -893,7 +895,7 @@ - (void)addNSCell:(id)object ADD_NUMBER(segmentCount, @"Segment count") ADD_NUMBER([o selectedSegment], @"Selected segment") - ADD_ENUM(SegmentSwitchTracking, [o trackingMode], @"Tracking mode") + ADD_ENUM(SegmentSwitchTracking, [o trackingMode], trackingMode, settrackingMode, @"Tracking mode") for (NSInteger i = 0; i < segmentCount; i++) { ADD_OBJECT_NOT_NIL([o imageForSegment:i], ([NSString stringWithFormat:@"Image for segment %ld", (long)i])) @@ -917,7 +919,7 @@ - (void)addNSCell:(id)object ADD_NUMBER([o maxValue], @"Max value") ADD_NUMBER([o minValue], @"Min value") ADD_NUMBER([o numberOfTickMarks], @"Number of tick marks") - ADD_ENUM(SliderType, [o sliderType], @"Slider type") + ADD_ENUM(SliderType, [o sliderType], sliderType, setsliderType, @"Slider type") ADD_OBJECT(objectFromTickMarkPosition([o tickMarkPosition], [(NSSliderCell*)o isVertical] == 1), @"Tick mark position") ADD_RECT([o trackRect], @"Track rect") } @@ -973,14 +975,14 @@ - (void)addNSCell:(id)object ADD_NUMBER([o completionDelay], @"Completion delay") ADD_OBJECT_NOT_NIL([o delegate], @"Delegate") ADD_OBJECT([o tokenizingCharacterSet], @"Tokenizing character set") - ADD_ENUM(TokenStyle, [o tokenStyle], @"Token style") + ADD_ENUM(TokenStyle, [o tokenStyle], tokenStyle, settokenStyle, @"Token style") } NSTextFieldCell* o = object; ADD_CLASS_LABEL(@"NSTextFieldCell Info"); ADD_OBJECTS([o allowedInputSourceLocales], @"Allowed input source locales") ADD_OBJECT([o backgroundColor], @"Background color") - ADD_ENUM(TextFieldBezelStyle, [o bezelStyle], @"Bezel style") + ADD_ENUM(TextFieldBezelStyle, [o bezelStyle], bezelStyle, setbezelStyle, @"Bezel style") ADD_BOOL([o drawsBackground], @"Draws background") ADD_OBJECT_NOT_NIL([o placeholderAttributedString], @"Placeholder attributed string") ADD_OBJECT_NOT_NIL([o placeholderString], @"Placeholder string") @@ -997,8 +999,8 @@ - (void)addNSCell:(id)object else if ([object isKindOfClass:[NSImageCell class]]) { NSImageCell* o = object; ADD_CLASS_LABEL(@"NSImageCell Info"); - ADD_ENUM(ImageAlignment, [o imageAlignment], @"Image alignment") - ADD_ENUM(ImageScaling, [o imageScaling], @"Image scaling") + ADD_ENUM(ImageAlignment, [o imageAlignment], imageAlignment, setimageAlignment, @"Image alignment") + ADD_ENUM(ImageScaling, [o imageScaling], imageScaling, setimageScaling, @"Image scaling") } else if ([object isKindOfClass:[NSTextAttachmentCell class]]) { NSTextAttachmentCell* o = object; @@ -1013,24 +1015,24 @@ - (void)addNSCell:(id)object ADD_CLASS_LABEL(@"NSCell Info"); ADD_BOOL([o acceptsFirstResponder], @"Accepts first responder") ADD_SEL_NOT_NULL([o action], @"Action") - ADD_ENUM(TextAlignment, [o alignment], @"Alignment") + ADD_ENUM(TextAlignment, [o alignment], alignment, setalignment, @"Alignment") ADD_BOOL([o allowsEditingTextAttributes], @"Allows editing text attributes") ADD_BOOL([o allowsMixedState], @"Allows mixed state") ADD_BOOL([o allowsUndo], @"Allows undo") //ADD_OBJECT( [o attributedStringValue] ,@"Attributed string value") - ADD_ENUM(BackgroundStyle, [o backgroundStyle], @"Background style") - ADD_ENUM(WritingDirection, [o baseWritingDirection], @"Base writing direction") + ADD_ENUM(BackgroundStyle, [o backgroundStyle], backgroundStyle, setbackgroundStyle, @"Background style") + ADD_ENUM(WritingDirection, [o baseWritingDirection], baseWritingDirection, setbaseWritingDirection, @"Base writing direction") ADD_SIZE([o cellSize], @"Cell size") - ADD_ENUM(ControlSize, [o controlSize], @"Control size") - ADD_ENUM(ControlTint, [o controlTint], @"Control tint") + ADD_ENUM(ControlSize, [o controlSize], controlSize, setcontrolSize, @"Control size") + ADD_ENUM(ControlTint, [o controlTint], controlTint, setcontrolTint, @"Control tint") ADD_OBJECT_NOT_NIL([o controlView], @"Control view") - ADD_ENUM(FocusRingType, [o focusRingType], @"Focus ring type") + ADD_ENUM(FocusRingType, [o focusRingType], focusRingType, setfocusRingType, @"Focus ring type") ADD_OBJECT([o font], @"Font") ADD_OBJECT_NOT_NIL([o formatter], @"Formatter") ADD_OBJECT_NOT_NIL([o image], @"Image") if ([(NSCell*)o type] == NSTextCellType) ADD_BOOL([o importsGraphics], @"Imports graphics") - ADD_ENUM(BackgroundStyle, [o interiorBackgroundStyle], @"Interior background style") + ADD_ENUM(BackgroundStyle, [o interiorBackgroundStyle], interiorBackgroundStyle, setinteriorBackgroundStyle, @"Interior background style") ADD_BOOL([o isBezeled], @"Is bezeled") ADD_BOOL([o isBordered], @"Is bordered") ADD_BOOL([o isContinuous], @"Is continuous") @@ -1042,22 +1044,22 @@ - (void)addNSCell:(id)object ADD_BOOL([o isSelectable], @"Is selectable") if ([[o keyEquivalent] length] != 0) ADD_OBJECT([o keyEquivalent], @"Key equivalent") - ADD_ENUM(LineBreakMode, [o lineBreakMode], @"Line break mode") + ADD_ENUM(LineBreakMode, [o lineBreakMode], lineBreakMode, setlineBreakMode, @"Line break mode") ADD_OBJECT_NOT_NIL([o menu], @"Menu") if ([[o mnemonic] length] != 0) ADD_OBJECT([o mnemonic], @"Mnemonic") if ([o mnemonicLocation] != NSNotFound) ADD_NUMBER([o mnemonicLocation], @"Mnemonic location") - ADD_ENUM(CellStateValue, [o nextState], @"Next state") + ADD_ENUM(CellStateValue, [o nextState], nextState, setnextState, @"Next state") //ADD_OBJECT( [o objectValue] ,@"Object value") ADD_BOOL([o refusesFirstResponder], @"Refuses first responder") ADD_OBJECT_NOT_NIL([o representedObject], @"Represented object") ADD_BOOL([o sendsActionOnEndEditing], @"Sends action on end editing") ADD_BOOL([o showsFirstResponder], @"Shows first responder") - ADD_ENUM(CellStateValue, [o state], @"State") + ADD_ENUM(CellStateValue, [o state], state, setstate, @"State") ADD_NUMBER([o tag], @"Tag") ADD_OBJECT_NOT_NIL([o target], @"Target") - ADD_ENUM(CellType, [(NSCell*)o type], @"Type") + ADD_ENUM(CellType, [(NSCell*)o type], type, setType, @"Type") ADD_BOOL([o wantsNotificationForMarkedText], @"Wants notification for marked text") ADD_BOOL([o wraps], @"Wraps") } @@ -1076,10 +1078,10 @@ - (void)addNSComparisonPredicate:(id)object { NSComparisonPredicate* o = object; ADD_CLASS_LABEL(@"NSComparisonPredicate Info"); - ADD_ENUM(ComparisonPredicateModifier, [o comparisonPredicateModifier], @"Comparison predicate modifier") + ADD_ENUM(ComparisonPredicateModifier, [o comparisonPredicateModifier], comparisonPredicateModifier, setcomparisonPredicateModifier, @"Comparison predicate modifier") ADD_SEL_NOT_NULL([o customSelector], @"Custom selector") ADD_OBJECT([o leftExpression], @"Left expression") - ADD_ENUM(PredicateOperatorType, [o predicateOperatorType], @"Predicate operator type") + ADD_ENUM(PredicateOperatorType, [o predicateOperatorType], predicateOperatorType, setpredicateOperatorType, @"Predicate operator type") ADD_OBJECT([o rightExpression], @"Right expression") } @@ -1087,7 +1089,7 @@ - (void)addNSCompoundPredicate:(id)object { NSCompoundPredicate* o = object; ADD_CLASS_LABEL(@"NSCompoundPredicate Info") - ADD_ENUM(CompoundPredicateType, [o compoundPredicateType], @"Compound predicate type") + ADD_ENUM(CompoundPredicateType, [o compoundPredicateType], compoundPredicateType, setcompoundPredicateType, @"Compound predicate type") ADD_OBJECTS([o subpredicates], @"Subpredicates") } @@ -1262,7 +1264,7 @@ - (void)addNSEvent:(id)object ADD_NUMBER([o absoluteX], @"Absolute x") ADD_NUMBER([o absoluteY], @"Absolute y") ADD_NUMBER([o absoluteZ], @"Absolute z") - ADD_ENUM(EventButtonMask, [o buttonMask], @"Button mask") + ADD_ENUM(EventButtonMask, [o buttonMask], buttonMask, setbuttonMask, @"Button mask") } if (type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp) ADD_NUMBER([o buttonNumber], @"Button number") @@ -1298,18 +1300,18 @@ - (void)addNSEvent:(id)object ADD_NUMBER([o keyCode], @"Key code") if (type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) ADD_POINT([o locationInWindow], @"Location in window") - ADD_ENUM(EventModifierFlags, [o modifierFlags] & NSDeviceIndependentModifierFlagsMask, @"Modifier flags") + ADD_ENUM(EventModifierFlags, [o modifierFlags] & NSDeviceIndependentModifierFlagsMask, modifierFlags, setModifierFlags, @"Modifier flags") if (type == NSTabletProximity || ((type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) && [object subtype] == NSTabletProximityEventSubtype)) { ADD_NUMBER([o pointingDeviceID], @"Pointing device ID") ADD_NUMBER([o pointingDeviceSerialNumber], @"Pointing device serial number") - ADD_ENUM(PointingDeviceType, [o pointingDeviceType], @"Pointing device type") + ADD_ENUM(PointingDeviceType, [o pointingDeviceType], pointingDeviceType, setpointingDeviceType, @"Pointing device type") } if (type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) ADD_NUMBER([o pressure], @"Pressure") if (type == NSTabletPoint || ((type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) && [object subtype] == NSTabletPointEventSubtype)) ADD_NUMBER([o rotation], @"Rotation") if (type == NSAppKitDefined || type == NSSystemDefined || type == NSApplicationDefined || type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) - ADD_ENUM(EventSubtype, [o subtype], @"Subtype") + ADD_ENUM(EventSubtype, [o subtype], subtype, setsubtype, @"Subtype") if (type == NSTabletProximity || ((type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) && [object subtype] == NSTabletProximityEventSubtype)) { ADD_NUMBER([o systemTabletID], @"System tablet ID") ADD_NUMBER([o tabletID], @"Tablet ID") @@ -1323,7 +1325,7 @@ - (void)addNSEvent:(id)object ADD_OBJECT([o trackingArea], @"Tracking area") ADD_NUMBER([o trackingNumber], @"Tracking number") } - ADD_ENUM(EventType, [(NSEvent*)o type], @"Type") + ADD_ENUM(EventType, [(NSEvent*)o type], type, setType, @"Type") if (type == NSTabletProximity || ((type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) && [object subtype] == NSTabletProximityEventSubtype)) ADD_NUMBER([o uniqueID], @"Unique ID") if (type == NSMouseEntered || type == NSMouseExited || type == NSCursorUpdate) { @@ -1433,7 +1435,7 @@ - (void)addNSExpression:(id)object if (constantValueIsInitialized) ADD_OBJECT(constantValue, @"Constant value"); if (expressionTypeIsInitialized) - ADD_ENUM(ExpressionType, expressionType, @"Expression type"); + ADD_ENUM(ExpressionType, expressionType, expressionType, setExpressionType, @"Expression type"); if (functionIsInitialized) ADD_OBJECT(function, @"Function"); if (keyPathIsInitialized) @@ -1461,7 +1463,7 @@ - (void)addNSFetchRequest:(id)object ADD_BOOL([o includesSubentities], @"Includes bubentities") ADD_OBJECT([o predicate], @"Predicate") ADD_OBJECTS([o relationshipKeyPathsForPrefetching], @"Relationship key paths for prefetching") - ADD_ENUM(FetchRequestResultType, [o resultType], @"Result type") + ADD_ENUM(FetchRequestResultType, [o resultType], resultType, setresultType, @"Result type") ADD_BOOL([o returnsObjectsAsFaults], @"Returns objects as faults") ADD_OBJECTS([o sortDescriptors], @"Sort descriptors") } @@ -1503,11 +1505,11 @@ - (void)addNSFont:(id)object [view addObject:matrixString withLabel:@"Matrix" toMatrix:m leaf:YES classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject indentationLevel:0]; ADD_SIZE([o maximumAdvancement], @"Maximum advancement") - ADD_ENUM(StringEncoding, [o mostCompatibleStringEncoding], @"Most compatible string encoding") + ADD_ENUM(StringEncoding, [o mostCompatibleStringEncoding], mostCompatibleStringEncoding, setmostCompatibleStringEncoding, @"Most compatible string encoding") ADD_NUMBER([o numberOfGlyphs], @"Number of glyphs") ADD_NUMBER([o pointSize], @"Point size") ADD_OBJECT([o printerFont], @"Printer font") - ADD_ENUM(FontRenderingMode, [o renderingMode], @"Rendering mode") + ADD_ENUM(FontRenderingMode, [o renderingMode], renderingMode, setrenderingMode, @"Rendering mode") ADD_OBJECT_NOT_NIL([o screenFont], @"Screen font") ADD_NUMBER([o underlinePosition], @"Underline position") ADD_NUMBER([o underlineThickness], @"Underline thickness") @@ -1544,7 +1546,7 @@ - (void)addNSGlyphInfo:(id)object { NSGlyphInfo* o = object; ADD_CLASS_LABEL(@"NSGlyphInfo Info"); - ADD_ENUM(CharacterCollection, [o characterCollection], @"Character collection") + ADD_ENUM(CharacterCollection, [o characterCollection], characterCollection, setcharacterCollection, @"Character collection") if ([o characterIdentifier]) ADD_NUMBER([o characterIdentifier], @"Character identifier"); ADD_OBJECT_NOT_NIL([o glyphName], @"Glyph name") @@ -1570,10 +1572,10 @@ - (void)addNSGraphicsContext:(id)object NSGraphicsContext* o = object; ADD_CLASS_LABEL(@"NSGraphicsContext Info"); ADD_DICTIONARY([o attributes], @"Attributes") - ADD_ENUM(ColorRenderingIntent, [o colorRenderingIntent], @"Color rendering intent") - ADD_ENUM(CompositingOperation, [o compositingOperation], @"Compositing operation") + ADD_ENUM(ColorRenderingIntent, [o colorRenderingIntent], colorRenderingIntent, setcolorRenderingIntent, @"Color rendering intent") + ADD_ENUM(CompositingOperation, [o compositingOperation], compositingOperation, setcompositingOperation, @"Compositing operation") ADD_POINTER([o graphicsPort], @"Graphics port") - ADD_ENUM(ImageInterpolation, [o imageInterpolation], @"Image interpolation") + ADD_ENUM(ImageInterpolation, [o imageInterpolation], imageInterpolation, setimageInterpolation, @"Image interpolation") ADD_BOOL([o isDrawingToScreen], @"Is drawing to screen") ADD_BOOL([o isFlipped], @"Is flipped") ADD_POINT([o patternPhase], @"Pattern phase") @@ -1587,7 +1589,7 @@ - (void)addNSImage:(id)object ADD_RECT([o alignmentRect], @"Alignment rect") ADD_OBJECT([o backgroundColor], @"Background color") ADD_BOOL([o cacheDepthMatchesImageDepth], @"Cache depth matches image depth") - ADD_ENUM(ImageCacheMode, [o cacheMode], @"Cache mode") + ADD_ENUM(ImageCacheMode, [o cacheMode], cacheMode, setcacheMode, @"Cache mode") ADD_OBJECT_NOT_NIL([o delegate], @"Delegate") ADD_BOOL([o isCachedSeparately], @"Is cached separately") ADD_BOOL([o isDataRetained], @"Is data retained") @@ -1608,7 +1610,7 @@ - (void)addNSImageRep:(id)object if ([object isKindOfClass:[NSBitmapImageRep class]]) { NSBitmapImageRep* o = object; ADD_CLASS_LABEL(@"NSBitmapImageRep Info"); - ADD_ENUM(BitmapFormat, [o bitmapFormat], @"Bitmap format") + ADD_ENUM(BitmapFormat, [o bitmapFormat], bitmapFormat, setbitmapFormat, @"Bitmap format") ADD_NUMBER([o bitsPerPixel], @"Bits per pixel") ADD_NUMBER([o bytesPerPlane], @"Bytes per plane") ADD_NUMBER([o bytesPerRow], @"Bytes per row") @@ -1617,7 +1619,7 @@ - (void)addNSImageRep:(id)object { id compressionMethod = [o valueForProperty:NSImageCompressionMethod]; if ([compressionMethod isKindOfClass:[NSNumber class]]) - ADD_ENUM(TIFFCompression, [[o valueForProperty:NSImageCompressionMethod] longValue], @"Compression method") + ADD_ENUM(TIFFCompression, [[o valueForProperty:NSImageCompressionMethod] longValue], imageCompressionMethod, setImageCompressionMethod, @"Compression method") } ADD_OBJECT_NOT_NIL([o valueForProperty:NSImageCurrentFrame], @"Current frame") ADD_OBJECT_NOT_NIL([o valueForProperty:NSImageCurrentFrameDuration], @"Current frame duration") @@ -1680,7 +1682,7 @@ - (void)addNSLayoutManager:(id)object ADD_CLASS_LABEL(@"NSLayoutManager Info"); ADD_BOOL([o allowsNonContiguousLayout], @"Allows non contiguous layout") ADD_BOOL([o backgroundLayoutEnabled], @"Background layout enabled") - ADD_ENUM(ImageScaling, [o defaultAttachmentScaling], @"Default attachment scaling") + ADD_ENUM(ImageScaling, [o defaultAttachmentScaling], defaultAttachmentScaling, setdefaultAttachmentScaling, @"Default attachment scaling") ADD_OBJECT_NOT_NIL([o delegate], @"Delegate") ADD_RECT([o extraLineFragmentRect], @"Extra line fragment rect") ADD_OBJECT_NOT_NIL([o extraLineFragmentTextContainer], @"Extra line fragment text container") @@ -1691,14 +1693,14 @@ - (void)addNSLayoutManager:(id)object ADD_OBJECT([o glyphGenerator], @"Glyph generator") ADD_BOOL([o hasNonContiguousLayout], @"Has non contiguous layout") ADD_NUMBER([o hyphenationFactor], @"Hyphenation factor") - ADD_ENUM(GlyphStorageLayoutOptions, [o layoutOptions], @"Layout options") + ADD_ENUM(GlyphStorageLayoutOptions, [o layoutOptions], layoutOptions, setlayoutOptions, @"Layout options") ADD_BOOL([o showsControlCharacters], @"Shows control characters") ADD_BOOL([o showsInvisibleCharacters], @"Shows invisible characters") ADD_OBJECTS([o textContainers], @"Text containers") ADD_OBJECT([o textStorage], @"Text storage") ADD_OBJECT([o textViewForBeginningOfSelection], @"Text view for beginning of selection") ADD_OBJECT([o typesetter], @"Typesetter") - ADD_ENUM(TypesetterBehavior, [o typesetterBehavior], @"Typesetter behavior") + ADD_ENUM(TypesetterBehavior, [o typesetterBehavior], typesetterBehavior, settypesetterBehavior, @"Typesetter behavior") ADD_BOOL([o usesFontLeading], @"Uses font leading") ADD_BOOL([o usesScreenFonts], @"Uses screen fonts") } @@ -1710,7 +1712,7 @@ - (void)addNSManagedObjectContext:(id)object ADD_OBJECT([o deletedObjects], @"Deleted objects") ADD_BOOL([o hasChanges], @"Has changes") ADD_OBJECT([o insertedObjects], @"Inserted objects") - ADD_ENUM(MergePolicyMarker, [o mergePolicy], @"Merge policy") + ADD_ENUM(MergePolicyMarker, [o mergePolicy], mergePolicy, setmergePolicy, @"Merge policy") ADD_OBJECT([o persistentStoreCoordinator], @"Persistent store coordinator") ADD_BOOL([o propagatesDeletesAtEndOfEvent], @"Propagates deletes at end of event") ADD_OBJECT([o registeredObjects], @"Registered objects") @@ -1772,13 +1774,13 @@ - (void)addNSMenuItem:(id)object ADD_BOOL([o isHighlighted], @"Is highlighted") ADD_BOOL([o isSeparatorItem], @"Is separatorItem") ADD_OBJECT([o keyEquivalent], @"Key equivalent") - ADD_ENUM(EventModifierFlags, [o keyEquivalentModifierMask] & NSDeviceIndependentModifierFlagsMask, @"Key equivalent modifier mask") + ADD_ENUM(EventModifierFlags, [o keyEquivalentModifierMask] & NSDeviceIndependentModifierFlagsMask, keyEquivalentModifierMask, setKeyEquivalentModifierMask, @"Key equivalent modifier mask") ADD_OBJECT([o menu], @"Menu") ADD_OBJECT_NOT_NIL([o mixedStateImage], @"Mixed state image") ADD_OBJECT_NOT_NIL([o offStateImage], @"Off state image") ADD_OBJECT_NOT_NIL([o onStateImage], @"On state image") ADD_OBJECT_NOT_NIL([o representedObject], @"Represented object") - ADD_ENUM(CellStateValue, [o state], @"State") + ADD_ENUM(CellStateValue, [o state], state, setstate, @"State") ADD_OBJECT_NOT_NIL([o submenu], @"Submenu") ADD_NUMBER([o tag], @"Tag") ADD_OBJECT_NOT_NIL([o target], @"Target") @@ -1834,14 +1836,14 @@ - (void)addNSParagraphStyle:(id)object { NSParagraphStyle* o = object; ADD_CLASS_LABEL(@"NSParagraphStyle Info") - ADD_ENUM(TextAlignment, [o alignment], @"Alignment") - ADD_ENUM(WritingDirection, [o baseWritingDirection], @"Base writing direction") + ADD_ENUM(TextAlignment, [o alignment], alignment, setalignment, @"Alignment") + ADD_ENUM(WritingDirection, [o baseWritingDirection], baseWritingDirection, setbaseWritingDirection, @"Base writing direction") ADD_NUMBER([o defaultTabInterval], @"Default tab interval") ADD_NUMBER([o firstLineHeadIndent], @"First line head indent") ADD_NUMBER([o headerLevel], @"HeaderLevel") ADD_NUMBER([o headIndent], @"Head indent") ADD_NUMBER([o hyphenationFactor], @"hyphenationFactor") - ADD_ENUM(LineBreakMode, [o lineBreakMode], @"Line break mode") + ADD_ENUM(LineBreakMode, [o lineBreakMode], lineBreakMode, setlineBreakMode, @"Line break mode") ADD_NUMBER([o lineHeightMultiple], @"Line height multiple") ADD_NUMBER([o lineSpacing], @"Line spacing") ADD_NUMBER([o maximumLineHeight], @"Maximum line height") @@ -1869,10 +1871,10 @@ - (void)addNSPredicateEditorRowTemplate:(id)object ADD_CLASS_LABEL(@"NSPredicateEditorRowTemplate Info") ADD_OBJECTS([o compoundTypes], @"Compound types") ADD_OBJECTS([o leftExpressions], @"Left expressions") - ADD_ENUM(ComparisonPredicateModifier, [o modifier], @"Modifier") + ADD_ENUM(ComparisonPredicateModifier, [o modifier], modifier, setmodifier, @"Modifier") ADD_OBJECTS([o operators], @"Operators") - ADD_ENUM(ComparisonPredicateOptions, [o options], @"Options") - ADD_ENUM(AttributeType, [o rightExpressionAttributeType], @"Right expression attribute type") + ADD_ENUM(ComparisonPredicateOptions, [o options], options, setoptions, @"Options") + ADD_ENUM(AttributeType, [o rightExpressionAttributeType], rightExpressionAttributeType, setrightExpressionAttributeType, @"Right expression attribute type") ADD_OBJECTS([o rightExpressions], @"Right expressions") ADD_OBJECTS([o templateViews], @"Template views") } @@ -1882,7 +1884,7 @@ - (void)addNSPropertyDescription:(id)object if ([object isKindOfClass:[NSAttributeDescription class]]) { NSAttributeDescription* o = object; ADD_CLASS_LABEL(@"NSAttributeDescription Info") - ADD_ENUM(AttributeType, [o attributeType], @"Attribute type") + ADD_ENUM(AttributeType, [o attributeType], attributeType, setattributeType, @"Attribute type") ADD_OBJECT([o attributeValueClassName], @"Attribute value class name") ADD_OBJECT([o defaultValue], @"Default value") @@ -1897,7 +1899,7 @@ - (void)addNSPropertyDescription:(id)object else if ([object isKindOfClass:[NSRelationshipDescription class]]) { NSRelationshipDescription* o = object; ADD_CLASS_LABEL(@"NSRelationshipDescription Info") - ADD_ENUM(DeleteRule, [o deleteRule], @"Delete rule") + ADD_ENUM(DeleteRule, [o deleteRule], deleteRule, setdeleteRule, @"Delete rule") ADD_OBJECT([o destinationEntity], @"Destination entity") ADD_OBJECT([o inverseRelationship], @"Inverse relationship") ADD_BOOL([o isToMany], @"Is to many") @@ -1947,13 +1949,13 @@ - (void)addNSResponder:(id)object ADD_SIZE([o contentSize], @"Content size") ADD_OBJECT([o contentView], @"Content view") ADD_OBJECT([o delegate], @"Delegate") - ADD_ENUM(RectEdge, [o edge], @"Edge") + ADD_ENUM(RectEdge, [o edge], edge, setedge, @"Edge") ADD_NUMBER([o leadingOffset], @"Leading offset") ADD_SIZE([o maxContentSize], @"Max content size") ADD_SIZE([o minContentSize], @"Min content size") ADD_OBJECT([o parentWindow], @"Parent window") - ADD_ENUM(RectEdge, [o preferredEdge], @"Preferred edge") - ADD_ENUM(DrawerState, [o state], @"State") + ADD_ENUM(RectEdge, [o preferredEdge], preferredEdge, setpreferredEdge, @"Preferred edge") + ADD_ENUM(DrawerState, [o state], state, setstate, @"State") ADD_NUMBER([o trailingOffset], @"Trailing offset") } else if ([object isKindOfClass:[NSView class]]) { @@ -2063,7 +2065,7 @@ - (void)addNSStatusItem:(id)object ADD_BOOL([o highlightMode], @"Highlight mode") ADD_OBJECT_NOT_NIL([o image], @"Image") ADD_BOOL([o isEnabled], @"Is enabled") - ADD_ENUM(StatusItemLength, [o length], @"Length") + ADD_ENUM(StatusItemLength, [o length], length, setlength, @"Length") ADD_OBJECT_NOT_NIL([o menu], @"Menu") ADD_OBJECT([o statusBar], @"Status bar") ADD_OBJECT([o target], @"Target") @@ -2080,7 +2082,7 @@ - (void)addNSTabViewItem:(id)object ADD_OBJECT([(NSTabViewItem*)o identifier], @"Identifier") ADD_OBJECT([o initialFirstResponder], @"Initial first responder") ADD_OBJECT([o label], @"Label") - ADD_ENUM(TabState, [o tabState], @"Tab state") + ADD_ENUM(TabState, [o tabState], tabState, settabState, @"Tab state") ADD_OBJECT([o tabView], @"Parent tab view") ADD_OBJECT([o view], @"View") } @@ -2097,7 +2099,7 @@ - (void)addNSTableColumn:(id)object ADD_BOOL([o isHidden], @"Is hidden") ADD_NUMBER([o maxWidth], @"Max width") ADD_NUMBER([o minWidth], @"Min width") - ADD_ENUM(TableColumnResizingOptions, [o resizingMask], @"Resizing mask") + ADD_ENUM(TableColumnResizingOptions, [o resizingMask], resizingMask, setresizingMask, @"Resizing mask") ADD_OBJECT_NOT_NIL([o sortDescriptorPrototype], @"Sort descriptor prototype") ADD_OBJECT([o tableView], @"Table view") ADD_NUMBER([o width], @"Width") @@ -2127,7 +2129,7 @@ - (void)addNSTextBlock:(id)object ADD_CLASS_LABEL(@"NSTextTable Info"); ADD_BOOL([o collapsesBorders], @"Collapses borders") ADD_BOOL([o hidesEmptyCells], @"Hides empty cells") - ADD_ENUM(TextTableLayoutAlgorithm, [o layoutAlgorithm], @"Layout algorithm") + ADD_ENUM(TextTableLayoutAlgorithm, [o layoutAlgorithm], layoutAlgorithm, setlayoutAlgorithm, @"Layout algorithm") ADD_NUMBER([o numberOfColumns], @"Number of columns") } @@ -2135,8 +2137,8 @@ - (void)addNSTextBlock:(id)object ADD_CLASS_LABEL(@"NSTextBlock Info"); ADD_OBJECT([o backgroundColor], @"Background color") ADD_NUMBER([o contentWidth], @"Content width") - ADD_ENUM(TextBlockValueType, [o contentWidthValueType], @"Content width value type") - ADD_ENUM(TextBlockVerticalAlignment, [o verticalAlignment], @"Vertical alignment") + ADD_ENUM(TextBlockValueType, [o contentWidthValueType], contentWidthValueType, setcontentWidthValueType, @"Content width value type") + ADD_ENUM(TextBlockVerticalAlignment, [o verticalAlignment], verticalAlignment, setverticalAlignment, @"Vertical alignment") } - (void)addNSTextContainer:(id)object @@ -2156,7 +2158,7 @@ - (void)addNSTextList:(id)object { NSTextList* o = object; ADD_CLASS_LABEL(@"NSTextList Info"); - ADD_ENUM(TextListOptions, [o listOptions], @"List options") + ADD_ENUM(TextListOptions, [o listOptions], listOptions, setlistOptions, @"List options") ADD_OBJECT([o markerFormat], @"Marker format") } @@ -2164,10 +2166,10 @@ - (void)addNSTextTab:(id)object { NSTextTab* o = object; ADD_CLASS_LABEL(@"NSTextTab Info"); - ADD_ENUM(TextAlignment, [o alignment], @"Alignment") + ADD_ENUM(TextAlignment, [o alignment], alignment, setalignment, @"Alignment") ADD_NUMBER([o location], @"Location") ADD_OBJECT([o options], @"Options") - ADD_ENUM(TextTabType, [o tabStopType], @"Tab stop type") + ADD_ENUM(TextTabType, [o tabStopType], tabStopType, settabStopType, @"Tab stop type") } - (void)addNSToolbar:(id)object @@ -2179,13 +2181,13 @@ - (void)addNSToolbar:(id)object ADD_DICTIONARY([o configurationDictionary], @"Configuration dictionary") ADD_BOOL([o customizationPaletteIsRunning], @"Customization palette is running") ADD_OBJECT([o delegate], @"Delegate") - ADD_ENUM(ToolbarDisplayMode, [o displayMode], @"Display mode") + ADD_ENUM(ToolbarDisplayMode, [o displayMode], displayMode, setdisplayMode, @"Display mode") ADD_OBJECT([(NSToolbar*)o identifier], @"Identifier") ADD_BOOL([o isVisible], @"Is visible") ADD_OBJECTS([o items], @"Items") ADD_OBJECT_NOT_NIL([o selectedItemIdentifier], @"Selected item identifier") ADD_BOOL([o showsBaselineSeparator], @"Shows baseline separator") - ADD_ENUM(ToolbarSizeMode, [o sizeMode], @"Identifier") + ADD_ENUM(ToolbarSizeMode, [o sizeMode], sizeMode, setsizeMode, @"Identifier") ADD_OBJECTS([o visibleItems], @"Visible items") } @@ -2215,14 +2217,14 @@ - (void)addNSToolbarItem:(id)object ADD_OBJECT([o toolbar], @"Toolbar") ADD_OBJECT_NOT_NIL([o toolTip], @"Tool tip") ADD_OBJECT([o view], @"View") - ADD_ENUM(ToolbarItemVisibilityPriority, [o visibilityPriority], @"Visibility priority") + ADD_ENUM(ToolbarItemVisibilityPriority, [o visibilityPriority], visibilityPriority, setvisibilityPriority, @"Visibility priority") } - (void)addNSTrackingArea:(id)object { NSTrackingArea* o = object; ADD_CLASS_LABEL(@"NSTrackingArea Info"); - ADD_ENUM(TrackingAreaOptions, [o options], @"Options") + ADD_ENUM(TrackingAreaOptions, [o options], options, setoptions, @"Options") ADD_OBJECT([o owner], @"Owner") ADD_RECT([o rect], @"Rect") ADD_DICTIONARY([o userInfo], @"User info") @@ -2259,7 +2261,7 @@ - (void)addNSATSTypesetter:(id)object ADD_NUMBER([o hyphenationFactor], @"Hyphenation factor") ADD_OBJECT_NOT_NIL([o layoutManager], @"Layout manager") ADD_NUMBER([o lineFragmentPadding], @"Line fragment padding") - ADD_ENUM(TypesetterBehavior, [o typesetterBehavior], @"Typesetter behavior") + ADD_ENUM(TypesetterBehavior, [o typesetterBehavior], typesetterBehavior, settypesetterBehavior, @"Typesetter behavior") ADD_BOOL([o usesFontLeading], @"Uses font leading") } @@ -2271,9 +2273,9 @@ - (void)processNSView:(id)object ADD_CLASS_LABEL(@"NSBox Info"); ADD_OBJECT([o borderColor], @"Border color") ADD_RECT([o borderRect], @"Border rect") - ADD_ENUM(BorderType, [o borderType], @"Border type") + ADD_ENUM(BorderType, [o borderType], borderType, setborderType, @"Border type") ADD_NUMBER([o borderWidth], @"Border width") - ADD_ENUM(BoxType, [o boxType], @"Box type") + ADD_ENUM(BoxType, [o boxType], boxType, setboxType, @"Box type") ADD_OBJECT([o contentView], @"Content view") ADD_SIZE([o contentViewMargins], @"Content view margins") ADD_NUMBER([o cornerRadius], @"Corner radius") @@ -2282,7 +2284,7 @@ - (void)processNSView:(id)object ADD_OBJECT([o title], @"Title") ADD_OBJECT([o titleCell], @"Title cell") ADD_OBJECT([o titleFont], @"Title font") - ADD_ENUM(TitlePosition, [o titlePosition], @"Title position") + ADD_ENUM(TitlePosition, [o titlePosition], titlePosition, settitlePosition, @"Title position") ADD_RECT([o titleRect], @"Title rect") } if ([object isKindOfClass:[NSCollectionView class]]) { @@ -2323,8 +2325,8 @@ - (void)processNSView:(id)object else if ([object isKindOfClass:[NSProgressIndicator class]]) { NSProgressIndicator* o = object; ADD_CLASS_LABEL(@"NSProgressIndicator Info"); - ADD_ENUM(ControlSize, [o controlSize], @"Control size") - ADD_ENUM(ControlTint, [o controlTint], @"Control tint") + ADD_ENUM(ControlSize, [o controlSize], controlSize, setcontrolSize, @"Control size") + ADD_ENUM(ControlTint, [o controlTint], controlTint, setcontrolTint, @"Control tint") if ([o style] == NSProgressIndicatorBarStyle && ![o isIndeterminate]) ADD_NUMBER([o doubleValue], @"Double value") ADD_BOOL([o isBezeled], @"Is bezeled") @@ -2333,7 +2335,7 @@ - (void)processNSView:(id)object ADD_NUMBER([o maxValue], @"Max value") ADD_NUMBER([o minValue], @"Min value") } - ADD_ENUM(ProgressIndicatorStyle, [o style], @"Style") + ADD_ENUM(ProgressIndicatorStyle, [o style], style, setstyle, @"Style") ADD_BOOL([o usesThreadedAnimation], @"Uses threaded animation") } else if ([object isKindOfClass:[NSRulerView class]]) { @@ -2345,7 +2347,7 @@ - (void)processNSView:(id)object ADD_BOOL([o isFlipped], @"Is flipped") ADD_OBJECTS([o markers], @"Markers") ADD_OBJECT([o measurementUnits], @"Measurement units") - ADD_ENUM(RulerOrientation, [o orientation], @"Orientation") + ADD_ENUM(RulerOrientation, [o orientation], orientation, setorientation, @"Orientation") ADD_NUMBER([o originOffset], @"Origin offset") ADD_NUMBER([o requiredThickness], @"Required thickness") ADD_NUMBER([o reservedThicknessForAccessoryView], @"Reserved thickness for accessory view") @@ -2358,7 +2360,7 @@ - (void)processNSView:(id)object ADD_CLASS_LABEL(@"NSScrollView Info"); ADD_BOOL([o autohidesScrollers], @"Autohides scrollers") ADD_OBJECT([o backgroundColor], @"Background color") - ADD_ENUM(BorderType, [o borderType], @"Border type") + ADD_ENUM(BorderType, [o borderType], borderType, setborderType, @"Border type") ADD_SIZE([o contentSize], @"Content size") ADD_OBJECT([o contentView], @"Content view") ADD_OBJECT([o documentCursor], @"Document cursor") @@ -2395,15 +2397,15 @@ - (void)processNSView:(id)object ADD_CLASS_LABEL(@"NSTabView Info"); ADD_BOOL([o allowsTruncatedLabels], @"Allows truncated labels") ADD_RECT([o contentRect], @"Content rect") - ADD_ENUM(ControlSize, [o controlSize], @"Control size") - ADD_ENUM(ControlTint, [o controlTint], @"Control tint") + ADD_ENUM(ControlSize, [o controlSize], controlSize, setcontrolSize, @"Control size") + ADD_ENUM(ControlTint, [o controlTint], controlTint, setcontrolTint, @"Control tint") ADD_OBJECT([o delegate], @"Delegate") ADD_BOOL([o drawsBackground], @"Draws background") ADD_OBJECT([o font], @"Font") ADD_SIZE([o minimumSize], @"Minimum size") ADD_OBJECT([o selectedTabViewItem], @"Selected tab view item") ADD_OBJECTS([o tabViewItems], @"Tab view items") - ADD_ENUM(TabViewType, [o tabViewType], @"Tab view type") + ADD_ENUM(TabViewType, [o tabViewType], tabViewType, settabViewType, @"Tab view type") } else if ([object isKindOfClass:[NSTableHeaderView class]]) { NSTableHeaderView* o = object; @@ -2437,8 +2439,8 @@ - (void)processNSView:(id)object ADD_OBJECTS([o readablePasteboardTypes], @"Readable pasteboard types") ADD_OBJECTS([o selectedRanges], @"Selected ranges") ADD_DICTIONARY([o selectedTextAttributes], @"Selected text attributes") - ADD_ENUM(SelectionAffinity, [o selectionAffinity], @"Selection affinity") - ADD_ENUM(SelectionGranularity, [o selectionGranularity], @"Selection granularity") + ADD_ENUM(SelectionAffinity, [o selectionAffinity], selectionAffinity, setselectionAffinity, @"Selection affinity") + ADD_ENUM(SelectionGranularity, [o selectionGranularity], selectionGranularity, setselectionGranularity, @"Selection granularity") ADD_BOOL([o shouldDrawInsertionPoint], @"Should draw insertion point") ADD_BOOL([o smartInsertDeleteEnabled], @"Smart insert delete enabled") ADD_NUMBER([o spellCheckerDocumentTag], @"Spell checker document tag") @@ -2455,9 +2457,9 @@ - (void)processNSView:(id)object NSText* o = object; ADD_CLASS_LABEL(@"NSText Info"); - ADD_ENUM(TextAlignment, [o alignment], @"Alignment") + ADD_ENUM(TextAlignment, [o alignment], alignment, setalignment, @"Alignment") ADD_OBJECT([o backgroundColor], @"Background color") - ADD_ENUM(WritingDirection, [o baseWritingDirection], @"Base writing direction") + ADD_ENUM(WritingDirection, [o baseWritingDirection], baseWritingDirection, setbaseWritingDirection, @"Base writing direction") ADD_OBJECT_NOT_NIL([o delegate], @"Delegate") ADD_BOOL([o drawsBackground], @"Draws background") ADD_OBJECT([o font], @"Font") @@ -2479,7 +2481,7 @@ - (void)processNSView:(id)object NSView* o = object; ADD_CLASS_LABEL(@"NSView Info"); - ADD_ENUM(AutoresizingMaskOptions, [o autoresizingMask], @"Autoresizing mask") + ADD_ENUM(AutoresizingMaskOptions, [o autoresizingMask], autoresizingMask, setautoresizingMask, @"Autoresizing mask") ADD_BOOL([o autoresizesSubviews], @"Autoresizes subviews") ADD_RECT([o bounds], @"Bounds") ADD_NUMBER([o boundsRotation], @"Bounds rotation") @@ -2489,7 +2491,7 @@ - (void)processNSView:(id)object ADD_OBJECT_NOT_NIL([o enclosingScrollView], @"Enclosing scroll view") ADD_RECT([o frame], @"Frame") ADD_NUMBER([o frameRotation], @"Frame rotation") - ADD_ENUM(FocusRingType, [o focusRingType], @"Focus ring type") + ADD_ENUM(FocusRingType, [o focusRingType], focusRingType, setfocusRingType, @"Focus ring type") ADD_NUMBER([o gState], @"gState") ADD_NUMBER([o heightAdjustLimit], @"Height adjust limit") ADD_BOOL([o isFlipped], @"Is flipped") @@ -2535,7 +2537,7 @@ - (void)processNSControl:(id)object ADD_BOOL([o allowsTypeSelect], @"Allows type select") ADD_OBJECT([o backgroundColor], @"Background color") ADD_OBJECT([o cellPrototype], @"Cell prototype") - ADD_ENUM(BrowserColumnResizingType, [o columnResizingType], @"Column resizing type") + ADD_ENUM(BrowserColumnResizingType, [o columnResizingType], columnResizingType, setcolumnResizingType, @"Column resizing type") ADD_OBJECT([o columnsAutosaveName], @"Columns autosave name") ADD_OBJECT([o delegate], @"Delegate") ADD_SEL([o doubleAction], @"Double action") @@ -2569,7 +2571,7 @@ - (void)processNSControl:(id)object ADD_OBJECTS([o itemArray], @"Item array") ADD_NUMBER([o numberOfItems], @"Number of items") ADD_OBJECT([o objectValue], @"Object value") - ADD_ENUM(RectEdge, [o preferredEdge], @"Preferred edge") + ADD_ENUM(RectEdge, [o preferredEdge], preferredEdge, setpreferredEdge, @"Preferred edge") ADD_BOOL([o pullsDown], @"Pulls down") ADD_OBJECT([o selectedItem], @"Selected item") } @@ -2581,16 +2583,16 @@ - (void)processNSControl:(id)object ADD_OBJECT([o alternateTitle], @"Alternate title") ADD_OBJECT([o attributedAlternateTitle], @"Attributed alternate title") ADD_OBJECT([o attributedTitle], @"Attributed title") - ADD_ENUM(BezelStyle, [o bezelStyle], @"Bezel style") + ADD_ENUM(BezelStyle, [o bezelStyle], bezelStyle, setbezelStyle, @"Bezel style") ADD_OBJECT([o image], @"Image") - ADD_ENUM(CellImagePosition, [o imagePosition], @"Image position") + ADD_ENUM(CellImagePosition, [o imagePosition], imagePosition, setimagePosition, @"Image position") ADD_BOOL([o isBordered], @"Is bordered") ADD_BOOL([o isTransparent], @"Is transparent") ADD_OBJECT([o keyEquivalent], @"Key equivalent") - ADD_ENUM(EventModifierFlags, [o keyEquivalentModifierMask] & NSDeviceIndependentModifierFlagsMask, @"Key equivalent modifier mask") + ADD_ENUM(EventModifierFlags, [o keyEquivalentModifierMask] & NSDeviceIndependentModifierFlagsMask, keyEquivalentModifierMask, setKeyEquivalentModifierMask, @"Key equivalent modifier mask") ADD_BOOL([o showsBorderOnlyWhileMouseInside], @"Shows border only while mouse inside") ADD_OBJECT_NOT_NIL([o sound], @"Sound") - ADD_ENUM(CellStateValue, [o state], @"State") + ADD_ENUM(CellStateValue, [o state], state, setstate, @"State") ADD_OBJECT([o title], @"Title") } else if ([object isKindOfClass:[NSColorWell class]]) { @@ -2605,9 +2607,9 @@ - (void)processNSControl:(id)object ADD_CLASS_LABEL(@"NSDatePicker Info"); ADD_OBJECT([o backgroundColor], @"Background color") ADD_OBJECT([o calendar], @"Calendar") - ADD_ENUM(DatePickerElementFlags, [o datePickerElements], @"Date picker elements") - ADD_ENUM(DatePickerMode, [o datePickerMode], @"Date picker mode") - ADD_ENUM(DatePickerStyle, [o datePickerStyle], @"Date picker style") + ADD_ENUM(DatePickerElementFlags, [o datePickerElements], datePickerElements, setdatePickerElements, @"Date picker elements") + ADD_ENUM(DatePickerMode, [o datePickerMode], datePickerMode, setdatePickerMode, @"Date picker mode") + ADD_ENUM(DatePickerStyle, [o datePickerStyle], datePickerStyle, setdatePickerStyle, @"Date picker style") ADD_OBJECT([o dateValue], @"Date value") ADD_OBJECT_NOT_NIL([o delegate], @"Delegate") ADD_BOOL([o drawsBackground], @"Draws background") @@ -2626,9 +2628,9 @@ - (void)processNSControl:(id)object ADD_BOOL([o allowsCutCopyPaste], @"Allows cut copy paste") ADD_BOOL([o animates], @"Animates") ADD_OBJECT([o image], @"Image") - ADD_ENUM(ImageAlignment, [o imageAlignment], @"Image alignment") - ADD_ENUM(ImageFrameStyle, [o imageFrameStyle], @"Image frame style") - ADD_ENUM(ImageScaling, [o imageScaling], @"Image scaling") + ADD_ENUM(ImageAlignment, [o imageAlignment], imageAlignment, setimageAlignment, @"Image alignment") + ADD_ENUM(ImageFrameStyle, [o imageFrameStyle], imageFrameStyle, setimageFrameStyle, @"Image frame style") + ADD_ENUM(ImageScaling, [o imageScaling], imageScaling, setimageScaling, @"Image scaling") ADD_BOOL([o isEditable], @"Is editable") } else if ([object isKindOfClass:[NSLevelIndicator class]]) { @@ -2672,7 +2674,7 @@ - (void)processNSControl:(id)object ADD_BOOL([o isAutoscroll], @"Is autoscroll") ADD_BOOL([o isSelectionByRect], @"Is selection by rect") ADD_OBJECT([o keyCell], @"Key cell") - ADD_ENUM(MatrixMode, [(NSMatrix*)o mode], @"Mode") + ADD_ENUM(MatrixMode, [(NSMatrix*)o mode], mode, setMode, @"Mode") ADD_NUMBER([o numberOfColumns], @"Number of columns") ADD_NUMBER([o numberOfRows], @"Number of rows") ADD_OBJECT([o prototype], @"Prototype") @@ -2688,7 +2690,7 @@ - (void)processNSControl:(id)object ADD_OBJECT([o delegate], @"Delegate") ADD_SEL([o doubleAction], @"Double action") ADD_OBJECTS([o pathComponentCells], @"Path component cells") - ADD_ENUM(PathStyle, [o pathStyle], @"Path style") + ADD_ENUM(PathStyle, [o pathStyle], pathStyle, setpathStyle, @"Path style") ADD_OBJECT([o URL], @"URL") } else if ([object isKindOfClass:[NSRuleEditor class]]) { @@ -2707,7 +2709,7 @@ - (void)processNSControl:(id)object ADD_DICTIONARY([o formattingDictionary], @"Formatting dictionary") ADD_OBJECT_NOT_NIL([o formattingStringsFilename], @"Formatting strings filename") ADD_BOOL([o isEditable], @"Is editable") - ADD_ENUM(RuleEditorNestingMode, [o nestingMode], @"Nesting mode") + ADD_ENUM(RuleEditorNestingMode, [o nestingMode], nestingMode, setnestingMode, @"Nesting mode") ADD_NUMBER([o numberOfRows], @"Number of rows") ADD_OBJECT([o predicate], @"Predicate") ADD_OBJECT([o rowClass], @"Row class") @@ -2719,13 +2721,13 @@ - (void)processNSControl:(id)object else if ([object isKindOfClass:[NSScroller class]]) { NSScroller* o = object; ADD_CLASS_LABEL(@"NSScroller Info"); - ADD_ENUM(ScrollArrowPosition, [o arrowsPosition], @"Arrows position") - ADD_ENUM(ControlSize, [o controlSize], @"Control size") - ADD_ENUM(ControlTint, [o controlTint], @"Control tint") + ADD_ENUM(ScrollArrowPosition, [o arrowsPosition], arrowsPosition, setarrowsPosition, @"Arrows position") + ADD_ENUM(ControlSize, [o controlSize], controlSize, setcontrolSize, @"Control size") + ADD_ENUM(ControlTint, [o controlTint], controlTint, setcontrolTint, @"Control tint") ADD_NUMBER([o doubleValue], @"Double value") - ADD_ENUM(ScrollerPart, [o hitPart], @"Hit part") + ADD_ENUM(ScrollerPart, [o hitPart], hitPart, sethitPart, @"Hit part") ADD_NUMBER([o knobProportion], @"Knob proportion") - ADD_ENUM(UsableScrollerParts, [o usableParts], @"Usable parts") + ADD_ENUM(UsableScrollerParts, [o usableParts], usableParts, setusableParts, @"Usable parts") } else if ([object isKindOfClass:[NSSegmentedControl class]]) { NSSegmentedControl* o = object; @@ -2780,13 +2782,13 @@ - (void)processNSControl:(id)object ADD_OBJECT_NOT_NIL([o autosaveName], @"Autosave name") ADD_BOOL([o autosaveTableColumns], @"Autosave table columns") ADD_OBJECT([o backgroundColor], @"Background color") - ADD_ENUM(TableViewColumnAutoresizingStyle, [o columnAutoresizingStyle], @"Column autoresizing style") + ADD_ENUM(TableViewColumnAutoresizingStyle, [o columnAutoresizingStyle], columnAutoresizingStyle, setcolumnAutoresizingStyle, @"Column autoresizing style") ADD_OBJECT([o cornerView], @"Corner view") ADD_OBJECT([o dataSource], @"Data source") ADD_OBJECT([o delegate], @"Delegate") ADD_SEL([o doubleAction], @"Double action") ADD_OBJECT([o gridColor], @"Grid color") - ADD_ENUM(TableViewGridLineStyle, [o gridStyleMask], @"Grid style mask") + ADD_ENUM(TableViewGridLineStyle, [o gridStyleMask], gridStyleMask, setgridStyleMask, @"Grid style mask") ADD_OBJECT([o headerView], @"Header view") ADD_OBJECT_NOT_NIL([o highlightedTableColumn], @"Highlighted table column") ADD_SIZE([o intercellSpacing], @"Intercell spacing") @@ -2799,7 +2801,7 @@ - (void)processNSControl:(id)object ADD_OBJECT([o selectedColumnIndexes], @"Selected column indexes") ADD_NUMBER([o selectedRow], @"Selected row") ADD_OBJECT([o selectedRowIndexes], @"Selected row indexes") - ADD_ENUM(TableViewSelectionHighlightStyle, [o selectionHighlightStyle], @"Selection highlight style") + ADD_ENUM(TableViewSelectionHighlightStyle, [o selectionHighlightStyle], selectionHighlightStyle, setselectionHighlightStyle, @"Selection highlight style") ADD_OBJECTS([o sortDescriptors], @"Sort descriptors") ADD_OBJECTS([o tableColumns], @"Table columns") ADD_BOOL([o usesAlternatingRowBackgroundColors], @"Uses alternating row background colors") @@ -2845,14 +2847,14 @@ - (void)processNSControl:(id)object ADD_CLASS_LABEL(@"NSTokenField Info"); ADD_NUMBER([o completionDelay], @"Completion delay") ADD_OBJECT([o tokenizingCharacterSet], @"Tokenizing character set") - ADD_ENUM(TokenStyle, [o tokenStyle], @"Token style") + ADD_ENUM(TokenStyle, [o tokenStyle], tokenStyle, settokenStyle, @"Token style") } NSTextField* o = object; ADD_CLASS_LABEL(@"NSTextField Info"); ADD_BOOL([o allowsEditingTextAttributes], @"Allows editing text attributes") ADD_OBJECT([o backgroundColor], @"Background color") - ADD_ENUM(TextFieldBezelStyle, [o bezelStyle], @"Bezel style") + ADD_ENUM(TextFieldBezelStyle, [o bezelStyle], bezelStyle, setbezelStyle, @"Bezel style") ADD_OBJECT_NOT_NIL([o delegate], @"Delegate") ADD_BOOL([o drawsBackground], @"Draws background") ADD_BOOL([o importsGraphics], @"Imports graphics") @@ -2866,10 +2868,10 @@ - (void)processNSControl:(id)object NSControl* o = object; ADD_CLASS_LABEL(@"NSControl Info"); ADD_SEL([o action], @"Action") - ADD_ENUM(TextAlignment, [o alignment], @"Alignment") - ADD_ENUM(WritingDirection, [o baseWritingDirection], @"Base writing direction") + ADD_ENUM(TextAlignment, [o alignment], alignment, setalignment, @"Alignment") + ADD_ENUM(WritingDirection, [o baseWritingDirection], baseWritingDirection, setbaseWritingDirection, @"Base writing direction") ADD_OBJECT([o cell], @"Cell") - ADD_ENUM(ControlSize, [o controlSize], @"Control size") + ADD_ENUM(ControlSize, [o controlSize], controlSize, setcontrolSize, @"Control size") ADD_OBJECT_NOT_NIL([o currentEditor], @"Current editor") ADD_OBJECT([o font], @"Font") ADD_OBJECT([o formatter], @"Formatter") @@ -2896,7 +2898,7 @@ - (void)processNSWindow:(id)object ADD_NUMBER([o alpha], @"Alpha") ADD_OBJECT([o color], @"Color") ADD_BOOL([o isContinuous], @"Is continuous") - ADD_ENUM(ColorPanelMode, [o mode], @"Mode") + ADD_ENUM(ColorPanelMode, [o mode], mode, setmode, @"Mode") ADD_BOOL([o showsAlpha], @"Shows alpha") } else if ([object isKindOfClass:[NSFontPanel class]]) { @@ -2952,15 +2954,15 @@ - (void)processNSWindow:(id)object ADD_SIZE([o aspectRatio], @"Aspect ratio") ADD_OBJECT_NOT_NIL([o attachedSheet], @"Attached sheet") ADD_BOOL([o autorecalculatesKeyViewLoop], @"Autorecalculates key view loop") - ADD_ENUM(WindowBackingLocation, [o backingLocation], @"Backing location") + ADD_ENUM(WindowBackingLocation, [o backingLocation], backingLocation, setbackingLocation, @"Backing location") ADD_OBJECT([o backgroundColor], @"Background color") - ADD_ENUM(BackingStoreType, [o backingType], @"Backing type") + ADD_ENUM(BackingStoreType, [o backingType], backingType, setbackingType, @"Backing type") ADD_BOOL([o canBecomeKeyWindow], @"Can become key window") ADD_BOOL([o canBecomeMainWindow], @"Can become main window") ADD_BOOL([o canBecomeVisibleWithoutLogin], @"Can become visible without login") ADD_BOOL([o canHide], @"Can hide") ADD_BOOL([o canStoreColor], @"Can store color") - ADD_ENUM(WindowCollectionBehavior, [o collectionBehavior], @"Collection behavior") + ADD_ENUM(WindowCollectionBehavior, [o collectionBehavior], collectionBehavior, setcollectionBehavior, @"Collection behavior") ADD_OBJECTS([o childWindows], @"Child windows") ADD_SIZE([o contentAspectRatio], @"Content aspect ratio") ADD_SIZE([o contentMaxSize], @"Content max size") @@ -2997,23 +2999,23 @@ - (void)processNSWindow:(id)object ADD_BOOL([o isSheet], @"Is sheet") ADD_BOOL([o isVisible], @"Is visible") ADD_BOOL([o isZoomed], @"Is zoomed") - ADD_ENUM(SelectionDirection, [o keyViewSelectionDirection], @"Key view selection direction") - ADD_ENUM(WindowLevel, [o level], @"Level") + ADD_ENUM(SelectionDirection, [o keyViewSelectionDirection], keyViewSelectionDirection, setkeyViewSelectionDirection, @"Key view selection direction") + ADD_ENUM(WindowLevel, [o level], level, setlevel, @"Level") ADD_SIZE([o maxSize], @"Max size") ADD_SIZE([o minSize], @"Min size") ADD_OBJECT_NOT_NIL([o miniwindowImage], @"Miniwindow image") ADD_OBJECT([o miniwindowTitle], @"Miniwindow title") ADD_OBJECT_NOT_NIL([o parentWindow], @"Parent window") - ADD_ENUM(WindowBackingLocation, [o preferredBackingLocation], @"Preferred backing location") + ADD_ENUM(WindowBackingLocation, [o preferredBackingLocation], preferredBackingLocation, setpreferredBackingLocation, @"Preferred backing location") ADD_BOOL([o preservesContentDuringLiveResize], @"Preserves content during live resize") ADD_OBJECT_NOT_NIL([o representedFilename], @"Represented filename") ADD_OBJECT_NOT_NIL([o representedURL], @"Represented URL") ADD_SIZE([o resizeIncrements], @"Resize increments") ADD_OBJECT([o screen], @"Screen") - ADD_ENUM(WindowSharingType, [o sharingType], @"Sharing type") + ADD_ENUM(WindowSharingType, [o sharingType], sharingType, setsharingType, @"Sharing type") ADD_BOOL([o showsResizeIndicator], @"Shows resize indicator") ADD_BOOL([o showsToolbarButton], @"Shows toolbar button") - ADD_ENUM(WindowMask, [o styleMask], @"Style mask") + ADD_ENUM(WindowMask, [o styleMask], styleMask, setstyleMask, @"Style mask") ADD_OBJECT([o title], @"Title") ADD_OBJECT_NOT_NIL([o toolbar], @"Toolbar") ADD_NUMBER([o userSpaceScaleFactor], @"User space scale factor") diff --git a/FScriptFramework/FSObjectInspectorViewModelItem.h b/FScriptFramework/FSObjectInspectorViewModelItem.h index 27781fd..a90bd8a 100644 --- a/FScriptFramework/FSObjectInspectorViewModelItem.h +++ b/FScriptFramework/FSObjectInspectorViewModelItem.h @@ -32,4 +32,6 @@ typedef NS_ENUM(NSUInteger, FSInspectorVMValueType) { @property (readonly,nonatomic) NSArray *enumNames; @property (readonly,nonatomic) NSArray *enumValues; @property (nonatomic) NSInteger numValue; +@property (nonatomic,copy) NSString *getter; +@property (nonatomic,copy) NSString *setter; @end From b93ad500a6d950b22f0bb6c616d379cd6281e29d Mon Sep 17 00:00:00 2001 From: Ant Date: Thu, 20 Nov 2014 18:22:09 +0000 Subject: [PATCH 18/33] Inspector now supports colour editing --- FScript.xcodeproj/project.pbxproj | 40 + FScriptFramework/FSColorWell.h | 12 + FScriptFramework/FSColorWell.m | 24 + FScriptFramework/FSDetailedObjectInspector.h | 2 +- FScriptFramework/FSDetailedObjectInspector.m | 82 + .../FSObjectBrowserViewObjectInfo.m | 2420 +++++++++-------- FScriptFramework/FSObjectEnumInfo.h | 5 +- FScriptFramework/FSObjectEnumInfo.m | 27 +- .../FSObjectInspectorViewController.h | 3 + .../FSObjectInspectorViewController.m | 98 +- .../FSObjectInspectorViewController.xib | 41 +- .../FSObjectInspectorViewModelItem.h | 15 +- .../FSObjectInspectorViewModelItem.m | 39 +- 13 files changed, 1570 insertions(+), 1238 deletions(-) create mode 100644 FScriptFramework/FSColorWell.h create mode 100644 FScriptFramework/FSColorWell.m diff --git a/FScript.xcodeproj/project.pbxproj b/FScript.xcodeproj/project.pbxproj index bb5910c..bfbd9e2 100644 --- a/FScript.xcodeproj/project.pbxproj +++ b/FScript.xcodeproj/project.pbxproj @@ -2731,6 +2731,24 @@ ED3004F71A1A86EF00675D94 /* FSObjectInspectorViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = ED3004E71A1A86EF00675D94 /* FSObjectInspectorViewController.xib */; }; ED3004F81A1A86EF00675D94 /* FSObjectInspectorViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = ED3004E71A1A86EF00675D94 /* FSObjectInspectorViewController.xib */; }; ED3004F91A1A86EF00675D94 /* FSObjectInspectorViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = ED3004E71A1A86EF00675D94 /* FSObjectInspectorViewController.xib */; }; + ED3CB6411A1E5B3300771077 /* FSColorWell.h in Headers */ = {isa = PBXBuildFile; fileRef = ED3CB63F1A1E5B3300771077 /* FSColorWell.h */; }; + ED3CB6421A1E5B3300771077 /* FSColorWell.h in Headers */ = {isa = PBXBuildFile; fileRef = ED3CB63F1A1E5B3300771077 /* FSColorWell.h */; }; + ED3CB6431A1E5B3300771077 /* FSColorWell.h in Headers */ = {isa = PBXBuildFile; fileRef = ED3CB63F1A1E5B3300771077 /* FSColorWell.h */; }; + ED3CB6441A1E5B3300771077 /* FSColorWell.h in Headers */ = {isa = PBXBuildFile; fileRef = ED3CB63F1A1E5B3300771077 /* FSColorWell.h */; }; + ED3CB6451A1E5B3300771077 /* FSColorWell.h in Headers */ = {isa = PBXBuildFile; fileRef = ED3CB63F1A1E5B3300771077 /* FSColorWell.h */; }; + ED3CB6461A1E5B3300771077 /* FSColorWell.h in Headers */ = {isa = PBXBuildFile; fileRef = ED3CB63F1A1E5B3300771077 /* FSColorWell.h */; }; + ED3CB6471A1E5B3300771077 /* FSColorWell.h in Headers */ = {isa = PBXBuildFile; fileRef = ED3CB63F1A1E5B3300771077 /* FSColorWell.h */; }; + ED3CB6481A1E5B3300771077 /* FSColorWell.h in Headers */ = {isa = PBXBuildFile; fileRef = ED3CB63F1A1E5B3300771077 /* FSColorWell.h */; }; + ED3CB6491A1E5B3300771077 /* FSColorWell.m in Sources */ = {isa = PBXBuildFile; fileRef = ED3CB6401A1E5B3300771077 /* FSColorWell.m */; }; + ED3CB64A1A1E5B3300771077 /* FSColorWell.m in Sources */ = {isa = PBXBuildFile; fileRef = ED3CB6401A1E5B3300771077 /* FSColorWell.m */; }; + ED3CB64B1A1E5B3300771077 /* FSColorWell.m in Sources */ = {isa = PBXBuildFile; fileRef = ED3CB6401A1E5B3300771077 /* FSColorWell.m */; }; + ED3CB64C1A1E5B3300771077 /* FSColorWell.m in Sources */ = {isa = PBXBuildFile; fileRef = ED3CB6401A1E5B3300771077 /* FSColorWell.m */; }; + ED3CB64D1A1E5B3300771077 /* FSColorWell.m in Sources */ = {isa = PBXBuildFile; fileRef = ED3CB6401A1E5B3300771077 /* FSColorWell.m */; }; + ED3CB64E1A1E5B3300771077 /* FSColorWell.m in Sources */ = {isa = PBXBuildFile; fileRef = ED3CB6401A1E5B3300771077 /* FSColorWell.m */; }; + ED3CB64F1A1E5B3300771077 /* FSColorWell.m in Sources */ = {isa = PBXBuildFile; fileRef = ED3CB6401A1E5B3300771077 /* FSColorWell.m */; }; + ED3CB6501A1E5B3300771077 /* FSColorWell.m in Sources */ = {isa = PBXBuildFile; fileRef = ED3CB6401A1E5B3300771077 /* FSColorWell.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; + ED3CB6511A1E5B3300771077 /* FSColorWell.m in Sources */ = {isa = PBXBuildFile; fileRef = ED3CB6401A1E5B3300771077 /* FSColorWell.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; + ED3CB6521A1E5B9100771077 /* FSColorWell.m in Sources */ = {isa = PBXBuildFile; fileRef = ED3CB6401A1E5B3300771077 /* FSColorWell.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; ED8222D61A194FD600C42C72 /* FSObjectInspectorViewModelItem.h in Headers */ = {isa = PBXBuildFile; fileRef = ED8222D41A194FD600C42C72 /* FSObjectInspectorViewModelItem.h */; }; ED8222D71A194FD600C42C72 /* FSObjectInspectorViewModelItem.h in Headers */ = {isa = PBXBuildFile; fileRef = ED8222D41A194FD600C42C72 /* FSObjectInspectorViewModelItem.h */; }; ED8222D81A194FD600C42C72 /* FSObjectInspectorViewModelItem.h in Headers */ = {isa = PBXBuildFile; fileRef = ED8222D41A194FD600C42C72 /* FSObjectInspectorViewModelItem.h */; }; @@ -4203,6 +4221,8 @@ ED3004E51A1A86EF00675D94 /* FSObjectInspectorViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSObjectInspectorViewController.h; sourceTree = ""; }; ED3004E61A1A86EF00675D94 /* FSObjectInspectorViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 8; lastKnownFileType = sourcecode.c.objc; path = FSObjectInspectorViewController.m; sourceTree = ""; tabWidth = 8; }; ED3004E71A1A86EF00675D94 /* FSObjectInspectorViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = FSObjectInspectorViewController.xib; sourceTree = ""; }; + ED3CB63F1A1E5B3300771077 /* FSColorWell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSColorWell.h; sourceTree = ""; }; + ED3CB6401A1E5B3300771077 /* FSColorWell.m */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 8; lastKnownFileType = sourcecode.c.objc; path = FSColorWell.m; sourceTree = ""; tabWidth = 8; }; ED8222D41A194FD600C42C72 /* FSObjectInspectorViewModelItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSObjectInspectorViewModelItem.h; sourceTree = ""; }; ED8222D51A194FD600C42C72 /* FSObjectInspectorViewModelItem.m */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 8; lastKnownFileType = sourcecode.c.objc; path = FSObjectInspectorViewModelItem.m; sourceTree = ""; tabWidth = 8; }; ED8222E51A19554F00C42C72 /* FSObjectEnumInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSObjectEnumInfo.h; sourceTree = ""; }; @@ -5358,6 +5378,8 @@ ED3004E71A1A86EF00675D94 /* FSObjectInspectorViewController.xib */, EDC2C8EE1A1AA34D00942777 /* FSObjectInspectorBackgroundView.h */, EDC2C8EF1A1AA34D00942777 /* FSObjectInspectorBackgroundView.m */, + ED3CB63F1A1E5B3300771077 /* FSColorWell.h */, + ED3CB6401A1E5B3300771077 /* FSColorWell.m */, ); name = "Object Inspector"; sourceTree = ""; @@ -5456,6 +5478,7 @@ 8F6DA5FB055FC6980050409A /* FSArchiver.h in Headers */, 8F6DA5FC055FC6980050409A /* FSFlight.h in Headers */, 8F6DA5FD055FC6980050409A /* FSBoolean.h in Headers */, + ED3CB6481A1E5B3300771077 /* FSColorWell.h in Headers */, 8F6DA5FE055FC6980050409A /* FSBooleanPrivate.h in Headers */, 8F6DA600055FC6980050409A /* FScriptFunctions.h in Headers */, 8F6DA601055FC6980050409A /* FSInterpreter.h in Headers */, @@ -5649,6 +5672,7 @@ 8F6DA819055FC70C0050409A /* FSInterpreterViewIBHeader.h in Headers */, 8F6DA81A055FC70C0050409A /* FSNSArray.h in Headers */, 8F6DA81B055FC70C0050409A /* FSNSArrayPrivate.h in Headers */, + ED3CB6411A1E5B3300771077 /* FSColorWell.h in Headers */, 8F6DA81C055FC70C0050409A /* FSNSDate.h in Headers */, EDFB30101A188B4E002C8DD7 /* CHMutableDictionary.h in Headers */, 8F6DA81D055FC70C0050409A /* FSNSDictionary.h in Headers */, @@ -5890,6 +5914,7 @@ 8F7D7DBF058E32CD00F1B8A8 /* FSReplacementForCoderForNilInArray.h in Headers */, 8F0E3B82059F3DBB003F6CE9 /* FSNamedNumber.h in Headers */, EDFB30111A188B4E002C8DD7 /* CHMutableDictionary.h in Headers */, + ED3CB6421A1E5B3300771077 /* FSColorWell.h in Headers */, 8F60217205A25CDC0004EFF1 /* FSCollectionInspectorTableView.h in Headers */, 8F60F24B05A9FE8B00985FEC /* FSNSSet.h in Headers */, EDFB30021A188B4E002C8DD7 /* CHBidirectionalDictionary.h in Headers */, @@ -6003,6 +6028,7 @@ BA2231CC189FA403002C5B6A /* FSInterpreterViewIBHeader.h in Headers */, BA2231CD189FA403002C5B6A /* FSNSArray.h in Headers */, BA2231CE189FA403002C5B6A /* FSNSArrayPrivate.h in Headers */, + ED3CB6431A1E5B3300771077 /* FSColorWell.h in Headers */, BA2231CF189FA403002C5B6A /* FSNSDate.h in Headers */, EDFB30121A188B4E002C8DD7 /* CHMutableDictionary.h in Headers */, BA2231D0189FA403002C5B6A /* FSNSDictionary.h in Headers */, @@ -6182,6 +6208,7 @@ BA22338C189FA412002C5B6A /* FSInterpreterViewIBHeader.h in Headers */, BA22338D189FA412002C5B6A /* FSNSArray.h in Headers */, BA22338E189FA412002C5B6A /* FSNSArrayPrivate.h in Headers */, + ED3CB6451A1E5B3300771077 /* FSColorWell.h in Headers */, BA22338F189FA412002C5B6A /* FSNSDate.h in Headers */, EDFB30141A188B4E002C8DD7 /* CHMutableDictionary.h in Headers */, BA223390189FA412002C5B6A /* FSNSDictionary.h in Headers */, @@ -6423,6 +6450,7 @@ BA223581189FA429002C5B6A /* FSReplacementForCoderForNilInArray.h in Headers */, BA223582189FA429002C5B6A /* FSNamedNumber.h in Headers */, EDFB30131A188B4E002C8DD7 /* CHMutableDictionary.h in Headers */, + ED3CB6441A1E5B3300771077 /* FSColorWell.h in Headers */, BA223583189FA429002C5B6A /* FSCollectionInspectorTableView.h in Headers */, BA223584189FA429002C5B6A /* FSNSSet.h in Headers */, EDFB30041A188B4E002C8DD7 /* CHBidirectionalDictionary.h in Headers */, @@ -6598,6 +6626,7 @@ BA2236C9189FA431002C5B6A /* FSReplacementForCoderForNilInArray.h in Headers */, BA2236CA189FA431002C5B6A /* FSNamedNumber.h in Headers */, EDFB30151A188B4E002C8DD7 /* CHMutableDictionary.h in Headers */, + ED3CB6461A1E5B3300771077 /* FSColorWell.h in Headers */, BA2236CB189FA431002C5B6A /* FSCollectionInspectorTableView.h in Headers */, BA2236CC189FA431002C5B6A /* FSNSSet.h in Headers */, EDFB30061A188B4E002C8DD7 /* CHBidirectionalDictionary.h in Headers */, @@ -6711,6 +6740,7 @@ EDC2C92A1A1AA50D00942777 /* FSInterpreterViewIBHeader.h in Headers */, EDC2C92B1A1AA50D00942777 /* FSNSArray.h in Headers */, EDC2C92C1A1AA50D00942777 /* FSNSArrayPrivate.h in Headers */, + ED3CB6471A1E5B3300771077 /* FSColorWell.h in Headers */, EDC2C92D1A1AA50D00942777 /* FSNSDate.h in Headers */, EDC2C92E1A1AA50D00942777 /* CHMutableDictionary.h in Headers */, EDC2C92F1A1AA50D00942777 /* FSNSDictionary.h in Headers */, @@ -7722,6 +7752,7 @@ 8F0CBC010BDB94AD002B0AD7 /* FSNSArray.m in Sources */, ED8222F51A19554F00C42C72 /* FSObjectEnumInfo.m in Sources */, 8F0CBC020BDB94AD002B0AD7 /* FSNSDate.m in Sources */, + ED3CB6511A1E5B3300771077 /* FSColorWell.m in Sources */, 8F0CBC030BDB94AD002B0AD7 /* FSNSDictionary.m in Sources */, 8F0CBC040BDB94AD002B0AD7 /* FSNSMutableString.m in Sources */, 8F0CBC050BDB94AD002B0AD7 /* FSNSNumber.m in Sources */, @@ -7914,6 +7945,7 @@ EDFB300E1A188B4E002C8DD7 /* CHBidirectionalDictionary.m in Sources */, 8F6DA6B1055FC6980050409A /* FSObjectBrowserButtonsInspector.m in Sources */, 8F6DA6B2055FC6980050409A /* Pointer.m in Sources */, + ED3CB6501A1E5B3300771077 /* FSColorWell.m in Sources */, 8F6DA6B3055FC6980050409A /* FSIdentifierFormatter.m in Sources */, 8F6DA6B4055FC6980050409A /* FSObjectFormatter.m in Sources */, 8F6DA6B7055FC6980050409A /* FSKeyedUnarchiver.m in Sources */, @@ -8089,6 +8121,7 @@ 8F6DA8D4055FC70C0050409A /* FSConstantListBuilder.m in Sources */, 8F6DA8D5055FC70C0050409A /* FSImageInspector.m in Sources */, 8F6DA8D6055FC70C0050409A /* FSNSImage.m in Sources */, + ED3CB6491A1E5B3300771077 /* FSColorWell.m in Sources */, EDC2C8E41A1A943600942777 /* FSDetailedObjectInspector.m in Sources */, 8F6DA8D7055FC70C0050409A /* FSObjectBrowserToolbarItem.m in Sources */, 8F6DA8D8055FC70C0050409A /* FSArrayEnumerator.m in Sources */, @@ -8200,6 +8233,7 @@ 8F6DA990055FC71F0050409A /* FSInterpreterResult.m in Sources */, 8F6DA991055FC71F0050409A /* FSInterpreterView.m in Sources */, 8F6DA992055FC71F0050409A /* FSNSArray.m in Sources */, + ED3CB64A1A1E5B3300771077 /* FSColorWell.m in Sources */, 8F6DA993055FC71F0050409A /* FSNSDate.m in Sources */, 8F6DA994055FC71F0050409A /* FSNSDictionary.m in Sources */, EDFB30091A188B4E002C8DD7 /* CHBidirectionalDictionary.m in Sources */, @@ -8402,6 +8436,7 @@ BA2232AB189FA403002C5B6A /* FSConstantListBuilder.m in Sources */, BA2232AC189FA403002C5B6A /* FSImageInspector.m in Sources */, BA2232AD189FA403002C5B6A /* FSNSImage.m in Sources */, + ED3CB64B1A1E5B3300771077 /* FSColorWell.m in Sources */, EDC2C8E61A1A943600942777 /* FSDetailedObjectInspector.m in Sources */, BA2232AE189FA403002C5B6A /* FSObjectBrowserToolbarItem.m in Sources */, BA2232AF189FA403002C5B6A /* FSArrayEnumerator.m in Sources */, @@ -8562,6 +8597,7 @@ BA22346B189FA412002C5B6A /* FSConstantListBuilder.m in Sources */, BA22346C189FA412002C5B6A /* FSImageInspector.m in Sources */, BA22346D189FA412002C5B6A /* FSNSImage.m in Sources */, + ED3CB64D1A1E5B3300771077 /* FSColorWell.m in Sources */, EDC2C8E81A1A943600942777 /* FSDetailedObjectInspector.m in Sources */, BA22346E189FA412002C5B6A /* FSObjectBrowserToolbarItem.m in Sources */, BA22346F189FA412002C5B6A /* FSArrayEnumerator.m in Sources */, @@ -8673,6 +8709,7 @@ BA2235F0189FA429002C5B6A /* FSInterpreterResult.m in Sources */, BA2235F1189FA429002C5B6A /* FSInterpreterView.m in Sources */, BA2235F2189FA429002C5B6A /* FSNSArray.m in Sources */, + ED3CB64C1A1E5B3300771077 /* FSColorWell.m in Sources */, BA2235F3189FA429002C5B6A /* FSNSDate.m in Sources */, BA2235F4189FA429002C5B6A /* FSNSDictionary.m in Sources */, EDFB300B1A188B4E002C8DD7 /* CHBidirectionalDictionary.m in Sources */, @@ -8826,6 +8863,7 @@ BA223738189FA431002C5B6A /* FSInterpreterResult.m in Sources */, BA223739189FA431002C5B6A /* FSInterpreterView.m in Sources */, BA22373A189FA431002C5B6A /* FSNSArray.m in Sources */, + ED3CB64E1A1E5B3300771077 /* FSColorWell.m in Sources */, BA22373B189FA431002C5B6A /* FSNSDate.m in Sources */, BA22373C189FA431002C5B6A /* FSNSDictionary.m in Sources */, EDFB300D1A188B4E002C8DD7 /* CHBidirectionalDictionary.m in Sources */, @@ -9028,6 +9066,7 @@ EDC2CA171A1AA50D00942777 /* FSConstantListBuilder.m in Sources */, EDC2CA181A1AA50D00942777 /* FSImageInspector.m in Sources */, EDC2CA191A1AA50D00942777 /* FSNSImage.m in Sources */, + ED3CB64F1A1E5B3300771077 /* FSColorWell.m in Sources */, EDC2CA1A1A1AA50D00942777 /* FSDetailedObjectInspector.m in Sources */, EDC2CA1B1A1AA50D00942777 /* FSObjectBrowserToolbarItem.m in Sources */, EDC2CA1C1A1AA50D00942777 /* FSArrayEnumerator.m in Sources */, @@ -9139,6 +9178,7 @@ EDC2CBAA1A1AA52500942777 /* FSInterpreterResult.m in Sources */, EDC2CBAB1A1AA52500942777 /* FSInterpreterView.m in Sources */, EDC2CBAC1A1AA52500942777 /* FSNSArray.m in Sources */, + ED3CB6521A1E5B9100771077 /* FSColorWell.m in Sources */, EDC2CBAD1A1AA52500942777 /* FSNSDate.m in Sources */, EDC2CBAE1A1AA52500942777 /* FSNSDictionary.m in Sources */, EDC2CBAF1A1AA52500942777 /* CHBidirectionalDictionary.m in Sources */, diff --git a/FScriptFramework/FSColorWell.h b/FScriptFramework/FSColorWell.h new file mode 100644 index 0000000..24634c8 --- /dev/null +++ b/FScriptFramework/FSColorWell.h @@ -0,0 +1,12 @@ +// +// FSColorWell.h +// FScript +// +// Created by Anthony Dervish on 20/11/2014. +// +// + +#import + +@interface FSColorWell : NSColorWell +@end diff --git a/FScriptFramework/FSColorWell.m b/FScriptFramework/FSColorWell.m new file mode 100644 index 0000000..782f00f --- /dev/null +++ b/FScriptFramework/FSColorWell.m @@ -0,0 +1,24 @@ +// +// FSColorWell.m +// FScript +// +// Created by Anthony Dervish on 20/11/2014. +// +// + +#import "FSColorWell.h" + +@implementation FSColorWell + +- (void)drawRect:(NSRect)dirtyRect +{ + [super drawRect:dirtyRect]; + + // Drawing code here. +} + +- (void)mouseDown:(NSEvent*)theEvent +{ + [self sendAction:self.action to:self.target]; +} +@end diff --git a/FScriptFramework/FSDetailedObjectInspector.h b/FScriptFramework/FSDetailedObjectInspector.h index 76f0580..53adedc 100644 --- a/FScriptFramework/FSDetailedObjectInspector.h +++ b/FScriptFramework/FSDetailedObjectInspector.h @@ -6,7 +6,7 @@ @class FSObjectInspectorViewModelItem; @interface FSDetailedObjectInspector : NSObject -@property (weak,nonatomic) id inspectedObject; +@property (strong,nonatomic) id inspectedObject; @property (readonly,nonatomic) NSWindow *window; + (FSDetailedObjectInspector *)detailedObjectInspectorWithObject:(id)object rootViewModelItem:(FSObjectInspectorViewModelItem*)root; - (FSDetailedObjectInspector *)initWithObject:(id)object rootViewModelItem:(FSObjectInspectorViewModelItem*)root; diff --git a/FScriptFramework/FSDetailedObjectInspector.m b/FScriptFramework/FSDetailedObjectInspector.m index ce1125e..6047784 100644 --- a/FScriptFramework/FSDetailedObjectInspector.m +++ b/FScriptFramework/FSDetailedObjectInspector.m @@ -9,6 +9,24 @@ static NSPoint sTopLeftPoint = { 0, 0 }; // Used for cascading windows. static BOOL sIsFirstWindow = YES; +static void *TREE_OBSERVATION_CONTEXT = &TREE_OBSERVATION_CONTEXT; + +@interface NSTreeNode (FSTraversal) +-(void)fs_visitNodesWithBlock:(void(^)(NSTreeNode*node))block; +@end +@implementation NSTreeNode (FSTraversal) +-(void)fs_visitNodesWithBlock:(void(^)(NSTreeNode*node))block +{ + assert(block && "block cannot be nil"); + block(self); + for (NSTreeNode *child in self.childNodes) { + [child fs_visitNodesWithBlock:block]; + } +} +@end + + + @interface FSDetailedObjectInspector () @property (strong,readwrite,nonatomic) NSWindow *window; @property (strong,nonatomic) FSObjectInspectorViewController *viewController; @@ -56,6 +74,11 @@ - (FSDetailedObjectInspector *)initWithObject:(id)object rootViewModelItem:(FSOb } +-(void)dealloc +{ + [self _unwatchItems]; +} + - (void)updateAction:(id)sender { [self.window setTitle:[NSString stringWithFormat:@"Inspecting %@ at address %p", descriptionForFSMessage(self.inspectedObject), self.inspectedObject]]; @@ -67,5 +90,64 @@ - (void)windowWillClose:(NSNotification*)aNotification { } +/* + * + * + *================================================================================================*/ +#pragma mark - Properties +/*================================================================================================== + */ + + +-(void)setRootViewModelItem:(FSObjectInspectorViewModelItem *)rootViewModelItem +{ + [self _unwatchItems]; + _rootViewModelItem = rootViewModelItem; + [self _watchItems]; +} + +-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context +{ + if (context == TREE_OBSERVATION_CONTEXT) { + NSLog(@"Value changed for %@. Change = %@", object, change); + id target = self.inspectedObject; + FSObjectInspectorViewModelItem *item = object; + if (item.setter) { + if (item.valueType == FS_ITEM_OBJECT) { + item.setter(target, item.value, item); + NSLog(@"[%@ setValue:%@ forKey:%@",target,item.value,item.getter); + } + else { + item.setter(target, @(item.numValue), item); + NSLog(@"[%@ setValue:%@ forKey:%@",target,@(item.numValue),item.getter); + } + } + } +} +/* + * + * + *================================================================================================*/ +#pragma mark - Utilities +/*================================================================================================== + */ + + +-(void)_watchItems +{ + [self.rootViewModelItem fs_visitNodesWithBlock:^(NSTreeNode *node) { + [node addObserver:self + forKeyPath:@"value" + options:0 + context:TREE_OBSERVATION_CONTEXT]; + }]; +} +-(void)_unwatchItems +{ + [self.rootViewModelItem fs_visitNodesWithBlock:^(NSTreeNode *node) { + [node removeObserver:self + forKeyPath:@"value" ]; + }]; +} @end diff --git a/FScriptFramework/FSObjectBrowserViewObjectInfo.m b/FScriptFramework/FSObjectBrowserViewObjectInfo.m index 109a0d1..2ef719f 100644 --- a/FScriptFramework/FSObjectBrowserViewObjectInfo.m +++ b/FScriptFramework/FSObjectBrowserViewObjectInfo.m @@ -38,6 +38,19 @@ #import "FSCNDictionary.h" #import "FSAssociation.h" +static inline NSString *fs_setterForProperty(NSString*prop) +{ + NSString *setter = @""; + if (prop.length > 1) { + setter = [[@"set" stringByAppendingString:[prop substringToIndex:1].uppercaseString] stringByAppendingString:[prop substringFromIndex:1]]; + } + else if (prop.length == 1) { + setter = [prop uppercaseString]; + } + return setter; + +} + @interface FSObjectBrowserViewObjectHelper : NSObject { FSObjectBrowserCell* selectedCell; NSString* selectedClassLabel; @@ -51,77 +64,10 @@ @interface FSObjectBrowserViewObjectHelper : NSObject { @property (nonatomic, retain) NSMutableArray* baseClasses; @property (nonatomic, retain) FSObjectInspectorViewModelItem* rootViewModelItem; +@property (nonatomic, assign) FSObjectInspectorViewModelItem* currentViewModelItem; - (id)initWithObjectBrowserView:(FSObjectBrowserView*)view; - (void)fillMatrix:(NSMatrix*)m withObject:(id)object; - -- (void)addFSGenericPointer:(id)object; -- (void)addFSObjectPointer:(id)object; -- (void)addNSAffineTransform:(id)object; -- (void)addNSAlert:(id)object; -- (void)addNSAnimation:(id)object; -- (void)addNSAnimationContext:(id)object; -- (void)addNSAttributedString:(id)object; -- (void)addNSBezierPath:(id)object; -- (void)addNSCell:(id)object; -- (void)addNSCollectionViewItem:(id)object; -- (void)addNSComparisonPredicate:(id)object; -- (void)addNSCompoundPredicate:(id)object; -- (void)addNSController:(id)object; -- (void)addNSCursor:(id)object; -- (void)addNSDockTile:(id)object; -- (void)addNSDocument:(id)object; -- (void)addNSDocumentController:(id)object; -- (void)addNSEntityDescription:(id)object; -- (void)addNSEvent:(id)object; -- (void)addNSExpression:(id)object; -- (void)addNSFetchRequest:(id)object; -- (void)addNSFileWrapper:(id)object; -- (void)addNSFont:(id)object; -- (void)addNSFontDescriptor:(id)object; -- (void)addNSFontManager:(id)object; -- (void)addNSGlyphInfo:(id)object; -- (void)addNSGlyphGenerator:(id)object; -- (void)addNSGradient:(id)object; -- (void)addNSGraphicsContext:(id)object; -- (void)addNSImage:(id)object; -- (void)addNSImageRep:(id)object; -- (void)addNSLayoutManager:(id)object; -- (void)addNSManagedObjectContext:(id)object; -- (void)addNSManagedObjectID:(id)object; -- (void)addNSManagedObjectModel:(id)object; -- (void)addNSMenu:(id)object; -- (void)addNSMenuItem:(id)object; -- (void)addNSOpenGLContext:(id)object; -- (void)addNSOpenGLPixelBuffer:(id)object; -- (void)addNSOpenGLPixelFormat:(id)object; -- (void)addNSPageLayout:(id)object; -- (void)addNSParagraphStyle:(id)object; -- (void)addNSPersistentStoreCoordinator:(id)object; -- (void)addNSPredicateEditorRowTemplate:(id)object; -- (void)addNSPropertyDescription:(id)object; -- (void)addNSResponder:(id)object; -- (void)addNSRulerMarker:(id)object; -- (void)addNSScreen:(id)object; -- (void)addNSShadow:(id)object; -- (void)addNSStatusBar:(id)object; -- (void)addNSStatusItem:(id)object; -- (void)addNSTabViewItem:(id)object; -- (void)addNSTableColumn:(id)object; -- (void)addNSTextAttachment:(id)object; -- (void)addNSTextBlock:(id)object; -- (void)addNSTextContainer:(id)object; -- (void)addNSTextList:(id)object; -- (void)addNSTextTab:(id)object; -- (void)addNSToolbar:(id)object; -- (void)addNSToolbarItem:(id)object; -- (void)addNSTrackingArea:(id)object; -- (void)addNSUndoManager:(id)object; -- (void)addNSATSTypesetter:(id)object; - -- (void)processNSView:(id)object; -- (void)processNSControl:(id)object; -- (void)processNSWindow:(id)object; @end @@ -149,7 +95,35 @@ - (void)fillMatrix:(NSMatrix*)m column:(NSUInteger)col withObject:(id)object @implementation FSObjectBrowserViewObjectHelper -- (void)addObject:(id)object valueType:(FSInspectorVMValueType)valueType getter:(NSString*)getter setter:(NSString*)setter withLabel:(NSString*)label toMatrix:(NSMatrix*)matrix enumBiDict:(CHBidirectionalDictionary*)enumBiDict notNil:(BOOL)notNil +- (id)init +{ + return [self initWithObjectBrowserView:nil]; +} + +- (id)initWithObjectBrowserView:(FSObjectBrowserView*)theView +{ + self = [super init]; + if (self) { + + if (!theView) { + return nil; + } + + view = [[theView retain] autorelease]; + self.rootViewModelItem = [FSObjectInspectorViewModelItem new]; + self.currentViewModelItem = self.rootViewModelItem; + } + + return self; +} + +- (void)dealloc +{ + [baseClasses release]; + [_rootViewModelItem release]; + [super dealloc]; +} +- (void)addObject:(id)object valueType:(FSInspectorVMValueType)valueType getter:(FSGetterBlock)getter setter:(FSSetterBlock)setter withLabel:(NSString*)label toMatrix:(NSMatrix*)matrix enumBiDict:(CHBidirectionalDictionary*)enumBiDict valueClass:(Class)valueClass notNil:(BOOL)notNil { @try { if (!notNil || object) { @@ -161,7 +135,8 @@ - (void)addObject:(id)object valueType:(FSInspectorVMValueType)valueType getter: item.enumBiDict = enumBiDict; item.getter = getter; item.setter = setter; - [self.rootViewModelItem.mutableChildNodes addObject:item]; + item.valueClass = valueClass ?: [object class]; + [self.currentViewModelItem.mutableChildNodes addObject:item]; } } @catch (id exception) @@ -169,26 +144,73 @@ - (void)addObject:(id)object valueType:(FSInspectorVMValueType)valueType getter: NSLog(@"%@", exception); } } +- (void)addObject:(id)object valueType:(FSInspectorVMValueType)valueType getter:(FSGetterBlock)getter setter:(FSSetterBlock)setter withLabel:(NSString*)label toMatrix:(NSMatrix*)matrix notNil:(BOOL)notNil +{ + [self addObject:object valueType:valueType getter:getter setter:setter withLabel:label toMatrix:matrix enumBiDict:nil valueClass:nil notNil:notNil]; +} - (void)addObject:(id)object valueType:(FSInspectorVMValueType)valueType withLabel:(NSString*)label toMatrix:(NSMatrix*)matrix notNil:(BOOL)notNil { - [self addObject:object valueType:valueType getter:nil setter:nil withLabel:label toMatrix:matrix enumBiDict:nil notNil:notNil]; + [self addObject:object valueType:valueType getter:nil setter:nil withLabel:label toMatrix:matrix enumBiDict:nil valueClass:(Class)nil notNil:notNil]; +} +- (void)addObject:(id)object valueType:(FSInspectorVMValueType)valueType getter:(FSGetterBlock)getter setter:(FSSetterBlock)setter withLabel:(NSString*)label toMatrix:(NSMatrix*)matrix +{ + [self addObject:object valueType:valueType getter:getter setter:setter withLabel:label toMatrix:matrix enumBiDict:nil valueClass:nil notNil:NO]; +} + +-(void)addGroup:(NSString*)groupName +{ + FSObjectInspectorViewModelItem *item = [[FSObjectInspectorViewModelItem new] autorelease]; + item.name = groupName; + item.valueType = FS_ITEM_GROUP; + [self.currentViewModelItem.mutableChildNodes addObject:item]; + self.currentViewModelItem = item; } -#define ADD_ENUM(ENUM, OBJECT, GETTER, SETTER, LABEL) \ - [self addObject:objectFrom ## ENUM(OBJECT) valueType:FS_ITEM_ENUM getter:@#GETTER setter:@#SETTER withLabel:(LABEL) toMatrix:m enumBiDict:FSObjectEnumInfo.optionsFor ## ENUM notNil:NO]; -#define ADD_OBJECT(OBJECT, LABEL) \ +-(void)endGroup +{ + self.currentViewModelItem = (FSObjectInspectorViewModelItem*)self.currentViewModelItem.parentNode; +} + +#define START_GROUP(GROUP) [self addGroup:(@#GROUP)]; +#define END_GROUP(GROUP) [self endGroup]; + +#define ADD_VALUE(OBJECT, VALUE_TYPE, GETTER, SETTER, BIDICT, VALUE_CLASS, LABEL) \ @try { \ - [view addObject:(OBJECT)withLabel:(LABEL)toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; \ + [self addObject:(OBJECT) \ + valueType:VALUE_TYPE \ + getter:^(id obj, FSObjectInspectorViewModelItem *item) { return [obj valueForKey:@#GETTER]; } \ + setter:^(id obj, id newVal, FSObjectInspectorViewModelItem *item) { [obj setValue:newVal forKey:@#GETTER]; } \ + withLabel:(LABEL) \ + toMatrix:m \ + enumBiDict:BIDICT \ + valueClass:VALUE_CLASS \ + notNil:NO]; \ } \ @catch (id exception) { NSLog(@"%@", exception); } -#define ADD_OBJECT_NOT_NIL(OBJECT, LABEL) \ - @try { \ - id object = (OBJECT); \ - if (object) \ - [view addObject:object withLabel:(LABEL)toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; \ - } \ - @catch (id exception) { NSLog(@"%@", exception); } +#define ADD_ENUM(ENUM, OBJECT, GETTER, SETTER, LABEL) \ + ADD_VALUE(objectFrom ## ENUM(OBJECT), FS_ITEM_ENUM, GETTER, SETTER, FSObjectEnumInfo.optionsFor ## ENUM, nil, LABEL); + +#define ADD_OBJECT(OBJECT, GETTER, SETTER, LABEL) \ + ADD_VALUE(OBJECT, FS_ITEM_OBJECT, GETTER, SETTER, nil, nil, LABEL) + + +#define ADD_OBJECT_NOT_NIL(OBJECT, GETTER, SETTER, LABEL) \ + if (OBJECT) { ADD_VALUE(OBJECT, FS_ITEM_OBJECT, GETTER, SETTER, nil, nil, LABEL); } + +#define ADD_OBJECT_RO(OBJECT, LABEL) ADD_OBJECT(OBJECT, nil, nil, LABEL) +#define ADD_OBJECT_RO_NOT_NIL(OBJECT, LABEL) ADD_OBJECT_NOT_NIL(OBJECT, nil, nil, LABEL) + +#define ADD_COLOR(OBJECT, GETTER, SETTER, LABEL) \ + ADD_VALUE(OBJECT, FS_ITEM_OBJECT, GETTER, SETTER, nil, NSColor.class, LABEL) + +#define ADD_COLOR_NOT_NIL(OBJECT, GETTER, SETTER, LABEL) if (OBJECT) { ADD_COLOR(OBJECT,GETTER,SETTER,LABEL); } + +#define ADD_BOOL(B, GETTER, SETTER, LABEL) \ + ADD_VALUE([FSBoolean booleanWithBool:(B)], FS_ITEM_BOOL, GETTER, SETTER, nil, nil, LABEL); + +#define ADD_NUMBER(NUMBER, GETTER, SETTER, LABEL) \ + ADD_VALUE([FSNumber numberWithDouble:(NUMBER)], FS_ITEM_NUMBER, GETTER, SETTER, nil, nil, LABEL); #define ADD_DICTIONARY(OBJECTS, LABEL) \ @try { \ @@ -208,12 +230,6 @@ - (void)addObject:(id)object valueType:(FSInspectorVMValueType)valueType withLab } \ @catch (id exception) { NSLog(@"%@", exception); } -#define ADD_BOOL(B, LABEL) \ - [self addObject:[FSBoolean booleanWithBool:(B)] valueType:FS_ITEM_BOOL withLabel:(LABEL)toMatrix:m notNil:NO]; - -#define ADD_NUMBER(NUMBER, LABEL) \ - [self addObject:[FSNumber numberWithDouble:(NUMBER)] valueType:FS_ITEM_NUMBER withLabel:(LABEL)toMatrix:m notNil:NO]; - #define ADD_SEL(S, LABEL) \ @try { \ [view addObject:[FSBlock blockWithSelector:(S)] withLabel:(LABEL)toMatrix:m leaf:YES classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject indentationLevel:0]; \ @@ -242,7 +258,7 @@ - (void)addObject:(id)object valueType:(FSInspectorVMValueType)valueType withLab #define ADD_POINTER(POINTER, LABEL) \ @try { \ if (POINTER == NULL) \ - ADD_OBJECT(nil, LABEL) else [view addObject:[[[FSGenericPointer alloc] initWithCPointer:(POINTER)freeWhenDone:NO type:@encode(void)] autorelease] withLabel:(LABEL)toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; \ + ADD_OBJECT_RO(nil, LABEL) else [view addObject:[[[FSGenericPointer alloc] initWithCPointer:(POINTER)freeWhenDone:NO type:@encode(void)] autorelease] withLabel:(LABEL)toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; \ } \ @catch (id exception) { NSLog(@"%@", exception); } @@ -257,33 +273,6 @@ - (void)addObject:(id)object valueType:(FSInspectorVMValueType)valueType withLab @synthesize baseClasses; -- (id)init -{ - return [self initWithObjectBrowserView:nil]; -} - -- (id)initWithObjectBrowserView:(FSObjectBrowserView*)theView -{ - self = [super init]; - if (self) { - - if (!theView) { - return nil; - } - - view = [[theView retain] autorelease]; - self.rootViewModelItem = [FSObjectInspectorViewModelItem new]; - } - - return self; -} - -- (void)dealloc -{ - [baseClasses release]; - [_rootViewModelItem release]; - [super dealloc]; -} - (void)fillMatrix:(NSMatrix*)theMatrix withObject:(id)object { @@ -353,23 +342,23 @@ - (void)fillMatrix:(NSMatrix*)theMatrix withObject:(id)object [view addPropertyLabel:@"Attributes" toMatrix:m]; for (NSUInteger i = 0, count = [attributeKeys count]; i < count; i++) { NSString* key = [attributeKeys objectAtIndex:i]; - ADD_OBJECT([o valueForKey:key], key) + ADD_OBJECT([o valueForKey:key], key, fs_setterForProperty(key), key) } NSArray* relationshipKeys = [[[[o entity] relationshipsByName] allKeys] sortedArrayUsingSelector:@selector(compare:)]; [view addPropertyLabel:@"Relationships" toMatrix:m]; for (NSUInteger i = 0, count = [relationshipKeys count]; i < count; i++) { NSString* key = [relationshipKeys objectAtIndex:i]; - ADD_OBJECT([o valueForKey:key], key) + ADD_OBJECT([o valueForKey:key], key, fs_setterForProperty(key), key) } ADD_CLASS_LABEL(@"NSManagedObject Info"); - ADD_OBJECT([o entity], @"Entity") - ADD_BOOL([o isDeleted], @"Is deleted") - ADD_BOOL([o isInserted], @"Is inserted") - ADD_BOOL([o isUpdated], @"Is updated") - ADD_OBJECT([o managedObjectContext], @"Managed object context") - ADD_OBJECT([o objectID], @"Object ID") + ADD_OBJECT([o entity], entity, setEntity, @"Entity") + ADD_BOOL([o isDeleted], deleted, setisDeleted, @"Is deleted") + ADD_BOOL([o isInserted], inserted, setisInserted, @"Is inserted") + ADD_BOOL([o isUpdated], updated, setisUpdated, @"Is updated") + ADD_OBJECT([o managedObjectContext], managedObjectContext, setManagedObjectContext, @"Managed object context") + ADD_OBJECT([o objectID], objectID, setObjectID, @"Object ID") } else if (([object isKindOfClass:[NSArray class]] || [object isKindOfClass:[NSDictionary class]] || [object isKindOfClass:[NSSet class]]) && [object count] < 500) // We display the elements only if there is less than a certain number of them @@ -521,7 +510,7 @@ - (void)fillMatrix:(NSMatrix*)theMatrix withObject:(id)object [view addObject:errorMessage withLabel:propertyName toMatrix:m leaf:YES classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject indentationLevel:0]; } if (!errorMessage) - ADD_OBJECT(propertyValue, propertyName) + ADD_OBJECT(propertyValue, propertyName, fs_setterForProperty(propertyName), propertyName) } free(properties); } @@ -564,7 +553,7 @@ - (void)fillMatrix:(NSMatrix*)theMatrix withObject:(id)object [view addBindingForObject:object withName:[exposedBindings objectAtIndex:i] toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; } - ADD_OBJECT(exposedBindings, @"Exposed Bindings"); + ADD_OBJECT_RO(exposedBindings, @"Exposed Bindings"); } } } @@ -661,8 +650,8 @@ - (void)addFSGenericPointer:(id)object if (memoryContent) { ADD_CLASS_LABEL(@"FSGenericPointer Info"); - ADD_OBJECT(memoryContent, @"Memory content") - ADD_OBJECT_NOT_NIL([o memoryContentUTF8], @"Memory content as UTF8 string") + ADD_OBJECT(memoryContent, memoryContent, setMemoryContent, @"Memory content") + ADD_OBJECT_NOT_NIL([o memoryContentUTF8], memoryContentUTF8, setMemoryContentUTF8, @"Memory content as UTF8 string") } } @@ -673,7 +662,7 @@ - (void)addFSObjectPointer:(id)object if (memoryContent) { ADD_CLASS_LABEL(@"FSObjectPointer Info"); - ADD_OBJECT(memoryContent, @"Memory content") + ADD_OBJECT(memoryContent, memoryContent, setMemoryContent, @"Memory content") } } @@ -682,30 +671,30 @@ - (void)addNSAffineTransform:(id)object NSAffineTransform* o = object; NSAffineTransformStruct s = [o transformStruct]; ADD_CLASS_LABEL(@"NSAffineTransform Info"); - ADD_NUMBER(s.m11, @"m11") - ADD_NUMBER(s.m12, @"m12") - ADD_NUMBER(s.m21, @"m21") - ADD_NUMBER(s.m22, @"m22") - ADD_NUMBER(s.tX, @"tX") - ADD_NUMBER(s.tY, @"tY") + ADD_NUMBER(s.m11, transformStruct.m11, setTransformStruct.m11, @"m11") + ADD_NUMBER(s.m12, transformStruct.m12, setTransformStruct.m12, @"m12") + ADD_NUMBER(s.m21, transformStruct.m21, setTransformStruct.m21, @"m21") + ADD_NUMBER(s.m22, transformStruct.m22, setTransformStruct.m22, @"m22") + ADD_NUMBER(s.tX, transformStruct.tX, setTransformStruct.tX, @"tX") + ADD_NUMBER(s.tY, transformStruct.tY, setTransformStruct.tY, @"tY") } - (void)addNSAlert:(id)object { NSAlert* o = object; ADD_CLASS_LABEL(@"NSAlert Info"); - ADD_OBJECT([o accessoryView], @"Accessory view") + ADD_OBJECT([o accessoryView], accessoryView, setAccessoryView, @"Accessory view") ADD_ENUM(AlertStyle, [o alertStyle], alertStyle, setalertStyle, @"Alert style") ADD_OBJECTS([o buttons], @"Buttons") - ADD_OBJECT_NOT_NIL([o delegate], @"Delegate") - ADD_OBJECT_NOT_NIL([o helpAnchor], @"Help anchor") - ADD_OBJECT([o icon], @"Icon") - ADD_OBJECT([o informativeText], @"Informative text") - ADD_OBJECT([o messageText], @"Message text") - ADD_BOOL([o showsHelp], @"Shows help") - ADD_BOOL([o showsSuppressionButton], @"Shows suppression button") - ADD_OBJECT([o suppressionButton], @"Suppression button") - ADD_OBJECT([o window], @"Window") + ADD_OBJECT_NOT_NIL([o delegate], delegate, setDelegate, @"Delegate") + ADD_OBJECT_NOT_NIL([o helpAnchor], helpAnchor, setHelpAnchor, @"Help anchor") + ADD_OBJECT([o icon], icon, setIcon, @"Icon") + ADD_OBJECT([o informativeText], informativeText, setInformativeText, @"Informative text") + ADD_OBJECT([o messageText], messageText, setMessageText, @"Message text") + ADD_BOOL([o showsHelp], showsHelp, setshowsHelp, @"Shows help") + ADD_BOOL([o showsSuppressionButton], showsSuppressionButton, setshowsSuppressionButton, @"Shows suppression button") + ADD_OBJECT([o suppressionButton], suppressionButton, setSuppressionButton, @"Suppression button") + ADD_OBJECT([o window], window, setWindow, @"Window") } - (void)addNSAnimation:(id)object @@ -723,21 +712,21 @@ - (void)addNSAnimation:(id)object ADD_CLASS_LABEL(@"NSAnimation Info"); ADD_ENUM(AnimationBlockingMode, [o animationBlockingMode], animationBlockingMode, setanimationBlockingMode, @"Animation blocking mode") ADD_ENUM(AnimationCurve, [o animationCurve], animationCurve, setanimationCurve, @"Animation curve") - ADD_NUMBER([o currentProgress], @"Current progress") - ADD_NUMBER([o currentValue], @"Current value") - ADD_OBJECT([o delegate], @"Delegate") - ADD_NUMBER([o duration], @"Duration (in seconds)") - ADD_NUMBER([o frameRate], @"Frame rate") - ADD_BOOL([o isAnimating], @"Is animating") + ADD_NUMBER([o currentProgress], currentProgress, setCurrentProgress, @"Current progress") + ADD_NUMBER([o currentValue], currentValue, setCurrentValue, @"Current value") + ADD_OBJECT([o delegate], delegate, setDelegate, @"Delegate") + ADD_NUMBER([o duration], duration, setDuration, @"Duration (in seconds)") + ADD_NUMBER([o frameRate], frameRate, setFrameRate, @"Frame rate") + ADD_BOOL([o isAnimating], animating, setisAnimating, @"Is animating") ADD_OBJECTS([o progressMarks], @"Progress marks") - ADD_OBJECT([o runLoopModesForAnimating], @"Run loop modes for animating") + ADD_OBJECT([o runLoopModesForAnimating], runLoopModesForAnimating, setRunLoopModesForAnimating, @"Run loop modes for animating") } - (void)addNSAnimationContext:(id)object { NSAnimationContext* o = object; ADD_CLASS_LABEL(@"NSAnimationContext Info"); - ADD_NUMBER([o duration], @"Duration (in seconds)") + ADD_NUMBER([o duration], duration, setDuration, @"Duration (in seconds)") } - (void)addNSAttributedString:(id)object @@ -747,13 +736,13 @@ - (void)addNSAttributedString:(id)object NSTextStorage* o = object; ADD_CLASS_LABEL(@"NSTextStorage Info"); //ADD_OBJECT( [o attributeRuns] ,@"Attribute runs") - ADD_NUMBER([o changeInLength], @"Change in length") - ADD_OBJECT_NOT_NIL([o delegate], @"Delegate") + ADD_NUMBER([o changeInLength], changeInLength, setChangeInLength, @"Change in length") + ADD_OBJECT_NOT_NIL([o delegate], delegate, setDelegate, @"Delegate") ADD_ENUM(TextStorageEditedOptions, [o editedMask], editedMask, seteditedMask, @"Edited mask") ADD_RANGE([o editedRange], @"Edited range") - ADD_BOOL([o fixesAttributesLazily], @"Fixes attributes lazily") - ADD_OBJECT([o font], @"Font") - ADD_OBJECT([o foregroundColor], @"Foreground color") + ADD_BOOL([o fixesAttributesLazily], fixesAttributesLazily, setfixesAttributesLazily, @"Fixes attributes lazily") + ADD_OBJECT([o font], font, setFont, @"Font") + ADD_COLOR([o foregroundColor], foregroundColor, setForegroundColor, @"Foreground color") ADD_OBJECTS([o layoutManagers], @"Layout managers") // Note: invoking "paragraphs" and retaining the result cause the result of "layoutManager" to become trash ! } @@ -768,13 +757,13 @@ - (void)addNSBezierPath:(id)object ADD_RECT([o controlPointBounds], @"Control point bounds") if (![o isEmpty]) ADD_POINT([o currentPoint], @"Current point") - ADD_NUMBER([o elementCount], @"Element count") - ADD_NUMBER([o flatness], @"Flatness") - ADD_BOOL([o isEmpty], @"Is empty") + ADD_NUMBER([o elementCount], elementCount, setElementCount, @"Element count") + ADD_NUMBER([o flatness], flatness, setFlatness, @"Flatness") + ADD_BOOL([o isEmpty], empty, setisEmpty, @"Is empty") ADD_ENUM(LineCapStyle, [o lineCapStyle], lineCapStyle, setlineCapStyle, @"Line cap style") ADD_ENUM(LineJoinStyle, [o lineJoinStyle], lineJoinStyle, setlineJoinStyle, @"Line join style") - ADD_NUMBER([o lineWidth], @"Line width") - ADD_NUMBER([o miterLimit], @"Miter limit") + ADD_NUMBER([o lineWidth], lineWidth, setLineWidth, @"Line width") + ADD_NUMBER([o miterLimit], miterLimit, setMiterLimit, @"Miter limit") ADD_ENUM(WindingRule, [o windingRule], windingRule, setwindingRule, @"Winding rule") } @@ -786,215 +775,205 @@ - (void)addNSCell:(id)object if ([object isKindOfClass:[NSPopUpButtonCell class]]) { NSPopUpButtonCell* o = object; ADD_CLASS_LABEL(@"NSPopUpButtonCell Info"); - ADD_BOOL([o altersStateOfSelectedItem], @"Alters state of selected item") + ADD_BOOL([o altersStateOfSelectedItem], altersStateOfSelectedItem, setaltersStateOfSelectedItem, @"Alters state of selected item") ADD_ENUM(PopUpArrowPosition, [o arrowPosition], arrowPosition, setarrowPosition, @"Arrow position") - ADD_BOOL([o autoenablesItems], @"Autoenables Items") - ADD_NUMBER([o indexOfSelectedItem], @"Index of selected item") + ADD_BOOL([o autoenablesItems], autoenablesItems, setautoenablesItems, @"Autoenables Items") + ADD_NUMBER([o indexOfSelectedItem], indexOfSelectedItem, setIndexOfSelectedItem, @"Index of selected item") ADD_OBJECTS([o itemArray], @"Item array") - ADD_NUMBER([o numberOfItems], @"Number of items") - ADD_OBJECT([o objectValue], @"Object value") + ADD_NUMBER([o numberOfItems], numberOfItems, setNumberOfItems, @"Number of items") + ADD_OBJECT([o objectValue], objectValue, setObjectValue, @"Object value") ADD_ENUM(RectEdge, [o preferredEdge], preferredEdge, setpreferredEdge, @"Preferred edge") - ADD_BOOL([o pullsDown], @"Pulls down") - ADD_OBJECT([o selectedItem], @"Selected item") - ADD_BOOL([o usesItemFromMenu], @"Uses item from menu") + ADD_BOOL([o pullsDown], pullsDown, setpullsDown, @"Pulls down") + ADD_OBJECT([o selectedItem], selectedItem, setSelectedItem, @"Selected item") + ADD_BOOL([o usesItemFromMenu], usesItemFromMenu, setusesItemFromMenu, @"Uses item from menu") } NSMenuItemCell* o = object; ADD_CLASS_LABEL(@"NSMenuItemCell Info"); if ([[o menuItem] image]) - ADD_NUMBER([o imageWidth], @"Image width") - ADD_BOOL([o isHighlighted], @"Is highlighted") + ADD_NUMBER([o imageWidth], imageWidth, setImageWidth, @"Image width") + ADD_BOOL([o isHighlighted], highlighted, setisHighlighted, @"Is highlighted") if (![[[o menuItem] keyEquivalent] isEqualToString:@""]) - ADD_NUMBER([o keyEquivalentWidth], @"Key equivalent width") - ADD_OBJECT([o menuItem], @"Menu item") - ADD_BOOL([o needsDisplay], @"Needs display") - ADD_BOOL([o needsSizing], @"Needs sizing") - ADD_NUMBER([o stateImageWidth], @"State image width") - ADD_NUMBER([o titleWidth], @"Title width") + ADD_NUMBER([o keyEquivalentWidth], keyEquivalentWidth, setKeyEquivalentWidth, @"Key equivalent width") + ADD_OBJECT([o menuItem], menuItem, setMenuItem, @"Menu item") + ADD_BOOL([o needsDisplay], needsDisplay, setneedsDisplay, @"Needs display") + ADD_BOOL([o needsSizing], needsSizing, setneedsSizing, @"Needs sizing") + ADD_NUMBER([o stateImageWidth], stateImageWidth, setStateImageWidth, @"State image width") + ADD_NUMBER([o titleWidth], titleWidth, setTitleWidth, @"Title width") } NSButtonCell* o = object; ADD_CLASS_LABEL(@"NSButtonCell Info"); - ADD_OBJECT_NOT_NIL([o alternateImage], @"Alternate image") - ADD_OBJECT([o alternateTitle], @"Alternate title") - ADD_OBJECT([o attributedAlternateTitle], @"Attributed alternate title") - ADD_OBJECT([o attributedTitle], @"Attributed title") - ADD_OBJECT([o backgroundColor], @"Background color") + ADD_OBJECT_NOT_NIL([o alternateImage], alternateImage, setAlternateImage, @"Alternate image") + ADD_OBJECT([o alternateTitle], alternateTitle, setAlternateTitle, @"Alternate title") + ADD_OBJECT([o attributedAlternateTitle], attributedAlternateTitle, setAttributedAlternateTitle, @"Attributed alternate title") + ADD_OBJECT([o attributedTitle], attributedTitle, setAttributedTitle, @"Attributed title") + ADD_COLOR([o backgroundColor], backgroundColor, setBackgroundColor, @"Background color") ADD_ENUM(BezelStyle, [o bezelStyle], bezelStyle, setbezelStyle, @"Bezel style") ADD_ENUM(GradientType, [o gradientType], gradientType, setgradientType, @"Gradient type") ADD_ENUM(CellStyleMask, [o highlightsBy], highlightsBy, sethighlightsBy, @"Highlights by") - ADD_BOOL([o imageDimsWhenDisabled], @"Image dims when disabled") + ADD_BOOL([o imageDimsWhenDisabled], imageDimsWhenDisabled, setimageDimsWhenDisabled, @"Image dims when disabled") ADD_ENUM(CellImagePosition, [o imagePosition], imagePosition, setimagePosition, @"Image position") ADD_ENUM(ImageScaling, [o imageScaling], imageScaling, setimageScaling, @"Image scaling") - ADD_BOOL([o isTransparent], @"Is transparent") - ADD_OBJECT_NOT_NIL([o keyEquivalentFont], @"Key equivalent font") + ADD_BOOL([o isTransparent], transparent, setisTransparent, @"Is transparent") + ADD_OBJECT_NOT_NIL([o keyEquivalentFont], keyEquivalentFont, setKeyEquivalentFont, @"Key equivalent font") ADD_ENUM(EventModifierFlags, [o keyEquivalentModifierMask] & NSDeviceIndependentModifierFlagsMask, keyEquivalentModifierMask, setKeyEquivalentModifierMask, @"Key equivalent modifier mask") - ADD_BOOL([o showsBorderOnlyWhileMouseInside], @"Shows border only while mouse inside") + ADD_BOOL([o showsBorderOnlyWhileMouseInside], showsBorderOnlyWhileMouseInside, setshowsBorderOnlyWhileMouseInside, @"Shows border only while mouse inside") ADD_ENUM(CellStyleMask, [o showsStateBy], showsStateBy, setshowsStateBy, @"Shows state by") - ADD_OBJECT_NOT_NIL([o sound], @"Sound") - ADD_OBJECT([o title], @"Title") + ADD_OBJECT_NOT_NIL([o sound], sound, setSound, @"Sound") + ADD_OBJECT([o title], title, setTitle, @"Title") } else if ([object isKindOfClass:[NSDatePickerCell class]]) { NSDatePickerCell* o = object; ADD_CLASS_LABEL(@"NSDatePickerCell Info"); - ADD_OBJECT([o backgroundColor], @"Background color") - ADD_OBJECT([o calendar], @"Calendar") + ADD_COLOR([o backgroundColor], backgroundColor, setBackgroundColor, @"Background color") + ADD_OBJECT([o calendar], calendar, setCalendar, @"Calendar") ADD_ENUM(DatePickerElementFlags, [o datePickerElements], datePickerElements, setdatePickerElements, @"Date picker elements") ADD_ENUM(DatePickerMode, [o datePickerMode], datePickerMode, setdatePickerMode, @"Date picker mode") ADD_ENUM(DatePickerStyle, [o datePickerStyle], datePickerStyle, setdatePickerStyle, @"Date picker style") - ADD_OBJECT([o dateValue], @"Date value") - ADD_OBJECT_NOT_NIL([o delegate], @"Delegate") - ADD_BOOL([o drawsBackground], @"Draws background") - ADD_OBJECT_NOT_NIL([o locale], @"Locale") - ADD_OBJECT([o maxDate], @"Max date") - ADD_OBJECT([o minDate], @"Min date") - ADD_OBJECT([o textColor], @"Text Color") - ADD_NUMBER([o timeInterval], @"Time interval") - ADD_OBJECT([o timeZone], @"Time zone") + ADD_OBJECT([o dateValue], dateValue, setDateValue, @"Date value") + ADD_OBJECT_NOT_NIL([o delegate], delegate, setDelegate, @"Delegate") + ADD_BOOL([o drawsBackground], drawsBackground, setdrawsBackground, @"Draws background") + ADD_OBJECT_NOT_NIL([o locale], locale, setLocale, @"Locale") + ADD_OBJECT([o maxDate], maxDate, setMaxDate, @"Max date") + ADD_OBJECT([o minDate], minDate, setMinDate, @"Min date") + ADD_COLOR([o textColor], textColor, setTextColor, @"Text Color") + ADD_NUMBER([o timeInterval], timeInterval, setTimeInterval, @"Time interval") + ADD_OBJECT([o timeZone], timeZone, setTimeZone, @"Time zone") } else if ([object isKindOfClass:[NSFormCell class]]) { NSFormCell* o = object; ADD_CLASS_LABEL(@"NSFormCell Info"); - ADD_OBJECT([o attributedTitle], @"Attributed title") - ADD_OBJECT_NOT_NIL([o placeholderAttributedString], @"Placeholder attributed string") - ADD_OBJECT_NOT_NIL([o placeholderString], @"Placeholder string") + ADD_OBJECT([o attributedTitle], attributedTitle, setAttributedTitle, @"Attributed title") + ADD_OBJECT_NOT_NIL([o placeholderAttributedString], placeholderAttributedString, setPlaceholderAttributedString, @"Placeholder attributed string") + ADD_OBJECT_NOT_NIL([o placeholderString], placeholderString, setPlaceholderString, @"Placeholder string") ADD_ENUM(TextAlignment, [o titleAlignment], titleAlignment, settitleAlignment, @"Title alignment") ADD_ENUM(WritingDirection, [o titleBaseWritingDirection], titleBaseWritingDirection, settitleBaseWritingDirection, @"Title base writing direction") - ADD_OBJECT([o titleFont], @"Title font") - ADD_NUMBER([o titleWidth], @"Title width") + ADD_OBJECT([o titleFont], titleFont, setTitleFont, @"Title font") + ADD_NUMBER([o titleWidth], titleWidth, setTitleWidth, @"Title width") } else if ([object isKindOfClass:[NSLevelIndicatorCell class]]) { NSLevelIndicatorCell* o = object; ADD_CLASS_LABEL(@"NSLevelIndicatorCell Info"); - ADD_NUMBER([o criticalValue], @"Critical value") + ADD_NUMBER([o criticalValue], criticalValue, setCriticalValue, @"Critical value") ADD_ENUM(LevelIndicatorStyle, [o levelIndicatorStyle], levelIndicatorStyle, setlevelIndicatorStyle, @"Level indicator style") - ADD_NUMBER([o maxValue], @"Max value") - ADD_NUMBER([o minValue], @"Min value") - ADD_NUMBER([o numberOfMajorTickMarks], @"Number of major tick marks") - ADD_NUMBER([o numberOfTickMarks], @"Number of tick marks") - ADD_OBJECT(objectFromTickMarkPosition([o tickMarkPosition], NO), @"Tick mark position") - ADD_NUMBER([o warningValue], @"Warning value") + ADD_NUMBER([o maxValue], maxValue, setMaxValue, @"Max value") + ADD_NUMBER([o minValue], minValue, setMinValue, @"Min value") + ADD_NUMBER([o numberOfMajorTickMarks], numberOfMajorTickMarks, setNumberOfMajorTickMarks, @"Number of major tick marks") + ADD_NUMBER([o numberOfTickMarks], numberOfTickMarks, setNumberOfTickMarks, @"Number of tick marks") + ADD_OBJECT(objectFromTickMarkPosition([o tickMarkPosition], NO), tickMarkPosition, setTickMarkPosition, @"Tick mark position") + ADD_NUMBER([o warningValue], warningValue, setWarningValue, @"Warning value") } else if ([object isKindOfClass:[NSPathCell class]]) { NSPathCell* o = object; ADD_CLASS_LABEL(@"NSPathCell Info"); ADD_OBJECTS([o allowedTypes], @"Allowed types") - ADD_OBJECT_NOT_NIL([o backgroundColor], @"Background color") - ADD_OBJECT([o delegate], @"Delegate") + ADD_COLOR_NOT_NIL([o backgroundColor], backgroundColor, setBackgroundColor, @"Background color") + ADD_OBJECT([o delegate], delegate, setDelegate, @"Delegate") ADD_SEL([o doubleAction], @"Double action") ADD_OBJECTS([o pathComponentCells], @"Path component cells") ADD_ENUM(PathStyle, [o pathStyle], pathStyle, setpathStyle, @"Path style") - ADD_OBJECT_NOT_NIL([o placeholderAttributedString], @"Placeholder attributed string") - ADD_OBJECT_NOT_NIL([o placeholderString], @"Placeholder string") - ADD_OBJECT_NOT_NIL([o URL], @"URL") + ADD_OBJECT_NOT_NIL([o placeholderAttributedString], placeholderAttributedString, setPlaceholderAttributedString, @"Placeholder attributed string") + ADD_OBJECT_NOT_NIL([o placeholderString], placeholderString, setPlaceholderString, @"Placeholder string") + ADD_OBJECT_NOT_NIL([o URL], URL, setURL, @"URL") } else if ([object isKindOfClass:[NSSegmentedCell class]]) { NSSegmentedCell* o = object; NSInteger segmentCount = [o segmentCount]; ADD_CLASS_LABEL(@"NSSegmentedCell Info"); - ADD_NUMBER(segmentCount, @"Segment count") - ADD_NUMBER([o selectedSegment], @"Selected segment") + ADD_NUMBER(segmentCount, segmentCount, setSegmentCount, @"Segment count") + ADD_NUMBER([o selectedSegment], selectedSegment, setSelectedSegment, @"Selected segment") ADD_ENUM(SegmentSwitchTracking, [o trackingMode], trackingMode, settrackingMode, @"Tracking mode") - for (NSInteger i = 0; i < segmentCount; i++) { - ADD_OBJECT_NOT_NIL([o imageForSegment:i], ([NSString stringWithFormat:@"Image for segment %ld", (long)i])) - ADD_OBJECT(objectFromImageScaling([o imageScalingForSegment:i]), ([NSString stringWithFormat:@"Image scaling for segment %ld", (long)i])) - ADD_BOOL([o isEnabledForSegment:i], ([NSString stringWithFormat:@"Is enabled for segment %ld", (long)i])) - ADD_BOOL([o isSelectedForSegment:i], ([NSString stringWithFormat:@"Is selected for segment %ld", (long)i])) - ADD_OBJECT_NOT_NIL([o labelForSegment:i], ([NSString stringWithFormat:@"Label for segment %ld", (long)i])) - ADD_OBJECT_NOT_NIL([o menuForSegment:i], ([NSString stringWithFormat:@"Menu for segment %ld", (long)i])) - ADD_NUMBER([o tagForSegment:i], ([NSString stringWithFormat:@"Tag for segment %ld", (long)i])) - ADD_OBJECT_NOT_NIL([o toolTipForSegment:i], ([NSString stringWithFormat:@"Tool tip for segment %ld", (long)i])) - ADD_NUMBER([o widthForSegment:i], ([NSString stringWithFormat:@"Width for segment %ld", (long)i])) - } + [self processSegmentedItem:o]; } else if ([object isKindOfClass:[NSSliderCell class]]) { NSSliderCell* o = object; ADD_CLASS_LABEL(@"NSSliderCell Info"); - ADD_BOOL([o allowsTickMarkValuesOnly], @"Allows tick mark values only") - ADD_NUMBER([o altIncrementValue], @"Alt increment value") - ADD_NUMBER([(NSSliderCell*)o isVertical], @"Is vertical") - ADD_NUMBER([o knobThickness], @"Knob thickness") - ADD_NUMBER([o maxValue], @"Max value") - ADD_NUMBER([o minValue], @"Min value") - ADD_NUMBER([o numberOfTickMarks], @"Number of tick marks") + ADD_BOOL([o allowsTickMarkValuesOnly], allowsTickMarkValuesOnly, setallowsTickMarkValuesOnly, @"Allows tick mark values only") + ADD_NUMBER([o altIncrementValue], altIncrementValue, setAltIncrementValue, @"Alt increment value") + ADD_NUMBER([(NSSliderCell*)o isVertical], vertical, setVertical:, @"Is vertical") + ADD_NUMBER([o knobThickness], knobThickness, setKnobThickness, @"Knob thickness") + ADD_NUMBER([o maxValue], maxValue, setMaxValue, @"Max value") + ADD_NUMBER([o minValue], minValue, setMinValue, @"Min value") + ADD_NUMBER([o numberOfTickMarks], numberOfTickMarks, setNumberOfTickMarks, @"Number of tick marks") ADD_ENUM(SliderType, [o sliderType], sliderType, setsliderType, @"Slider type") - ADD_OBJECT(objectFromTickMarkPosition([o tickMarkPosition], [(NSSliderCell*)o isVertical] == 1), @"Tick mark position") + ADD_OBJECT(objectFromTickMarkPosition([o tickMarkPosition], [(NSSliderCell*)o isVertical] == 1), tickMarkPosition, setTickMarkPosition, @"Tick mark position") ADD_RECT([o trackRect], @"Track rect") } else if ([object isKindOfClass:[NSStepperCell class]]) { NSStepperCell* o = object; ADD_CLASS_LABEL(@"NSStepperCell Info"); - ADD_BOOL([o autorepeat], @"Autorepeat") - ADD_NUMBER([o increment], @"Increment") - ADD_NUMBER([o maxValue], @"Max value") - ADD_NUMBER([o minValue], @"Min value") - ADD_BOOL([o valueWraps], @"Value wraps") + ADD_BOOL([o autorepeat], autorepeat, setautorepeat, @"Autorepeat") + ADD_NUMBER([o increment], increment, setIncrement, @"Increment") + ADD_NUMBER([o maxValue], maxValue, setMaxValue, @"Max value") + ADD_NUMBER([o minValue], minValue, setMinValue, @"Min value") + ADD_BOOL([o valueWraps], valueWraps, setvalueWraps, @"Value wraps") } else if ([object isKindOfClass:[NSTextFieldCell class]]) { if ([object isKindOfClass:[NSComboBoxCell class]]) { NSComboBoxCell* o = object; ADD_CLASS_LABEL(@"NSComboBoxCell Info"); if ([o usesDataSource]) - ADD_OBJECT([o dataSource], @"Data source") - ADD_BOOL([o hasVerticalScroller], @"Has vertical scroller") - ADD_NUMBER([o indexOfSelectedItem], @"Index of selected item") + ADD_OBJECT([o dataSource], dataSource, setDataSource, @"Data source") + ADD_BOOL([o hasVerticalScroller], hasVerticalScroller, sethasVerticalScroller, @"Has vertical scroller") + ADD_NUMBER([o indexOfSelectedItem], indexOfSelectedItem, setIndexOfSelectedItem, @"Index of selected item") ADD_SIZE([o intercellSpacing], @"Intercell spacing") - ADD_BOOL([o isButtonBordered], @"Is button bordered") - ADD_NUMBER([o itemHeight], @"Item height") - ADD_NUMBER([o numberOfItems], @"Number of items") - ADD_NUMBER([o numberOfVisibleItems], @"Number of visible items") + ADD_BOOL([o isButtonBordered], buttonBordered, setisButtonBordered, @"Is button bordered") + ADD_NUMBER([o itemHeight], itemHeight, setItemHeight, @"Item height") + ADD_NUMBER([o numberOfItems], numberOfItems, setNumberOfItems, @"Number of items") + ADD_NUMBER([o numberOfVisibleItems], numberOfVisibleItems, setNumberOfVisibleItems, @"Number of visible items") if (![o usesDataSource] && [o indexOfSelectedItem] != -1) - ADD_OBJECT([o objectValueOfSelectedItem], @"Object value of selected item") + ADD_OBJECT([o objectValueOfSelectedItem], objectValueOfSelectedItem, setObjectValueOfSelectedItem, @"Object value of selected item") if (![o usesDataSource]) ADD_OBJECTS([o objectValues], @"Object values") - ADD_BOOL([o usesDataSource], @"Uses data source") + ADD_BOOL([o usesDataSource], usesDataSource, setusesDataSource, @"Uses data source") } else if ([object isKindOfClass:[NSPathComponentCell class]]) { NSPathComponentCell* o = object; ADD_CLASS_LABEL(@"NSPathComponentCell Info"); - ADD_OBJECT_NOT_NIL([o image], @"Image") - ADD_OBJECT_NOT_NIL([o URL], @"URL") + ADD_OBJECT_NOT_NIL([o image], image, setImage, @"Image") + ADD_OBJECT_NOT_NIL([o URL], URL, setURL, @"URL") } else if ([object isKindOfClass:[NSSearchFieldCell class]]) { NSSearchFieldCell* o = object; ADD_CLASS_LABEL(@"NSSearchFieldCell Info"); - ADD_OBJECT([o cancelButtonCell], @"Cancel button cell") - ADD_NUMBER([o maximumRecents], @"Maximum recents") + ADD_OBJECT([o cancelButtonCell], cancelButtonCell, setCancelButtonCell, @"Cancel button cell") + ADD_NUMBER([o maximumRecents], maximumRecents, setMaximumRecents, @"Maximum recents") ADD_OBJECTS([o recentSearches], @"Recent searches") - ADD_OBJECT_NOT_NIL([o recentsAutosaveName], @"Recents autosave name") - ADD_OBJECT([o searchButtonCell], @"Search button cell") - ADD_OBJECT_NOT_NIL([o searchMenuTemplate], @"Search menu template") - ADD_BOOL([o sendsSearchStringImmediately], @"Sends search string immediately") - ADD_BOOL([o sendsWholeSearchString], @"Sends whole search string") + ADD_OBJECT_NOT_NIL([o recentsAutosaveName], recentsAutosaveName, setRecentsAutosaveName, @"Recents autosave name") + ADD_OBJECT([o searchButtonCell], searchButtonCell, setSearchButtonCell, @"Search button cell") + ADD_OBJECT_NOT_NIL([o searchMenuTemplate], searchMenuTemplate, setSearchMenuTemplate, @"Search menu template") + ADD_BOOL([o sendsSearchStringImmediately], sendsSearchStringImmediately, setsendsSearchStringImmediately, @"Sends search string immediately") + ADD_BOOL([o sendsWholeSearchString], sendsWholeSearchString, setsendsWholeSearchString, @"Sends whole search string") } else if ([object isKindOfClass:[NSTokenFieldCell class]]) { NSTokenField* o = object; ADD_CLASS_LABEL(@"NSTokenField Info"); - ADD_NUMBER([o completionDelay], @"Completion delay") - ADD_OBJECT_NOT_NIL([o delegate], @"Delegate") - ADD_OBJECT([o tokenizingCharacterSet], @"Tokenizing character set") + ADD_NUMBER([o completionDelay], completionDelay, setCompletionDelay, @"Completion delay") + ADD_OBJECT_NOT_NIL([o delegate], delegate, setDelegate, @"Delegate") + ADD_OBJECT([o tokenizingCharacterSet], tokenizingCharacterSet, setTokenizingCharacterSet, @"Tokenizing character set") ADD_ENUM(TokenStyle, [o tokenStyle], tokenStyle, settokenStyle, @"Token style") } NSTextFieldCell* o = object; ADD_CLASS_LABEL(@"NSTextFieldCell Info"); ADD_OBJECTS([o allowedInputSourceLocales], @"Allowed input source locales") - ADD_OBJECT([o backgroundColor], @"Background color") + ADD_COLOR([o backgroundColor], backgroundColor, setBackgroundColor, @"Background color") ADD_ENUM(TextFieldBezelStyle, [o bezelStyle], bezelStyle, setbezelStyle, @"Bezel style") - ADD_BOOL([o drawsBackground], @"Draws background") - ADD_OBJECT_NOT_NIL([o placeholderAttributedString], @"Placeholder attributed string") - ADD_OBJECT_NOT_NIL([o placeholderString], @"Placeholder string") - ADD_OBJECT([o textColor], @"Text color") + ADD_BOOL([o drawsBackground], drawsBackground, setdrawsBackground, @"Draws background") + ADD_OBJECT_NOT_NIL([o placeholderAttributedString], placeholderAttributedString, setPlaceholderAttributedString, @"Placeholder attributed string") + ADD_OBJECT_NOT_NIL([o placeholderString], placeholderString, setPlaceholderString, @"Placeholder string") + ADD_COLOR([o textColor], textColor, setTextColor, @"Text color") } } else if ([object isKindOfClass:[NSBrowserCell class]]) { NSBrowserCell* o = object; ADD_CLASS_LABEL(@"NSBrowserCell Info"); - ADD_OBJECT_NOT_NIL([o alternateImage], @"Alternate image") - ADD_BOOL([o isLeaf], @"Is leaf") - ADD_BOOL([o isLoaded], @"Is loaded") + ADD_OBJECT_NOT_NIL([o alternateImage], alternateImage, setAlternateImage, @"Alternate image") + ADD_BOOL([o isLeaf], leaf, setisLeaf, @"Is leaf") + ADD_BOOL([o isLoaded], loaded, setisLoaded, @"Is loaded") } else if ([object isKindOfClass:[NSImageCell class]]) { NSImageCell* o = object; @@ -1005,73 +984,73 @@ - (void)addNSCell:(id)object else if ([object isKindOfClass:[NSTextAttachmentCell class]]) { NSTextAttachmentCell* o = object; ADD_CLASS_LABEL(@"NSTextAttachmentCell Info"); - ADD_OBJECT([o attachment], @"Attachment") + ADD_OBJECT([o attachment], attachment, setAttachment, @"Attachment") ADD_POINT([o cellBaselineOffset], @"Cell baseline offset") ADD_SIZE([o cellSize], @"Cell size") - ADD_BOOL([o wantsToTrackMouse], @"Wants to track mouse") + ADD_BOOL([o wantsToTrackMouse], wantsToTrackMouse, setwantsToTrackMouse, @"Wants to track mouse") } NSCell* o = object; ADD_CLASS_LABEL(@"NSCell Info"); - ADD_BOOL([o acceptsFirstResponder], @"Accepts first responder") + ADD_BOOL([o acceptsFirstResponder], acceptsFirstResponder, setacceptsFirstResponder, @"Accepts first responder") ADD_SEL_NOT_NULL([o action], @"Action") ADD_ENUM(TextAlignment, [o alignment], alignment, setalignment, @"Alignment") - ADD_BOOL([o allowsEditingTextAttributes], @"Allows editing text attributes") - ADD_BOOL([o allowsMixedState], @"Allows mixed state") - ADD_BOOL([o allowsUndo], @"Allows undo") + ADD_BOOL([o allowsEditingTextAttributes], allowsEditingTextAttributes, setallowsEditingTextAttributes, @"Allows editing text attributes") + ADD_BOOL([o allowsMixedState], allowsMixedState, setallowsMixedState, @"Allows mixed state") + ADD_BOOL([o allowsUndo], allowsUndo, setallowsUndo, @"Allows undo") //ADD_OBJECT( [o attributedStringValue] ,@"Attributed string value") ADD_ENUM(BackgroundStyle, [o backgroundStyle], backgroundStyle, setbackgroundStyle, @"Background style") ADD_ENUM(WritingDirection, [o baseWritingDirection], baseWritingDirection, setbaseWritingDirection, @"Base writing direction") ADD_SIZE([o cellSize], @"Cell size") ADD_ENUM(ControlSize, [o controlSize], controlSize, setcontrolSize, @"Control size") ADD_ENUM(ControlTint, [o controlTint], controlTint, setcontrolTint, @"Control tint") - ADD_OBJECT_NOT_NIL([o controlView], @"Control view") + ADD_OBJECT_NOT_NIL([o controlView], controlView, setControlView, @"Control view") ADD_ENUM(FocusRingType, [o focusRingType], focusRingType, setfocusRingType, @"Focus ring type") - ADD_OBJECT([o font], @"Font") - ADD_OBJECT_NOT_NIL([o formatter], @"Formatter") - ADD_OBJECT_NOT_NIL([o image], @"Image") + ADD_OBJECT([o font], font, setFont, @"Font") + ADD_OBJECT_NOT_NIL([o formatter], formatter, setFormatter, @"Formatter") + ADD_OBJECT_NOT_NIL([o image], image, setImage, @"Image") if ([(NSCell*)o type] == NSTextCellType) - ADD_BOOL([o importsGraphics], @"Imports graphics") + ADD_BOOL([o importsGraphics], importsGraphics, setimportsGraphics, @"Imports graphics") ADD_ENUM(BackgroundStyle, [o interiorBackgroundStyle], interiorBackgroundStyle, setinteriorBackgroundStyle, @"Interior background style") - ADD_BOOL([o isBezeled], @"Is bezeled") - ADD_BOOL([o isBordered], @"Is bordered") - ADD_BOOL([o isContinuous], @"Is continuous") - ADD_BOOL([o isEditable], @"Is editable") - ADD_BOOL([o isEnabled], @"Is enabled") - ADD_BOOL([o isHighlighted], @"Is highlighted") - ADD_BOOL([o isOpaque], @"Is opaque") - ADD_BOOL([o isScrollable], @"Is scrollable") - ADD_BOOL([o isSelectable], @"Is selectable") + ADD_BOOL([o isBezeled], bezeled, setisBezeled, @"Is bezeled") + ADD_BOOL([o isBordered], bordered, setisBordered, @"Is bordered") + ADD_BOOL([o isContinuous], continuous, setisContinuous, @"Is continuous") + ADD_BOOL([o isEditable], editable, setisEditable, @"Is editable") + ADD_BOOL([o isEnabled], enabled, setisEnabled, @"Is enabled") + ADD_BOOL([o isHighlighted], highlighted, setisHighlighted, @"Is highlighted") + ADD_BOOL([o isOpaque], opaque, setisOpaque, @"Is opaque") + ADD_BOOL([o isScrollable], scrollable, setisScrollable, @"Is scrollable") + ADD_BOOL([o isSelectable], selectable, setisSelectable, @"Is selectable") if ([[o keyEquivalent] length] != 0) - ADD_OBJECT([o keyEquivalent], @"Key equivalent") + ADD_OBJECT([o keyEquivalent], keyEquivalent, setKeyEquivalent, @"Key equivalent") ADD_ENUM(LineBreakMode, [o lineBreakMode], lineBreakMode, setlineBreakMode, @"Line break mode") - ADD_OBJECT_NOT_NIL([o menu], @"Menu") + ADD_OBJECT_NOT_NIL([o menu], menu, setMenu, @"Menu") if ([[o mnemonic] length] != 0) - ADD_OBJECT([o mnemonic], @"Mnemonic") + ADD_OBJECT([o mnemonic], mnemonic, setMnemonic, @"Mnemonic") if ([o mnemonicLocation] != NSNotFound) - ADD_NUMBER([o mnemonicLocation], @"Mnemonic location") + ADD_NUMBER([o mnemonicLocation], mnemonicLocation, setMnemonicLocation, @"Mnemonic location") ADD_ENUM(CellStateValue, [o nextState], nextState, setnextState, @"Next state") //ADD_OBJECT( [o objectValue] ,@"Object value") - ADD_BOOL([o refusesFirstResponder], @"Refuses first responder") - ADD_OBJECT_NOT_NIL([o representedObject], @"Represented object") - ADD_BOOL([o sendsActionOnEndEditing], @"Sends action on end editing") - ADD_BOOL([o showsFirstResponder], @"Shows first responder") + ADD_BOOL([o refusesFirstResponder], refusesFirstResponder, setrefusesFirstResponder, @"Refuses first responder") + ADD_OBJECT_NOT_NIL([o representedObject], representedObject, setRepresentedObject, @"Represented object") + ADD_BOOL([o sendsActionOnEndEditing], sendsActionOnEndEditing, setsendsActionOnEndEditing, @"Sends action on end editing") + ADD_BOOL([o showsFirstResponder], showsFirstResponder, setshowsFirstResponder, @"Shows first responder") ADD_ENUM(CellStateValue, [o state], state, setstate, @"State") - ADD_NUMBER([o tag], @"Tag") - ADD_OBJECT_NOT_NIL([o target], @"Target") + ADD_NUMBER([o tag], tag, setTag, @"Tag") + ADD_OBJECT_NOT_NIL([o target], target, setTarget, @"Target") ADD_ENUM(CellType, [(NSCell*)o type], type, setType, @"Type") - ADD_BOOL([o wantsNotificationForMarkedText], @"Wants notification for marked text") - ADD_BOOL([o wraps], @"Wraps") + ADD_BOOL([o wantsNotificationForMarkedText], wantsNotificationForMarkedText, setwantsNotificationForMarkedText, @"Wants notification for marked text") + ADD_BOOL([o wraps], wraps, setwraps, @"Wraps") } - (void)addNSCollectionViewItem:(id)object { NSCollectionViewItem* o = object; ADD_CLASS_LABEL(@"NSCollectionViewItem Info"); - ADD_OBJECT([o collectionView], @"Collection view") - ADD_BOOL([o isSelected], @"Is selected") - ADD_OBJECT([o representedObject], @"Represented object") - ADD_OBJECT_NOT_NIL([o view], @"View") + ADD_OBJECT([o collectionView], collectionView, setCollectionView, @"Collection view") + ADD_BOOL([o isSelected], selected, setisSelected, @"Is selected") + ADD_OBJECT([o representedObject], representedObject, setRepresentedObject, @"Represented object") + ADD_OBJECT_NOT_NIL([o view], view, setView, @"View") } - (void)addNSComparisonPredicate:(id)object @@ -1080,9 +1059,9 @@ - (void)addNSComparisonPredicate:(id)object ADD_CLASS_LABEL(@"NSComparisonPredicate Info"); ADD_ENUM(ComparisonPredicateModifier, [o comparisonPredicateModifier], comparisonPredicateModifier, setcomparisonPredicateModifier, @"Comparison predicate modifier") ADD_SEL_NOT_NULL([o customSelector], @"Custom selector") - ADD_OBJECT([o leftExpression], @"Left expression") + ADD_OBJECT([o leftExpression], leftExpression, setLeftExpression, @"Left expression") ADD_ENUM(PredicateOperatorType, [o predicateOperatorType], predicateOperatorType, setpredicateOperatorType, @"Predicate operator type") - ADD_OBJECT([o rightExpression], @"Right expression") + ADD_OBJECT([o rightExpression], rightExpression, setRightExpression, @"Right expression") } - (void)addNSCompoundPredicate:(id)object @@ -1102,79 +1081,79 @@ - (void)addNSController:(id)object ADD_CLASS_LABEL(@"NSDictionaryController Info"); ADD_OBJECTS([o excludedKeys], @"Excluded keys") ADD_OBJECTS([o includedKeys], @"Included keys") - ADD_OBJECT([o initialKey], @"Initial key") - ADD_OBJECT([o initialValue], @"Initial value") + ADD_OBJECT([o initialKey], initialKey, setInitialKey, @"Initial key") + ADD_OBJECT([o initialValue], initialValue, setInitialValue, @"Initial value") ADD_DICTIONARY([o localizedKeyDictionary], @"Localized key dictionary") - ADD_OBJECT_NOT_NIL([o localizedKeyTable], @"Localized key table") + ADD_OBJECT_NOT_NIL([o localizedKeyTable], localizedKeyTable, setLocalizedKeyTable, @"Localized key table") } NSArrayController* o = object; ADD_CLASS_LABEL(@"NSArrayController Info"); - ADD_BOOL([o alwaysUsesMultipleValuesMarker], @"Always uses multiple values marker") - ADD_BOOL([o automaticallyRearrangesObjects], @"Automatically rearranges objects") + ADD_BOOL([o alwaysUsesMultipleValuesMarker], alwaysUsesMultipleValuesMarker, setalwaysUsesMultipleValuesMarker, @"Always uses multiple values marker") + ADD_BOOL([o automaticallyRearrangesObjects], automaticallyRearrangesObjects, setautomaticallyRearrangesObjects, @"Automatically rearranges objects") ADD_OBJECTS([o automaticRearrangementKeyPaths], @"Automatic rearrangement key paths") - ADD_BOOL([o avoidsEmptySelection], @"Avoids empty selection") - ADD_BOOL([o clearsFilterPredicateOnInsertion], @"Clears filter predicate on insertion") - ADD_BOOL([o canInsert], @"Can insert") - ADD_BOOL([o canSelectNext], @"Can select next") - ADD_BOOL([o canSelectPrevious], @"Can select previous") - ADD_OBJECT_NOT_NIL([o filterPredicate], @"Filter predicate") - ADD_BOOL([o preservesSelection], @"Preserves selection") + ADD_BOOL([o avoidsEmptySelection], avoidsEmptySelection, setavoidsEmptySelection, @"Avoids empty selection") + ADD_BOOL([o clearsFilterPredicateOnInsertion], clearsFilterPredicateOnInsertion, setclearsFilterPredicateOnInsertion, @"Clears filter predicate on insertion") + ADD_BOOL([o canInsert], canInsert, setcanInsert, @"Can insert") + ADD_BOOL([o canSelectNext], canSelectNext, setcanSelectNext, @"Can select next") + ADD_BOOL([o canSelectPrevious], canSelectPrevious, setcanSelectPrevious, @"Can select previous") + ADD_OBJECT_NOT_NIL([o filterPredicate], filterPredicate, setFilterPredicate, @"Filter predicate") + ADD_BOOL([o preservesSelection], preservesSelection, setpreservesSelection, @"Preserves selection") if ([o selectionIndex] != NSNotFound) - ADD_NUMBER([o selectionIndex], @"Selection index") - ADD_OBJECT([o selectionIndexes], @"Selection indexes") - ADD_BOOL([o selectsInsertedObjects], @"Selects inserted Objects") + ADD_NUMBER([o selectionIndex], selectionIndex, setSelectionIndex, @"Selection index") + ADD_OBJECT([o selectionIndexes], selectionIndexes, setSelectionIndexes, @"Selection indexes") + ADD_BOOL([o selectsInsertedObjects], selectsInsertedObjects, setselectsInsertedObjects, @"Selects inserted Objects") ADD_OBJECTS([o sortDescriptors], @"Sort descriptors") } else if ([object isKindOfClass:[NSTreeController class]]) { NSTreeController* o = object; ADD_CLASS_LABEL(@"NSTreeController Info"); - ADD_BOOL([o alwaysUsesMultipleValuesMarker], @"Always uses multiple values marker") - ADD_BOOL([o avoidsEmptySelection], @"Avoids empty selection") - ADD_BOOL([o canAddChild], @"Can add child") - ADD_BOOL([o canInsert], @"Can insert") - ADD_BOOL([o canInsertChild], @"Can insert child") - ADD_OBJECT([o childrenKeyPath], @"Children key path") - ADD_OBJECT([o countKeyPath], @"Count key path") - ADD_OBJECT([o leafKeyPath], @"Leaf key path") - ADD_BOOL([o preservesSelection], @"Preserves selection") + ADD_BOOL([o alwaysUsesMultipleValuesMarker], alwaysUsesMultipleValuesMarker, setalwaysUsesMultipleValuesMarker, @"Always uses multiple values marker") + ADD_BOOL([o avoidsEmptySelection], avoidsEmptySelection, setavoidsEmptySelection, @"Avoids empty selection") + ADD_BOOL([o canAddChild], canAddChild, setcanAddChild, @"Can add child") + ADD_BOOL([o canInsert], canInsert, setcanInsert, @"Can insert") + ADD_BOOL([o canInsertChild], canInsertChild, setcanInsertChild, @"Can insert child") + ADD_OBJECT([o childrenKeyPath], childrenKeyPath, setChildrenKeyPath, @"Children key path") + ADD_OBJECT([o countKeyPath], countKeyPath, setCountKeyPath, @"Count key path") + ADD_OBJECT([o leafKeyPath], leafKeyPath, setLeafKeyPath, @"Leaf key path") + ADD_BOOL([o preservesSelection], preservesSelection, setpreservesSelection, @"Preserves selection") ADD_OBJECTS([o selectedNodes], @"Selected nodes") ADD_OBJECTS([o selectedObjects], @"Selected objects") ADD_OBJECTS([o selectionIndexPaths], @"Selection index paths") - ADD_BOOL([o selectsInsertedObjects], @"Selects inserted Objects") + ADD_BOOL([o selectsInsertedObjects], selectsInsertedObjects, setselectsInsertedObjects, @"Selects inserted Objects") ADD_OBJECTS([o sortDescriptors], @"Sort descriptors") } NSObjectController* o = object; ADD_CLASS_LABEL(@"NSObjectController Info"); - ADD_BOOL([o automaticallyPreparesContent], @"Automatically prepares content") - ADD_BOOL([o canAdd], @"Can add") - ADD_BOOL([o canRemove], @"Can remove") - ADD_OBJECT([o content], @"Content") + ADD_BOOL([o automaticallyPreparesContent], automaticallyPreparesContent, setautomaticallyPreparesContent, @"Automatically prepares content") + ADD_BOOL([o canAdd], canAdd, setcanAdd, @"Can add") + ADD_BOOL([o canRemove], canRemove, setcanRemove, @"Can remove") + ADD_OBJECT([o content], content, setContent, @"Content") if ([o managedObjectContext] != nil) // Do not work when there is no managedObjectContext associated with the object - ADD_OBJECT_NOT_NIL([o defaultFetchRequest], @"Default fetch request") - ADD_OBJECT_NOT_NIL([o entityName], @"Entity name") - ADD_OBJECT_NOT_NIL([o fetchPredicate], @"Fetch predicate") - ADD_BOOL([o isEditable], @"Is editable") - ADD_OBJECT_NOT_NIL([o managedObjectContext], @"Managed object context") - ADD_OBJECT([o objectClass], @"Object class") + ADD_OBJECT_NOT_NIL([o defaultFetchRequest], defaultFetchRequest, setDefaultFetchRequest, @"Default fetch request") + ADD_OBJECT_NOT_NIL([o entityName], entityName, setEntityName, @"Entity name") + ADD_OBJECT_NOT_NIL([o fetchPredicate], fetchPredicate, setFetchPredicate, @"Fetch predicate") + ADD_BOOL([o isEditable], editable, setisEditable, @"Is editable") + ADD_OBJECT_NOT_NIL([o managedObjectContext], managedObjectContext, setManagedObjectContext, @"Managed object context") + ADD_OBJECT([o objectClass], objectClass, setObjectClass, @"Object class") ADD_OBJECTS([o selectedObjects], @"Selected objects") - ADD_OBJECT([o selection], @"Selection") - ADD_BOOL([o usesLazyFetching], @"Uses lazy fetching") + ADD_OBJECT([o selection], selection, setSelection, @"Selection") + ADD_BOOL([o usesLazyFetching], usesLazyFetching, setusesLazyFetching, @"Uses lazy fetching") } else if ([object isKindOfClass:[NSUserDefaultsController class]]) { NSUserDefaultsController* o = object; ADD_CLASS_LABEL(@"NSUserDefaultsController Info"); - ADD_BOOL([o appliesImmediately], @"Applies immediately") - ADD_OBJECT([o defaults], @"Defaults") - ADD_BOOL([o hasUnappliedChanges], @"Has unapplied changes") - ADD_OBJECT([o initialValues], @"Initial values") - ADD_OBJECT([o values], @"Values") + ADD_BOOL([o appliesImmediately], appliesImmediately, setappliesImmediately, @"Applies immediately") + ADD_OBJECT([o defaults], defaults, setDefaults, @"Defaults") + ADD_BOOL([o hasUnappliedChanges], hasUnappliedChanges, sethasUnappliedChanges, @"Has unapplied changes") + ADD_OBJECT([o initialValues], initialValues, setInitialValues, @"Initial values") + ADD_OBJECT([o values], values, setValues, @"Values") } NSController* o = object; ADD_CLASS_LABEL(@"NSController Info"); - ADD_BOOL([o isEditing], @"Is editing") + ADD_BOOL([o isEditing], editing, setisEditing, @"Is editing") } - (void)addNSCursor:(id)object @@ -1182,19 +1161,19 @@ - (void)addNSCursor:(id)object NSCursor* o = object; ADD_CLASS_LABEL(@"NSCursor Info"); ADD_POINT([o hotSpot], @"HotSpot") - ADD_OBJECT([o image], @"Image") - ADD_BOOL([o isSetOnMouseEntered], @"Is set on mouse entered") - ADD_BOOL([o isSetOnMouseExited], @"Is set on mouse exited") + ADD_OBJECT([o image], image, setImage, @"Image") + ADD_BOOL([o isSetOnMouseEntered], setOnMouseEntered, setisSetOnMouseEntered, @"Is set on mouse entered") + ADD_BOOL([o isSetOnMouseExited], setOnMouseExited, setisSetOnMouseExited, @"Is set on mouse exited") } - (void)addNSDockTile:(id)object { NSDockTile* o = object; ADD_CLASS_LABEL(@"NSDockTile Info"); - ADD_OBJECT([o badgeLabel], @"Badge label") - ADD_OBJECT([o contentView], @"Content view") - ADD_OBJECT([o owner], @"Owner") - ADD_BOOL([o showsApplicationBadge], @"Shows application badge") + ADD_OBJECT([o badgeLabel], badgeLabel, setBadgeLabel, @"Badge label") + ADD_OBJECT([o contentView], contentView, setContentView, @"Content view") + ADD_OBJECT([o owner], owner, setOwner, @"Owner") + ADD_BOOL([o showsApplicationBadge], showsApplicationBadge, setshowsApplicationBadge, @"Shows application badge") ADD_SIZE([o size], @"Size") } @@ -1202,39 +1181,39 @@ - (void)addNSDocument:(id)object { NSDocument* o = object; ADD_CLASS_LABEL(@"NSDocument Info"); - ADD_OBJECT_NOT_NIL([o autosavedContentsFileURL], @"Autosaved contents file URL") - ADD_OBJECT([o autosavingFileType], @"Autosaving file type") - ADD_OBJECT([o displayName], @"Display name") - ADD_OBJECT([o fileModificationDate], @"File modification date") - ADD_BOOL([o fileNameExtensionWasHiddenInLastRunSavePanel], @"File name extension was hidden in last run save panel") - ADD_OBJECT([o fileType], @"File type") - ADD_OBJECT([o fileTypeFromLastRunSavePanel], @"File type from last run save panel") - ADD_OBJECT_NOT_NIL([o fileURL], @"File URL") - ADD_BOOL([o hasUnautosavedChanges], @"Has unautosaved changes") - ADD_BOOL([o hasUndoManager], @"Has undo manager") - ADD_BOOL([o isDocumentEdited], @"Is document edited") - ADD_BOOL([o keepBackupFile], @"Keep backup file") - ADD_OBJECT([o fileTypeFromLastRunSavePanel], @"File type from last run save panel") - ADD_OBJECT([o printInfo], @"Print info") - ADD_BOOL([o shouldRunSavePanelWithAccessoryView], @"Should run save panel with accessory view") + ADD_OBJECT_NOT_NIL([o autosavedContentsFileURL], autosavedContentsFileURL, setAutosavedContentsFileURL, @"Autosaved contents file URL") + ADD_OBJECT([o autosavingFileType], autosavingFileType, setAutosavingFileType, @"Autosaving file type") + ADD_OBJECT([o displayName], displayName, setDisplayName, @"Display name") + ADD_OBJECT([o fileModificationDate], fileModificationDate, setFileModificationDate, @"File modification date") + ADD_BOOL([o fileNameExtensionWasHiddenInLastRunSavePanel], fileNameExtensionWasHiddenInLastRunSavePanel, setfileNameExtensionWasHiddenInLastRunSavePanel, @"File name extension was hidden in last run save panel") + ADD_OBJECT([o fileType], fileType, setFileType, @"File type") + ADD_OBJECT([o fileTypeFromLastRunSavePanel], fileTypeFromLastRunSavePanel, setFileTypeFromLastRunSavePanel, @"File type from last run save panel") + ADD_OBJECT_NOT_NIL([o fileURL], fileURL, setFileURL, @"File URL") + ADD_BOOL([o hasUnautosavedChanges], hasUnautosavedChanges, sethasUnautosavedChanges, @"Has unautosaved changes") + ADD_BOOL([o hasUndoManager], hasUndoManager, sethasUndoManager, @"Has undo manager") + ADD_BOOL([o isDocumentEdited], documentEdited, setisDocumentEdited, @"Is document edited") + ADD_BOOL([o keepBackupFile], keepBackupFile, setkeepBackupFile, @"Keep backup file") + ADD_OBJECT([o fileTypeFromLastRunSavePanel], fileTypeFromLastRunSavePanel, setFileTypeFromLastRunSavePanel, @"File type from last run save panel") + ADD_OBJECT([o printInfo], printInfo, setPrintInfo, @"Print info") + ADD_BOOL([o shouldRunSavePanelWithAccessoryView], shouldRunSavePanelWithAccessoryView, setshouldRunSavePanelWithAccessoryView, @"Should run save panel with accessory view") ADD_OBJECTS([o windowControllers], @"Window controllers") - ADD_OBJECT([o windowForSheet], @"Window for sheet") - ADD_OBJECT([o windowNibName], @"Window nib name") + ADD_OBJECT([o windowForSheet], windowForSheet, setWindowForSheet, @"Window for sheet") + ADD_OBJECT([o windowNibName], windowNibName, setWindowNibName, @"Window nib name") } - (void)addNSDocumentController:(id)object { NSDocumentController* o = object; ADD_CLASS_LABEL(@"NSDocumentController Info"); - ADD_NUMBER([o autosavingDelay], @"Autosaving delay") - ADD_OBJECT([o currentDirectory], @"Current directory") - ADD_OBJECT([o currentDocument], @"Current document") - ADD_OBJECT([o defaultType], @"Default type") + ADD_NUMBER([o autosavingDelay], autosavingDelay, setAutosavingDelay, @"Autosaving delay") + ADD_OBJECT([o currentDirectory], currentDirectory, setCurrentDirectory, @"Current directory") + ADD_OBJECT([o currentDocument], currentDocument, setCurrentDocument, @"Current document") + ADD_OBJECT([o defaultType], defaultType, setDefaultType, @"Default type") ADD_OBJECTS([o documentClassNames], @"Document class names") ADD_OBJECTS([o documents], @"Documents") - ADD_BOOL([o hasEditedDocuments], @"Has edited documents") - ADD_NUMBER([o maximumRecentDocumentCount], @"Maximum recent document count") - ADD_OBJECT([o recentDocumentURLs], @"Recent document URLs") + ADD_BOOL([o hasEditedDocuments], hasEditedDocuments, sethasEditedDocuments, @"Has edited documents") + ADD_NUMBER([o maximumRecentDocumentCount], maximumRecentDocumentCount, setMaximumRecentDocumentCount, @"Maximum recent document count") + ADD_OBJECT([o recentDocumentURLs], recentDocumentURLs, setRecentDocumentURLs, @"Recent document URLs") } - (void)addNSEntityDescription:(id)object @@ -1242,15 +1221,15 @@ - (void)addNSEntityDescription:(id)object NSEntityDescription* o = object; ADD_CLASS_LABEL(@"NSEntityDescription Info"); ADD_DICTIONARY([o attributesByName], @"Attributes by name") - ADD_BOOL([o isAbstract], @"Is abstract") - ADD_OBJECT([o managedObjectClassName], @"Managed object class name") - ADD_OBJECT([o managedObjectModel], @"Managed object model") - ADD_OBJECT([o name], @"Name") + ADD_BOOL([o isAbstract], abstract, setisAbstract, @"Is abstract") + ADD_OBJECT([o managedObjectClassName], managedObjectClassName, setManagedObjectClassName, @"Managed object class name") + ADD_OBJECT([o managedObjectModel], managedObjectModel, setManagedObjectModel, @"Managed object model") + ADD_OBJECT([o name], name, setName, @"Name") ADD_DICTIONARY([o relationshipsByName], @"Relationships by name") if ([[o subentities] count] != 0) { ADD_DICTIONARY([o subentitiesByName], @"Subentities by Name") } - ADD_OBJECT([o superentity], @"Superentity") + ADD_OBJECT([o superentity], superentity, setSuperentity, @"Superentity") ADD_DICTIONARY([o userInfo], @"User info") } @@ -1261,86 +1240,86 @@ - (void)addNSEvent:(id)object ADD_CLASS_LABEL(@"NSEvent Info"); if (type == NSTabletPoint || ((type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) && [object subtype] == NSTabletPointEventSubtype)) { - ADD_NUMBER([o absoluteX], @"Absolute x") - ADD_NUMBER([o absoluteY], @"Absolute y") - ADD_NUMBER([o absoluteZ], @"Absolute z") + ADD_NUMBER([o absoluteX], absoluteX, setAbsoluteX, @"Absolute x") + ADD_NUMBER([o absoluteY], absoluteY, setAbsoluteY, @"Absolute y") + ADD_NUMBER([o absoluteZ], absoluteZ, setAbsoluteZ, @"Absolute z") ADD_ENUM(EventButtonMask, [o buttonMask], buttonMask, setbuttonMask, @"Button mask") } if (type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp) - ADD_NUMBER([o buttonNumber], @"Button number") + ADD_NUMBER([o buttonNumber], buttonNumber, setButtonNumber, @"Button number") if (type == NSTabletProximity || ((type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) && [object subtype] == NSTabletProximityEventSubtype)) - ADD_NUMBER([o capabilityMask], @"Capability mask") + ADD_NUMBER([o capabilityMask], capabilityMask, setCapabilityMask, @"Capability mask") if (type == NSKeyDown || type == NSKeyUp) { - ADD_OBJECT([(NSEvent*)o characters], @"Characters") - ADD_OBJECT([o charactersIgnoringModifiers], @"Characters ignoring modifiers") + ADD_OBJECT([(NSEvent*)o characters], characters, setCharacters, @"Characters") + ADD_OBJECT([o charactersIgnoringModifiers], charactersIgnoringModifiers, setCharactersIgnoringModifiers, @"Characters ignoring modifiers") } if (type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp) - ADD_NUMBER([o clickCount], @"Click count") + ADD_NUMBER([o clickCount], clickCount, setClickCount, @"Click count") if (type == NSAppKitDefined || type == NSSystemDefined || type == NSApplicationDefined) { - ADD_NUMBER([o data1], @"Data1") - ADD_NUMBER([o data2], @"Data2") + ADD_NUMBER([o data1], data1, setData1, @"Data1") + ADD_NUMBER([o data2], data2, setData2, @"Data2") } if (type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) { - ADD_NUMBER([o deltaX], @"Delta x") - ADD_NUMBER([o deltaY], @"Delta y") - ADD_NUMBER([o deltaZ], @"Delta z") + ADD_NUMBER([o deltaX], deltaX, setDeltaX, @"Delta x") + ADD_NUMBER([o deltaY], deltaY, setDeltaY, @"Delta y") + ADD_NUMBER([o deltaZ], deltaZ, setDeltaZ, @"Delta z") } if (type == NSTabletPoint || type == NSTabletProximity || ((type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) && ([object subtype] == NSTabletProximityEventSubtype || [object subtype] == NSTabletPointEventSubtype))) - ADD_NUMBER([o deviceID], @"Device ID") + ADD_NUMBER([o deviceID], deviceID, setDeviceID, @"Device ID") if (type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel || type == NSMouseEntered || type == NSMouseExited || type == NSCursorUpdate) - ADD_NUMBER([o eventNumber], @"Event number") + ADD_NUMBER([o eventNumber], eventNumber, setEventNumber, @"Event number") if (type == NSKeyDown) - ADD_BOOL([o isARepeat], @"Is a repeat") + ADD_BOOL([o isARepeat], aRepeat, setisARepeat, @"Is a repeat") if (type == NSTabletProximity || ((type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) && [object subtype] == NSTabletProximityEventSubtype)) - ADD_BOOL([o isEnteringProximity], @"Is entering proximity") + ADD_BOOL([o isEnteringProximity], enteringProximity, setisEnteringProximity, @"Is entering proximity") if (type == NSKeyDown || type == NSKeyUp) - ADD_NUMBER([o keyCode], @"Key code") + ADD_NUMBER([o keyCode], keyCode, setKeyCode, @"Key code") if (type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) ADD_POINT([o locationInWindow], @"Location in window") ADD_ENUM(EventModifierFlags, [o modifierFlags] & NSDeviceIndependentModifierFlagsMask, modifierFlags, setModifierFlags, @"Modifier flags") if (type == NSTabletProximity || ((type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) && [object subtype] == NSTabletProximityEventSubtype)) { - ADD_NUMBER([o pointingDeviceID], @"Pointing device ID") - ADD_NUMBER([o pointingDeviceSerialNumber], @"Pointing device serial number") + ADD_NUMBER([o pointingDeviceID], pointingDeviceID, setPointingDeviceID, @"Pointing device ID") + ADD_NUMBER([o pointingDeviceSerialNumber], pointingDeviceSerialNumber, setPointingDeviceSerialNumber, @"Pointing device serial number") ADD_ENUM(PointingDeviceType, [o pointingDeviceType], pointingDeviceType, setpointingDeviceType, @"Pointing device type") } if (type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) - ADD_NUMBER([o pressure], @"Pressure") + ADD_NUMBER([o pressure], pressure, setPressure, @"Pressure") if (type == NSTabletPoint || ((type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) && [object subtype] == NSTabletPointEventSubtype)) - ADD_NUMBER([o rotation], @"Rotation") + ADD_NUMBER([o rotation], rotation, setRotation, @"Rotation") if (type == NSAppKitDefined || type == NSSystemDefined || type == NSApplicationDefined || type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) ADD_ENUM(EventSubtype, [o subtype], subtype, setsubtype, @"Subtype") if (type == NSTabletProximity || ((type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) && [object subtype] == NSTabletProximityEventSubtype)) { - ADD_NUMBER([o systemTabletID], @"System tablet ID") - ADD_NUMBER([o tabletID], @"Tablet ID") + ADD_NUMBER([o systemTabletID], systemTabletID, setSystemTabletID, @"System tablet ID") + ADD_NUMBER([o tabletID], tabletID, setTabletID, @"Tablet ID") } if (type == NSTabletPoint || ((type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) && [object subtype] == NSTabletPointEventSubtype)) { - ADD_NUMBER([o tangentialPressure], @"Tangential pressure") + ADD_NUMBER([o tangentialPressure], tangentialPressure, setTangentialPressure, @"Tangential pressure") ADD_POINT([o tilt], @"Tilt") } - ADD_NUMBER([o timestamp], @"Timestamp") + ADD_NUMBER([o timestamp], timestamp, setTimestamp, @"Timestamp") if (type == NSMouseEntered || type == NSMouseExited || type == NSCursorUpdate) { - ADD_OBJECT([o trackingArea], @"Tracking area") - ADD_NUMBER([o trackingNumber], @"Tracking number") + ADD_OBJECT([o trackingArea], trackingArea, setTrackingArea, @"Tracking area") + ADD_NUMBER([o trackingNumber], trackingNumber, setTrackingNumber, @"Tracking number") } ADD_ENUM(EventType, [(NSEvent*)o type], type, setType, @"Type") if (type == NSTabletProximity || ((type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) && [object subtype] == NSTabletProximityEventSubtype)) - ADD_NUMBER([o uniqueID], @"Unique ID") + ADD_NUMBER([o uniqueID], uniqueID, setUniqueID, @"Unique ID") if (type == NSMouseEntered || type == NSMouseExited || type == NSCursorUpdate) { void* userData = [o userData]; if (userData) ADD_POINTER([o userData], @"User data") } if (type == NSTabletPoint || ((type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) && [object subtype] == NSTabletPointEventSubtype)) - ADD_OBJECT([o vendorDefined], @"Vendor defined") + ADD_OBJECT([o vendorDefined], vendorDefined, setVendorDefined, @"Vendor defined") if (type == NSTabletProximity || ((type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) && [object subtype] == NSTabletProximityEventSubtype)) { - ADD_NUMBER([o vendorID], @"Vendor ID") - ADD_NUMBER([o vendorPointingDeviceType], @"Vendor pointing device type") + ADD_NUMBER([o vendorID], vendorID, setVendorID, @"Vendor ID") + ADD_NUMBER([o vendorPointingDeviceType], vendorPointingDeviceType, setVendorPointingDeviceType, @"Vendor pointing device type") } if (type != NSPeriodic) - ADD_OBJECT([o window], @"Window") + ADD_OBJECT([o window], window, setWindow, @"Window") } - (void)addNSExpression:(id)object @@ -1431,25 +1410,25 @@ - (void)addNSExpression:(id)object if (argumentsIsInitialized) ADD_OBJECTS(arguments, @"Arguments"); if (collectionIsInitialized) - ADD_OBJECT(collection, @"Collection"); + ADD_OBJECT_RO(collection, @"Collection"); if (constantValueIsInitialized) - ADD_OBJECT(constantValue, @"Constant value"); + ADD_OBJECT_RO(constantValue, @"Constant value"); if (expressionTypeIsInitialized) ADD_ENUM(ExpressionType, expressionType, expressionType, setExpressionType, @"Expression type"); if (functionIsInitialized) - ADD_OBJECT(function, @"Function"); + ADD_OBJECT_RO(function, @"Function"); if (keyPathIsInitialized) - ADD_OBJECT(keyPath, @"Key path"); + ADD_OBJECT_RO(keyPath, @"Key path"); if (leftExpressionIsInitialized) - ADD_OBJECT(leftExpression, @"Left expression"); + ADD_OBJECT_RO(leftExpression, @"Left expression"); if (operandIsInitialized) - ADD_OBJECT(operand, @"Operand"); + ADD_OBJECT_RO(operand, @"Operand"); if (predicateIsInitialized) - ADD_OBJECT(predicate, @"Predicate"); + ADD_OBJECT_RO(predicate, @"Predicate"); if (rightExpressionIsInitialized) - ADD_OBJECT(leftExpression, @"Right expression"); + ADD_OBJECT_RO(leftExpression, @"Right expression"); if (variableIsInitialized) - ADD_OBJECT(variable, @"Variable"); + ADD_OBJECT_RO(variable, @"Variable"); } - (void)addNSFetchRequest:(id)object @@ -1457,14 +1436,14 @@ - (void)addNSFetchRequest:(id)object NSFetchRequest* o = object; ADD_CLASS_LABEL(@"NSFetchRequest Info"); ADD_OBJECTS([o affectedStores], @"Affected stores") - ADD_OBJECT([o entity], @"Entity") - ADD_NUMBER([o fetchLimit], @"Fetch limit") - ADD_BOOL([o includesPropertyValues], @"Includes property values") - ADD_BOOL([o includesSubentities], @"Includes bubentities") - ADD_OBJECT([o predicate], @"Predicate") + ADD_OBJECT([o entity], entity, setEntity, @"Entity") + ADD_NUMBER([o fetchLimit], fetchLimit, setFetchLimit, @"Fetch limit") + ADD_BOOL([o includesPropertyValues], includesPropertyValues, setincludesPropertyValues, @"Includes property values") + ADD_BOOL([o includesSubentities], includesSubentities, setincludesSubentities, @"Includes bubentities") + ADD_OBJECT([o predicate], predicate, setPredicate, @"Predicate") ADD_OBJECTS([o relationshipKeyPathsForPrefetching], @"Relationship key paths for prefetching") ADD_ENUM(FetchRequestResultType, [o resultType], resultType, setresultType, @"Result type") - ADD_BOOL([o returnsObjectsAsFaults], @"Returns objects as faults") + ADD_BOOL([o returnsObjectsAsFaults], returnsObjectsAsFaults, setreturnsObjectsAsFaults, @"Returns objects as faults") ADD_OBJECTS([o sortDescriptors], @"Sort descriptors") } @@ -1473,32 +1452,32 @@ - (void)addNSFileWrapper:(id)object NSFileWrapper* o = object; ADD_CLASS_LABEL(@"NSFileWrapper Info"); ADD_DICTIONARY([o fileAttributes], @"File attributes") - ADD_OBJECT([o filename], @"Filename") - ADD_OBJECT_NOT_NIL([o icon], @"Icon") - ADD_BOOL([o isDirectory], @"Is directory") - ADD_BOOL([o isRegularFile], @"Is regularFile") - ADD_BOOL([o isSymbolicLink], @"Is symbolic link") - ADD_OBJECT_NOT_NIL([o preferredFilename], @"Preferred filename") + ADD_OBJECT([o filename], filename, setFilename, @"Filename") + ADD_OBJECT_NOT_NIL([o icon], icon, setIcon, @"Icon") + ADD_BOOL([o isDirectory], directory, setisDirectory, @"Is directory") + ADD_BOOL([o isRegularFile], regularFile, setisRegularFile, @"Is regularFile") + ADD_BOOL([o isSymbolicLink], symbolicLink, setisSymbolicLink, @"Is symbolic link") + ADD_OBJECT_NOT_NIL([o preferredFilename], preferredFilename, setPreferredFilename, @"Preferred filename") if ([o isSymbolicLink]) - ADD_OBJECT_NOT_NIL([o symbolicLinkDestination], @"Symbolic link destination") + ADD_OBJECT_NOT_NIL([o symbolicLinkDestination], symbolicLinkDestination, setSymbolicLinkDestination, @"Symbolic link destination") } - (void)addNSFont:(id)object { NSFont* o = object; ADD_CLASS_LABEL(@"NSFont Info"); - ADD_NUMBER([o ascender], @"Ascender") + ADD_NUMBER([o ascender], ascender, setAscender, @"Ascender") ADD_RECT([o boundingRectForFont], @"Bounding rect for font") - ADD_NUMBER([o capHeight], @"Cap height") - ADD_OBJECT([o coveredCharacterSet], @"Covered character set") - ADD_NUMBER([o descender], @"Descender") - ADD_OBJECT([o displayName], @"Display name") - ADD_OBJECT([o familyName], @"Family name") - ADD_OBJECT([o fontDescriptor], @"Font descriptor") - ADD_OBJECT([o fontName], @"Font name") - ADD_BOOL([o isFixedPitch], @"Is fixedPitch") - ADD_NUMBER([o italicAngle], @"Italic angle") - ADD_NUMBER([o leading], @"Leading") + ADD_NUMBER([o capHeight], capHeight, setCapHeight, @"Cap height") + ADD_OBJECT([o coveredCharacterSet], coveredCharacterSet, setCoveredCharacterSet, @"Covered character set") + ADD_NUMBER([o descender], descender, setDescender, @"Descender") + ADD_OBJECT([o displayName], displayName, setDisplayName, @"Display name") + ADD_OBJECT([o familyName], familyName, setFamilyName, @"Family name") + ADD_OBJECT([o fontDescriptor], fontDescriptor, setFontDescriptor, @"Font descriptor") + ADD_OBJECT([o fontName], fontName, setFontName, @"Font name") + ADD_BOOL([o isFixedPitch], fixedPitch, setisFixedPitch, @"Is fixedPitch") + ADD_NUMBER([o italicAngle], italicAngle, setItalicAngle, @"Italic angle") + ADD_NUMBER([o leading], leading, setLeading, @"Leading") const CGFloat* matrix = [o matrix]; NSString* matrixString = [NSString stringWithFormat:@"[%g %g %g %g %g %g]", (double)(matrix[0]), (double)(matrix[1]), (double)(matrix[2]), (double)(matrix[3]), (double)(matrix[4]), (double)(matrix[5])]; @@ -1506,14 +1485,14 @@ - (void)addNSFont:(id)object ADD_SIZE([o maximumAdvancement], @"Maximum advancement") ADD_ENUM(StringEncoding, [o mostCompatibleStringEncoding], mostCompatibleStringEncoding, setmostCompatibleStringEncoding, @"Most compatible string encoding") - ADD_NUMBER([o numberOfGlyphs], @"Number of glyphs") - ADD_NUMBER([o pointSize], @"Point size") - ADD_OBJECT([o printerFont], @"Printer font") + ADD_NUMBER([o numberOfGlyphs], numberOfGlyphs, setNumberOfGlyphs, @"Number of glyphs") + ADD_NUMBER([o pointSize], pointSize, setPointSize, @"Point size") + ADD_OBJECT([o printerFont], printerFont, setPrinterFont, @"Printer font") ADD_ENUM(FontRenderingMode, [o renderingMode], renderingMode, setrenderingMode, @"Rendering mode") - ADD_OBJECT_NOT_NIL([o screenFont], @"Screen font") - ADD_NUMBER([o underlinePosition], @"Underline position") - ADD_NUMBER([o underlineThickness], @"Underline thickness") - ADD_NUMBER([o xHeight], @"xHeight") + ADD_OBJECT_NOT_NIL([o screenFont], screenFont, setScreenFont, @"Screen font") + ADD_NUMBER([o underlinePosition], underlinePosition, setUnderlinePosition, @"Underline position") + ADD_NUMBER([o underlineThickness], underlineThickness, setUnderlineThickness, @"Underline thickness") + ADD_NUMBER([o xHeight], xHeight, setXHeight, @"xHeight") } - (void)addNSFontDescriptor:(id)object @@ -1521,10 +1500,10 @@ - (void)addNSFontDescriptor:(id)object NSFontDescriptor* o = object; ADD_CLASS_LABEL(@"NSFontDescriptor Info"); ADD_DICTIONARY([o fontAttributes], @"Font attributes") - ADD_OBJECT([o matrix], @"Matrix") - ADD_NUMBER([o pointSize], @"Point size") - ADD_OBJECT([o postscriptName], @"Postscript name") - ADD_NUMBER([o symbolicTraits], @"Symbolic traits") + ADD_OBJECT([o matrix], matrix, setMatrix, @"Matrix") + ADD_NUMBER([o pointSize], pointSize, setPointSize, @"Point size") + ADD_OBJECT([o postscriptName], postscriptName, setPostscriptName, @"Postscript name") + ADD_NUMBER([o symbolicTraits], symbolicTraits, setSymbolicTraits, @"Symbolic traits") } - (void)addNSFontManager:(id)object @@ -1535,11 +1514,11 @@ - (void)addNSFontManager:(id)object ADD_OBJECTS([o availableFontFamilies], @"Available font families") ADD_OBJECTS([o availableFonts], @"Available fonts") ADD_OBJECTS([o collectionNames], @"Collection names") - ADD_OBJECT_NOT_NIL([o delegate], @"Delegate") - ADD_BOOL([o isEnabled], @"Is enabled") - ADD_BOOL([o isMultiple], @"IsMultiple") - ADD_OBJECT([o selectedFont], @"Selected font") - ADD_OBJECT([o target], @"Target") + ADD_OBJECT_NOT_NIL([o delegate], delegate, setDelegate, @"Delegate") + ADD_BOOL([o isEnabled], enabled, setisEnabled, @"Is enabled") + ADD_BOOL([o isMultiple], multiple, setisMultiple, @"IsMultiple") + ADD_OBJECT([o selectedFont], selectedFont, setSelectedFont, @"Selected font") + ADD_OBJECT([o target], target, setTarget, @"Target") } - (void)addNSGlyphInfo:(id)object @@ -1548,8 +1527,8 @@ - (void)addNSGlyphInfo:(id)object ADD_CLASS_LABEL(@"NSGlyphInfo Info"); ADD_ENUM(CharacterCollection, [o characterCollection], characterCollection, setcharacterCollection, @"Character collection") if ([o characterIdentifier]) - ADD_NUMBER([o characterIdentifier], @"Character identifier"); - ADD_OBJECT_NOT_NIL([o glyphName], @"Glyph name") + ADD_NUMBER([o characterIdentifier], characterIdentifier, setCharacterIdentifier, @"Character identifier"); + ADD_OBJECT_NOT_NIL([o glyphName], glyphName, setGlyphName, @"Glyph name") } - (void)addNSGlyphGenerator:(id)object @@ -1562,8 +1541,8 @@ - (void)addNSGradient:(id)object { NSGradient* o = object; ADD_CLASS_LABEL(@"NSGradient Info"); - ADD_OBJECT_NOT_NIL([o colorSpace], @"Color space") - ADD_NUMBER([o numberOfColorStops], @"Number of color stops") + ADD_OBJECT_NOT_NIL([o colorSpace], colorSpace, setColorSpace, @"Color space") + ADD_NUMBER([o numberOfColorStops], numberOfColorStops, setNumberOfColorStops, @"Number of color stops") } @@ -1576,10 +1555,10 @@ - (void)addNSGraphicsContext:(id)object ADD_ENUM(CompositingOperation, [o compositingOperation], compositingOperation, setcompositingOperation, @"Compositing operation") ADD_POINTER([o graphicsPort], @"Graphics port") ADD_ENUM(ImageInterpolation, [o imageInterpolation], imageInterpolation, setimageInterpolation, @"Image interpolation") - ADD_BOOL([o isDrawingToScreen], @"Is drawing to screen") - ADD_BOOL([o isFlipped], @"Is flipped") + ADD_BOOL([o isDrawingToScreen], drawingToScreen, setisDrawingToScreen, @"Is drawing to screen") + ADD_BOOL([o isFlipped], flipped, setisFlipped, @"Is flipped") ADD_POINT([o patternPhase], @"Pattern phase") - ADD_BOOL([o shouldAntialias], @"Should antialias") + ADD_BOOL([o shouldAntialias], shouldAntialias, setshouldAntialias, @"Should antialias") } - (void)addNSImage:(id)object @@ -1587,22 +1566,22 @@ - (void)addNSImage:(id)object NSImage* o = object; ADD_CLASS_LABEL(@"NSImage Info"); ADD_RECT([o alignmentRect], @"Alignment rect") - ADD_OBJECT([o backgroundColor], @"Background color") - ADD_BOOL([o cacheDepthMatchesImageDepth], @"Cache depth matches image depth") + ADD_COLOR([o backgroundColor], backgroundColor, setBackgroundColor, @"Background color") + ADD_BOOL([o cacheDepthMatchesImageDepth], cacheDepthMatchesImageDepth, setcacheDepthMatchesImageDepth, @"Cache depth matches image depth") ADD_ENUM(ImageCacheMode, [o cacheMode], cacheMode, setcacheMode, @"Cache mode") - ADD_OBJECT_NOT_NIL([o delegate], @"Delegate") - ADD_BOOL([o isCachedSeparately], @"Is cached separately") - ADD_BOOL([o isDataRetained], @"Is data retained") - ADD_BOOL([o isFlipped], @"Is flipped") - ADD_BOOL([o isTemplate], @"Is template") - ADD_BOOL([o isValid], @"Is valid") - ADD_BOOL([o matchesOnMultipleResolution], @"Matches on multiple resolution") - ADD_OBJECT_NOT_NIL([o name], @"Name") - ADD_BOOL([o prefersColorMatch], @"Prefers color match") + ADD_OBJECT_NOT_NIL([o delegate], delegate, setDelegate, @"Delegate") + ADD_BOOL([o isCachedSeparately], cachedSeparately, setisCachedSeparately, @"Is cached separately") + ADD_BOOL([o isDataRetained], dataRetained, setisDataRetained, @"Is data retained") + ADD_BOOL([o isFlipped], flipped, setisFlipped, @"Is flipped") + ADD_BOOL([o isTemplate], template, setisTemplate, @"Is template") + ADD_BOOL([o isValid], valid, setisValid, @"Is valid") + ADD_BOOL([o matchesOnMultipleResolution], matchesOnMultipleResolution, setmatchesOnMultipleResolution, @"Matches on multiple resolution") + ADD_OBJECT_NOT_NIL([o name], name, setName, @"Name") + ADD_BOOL([o prefersColorMatch], prefersColorMatch, setprefersColorMatch, @"Prefers color match") ADD_OBJECTS([o representations], @"Representations") - ADD_BOOL([o scalesWhenResized], @"Scales when resized") + ADD_BOOL([o scalesWhenResized], scalesWhenResized, setscalesWhenResized, @"Scales when resized") ADD_SIZE([o size], @"Size") - ADD_BOOL([o usesEPSOnResolutionMismatch], @"Uses EPS on resolution mismatch") + ADD_BOOL([o usesEPSOnResolutionMismatch], usesEPSOnResolutionMismatch, setusesEPSOnResolutionMismatch, @"Uses EPS on resolution mismatch") } - (void)addNSImageRep:(id)object @@ -1611,40 +1590,40 @@ - (void)addNSImageRep:(id)object NSBitmapImageRep* o = object; ADD_CLASS_LABEL(@"NSBitmapImageRep Info"); ADD_ENUM(BitmapFormat, [o bitmapFormat], bitmapFormat, setbitmapFormat, @"Bitmap format") - ADD_NUMBER([o bitsPerPixel], @"Bits per pixel") - ADD_NUMBER([o bytesPerPlane], @"Bytes per plane") - ADD_NUMBER([o bytesPerRow], @"Bytes per row") - ADD_OBJECT_NOT_NIL([o valueForProperty:NSImageColorSyncProfileData], @"ColorSync profile data") - ADD_OBJECT_NOT_NIL([o valueForProperty:NSImageCompressionFactor], @"Compression factor") + ADD_NUMBER([o bitsPerPixel], bitsPerPixel, setBitsPerPixel, @"Bits per pixel") + ADD_NUMBER([o bytesPerPlane], bytesPerPlane, setBytesPerPlane, @"Bytes per plane") + ADD_NUMBER([o bytesPerRow], bytesPerRow, setBytesPerRow, @"Bytes per row") + ADD_OBJECT_RO_NOT_NIL([o valueForProperty:NSImageColorSyncProfileData], @"ColorSync profile data") + ADD_OBJECT_RO_NOT_NIL([o valueForProperty:NSImageCompressionFactor], @"Compression factor") { id compressionMethod = [o valueForProperty:NSImageCompressionMethod]; if ([compressionMethod isKindOfClass:[NSNumber class]]) ADD_ENUM(TIFFCompression, [[o valueForProperty:NSImageCompressionMethod] longValue], imageCompressionMethod, setImageCompressionMethod, @"Compression method") } - ADD_OBJECT_NOT_NIL([o valueForProperty:NSImageCurrentFrame], @"Current frame") - ADD_OBJECT_NOT_NIL([o valueForProperty:NSImageCurrentFrameDuration], @"Current frame duration") - ADD_OBJECT_NOT_NIL([o valueForProperty:NSImageDitherTransparency], @"Dither transparency") - ADD_OBJECT_NOT_NIL([o valueForProperty:NSImageEXIFData], @"EXIF data") - ADD_OBJECT_NOT_NIL([o valueForProperty:NSImageFallbackBackgroundColor], @"Fallback background color") - ADD_OBJECT_NOT_NIL([o valueForProperty:NSImageFrameCount], @"Frame count") - ADD_OBJECT_NOT_NIL([o valueForProperty:NSImageGamma], @"Gamma") - ADD_OBJECT_NOT_NIL([o valueForProperty:NSImageInterlaced], @"Interlaced") - ADD_BOOL([o isPlanar], @"Is planar") - ADD_OBJECT_NOT_NIL([o valueForProperty:NSImageLoopCount], @"Loop count") - ADD_NUMBER([o numberOfPlanes], @"Number of planes") - ADD_OBJECT_NOT_NIL([o valueForProperty:NSImageProgressive], @"Progressive") - ADD_OBJECT_NOT_NIL([o valueForProperty:NSImageRGBColorTable], @"RGB color table") - ADD_NUMBER([o samplesPerPixel], @"Samples per pixel") + ADD_OBJECT_RO_NOT_NIL([o valueForProperty:NSImageCurrentFrame], @"Current frame") + ADD_OBJECT_RO_NOT_NIL([o valueForProperty:NSImageCurrentFrameDuration], @"Current frame duration") + ADD_OBJECT_RO_NOT_NIL([o valueForProperty:NSImageDitherTransparency], @"Dither transparency") + ADD_OBJECT_RO_NOT_NIL([o valueForProperty:NSImageEXIFData], @"EXIF data") + ADD_OBJECT_RO_NOT_NIL([o valueForProperty:NSImageFallbackBackgroundColor], @"Fallback background color") + ADD_OBJECT_RO_NOT_NIL([o valueForProperty:NSImageFrameCount], @"Frame count") + ADD_OBJECT_RO_NOT_NIL([o valueForProperty:NSImageGamma], @"Gamma") + ADD_OBJECT_RO_NOT_NIL([o valueForProperty:NSImageInterlaced], @"Interlaced") + ADD_BOOL([o isPlanar], planar, setisPlanar, @"Is planar") + ADD_OBJECT_RO_NOT_NIL([o valueForProperty:NSImageLoopCount], @"Loop count") + ADD_NUMBER([o numberOfPlanes], numberOfPlanes, setNumberOfPlanes, @"Number of planes") + ADD_OBJECT_RO_NOT_NIL([o valueForProperty:NSImageProgressive], @"Progressive") + ADD_OBJECT_RO_NOT_NIL([o valueForProperty:NSImageRGBColorTable], @"RGB color table") + ADD_NUMBER([o samplesPerPixel], samplesPerPixel, setSamplesPerPixel, @"Samples per pixel") } else if ([object isKindOfClass:[NSCIImageRep class]]) { NSCIImageRep* o = object; ADD_CLASS_LABEL(@"NSCIImageRep Info"); - ADD_OBJECT([o CIImage], @"CIImage") + ADD_OBJECT([o CIImage], CIImage, setCIImage, @"CIImage") } else if ([object isKindOfClass:[NSCustomImageRep class]]) { NSCustomImageRep* o = object; ADD_CLASS_LABEL(@"NSCustomImageRep Info"); - ADD_OBJECT([o delegate], @"Delegate") + ADD_OBJECT([o delegate], delegate, setDelegate, @"Delegate") ADD_SEL([o drawSelector], @"Draw selector") } else if ([object isKindOfClass:[NSEPSImageRep class]]) { @@ -1656,8 +1635,8 @@ - (void)addNSImageRep:(id)object NSPDFImageRep* o = object; ADD_CLASS_LABEL(@"NSPDFImageRep Info"); ADD_RECT([o bounds], @"Bounding box") - ADD_NUMBER([o currentPage], @"Current page") - ADD_NUMBER([o pageCount], @"Page count") + ADD_NUMBER([o currentPage], currentPage, setCurrentPage, @"Current page") + ADD_NUMBER([o pageCount], pageCount, setPageCount, @"Page count") } else if ([object isKindOfClass:[NSPICTImageRep class]]) { NSPICTImageRep* o = object; @@ -1667,12 +1646,12 @@ - (void)addNSImageRep:(id)object NSImageRep* o = object; ADD_CLASS_LABEL(@"NSImageRep Info"); - ADD_NUMBER([o bitsPerSample], @"Bits per sample") - ADD_OBJECT([o colorSpaceName], @"Color space name") - ADD_BOOL([o hasAlpha], @"Has alpha") - ADD_BOOL([o isOpaque], @"Is opaque") - ADD_NUMBER([o pixelsHigh], @"Pixels high") - ADD_NUMBER([o pixelsWide], @"Pixels wide") + ADD_NUMBER([o bitsPerSample], bitsPerSample, setBitsPerSample, @"Bits per sample") + ADD_OBJECT([o colorSpaceName], colorSpaceName, setColorSpaceName, @"Color space name") + ADD_BOOL([o hasAlpha], hasAlpha, sethasAlpha, @"Has alpha") + ADD_BOOL([o isOpaque], opaque, setisOpaque, @"Is opaque") + ADD_NUMBER([o pixelsHigh], pixelsHigh, setPixelsHigh, @"Pixels high") + ADD_NUMBER([o pixelsWide], pixelsWide, setPixelsWide, @"Pixels wide") ADD_SIZE([o size], @"Size") } @@ -1680,57 +1659,57 @@ - (void)addNSLayoutManager:(id)object { NSLayoutManager* o = object; ADD_CLASS_LABEL(@"NSLayoutManager Info"); - ADD_BOOL([o allowsNonContiguousLayout], @"Allows non contiguous layout") - ADD_BOOL([o backgroundLayoutEnabled], @"Background layout enabled") + ADD_BOOL([o allowsNonContiguousLayout], allowsNonContiguousLayout, setallowsNonContiguousLayout, @"Allows non contiguous layout") + ADD_BOOL([o backgroundLayoutEnabled], backgroundLayoutEnabled, setbackgroundLayoutEnabled, @"Background layout enabled") ADD_ENUM(ImageScaling, [o defaultAttachmentScaling], defaultAttachmentScaling, setdefaultAttachmentScaling, @"Default attachment scaling") - ADD_OBJECT_NOT_NIL([o delegate], @"Delegate") + ADD_OBJECT_NOT_NIL([o delegate], delegate, setDelegate, @"Delegate") ADD_RECT([o extraLineFragmentRect], @"Extra line fragment rect") - ADD_OBJECT_NOT_NIL([o extraLineFragmentTextContainer], @"Extra line fragment text container") + ADD_OBJECT_NOT_NIL([o extraLineFragmentTextContainer], extraLineFragmentTextContainer, setExtraLineFragmentTextContainer, @"Extra line fragment text container") ADD_RECT([o extraLineFragmentUsedRect], @"Extra line fragment used rect") - ADD_OBJECT([o firstTextView], @"First text view") - ADD_NUMBER([o firstUnlaidCharacterIndex], @"First unlaid character index") - ADD_NUMBER([o firstUnlaidGlyphIndex], @"First unlaid glyph index") - ADD_OBJECT([o glyphGenerator], @"Glyph generator") - ADD_BOOL([o hasNonContiguousLayout], @"Has non contiguous layout") - ADD_NUMBER([o hyphenationFactor], @"Hyphenation factor") + ADD_OBJECT([o firstTextView], firstTextView, setFirstTextView, @"First text view") + ADD_NUMBER([o firstUnlaidCharacterIndex], firstUnlaidCharacterIndex, setFirstUnlaidCharacterIndex, @"First unlaid character index") + ADD_NUMBER([o firstUnlaidGlyphIndex], firstUnlaidGlyphIndex, setFirstUnlaidGlyphIndex, @"First unlaid glyph index") + ADD_OBJECT([o glyphGenerator], glyphGenerator, setGlyphGenerator, @"Glyph generator") + ADD_BOOL([o hasNonContiguousLayout], hasNonContiguousLayout, sethasNonContiguousLayout, @"Has non contiguous layout") + ADD_NUMBER([o hyphenationFactor], hyphenationFactor, setHyphenationFactor, @"Hyphenation factor") ADD_ENUM(GlyphStorageLayoutOptions, [o layoutOptions], layoutOptions, setlayoutOptions, @"Layout options") - ADD_BOOL([o showsControlCharacters], @"Shows control characters") - ADD_BOOL([o showsInvisibleCharacters], @"Shows invisible characters") + ADD_BOOL([o showsControlCharacters], showsControlCharacters, setshowsControlCharacters, @"Shows control characters") + ADD_BOOL([o showsInvisibleCharacters], showsInvisibleCharacters, setshowsInvisibleCharacters, @"Shows invisible characters") ADD_OBJECTS([o textContainers], @"Text containers") - ADD_OBJECT([o textStorage], @"Text storage") - ADD_OBJECT([o textViewForBeginningOfSelection], @"Text view for beginning of selection") - ADD_OBJECT([o typesetter], @"Typesetter") + ADD_OBJECT([o textStorage], textStorage, setTextStorage, @"Text storage") + ADD_OBJECT([o textViewForBeginningOfSelection], textViewForBeginningOfSelection, setTextViewForBeginningOfSelection, @"Text view for beginning of selection") + ADD_OBJECT([o typesetter], typesetter, setTypesetter, @"Typesetter") ADD_ENUM(TypesetterBehavior, [o typesetterBehavior], typesetterBehavior, settypesetterBehavior, @"Typesetter behavior") - ADD_BOOL([o usesFontLeading], @"Uses font leading") - ADD_BOOL([o usesScreenFonts], @"Uses screen fonts") + ADD_BOOL([o usesFontLeading], usesFontLeading, setusesFontLeading, @"Uses font leading") + ADD_BOOL([o usesScreenFonts], usesScreenFonts, setusesScreenFonts, @"Uses screen fonts") } - (void)addNSManagedObjectContext:(id)object { NSManagedObjectContext* o = object; ADD_CLASS_LABEL(@"NSManagedObjectContext Info"); - ADD_OBJECT([o deletedObjects], @"Deleted objects") - ADD_BOOL([o hasChanges], @"Has changes") - ADD_OBJECT([o insertedObjects], @"Inserted objects") + ADD_OBJECT([o deletedObjects], deletedObjects, setDeletedObjects, @"Deleted objects") + ADD_BOOL([o hasChanges], hasChanges, sethasChanges, @"Has changes") + ADD_OBJECT([o insertedObjects], insertedObjects, setInsertedObjects, @"Inserted objects") ADD_ENUM(MergePolicyMarker, [o mergePolicy], mergePolicy, setmergePolicy, @"Merge policy") - ADD_OBJECT([o persistentStoreCoordinator], @"Persistent store coordinator") - ADD_BOOL([o propagatesDeletesAtEndOfEvent], @"Propagates deletes at end of event") - ADD_OBJECT([o registeredObjects], @"Registered objects") - ADD_BOOL([o retainsRegisteredObjects], @"Retains registered objects") - ADD_NUMBER([o stalenessInterval], @"Staleness interval") - ADD_BOOL([o tryLock], @"Try lock") - ADD_OBJECT([o undoManager], @"Undo manager") - ADD_OBJECT([o updatedObjects], @"Updated objects") + ADD_OBJECT([o persistentStoreCoordinator], persistentStoreCoordinator, setPersistentStoreCoordinator, @"Persistent store coordinator") + ADD_BOOL([o propagatesDeletesAtEndOfEvent], propagatesDeletesAtEndOfEvent, setpropagatesDeletesAtEndOfEvent, @"Propagates deletes at end of event") + ADD_OBJECT([o registeredObjects], registeredObjects, setRegisteredObjects, @"Registered objects") + ADD_BOOL([o retainsRegisteredObjects], retainsRegisteredObjects, setretainsRegisteredObjects, @"Retains registered objects") + ADD_NUMBER([o stalenessInterval], stalenessInterval, setStalenessInterval, @"Staleness interval") + ADD_BOOL([o tryLock], tryLock, settryLock, @"Try lock") + ADD_OBJECT([o undoManager], undoManager, setUndoManager, @"Undo manager") + ADD_OBJECT([o updatedObjects], updatedObjects, setUpdatedObjects, @"Updated objects") } - (void)addNSManagedObjectID:(id)object { NSManagedObjectID* o = object; ADD_CLASS_LABEL(@"NSManagedObjectID Info"); - ADD_OBJECT([o entity], @"Entity") - ADD_BOOL([o isTemporaryID], @"Is temporary ID") - ADD_OBJECT([o persistentStore], @"Persistent store") - ADD_OBJECT([o URIRepresentation], @"URI representation") + ADD_OBJECT([o entity], entity, setEntity, @"Entity") + ADD_BOOL([o isTemporaryID], temporaryID, setisTemporaryID, @"Is temporary ID") + ADD_OBJECT([o persistentStore], persistentStore, setPersistentStore, @"Persistent store") + ADD_OBJECT([o URIRepresentation], URIRepresentation, setURIRepresentation, @"URI representation") } - (void)addNSManagedObjectModel:(id)object @@ -1747,15 +1726,15 @@ - (void)addNSMenu:(id)object { NSMenu* o = object; ADD_CLASS_LABEL(@"NSMenu Info"); - ADD_BOOL([o autoenablesItems], @"Autoenables Items") - ADD_OBJECT_NOT_NIL([o delegate], @"Delegate") - ADD_OBJECT_NOT_NIL([o highlightedItem], @"Highlighted item") - ADD_BOOL([o isTornOff], @"Is torn off") + ADD_BOOL([o autoenablesItems], autoenablesItems, setautoenablesItems, @"Autoenables Items") + ADD_OBJECT_NOT_NIL([o delegate], delegate, setDelegate, @"Delegate") + ADD_OBJECT_NOT_NIL([o highlightedItem], highlightedItem, setHighlightedItem, @"Highlighted item") + ADD_BOOL([o isTornOff], tornOff, setisTornOff, @"Is torn off") ADD_OBJECTS([o itemArray], @"Items") - ADD_BOOL([o menuChangedMessagesEnabled], @"Menu changed messages enabled") - ADD_BOOL([o showsStateColumn], @"Shows state column") - ADD_OBJECT_NOT_NIL([o supermenu], @"Supermenu") - ADD_OBJECT([o title], @"Title") + ADD_BOOL([o menuChangedMessagesEnabled], menuChangedMessagesEnabled, setmenuChangedMessagesEnabled, @"Menu changed messages enabled") + ADD_BOOL([o showsStateColumn], showsStateColumn, setshowsStateColumn, @"Shows state column") + ADD_OBJECT_NOT_NIL([o supermenu], supermenu, setSupermenu, @"Supermenu") + ADD_OBJECT([o title], title, setTitle, @"Title") } - (void)addNSMenuItem:(id)object @@ -1763,31 +1742,31 @@ - (void)addNSMenuItem:(id)object NSMenuItem* o = object; ADD_CLASS_LABEL(@"NSMenuItem Info") ADD_SEL([o action], @"Action") - ADD_OBJECT_NOT_NIL([o attributedTitle], @"Attributed title") - ADD_BOOL([o hasSubmenu], @"Has submenu") - ADD_OBJECT_NOT_NIL([o image], @"Image") - ADD_NUMBER([o indentationLevel], @"Indentation level") - ADD_BOOL([o isAlternate], @"Is alternate") - ADD_BOOL([o isEnabled], @"Is enabled") - ADD_BOOL([o isHidden], @"Is hidden") - ADD_BOOL([o isHiddenOrHasHiddenAncestor], @"Is hidden or has hidden ancestor") - ADD_BOOL([o isHighlighted], @"Is highlighted") - ADD_BOOL([o isSeparatorItem], @"Is separatorItem") - ADD_OBJECT([o keyEquivalent], @"Key equivalent") + ADD_OBJECT_NOT_NIL([o attributedTitle], attributedTitle, setAttributedTitle, @"Attributed title") + ADD_BOOL([o hasSubmenu], hasSubmenu, sethasSubmenu, @"Has submenu") + ADD_OBJECT_NOT_NIL([o image], image, setImage, @"Image") + ADD_NUMBER([o indentationLevel], indentationLevel, setIndentationLevel, @"Indentation level") + ADD_BOOL([o isAlternate], alternate, setisAlternate, @"Is alternate") + ADD_BOOL([o isEnabled], enabled, setisEnabled, @"Is enabled") + ADD_BOOL([o isHidden], hidden, setisHidden, @"Is hidden") + ADD_BOOL([o isHiddenOrHasHiddenAncestor], hiddenOrHasHiddenAncestor, setisHiddenOrHasHiddenAncestor, @"Is hidden or has hidden ancestor") + ADD_BOOL([o isHighlighted], highlighted, setisHighlighted, @"Is highlighted") + ADD_BOOL([o isSeparatorItem], separatorItem, setisSeparatorItem, @"Is separatorItem") + ADD_OBJECT([o keyEquivalent], keyEquivalent, setKeyEquivalent, @"Key equivalent") ADD_ENUM(EventModifierFlags, [o keyEquivalentModifierMask] & NSDeviceIndependentModifierFlagsMask, keyEquivalentModifierMask, setKeyEquivalentModifierMask, @"Key equivalent modifier mask") - ADD_OBJECT([o menu], @"Menu") - ADD_OBJECT_NOT_NIL([o mixedStateImage], @"Mixed state image") - ADD_OBJECT_NOT_NIL([o offStateImage], @"Off state image") - ADD_OBJECT_NOT_NIL([o onStateImage], @"On state image") - ADD_OBJECT_NOT_NIL([o representedObject], @"Represented object") + ADD_OBJECT([o menu], menu, setMenu, @"Menu") + ADD_OBJECT_NOT_NIL([o mixedStateImage], mixedStateImage, setMixedStateImage, @"Mixed state image") + ADD_OBJECT_NOT_NIL([o offStateImage], offStateImage, setOffStateImage, @"Off state image") + ADD_OBJECT_NOT_NIL([o onStateImage], onStateImage, setOnStateImage, @"On state image") + ADD_OBJECT_NOT_NIL([o representedObject], representedObject, setRepresentedObject, @"Represented object") ADD_ENUM(CellStateValue, [o state], state, setstate, @"State") - ADD_OBJECT_NOT_NIL([o submenu], @"Submenu") - ADD_NUMBER([o tag], @"Tag") - ADD_OBJECT_NOT_NIL([o target], @"Target") - ADD_OBJECT([o title], @"Title") - ADD_OBJECT_NOT_NIL([o toolTip], @"Tool tip") - ADD_OBJECT([o userKeyEquivalent], @"User key equivalent") - ADD_OBJECT_NOT_NIL([o view], @"View") + ADD_OBJECT_NOT_NIL([o submenu], submenu, setSubmenu, @"Submenu") + ADD_NUMBER([o tag], tag, setTag, @"Tag") + ADD_OBJECT_NOT_NIL([o target], target, setTarget, @"Target") + ADD_OBJECT([o title], title, setTitle, @"Title") + ADD_OBJECT_NOT_NIL([o toolTip], toolTip, setToolTip, @"Tool tip") + ADD_OBJECT([o userKeyEquivalent], userKeyEquivalent, setUserKeyEquivalent, @"User key equivalent") + ADD_OBJECT_NOT_NIL([o view], view, setView, @"View") } - (void)addNSOpenGLContext:(id)object @@ -1795,22 +1774,22 @@ - (void)addNSOpenGLContext:(id)object NSOpenGLContext* o = object; ADD_CLASS_LABEL(@"NSOpenGLContext Info"); ADD_POINTER([o CGLContextObj], @"CGL context obj") - ADD_NUMBER([o currentVirtualScreen], @"Current virtual screen") - ADD_OBJECT_NOT_NIL([o pixelBuffer], @"Pixel buffer") - ADD_NUMBER([o pixelBufferCubeMapFace], @"Pixel buffer cube map face") - ADD_NUMBER([o pixelBufferMipMapLevel], @"Pixel buffer mipmap level") - ADD_OBJECT_NOT_NIL([o view], @"View") + ADD_NUMBER([o currentVirtualScreen], currentVirtualScreen, setCurrentVirtualScreen, @"Current virtual screen") + ADD_OBJECT_NOT_NIL([o pixelBuffer], pixelBuffer, setPixelBuffer, @"Pixel buffer") + ADD_NUMBER([o pixelBufferCubeMapFace], pixelBufferCubeMapFace, setPixelBufferCubeMapFace, @"Pixel buffer cube map face") + ADD_NUMBER([o pixelBufferMipMapLevel], pixelBufferMipMapLevel, setPixelBufferMipMapLevel, @"Pixel buffer mipmap level") + ADD_OBJECT_NOT_NIL([o view], view, setView, @"View") } - (void)addNSOpenGLPixelBuffer:(id)object { NSOpenGLPixelBuffer* o = object; ADD_CLASS_LABEL(@"NSOpenGLPixelBuffer Info"); - ADD_NUMBER([o pixelsHigh], @"Pixels high") - ADD_NUMBER([o pixelsWide], @"Pixels wide") - ADD_NUMBER([o textureInternalFormat], @"Texture internal format") - ADD_NUMBER([o textureMaxMipMapLevel], @"Texture max mipmap level") - ADD_NUMBER([o textureTarget], @"Texture target") + ADD_NUMBER([o pixelsHigh], pixelsHigh, setPixelsHigh, @"Pixels high") + ADD_NUMBER([o pixelsWide], pixelsWide, setPixelsWide, @"Pixels wide") + ADD_NUMBER([o textureInternalFormat], textureInternalFormat, setTextureInternalFormat, @"Texture internal format") + ADD_NUMBER([o textureMaxMipMapLevel], textureMaxMipMapLevel, setTextureMaxMipMapLevel, @"Texture max mipmap level") + ADD_NUMBER([o textureTarget], textureTarget, setTextureTarget, @"Texture target") } - (void)addNSOpenGLPixelFormat:(id)object @@ -1818,7 +1797,7 @@ - (void)addNSOpenGLPixelFormat:(id)object NSOpenGLPixelFormat* o = object; ADD_CLASS_LABEL(@"NSOpenGLPixelFormat Info"); ADD_POINTER([o CGLPixelFormatObj], @"CGL pixel format obj") - ADD_NUMBER([o numberOfVirtualScreens], @"Number of virtual screens") + ADD_NUMBER([o numberOfVirtualScreens], numberOfVirtualScreens, setNumberOfVirtualScreens, @"Number of virtual screens") } - (void)addNSPageLayout:(id)object @@ -1828,7 +1807,7 @@ - (void)addNSPageLayout:(id)object if ([[o accessoryControllers] count] > 0 || [o printInfo] != nil) { ADD_CLASS_LABEL(@"NSPageLayout Info"); ADD_OBJECTS([o accessoryControllers], @"Accessory controllers") - ADD_OBJECT_NOT_NIL([o printInfo], @"Print info") + ADD_OBJECT_NOT_NIL([o printInfo], printInfo, setPrintInfo, @"Print info") } } @@ -1838,30 +1817,30 @@ - (void)addNSParagraphStyle:(id)object ADD_CLASS_LABEL(@"NSParagraphStyle Info") ADD_ENUM(TextAlignment, [o alignment], alignment, setalignment, @"Alignment") ADD_ENUM(WritingDirection, [o baseWritingDirection], baseWritingDirection, setbaseWritingDirection, @"Base writing direction") - ADD_NUMBER([o defaultTabInterval], @"Default tab interval") - ADD_NUMBER([o firstLineHeadIndent], @"First line head indent") - ADD_NUMBER([o headerLevel], @"HeaderLevel") - ADD_NUMBER([o headIndent], @"Head indent") - ADD_NUMBER([o hyphenationFactor], @"hyphenationFactor") + ADD_NUMBER([o defaultTabInterval], defaultTabInterval, setDefaultTabInterval, @"Default tab interval") + ADD_NUMBER([o firstLineHeadIndent], firstLineHeadIndent, setFirstLineHeadIndent, @"First line head indent") + ADD_NUMBER([o headerLevel], headerLevel, setHeaderLevel, @"HeaderLevel") + ADD_NUMBER([o headIndent], headIndent, setHeadIndent, @"Head indent") + ADD_NUMBER([o hyphenationFactor], hyphenationFactor, setHyphenationFactor, @"hyphenationFactor") ADD_ENUM(LineBreakMode, [o lineBreakMode], lineBreakMode, setlineBreakMode, @"Line break mode") - ADD_NUMBER([o lineHeightMultiple], @"Line height multiple") - ADD_NUMBER([o lineSpacing], @"Line spacing") - ADD_NUMBER([o maximumLineHeight], @"Maximum line height") - ADD_NUMBER([o minimumLineHeight], @"Minimum line height") - ADD_NUMBER([o paragraphSpacing], @"Paragraph spacing") - ADD_NUMBER([o paragraphSpacingBefore], @"Paragraph spacing before") + ADD_NUMBER([o lineHeightMultiple], lineHeightMultiple, setLineHeightMultiple, @"Line height multiple") + ADD_NUMBER([o lineSpacing], lineSpacing, setLineSpacing, @"Line spacing") + ADD_NUMBER([o maximumLineHeight], maximumLineHeight, setMaximumLineHeight, @"Maximum line height") + ADD_NUMBER([o minimumLineHeight], minimumLineHeight, setMinimumLineHeight, @"Minimum line height") + ADD_NUMBER([o paragraphSpacing], paragraphSpacing, setParagraphSpacing, @"Paragraph spacing") + ADD_NUMBER([o paragraphSpacingBefore], paragraphSpacingBefore, setParagraphSpacingBefore, @"Paragraph spacing before") ADD_OBJECTS([o tabStops], @"Tab stops") - ADD_NUMBER([o tailIndent], @"Tail indent") + ADD_NUMBER([o tailIndent], tailIndent, setTailIndent, @"Tail indent") ADD_OBJECTS([o textBlocks], @"Text blocks") ADD_OBJECTS([o textLists], @"Text lists") - ADD_NUMBER([o tighteningFactorForTruncation], @"Tightening factor for truncation") + ADD_NUMBER([o tighteningFactorForTruncation], tighteningFactorForTruncation, setTighteningFactorForTruncation, @"Tightening factor for truncation") } - (void)addNSPersistentStoreCoordinator:(id)object { NSPersistentStoreCoordinator* o = object; ADD_CLASS_LABEL(@"NSPersistentStoreCoordinator Info") - ADD_OBJECT([o managedObjectModel], @"Managed object model") + ADD_OBJECT([o managedObjectModel], managedObjectModel, setManagedObjectModel, @"Managed object model") ADD_OBJECTS([o persistentStores], @"Persistent stores") } @@ -1885,35 +1864,35 @@ - (void)addNSPropertyDescription:(id)object NSAttributeDescription* o = object; ADD_CLASS_LABEL(@"NSAttributeDescription Info") ADD_ENUM(AttributeType, [o attributeType], attributeType, setattributeType, @"Attribute type") - ADD_OBJECT([o attributeValueClassName], @"Attribute value class name") - ADD_OBJECT([o defaultValue], @"Default value") + ADD_OBJECT([o attributeValueClassName], attributeValueClassName, setAttributeValueClassName, @"Attribute value class name") + ADD_OBJECT([o defaultValue], defaultValue, setDefaultValue, @"Default value") if ([o attributeType] == NSTransformableAttributeType) - ADD_OBJECT([o valueTransformerName], @"Value transformer name") + ADD_OBJECT([o valueTransformerName], valueTransformerName, setValueTransformerName, @"Value transformer name") } else if ([object isKindOfClass:[NSFetchedPropertyDescription class]]) { NSFetchedPropertyDescription* o = object; ADD_CLASS_LABEL(@"NSFetchedPropertyDescription Info") - ADD_OBJECT([o fetchRequest], @"Fetch request") + ADD_OBJECT([o fetchRequest], fetchRequest, setFetchRequest, @"Fetch request") } else if ([object isKindOfClass:[NSRelationshipDescription class]]) { NSRelationshipDescription* o = object; ADD_CLASS_LABEL(@"NSRelationshipDescription Info") ADD_ENUM(DeleteRule, [o deleteRule], deleteRule, setdeleteRule, @"Delete rule") - ADD_OBJECT([o destinationEntity], @"Destination entity") - ADD_OBJECT([o inverseRelationship], @"Inverse relationship") - ADD_BOOL([o isToMany], @"Is to many") - ADD_NUMBER([o maxCount], @"Max count") - ADD_NUMBER([o minCount], @"Min count") + ADD_OBJECT([o destinationEntity], destinationEntity, setDestinationEntity, @"Destination entity") + ADD_OBJECT([o inverseRelationship], inverseRelationship, setInverseRelationship, @"Inverse relationship") + ADD_BOOL([o isToMany], toMany, setisToMany, @"Is to many") + ADD_NUMBER([o maxCount], maxCount, setMaxCount, @"Max count") + ADD_NUMBER([o minCount], minCount, setMinCount, @"Min count") } NSPropertyDescription* o = object; ADD_CLASS_LABEL(@"NSPropertyDescription Info") - ADD_OBJECT([o entity], @"Entity") - ADD_BOOL([o isIndexed], @"Is indexed") - ADD_BOOL([o isOptional], @"Is optional") - ADD_BOOL([o isTransient], @"Is transient") - ADD_OBJECT([o name], @"Name") + ADD_OBJECT([o entity], entity, setEntity, @"Entity") + ADD_BOOL([o isIndexed], indexed, setisIndexed, @"Is indexed") + ADD_BOOL([o isOptional], optional, setisOptional, @"Is optional") + ADD_BOOL([o isTransient], transient, setisTransient, @"Is transient") + ADD_OBJECT([o name], name, setName, @"Name") ADD_DICTIONARY([o userInfo], @"User info") ADD_OBJECTS([o validationPredicates], @"Validation predicates") ADD_OBJECTS([o validationWarnings], @"Validation warnings") @@ -1924,39 +1903,39 @@ - (void)addNSResponder:(id)object if ([object isKindOfClass:[NSApplication class]]) { NSApplication* o = object; ADD_CLASS_LABEL(@"NSApplication Info") - ADD_OBJECT_NOT_NIL([o applicationIconImage], @"Application icon image") - ADD_OBJECT_NOT_NIL([o context], @"Context") - ADD_OBJECT_NOT_NIL([o currentEvent], @"Current event") - ADD_OBJECT_NOT_NIL([o delegate], @"Delegate") - ADD_OBJECT_NOT_NIL([o dockTile], @"Dock tile") - ADD_BOOL([o isActive], @"Is active") - ADD_BOOL([o isHidden], @"Is hidden") - ADD_BOOL([o isRunning], @"Is running") - ADD_OBJECT_NOT_NIL([o keyWindow], @"Key window") - ADD_OBJECT_NOT_NIL([o mainMenu], @"Main menu") - ADD_OBJECT_NOT_NIL([o mainWindow], @"Main window") - ADD_OBJECT_NOT_NIL([o modalWindow], @"Modal window") + ADD_OBJECT_NOT_NIL([o applicationIconImage], applicationIconImage, setApplicationIconImage, @"Application icon image") + ADD_OBJECT_NOT_NIL([o context], context, setContext, @"Context") + ADD_OBJECT_NOT_NIL([o currentEvent], currentEvent, setCurrentEvent, @"Current event") + ADD_OBJECT_NOT_NIL([o delegate], delegate, setDelegate, @"Delegate") + ADD_OBJECT_NOT_NIL([o dockTile], dockTile, setDockTile, @"Dock tile") + ADD_BOOL([o isActive], active, setisActive, @"Is active") + ADD_BOOL([o isHidden], hidden, setisHidden, @"Is hidden") + ADD_BOOL([o isRunning], running, setisRunning, @"Is running") + ADD_OBJECT_NOT_NIL([o keyWindow], keyWindow, setKeyWindow, @"Key window") + ADD_OBJECT_NOT_NIL([o mainMenu], mainMenu, setMainMenu, @"Main menu") + ADD_OBJECT_NOT_NIL([o mainWindow], mainWindow, setMainWindow, @"Main window") + ADD_OBJECT_NOT_NIL([o modalWindow], modalWindow, setModalWindow, @"Modal window") ADD_OBJECTS([o orderedDocuments], @"Ordered documents") ADD_OBJECTS([o orderedWindows], @"Ordered windows") - ADD_OBJECT_NOT_NIL([o servicesMenu], @"Services menu") - ADD_OBJECT_NOT_NIL([o servicesProvider], @"Services provider") + ADD_OBJECT_NOT_NIL([o servicesMenu], servicesMenu, setServicesMenu, @"Services menu") + ADD_OBJECT_NOT_NIL([o servicesProvider], servicesProvider, setServicesProvider, @"Services provider") ADD_OBJECTS([o windows], @"Windows") - ADD_OBJECT_NOT_NIL([o windowsMenu], @"Windows menu") + ADD_OBJECT_NOT_NIL([o windowsMenu], windowsMenu, setWindowsMenu, @"Windows menu") } else if ([object isKindOfClass:[NSDrawer class]]) { NSDrawer* o = object; ADD_CLASS_LABEL(@"NSDrawer Info"); ADD_SIZE([o contentSize], @"Content size") - ADD_OBJECT([o contentView], @"Content view") - ADD_OBJECT([o delegate], @"Delegate") + ADD_OBJECT([o contentView], contentView, setContentView, @"Content view") + ADD_OBJECT([o delegate], delegate, setDelegate, @"Delegate") ADD_ENUM(RectEdge, [o edge], edge, setedge, @"Edge") - ADD_NUMBER([o leadingOffset], @"Leading offset") + ADD_NUMBER([o leadingOffset], leadingOffset, setLeadingOffset, @"Leading offset") ADD_SIZE([o maxContentSize], @"Max content size") ADD_SIZE([o minContentSize], @"Min content size") - ADD_OBJECT([o parentWindow], @"Parent window") + ADD_OBJECT([o parentWindow], parentWindow, setParentWindow, @"Parent window") ADD_ENUM(RectEdge, [o preferredEdge], preferredEdge, setpreferredEdge, @"Preferred edge") ADD_ENUM(DrawerState, [o state], state, setstate, @"State") - ADD_NUMBER([o trailingOffset], @"Trailing offset") + ADD_NUMBER([o trailingOffset], trailingOffset, setTrailingOffset, @"Trailing offset") } else if ([object isKindOfClass:[NSView class]]) { [self processNSView:object]; @@ -1965,11 +1944,11 @@ - (void)addNSResponder:(id)object if ([object isKindOfClass:[NSViewController class]]) { NSViewController* o = object; ADD_CLASS_LABEL(@"NSViewController Info") - ADD_OBJECT_NOT_NIL([o nibBundle], @"Nib bundle") - ADD_OBJECT_NOT_NIL([o nibName], @"Nib name") - ADD_OBJECT_NOT_NIL([o representedObject], @"Represented object") - ADD_OBJECT_NOT_NIL([o title], @"Title") - ADD_OBJECT_NOT_NIL([o view], @"View") + ADD_OBJECT_NOT_NIL([o nibBundle], nibBundle, setNibBundle, @"Nib bundle") + ADD_OBJECT_NOT_NIL([o nibName], nibName, setNibName, @"Nib name") + ADD_OBJECT_NOT_NIL([o representedObject], representedObject, setRepresentedObject, @"Represented object") + ADD_OBJECT_NOT_NIL([o title], title, setTitle, @"Title") + ADD_OBJECT_NOT_NIL([o view], view, setView, @"View") } else if ([object isKindOfClass:[NSWindow class]]) { [self processNSWindow:object]; @@ -1977,21 +1956,21 @@ - (void)addNSResponder:(id)object else if ([object isKindOfClass:[NSWindowController class]]) { NSWindowController* o = object; ADD_CLASS_LABEL(@"NSWindowController Info"); - ADD_OBJECT([o document], @"Document") - ADD_BOOL([o isWindowLoaded], @"Is window loaded") - ADD_OBJECT([o owner], @"Owner") - ADD_BOOL([o shouldCascadeWindows], @"Should cascade windows") - ADD_BOOL([o shouldCloseDocument], @"Should close document") + ADD_OBJECT([o document], document, setDocument, @"Document") + ADD_BOOL([o isWindowLoaded], windowLoaded, setisWindowLoaded, @"Is window loaded") + ADD_OBJECT([o owner], owner, setOwner, @"Owner") + ADD_BOOL([o shouldCascadeWindows], shouldCascadeWindows, setshouldCascadeWindows, @"Should cascade windows") + ADD_BOOL([o shouldCloseDocument], shouldCloseDocument, setshouldCloseDocument, @"Should close document") if ([o isWindowLoaded]) - ADD_OBJECT([o window], @"Window") - ADD_OBJECT([o windowFrameAutosaveName], @"Window frame autosave name") - ADD_OBJECT([o windowNibName], @"Window nib name") - ADD_OBJECT([o windowNibPath], @"Window nib path") + ADD_OBJECT([o window], window, setWindow, @"Window") + ADD_OBJECT([o windowFrameAutosaveName], windowFrameAutosaveName, setWindowFrameAutosaveName, @"Window frame autosave name") + ADD_OBJECT([o windowNibName], windowNibName, setWindowNibName, @"Window nib name") + ADD_OBJECT([o windowNibPath], windowNibPath, setWindowNibPath, @"Window nib path") } NSResponder* o = object; ADD_CLASS_LABEL(@"NSResponder Info") - ADD_BOOL([o acceptsFirstResponder], @"Accepts first responder") + ADD_BOOL([o acceptsFirstResponder], acceptsFirstResponder, setacceptsFirstResponder, @"Accepts first responder") @try { [view addObject:[o menu] withLabel:@"Menu" toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; @@ -2007,33 +1986,33 @@ - (void)addNSResponder:(id)object [view addObjects:responders withLabel:@"Next responders" toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; } - ADD_OBJECT([o undoManager], @"Undo Manager") + ADD_OBJECT([o undoManager], undoManager, setUndoManager, @"Undo Manager") } - (void)addNSRulerMarker:(id)object { NSRulerMarker* o = object; ADD_CLASS_LABEL(@"NSRulerMarker Info"); - ADD_OBJECT([o image], @"Image") + ADD_OBJECT([o image], image, setImage, @"Image") ADD_POINT([o imageOrigin], @"Image origin") ADD_RECT([o imageRectInRuler], @"Image rect in ruler") - ADD_BOOL([o isDragging], @"Is dragging") - ADD_BOOL([o isMovable], @"Is movable") - ADD_BOOL([o isRemovable], @"Is removable") - ADD_NUMBER([o markerLocation], @"Marker location") - ADD_OBJECT([o representedObject], @"Represented object") - ADD_OBJECT([o ruler], @"Ruler") - ADD_NUMBER([o thicknessRequiredInRuler], @"Thickness required in ruler") + ADD_BOOL([o isDragging], dragging, setisDragging, @"Is dragging") + ADD_BOOL([o isMovable], movable, setisMovable, @"Is movable") + ADD_BOOL([o isRemovable], removable, setisRemovable, @"Is removable") + ADD_NUMBER([o markerLocation], markerLocation, setMarkerLocation, @"Marker location") + ADD_OBJECT([o representedObject], representedObject, setRepresentedObject, @"Represented object") + ADD_OBJECT([o ruler], ruler, setRuler, @"Ruler") + ADD_NUMBER([o thicknessRequiredInRuler], thicknessRequiredInRuler, setThicknessRequiredInRuler, @"Thickness required in ruler") } - (void)addNSScreen:(id)object { NSScreen* o = object; ADD_CLASS_LABEL(@"NSScreen Info"); - ADD_NUMBER([o depth], @"Depth") + ADD_NUMBER([o depth], depth, setDepth, @"Depth") ADD_DICTIONARY([o deviceDescription], @"Device description") ADD_RECT([o frame], @"Frame") - ADD_NUMBER([o userSpaceScaleFactor], @"User space scale factor") + ADD_NUMBER([o userSpaceScaleFactor], userSpaceScaleFactor, setUserSpaceScaleFactor, @"User space scale factor") ADD_RECT([o visibleFrame], @"Visible frame") } @@ -2041,8 +2020,8 @@ - (void)addNSShadow:(id)object { NSShadow* o = object; ADD_CLASS_LABEL(@"NSShadow Info"); - ADD_NUMBER([o shadowBlurRadius], @"Shadow blur radius") - ADD_OBJECT([o shadowColor], @"Shadow color") + ADD_NUMBER([o shadowBlurRadius], shadowBlurRadius, setShadowBlurRadius, @"Shadow blur radius") + ADD_COLOR([o shadowColor], shadowColor, setShadowColor, @"Shadow color") ADD_SIZE([o shadowOffset], @"Shadow offset") } @@ -2050,8 +2029,8 @@ - (void)addNSStatusBar:(id)object { NSStatusBar* o = object; ADD_CLASS_LABEL(@"NSStatusBar Info"); - ADD_BOOL([o isVertical], @"Is vertical") - ADD_NUMBER([o thickness], @"Thickness") + ADD_BOOL([o isVertical], vertical, setisVertical, @"Is vertical") + ADD_NUMBER([o thickness], thickness, setThickness, @"Thickness") } - (void)addNSStatusItem:(id)object @@ -2059,58 +2038,58 @@ - (void)addNSStatusItem:(id)object NSStatusItem* o = object; ADD_CLASS_LABEL(@"NSStatusItem Info"); ADD_SEL([o action], @"Action") - ADD_OBJECT_NOT_NIL([o alternateImage], @"Alternate image") - ADD_OBJECT_NOT_NIL([o attributedTitle], @"Attributed title") + ADD_OBJECT_NOT_NIL([o alternateImage], alternateImage, setAlternateImage, @"Alternate image") + ADD_OBJECT_NOT_NIL([o attributedTitle], attributedTitle, setAttributedTitle, @"Attributed title") ADD_SEL([o doubleAction], @"Double action") - ADD_BOOL([o highlightMode], @"Highlight mode") - ADD_OBJECT_NOT_NIL([o image], @"Image") - ADD_BOOL([o isEnabled], @"Is enabled") + ADD_BOOL([o highlightMode], highlightMode, sethighlightMode, @"Highlight mode") + ADD_OBJECT_NOT_NIL([o image], image, setImage, @"Image") + ADD_BOOL([o isEnabled], enabled, setisEnabled, @"Is enabled") ADD_ENUM(StatusItemLength, [o length], length, setlength, @"Length") - ADD_OBJECT_NOT_NIL([o menu], @"Menu") - ADD_OBJECT([o statusBar], @"Status bar") - ADD_OBJECT([o target], @"Target") - ADD_OBJECT_NOT_NIL([o title], @"Title") - ADD_OBJECT_NOT_NIL([o toolTip], @"Tool tip") - ADD_OBJECT_NOT_NIL([o view], @"View") + ADD_OBJECT_NOT_NIL([o menu], menu, setMenu, @"Menu") + ADD_OBJECT([o statusBar], statusBar, setStatusBar, @"Status bar") + ADD_OBJECT([o target], target, setTarget, @"Target") + ADD_OBJECT_NOT_NIL([o title], title, setTitle, @"Title") + ADD_OBJECT_NOT_NIL([o toolTip], toolTip, setToolTip, @"Tool tip") + ADD_OBJECT_NOT_NIL([o view], view, setView, @"View") } - (void)addNSTabViewItem:(id)object { NSTabViewItem* o = object; ADD_CLASS_LABEL(@"NSTabViewItem Info"); - ADD_OBJECT([o color], @"Color") - ADD_OBJECT([(NSTabViewItem*)o identifier], @"Identifier") - ADD_OBJECT([o initialFirstResponder], @"Initial first responder") - ADD_OBJECT([o label], @"Label") + ADD_COLOR([o color], color, setColor, @"Color") + ADD_OBJECT([(NSTabViewItem*)o identifier], identifier, setIdentifier, @"Identifier") + ADD_OBJECT([o initialFirstResponder], initialFirstResponder, setInitialFirstResponder, @"Initial first responder") + ADD_OBJECT([o label], label, setLabel, @"Label") ADD_ENUM(TabState, [o tabState], tabState, settabState, @"Tab state") - ADD_OBJECT([o tabView], @"Parent tab view") - ADD_OBJECT([o view], @"View") + ADD_OBJECT([o tabView], tabView, setTabView, @"Parent tab view") + ADD_OBJECT([o view], view, setView, @"View") } - (void)addNSTableColumn:(id)object { NSTableColumn* o = object; ADD_CLASS_LABEL(@"NSTableColumn Info"); - ADD_OBJECT([o dataCell], @"Data cell") - ADD_OBJECT([o headerCell], @"Header cell") - ADD_OBJECT_NOT_NIL([o headerToolTip], @"Header tool tip") - ADD_OBJECT([(NSTableColumn*)o identifier], @"Identifier") - ADD_BOOL([o isEditable], @"Is editable") - ADD_BOOL([o isHidden], @"Is hidden") - ADD_NUMBER([o maxWidth], @"Max width") - ADD_NUMBER([o minWidth], @"Min width") + ADD_OBJECT([o dataCell], dataCell, setDataCell, @"Data cell") + ADD_OBJECT([o headerCell], headerCell, setHeaderCell, @"Header cell") + ADD_OBJECT_NOT_NIL([o headerToolTip], headerToolTip, setHeaderToolTip, @"Header tool tip") + ADD_OBJECT([(NSTableColumn*)o identifier], identifier, setIdentifier, @"Identifier") + ADD_BOOL([o isEditable], editable, setisEditable, @"Is editable") + ADD_BOOL([o isHidden], hidden, setisHidden, @"Is hidden") + ADD_NUMBER([o maxWidth], maxWidth, setMaxWidth, @"Max width") + ADD_NUMBER([o minWidth], minWidth, setMinWidth, @"Min width") ADD_ENUM(TableColumnResizingOptions, [o resizingMask], resizingMask, setresizingMask, @"Resizing mask") - ADD_OBJECT_NOT_NIL([o sortDescriptorPrototype], @"Sort descriptor prototype") - ADD_OBJECT([o tableView], @"Table view") - ADD_NUMBER([o width], @"Width") + ADD_OBJECT_NOT_NIL([o sortDescriptorPrototype], sortDescriptorPrototype, setSortDescriptorPrototype, @"Sort descriptor prototype") + ADD_OBJECT([o tableView], tableView, setTableView, @"Table view") + ADD_NUMBER([o width], width, setWidth, @"Width") } - (void)addNSTextAttachment:(id)object { NSTextAttachment* o = object; ADD_CLASS_LABEL(@"NSTextAttachment Info"); - ADD_OBJECT([o attachmentCell], @"Attachment cell") - ADD_OBJECT([o fileWrapper], @"File wrapper") + ADD_OBJECT([o attachmentCell], attachmentCell, setAttachmentCell, @"Attachment cell") + ADD_OBJECT([o fileWrapper], fileWrapper, setFileWrapper, @"File wrapper") } - (void)addNSTextBlock:(id)object @@ -2118,25 +2097,25 @@ - (void)addNSTextBlock:(id)object if ([object isKindOfClass:[NSTextTableBlock class]]) { NSTextTableBlock* o = object; ADD_CLASS_LABEL(@"NSTextTableBlock Info"); - ADD_NUMBER([o columnSpan], @"Column span") - ADD_NUMBER([o rowSpan], @"Row span") - ADD_NUMBER([o startingColumn], @"Starting column") - ADD_NUMBER([o startingRow], @"Starting row") - ADD_OBJECT([o table], @"Table") + ADD_NUMBER([o columnSpan], columnSpan, setColumnSpan, @"Column span") + ADD_NUMBER([o rowSpan], rowSpan, setRowSpan, @"Row span") + ADD_NUMBER([o startingColumn], startingColumn, setStartingColumn, @"Starting column") + ADD_NUMBER([o startingRow], startingRow, setStartingRow, @"Starting row") + ADD_OBJECT([o table], table, setTable, @"Table") } else if ([object isKindOfClass:[NSTextTable class]]) { NSTextTable* o = object; ADD_CLASS_LABEL(@"NSTextTable Info"); - ADD_BOOL([o collapsesBorders], @"Collapses borders") - ADD_BOOL([o hidesEmptyCells], @"Hides empty cells") + ADD_BOOL([o collapsesBorders], collapsesBorders, setcollapsesBorders, @"Collapses borders") + ADD_BOOL([o hidesEmptyCells], hidesEmptyCells, sethidesEmptyCells, @"Hides empty cells") ADD_ENUM(TextTableLayoutAlgorithm, [o layoutAlgorithm], layoutAlgorithm, setlayoutAlgorithm, @"Layout algorithm") - ADD_NUMBER([o numberOfColumns], @"Number of columns") + ADD_NUMBER([o numberOfColumns], numberOfColumns, setNumberOfColumns, @"Number of columns") } NSTextBlock* o = object; ADD_CLASS_LABEL(@"NSTextBlock Info"); - ADD_OBJECT([o backgroundColor], @"Background color") - ADD_NUMBER([o contentWidth], @"Content width") + ADD_COLOR([o backgroundColor], backgroundColor, setBackgroundColor, @"Background color") + ADD_NUMBER([o contentWidth], contentWidth, setContentWidth, @"Content width") ADD_ENUM(TextBlockValueType, [o contentWidthValueType], contentWidthValueType, setcontentWidthValueType, @"Content width value type") ADD_ENUM(TextBlockVerticalAlignment, [o verticalAlignment], verticalAlignment, setverticalAlignment, @"Vertical alignment") } @@ -2146,12 +2125,12 @@ - (void)addNSTextContainer:(id)object NSTextContainer* o = object; ADD_CLASS_LABEL(@"NSTextContainer Info"); ADD_SIZE([o containerSize], @"Container size") - ADD_BOOL([o heightTracksTextView], @"Height tracks text view") - ADD_BOOL([o isSimpleRectangularTextContainer], @"Is simple rectangular text container") - ADD_OBJECT_NOT_NIL([o layoutManager], @"Layout manager") - ADD_NUMBER([o lineFragmentPadding], @"Line fragment padding") - ADD_OBJECT_NOT_NIL([o textView], @"Text view") - ADD_BOOL([o widthTracksTextView], @"Width tracks text view") + ADD_BOOL([o heightTracksTextView], heightTracksTextView, setheightTracksTextView, @"Height tracks text view") + ADD_BOOL([o isSimpleRectangularTextContainer], simpleRectangularTextContainer, setisSimpleRectangularTextContainer, @"Is simple rectangular text container") + ADD_OBJECT_NOT_NIL([o layoutManager], layoutManager, setLayoutManager, @"Layout manager") + ADD_NUMBER([o lineFragmentPadding], lineFragmentPadding, setLineFragmentPadding, @"Line fragment padding") + ADD_OBJECT_NOT_NIL([o textView], textView, setTextView, @"Text view") + ADD_BOOL([o widthTracksTextView], widthTracksTextView, setwidthTracksTextView, @"Width tracks text view") } - (void)addNSTextList:(id)object @@ -2159,7 +2138,7 @@ - (void)addNSTextList:(id)object NSTextList* o = object; ADD_CLASS_LABEL(@"NSTextList Info"); ADD_ENUM(TextListOptions, [o listOptions], listOptions, setlistOptions, @"List options") - ADD_OBJECT([o markerFormat], @"Marker format") + ADD_OBJECT([o markerFormat], markerFormat, setMarkerFormat, @"Marker format") } - (void)addNSTextTab:(id)object @@ -2167,8 +2146,8 @@ - (void)addNSTextTab:(id)object NSTextTab* o = object; ADD_CLASS_LABEL(@"NSTextTab Info"); ADD_ENUM(TextAlignment, [o alignment], alignment, setalignment, @"Alignment") - ADD_NUMBER([o location], @"Location") - ADD_OBJECT([o options], @"Options") + ADD_NUMBER([o location], location, setLocation, @"Location") + ADD_OBJECT([o options], options, setOptions, @"Options") ADD_ENUM(TextTabType, [o tabStopType], tabStopType, settabStopType, @"Tab stop type") } @@ -2176,17 +2155,17 @@ - (void)addNSToolbar:(id)object { NSToolbar* o = object; ADD_CLASS_LABEL(@"NSToolbar Info"); - ADD_BOOL([o allowsUserCustomization], @"Allows user customization") - ADD_BOOL([o autosavesConfiguration], @"Autosaves configuration") + ADD_BOOL([o allowsUserCustomization], allowsUserCustomization, setallowsUserCustomization, @"Allows user customization") + ADD_BOOL([o autosavesConfiguration], autosavesConfiguration, setautosavesConfiguration, @"Autosaves configuration") ADD_DICTIONARY([o configurationDictionary], @"Configuration dictionary") - ADD_BOOL([o customizationPaletteIsRunning], @"Customization palette is running") - ADD_OBJECT([o delegate], @"Delegate") + ADD_BOOL([o customizationPaletteIsRunning], customizationPaletteIsRunning, setcustomizationPaletteIsRunning, @"Customization palette is running") + ADD_OBJECT([o delegate], delegate, setDelegate, @"Delegate") ADD_ENUM(ToolbarDisplayMode, [o displayMode], displayMode, setdisplayMode, @"Display mode") - ADD_OBJECT([(NSToolbar*)o identifier], @"Identifier") - ADD_BOOL([o isVisible], @"Is visible") + ADD_OBJECT([(NSToolbar*)o identifier], identifier, setIdentifier, @"Identifier") + ADD_BOOL([o isVisible], visible, setisVisible, @"Is visible") ADD_OBJECTS([o items], @"Items") - ADD_OBJECT_NOT_NIL([o selectedItemIdentifier], @"Selected item identifier") - ADD_BOOL([o showsBaselineSeparator], @"Shows baseline separator") + ADD_OBJECT_NOT_NIL([o selectedItemIdentifier], selectedItemIdentifier, setSelectedItemIdentifier, @"Selected item identifier") + ADD_BOOL([o showsBaselineSeparator], showsBaselineSeparator, setshowsBaselineSeparator, @"Shows baseline separator") ADD_ENUM(ToolbarSizeMode, [o sizeMode], sizeMode, setsizeMode, @"Identifier") ADD_OBJECTS([o visibleItems], @"Visible items") } @@ -2202,21 +2181,21 @@ - (void)addNSToolbarItem:(id)object NSToolbarItem* o = object; ADD_CLASS_LABEL(@"NSToolbarItem Info"); ADD_SEL([o action], @"Action") - ADD_BOOL([o allowsDuplicatesInToolbar], @"Allows duplicates in toolbar") - ADD_BOOL([o autovalidates], @"Autovalidates") - ADD_OBJECT([o image], @"Image") - ADD_BOOL([o isEnabled], @"Is enabled") - ADD_OBJECT([(NSToolbarItem*)o itemIdentifier], @"Item identifier") - ADD_OBJECT([o label], @"Label") + ADD_BOOL([o allowsDuplicatesInToolbar], allowsDuplicatesInToolbar, setallowsDuplicatesInToolbar, @"Allows duplicates in toolbar") + ADD_BOOL([o autovalidates], autovalidates, setautovalidates, @"Autovalidates") + ADD_OBJECT([o image], image, setImage, @"Image") + ADD_BOOL([o isEnabled], enabled, setisEnabled, @"Is enabled") + ADD_OBJECT([(NSToolbarItem*)o itemIdentifier], itemIdentifier, setItemIdentifier, @"Item identifier") + ADD_OBJECT([o label], label, setLabel, @"Label") ADD_SIZE([o maxSize], @"Max size") - ADD_OBJECT_NOT_NIL([o menuFormRepresentation], @"Menu form representation") + ADD_OBJECT_NOT_NIL([o menuFormRepresentation], menuFormRepresentation, setMenuFormRepresentation, @"Menu form representation") ADD_SIZE([o minSize], @"Min size") - ADD_OBJECT([o paletteLabel], @"Palette label") - ADD_NUMBER([o tag], @"Tag") - ADD_OBJECT([o target], @"Target") - ADD_OBJECT([o toolbar], @"Toolbar") - ADD_OBJECT_NOT_NIL([o toolTip], @"Tool tip") - ADD_OBJECT([o view], @"View") + ADD_OBJECT([o paletteLabel], paletteLabel, setPaletteLabel, @"Palette label") + ADD_NUMBER([o tag], tag, setTag, @"Tag") + ADD_OBJECT([o target], target, setTarget, @"Target") + ADD_OBJECT([o toolbar], toolbar, setToolbar, @"Toolbar") + ADD_OBJECT_NOT_NIL([o toolTip], toolTip, setToolTip, @"Tool tip") + ADD_OBJECT([o view], view, setView, @"View") ADD_ENUM(ToolbarItemVisibilityPriority, [o visibilityPriority], visibilityPriority, setvisibilityPriority, @"Visibility priority") } @@ -2225,7 +2204,7 @@ - (void)addNSTrackingArea:(id)object NSTrackingArea* o = object; ADD_CLASS_LABEL(@"NSTrackingArea Info"); ADD_ENUM(TrackingAreaOptions, [o options], options, setoptions, @"Options") - ADD_OBJECT([o owner], @"Owner") + ADD_OBJECT([o owner], owner, setOwner, @"Owner") ADD_RECT([o rect], @"Rect") ADD_DICTIONARY([o userInfo], @"User info") } @@ -2234,15 +2213,15 @@ - (void)addNSUndoManager:(id)object { NSUndoManager* o = object; ADD_CLASS_LABEL(@"NSUndoManager Info"); - ADD_NUMBER([o groupingLevel], @"Grouping level") - ADD_BOOL([o groupsByEvent], @"Groups by event") - ADD_BOOL([o isUndoRegistrationEnabled], @"Is undo registration enabled") - ADD_NUMBER([o levelsOfUndo], @"Levels of undo") - ADD_OBJECT_NOT_NIL([o redoActionName], @"Redo action name") - ADD_OBJECT_NOT_NIL([o redoMenuItemTitle], @"Redo menu item title") + ADD_NUMBER([o groupingLevel], groupingLevel, setGroupingLevel, @"Grouping level") + ADD_BOOL([o groupsByEvent], groupsByEvent, setgroupsByEvent, @"Groups by event") + ADD_BOOL([o isUndoRegistrationEnabled], undoRegistrationEnabled, setisUndoRegistrationEnabled, @"Is undo registration enabled") + ADD_NUMBER([o levelsOfUndo], levelsOfUndo, setLevelsOfUndo, @"Levels of undo") + ADD_OBJECT_NOT_NIL([o redoActionName], redoActionName, setRedoActionName, @"Redo action name") + ADD_OBJECT_NOT_NIL([o redoMenuItemTitle], redoMenuItemTitle, setRedoMenuItemTitle, @"Redo menu item title") ADD_OBJECTS([o runLoopModes], @"Run loop modes") - ADD_OBJECT_NOT_NIL([o undoActionName], @"Undo action name") - ADD_OBJECT_NOT_NIL([o undoMenuItemTitle], @"Undo menu item title") + ADD_OBJECT_NOT_NIL([o undoActionName], undoActionName, setUndoActionName, @"Undo action name") + ADD_OBJECT_NOT_NIL([o undoMenuItemTitle], undoMenuItemTitle, setUndoMenuItemTitle, @"Undo menu item title") } - (void)addNSATSTypesetter:(id)object @@ -2256,13 +2235,13 @@ - (void)addNSATSTypesetter:(id)object ADD_CLASS_LABEL(@"NSTypesetter Info"); //ADD_OBJECT( [o attributedString] ,@"Attributed string") ADD_DICTIONARY([o attributesForExtraLineFragment], @"Attributes for extra line fragment") - ADD_BOOL([o bidiProcessingEnabled], @"Bidi processing enabled") - ADD_OBJECT_NOT_NIL([o currentTextContainer], @"Current text container") - ADD_NUMBER([o hyphenationFactor], @"Hyphenation factor") - ADD_OBJECT_NOT_NIL([o layoutManager], @"Layout manager") - ADD_NUMBER([o lineFragmentPadding], @"Line fragment padding") + ADD_BOOL([o bidiProcessingEnabled], bidiProcessingEnabled, setbidiProcessingEnabled, @"Bidi processing enabled") + ADD_OBJECT_NOT_NIL([o currentTextContainer], currentTextContainer, setCurrentTextContainer, @"Current text container") + ADD_NUMBER([o hyphenationFactor], hyphenationFactor, setHyphenationFactor, @"Hyphenation factor") + ADD_OBJECT_NOT_NIL([o layoutManager], layoutManager, setLayoutManager, @"Layout manager") + ADD_NUMBER([o lineFragmentPadding], lineFragmentPadding, setLineFragmentPadding, @"Line fragment padding") ADD_ENUM(TypesetterBehavior, [o typesetterBehavior], typesetterBehavior, settypesetterBehavior, @"Typesetter behavior") - ADD_BOOL([o usesFontLeading], @"Uses font leading") + ADD_BOOL([o usesFontLeading], usesFontLeading, setusesFontLeading, @"Uses font leading") } - (void)processNSView:(id)object @@ -2271,36 +2250,36 @@ - (void)processNSView:(id)object if ([object isKindOfClass:[NSBox class]]) { NSBox* o = object; ADD_CLASS_LABEL(@"NSBox Info"); - ADD_OBJECT([o borderColor], @"Border color") + ADD_COLOR([o borderColor], borderColor, setBorderColor, @"Border color") ADD_RECT([o borderRect], @"Border rect") ADD_ENUM(BorderType, [o borderType], borderType, setborderType, @"Border type") - ADD_NUMBER([o borderWidth], @"Border width") + ADD_NUMBER([o borderWidth], borderWidth, setBorderWidth, @"Border width") ADD_ENUM(BoxType, [o boxType], boxType, setboxType, @"Box type") - ADD_OBJECT([o contentView], @"Content view") + ADD_OBJECT([o contentView], contentView, setContentView, @"Content view") ADD_SIZE([o contentViewMargins], @"Content view margins") - ADD_NUMBER([o cornerRadius], @"Corner radius") - ADD_OBJECT([o fillColor], @"Fill color") - ADD_BOOL([o isTransparent], @"Is transparent") - ADD_OBJECT([o title], @"Title") - ADD_OBJECT([o titleCell], @"Title cell") - ADD_OBJECT([o titleFont], @"Title font") + ADD_NUMBER([o cornerRadius], cornerRadius, setCornerRadius, @"Corner radius") + ADD_COLOR([o fillColor], fillColor, setFillColor, @"Fill color") + ADD_BOOL([o isTransparent], transparent, setisTransparent, @"Is transparent") + ADD_OBJECT([o title], title, setTitle, @"Title") + ADD_OBJECT([o titleCell], titleCell, setTitleCell, @"Title cell") + ADD_OBJECT([o titleFont], titleFont, setTitleFont, @"Title font") ADD_ENUM(TitlePosition, [o titlePosition], titlePosition, settitlePosition, @"Title position") ADD_RECT([o titleRect], @"Title rect") } if ([object isKindOfClass:[NSCollectionView class]]) { NSCollectionView* o = object; ADD_CLASS_LABEL(@"NSCollectionView Info"); - ADD_BOOL([o allowsMultipleSelection], @"Allows multiple selection") + ADD_BOOL([o allowsMultipleSelection], allowsMultipleSelection, setallowsMultipleSelection, @"Allows multiple selection") ADD_OBJECTS([o backgroundColors], @"Background colors") - ADD_OBJECT([o content], @"Content") - ADD_BOOL([o isFirstResponder], @"Is first responder") - ADD_BOOL([o isSelectable], @"Is selectable") - ADD_OBJECT_NOT_NIL([o itemPrototype], @"Item prototype") + ADD_OBJECT([o content], content, setContent, @"Content") + ADD_BOOL([o isFirstResponder], firstResponder, setisFirstResponder, @"Is first responder") + ADD_BOOL([o isSelectable], selectable, setisSelectable, @"Is selectable") + ADD_OBJECT_NOT_NIL([o itemPrototype], itemPrototype, setItemPrototype, @"Item prototype") ADD_SIZE([o maxItemSize], @"Max item size") - ADD_NUMBER([o maxNumberOfColumns], @"Max number of columns") - ADD_NUMBER([o maxNumberOfRows], @"Max number of rows") + ADD_NUMBER([o maxNumberOfColumns], maxNumberOfColumns, setMaxNumberOfColumns, @"Max number of columns") + ADD_NUMBER([o maxNumberOfRows], maxNumberOfRows, setMaxNumberOfRows, @"Max number of rows") ADD_SIZE([o minItemSize], @"Min item size") - ADD_OBJECT_NOT_NIL([o selectionIndexes], @"Selection indexes") + ADD_OBJECT_NOT_NIL([o selectionIndexes], selectionIndexes, setSelectionIndexes, @"Selection indexes") } else if ([object isKindOfClass:[NSControl class]]) { [self processNSControl:object]; @@ -2308,19 +2287,19 @@ - (void)processNSView:(id)object else if ([object isKindOfClass:[NSClipView class]]) { NSClipView* o = object; ADD_CLASS_LABEL(@"NSClipView Info"); - ADD_OBJECT([o backgroundColor], @"Background color") - ADD_BOOL([o copiesOnScroll], @"Copies on scroll") - ADD_OBJECT([o documentCursor], @"Document cursor") + ADD_COLOR([o backgroundColor], backgroundColor, setBackgroundColor, @"Background color") + ADD_BOOL([o copiesOnScroll], copiesOnScroll, setcopiesOnScroll, @"Copies on scroll") + ADD_OBJECT([o documentCursor], documentCursor, setDocumentCursor, @"Document cursor") ADD_RECT([o documentRect], @"Document rect") - ADD_OBJECT([o documentView], @"Document view") + ADD_OBJECT([o documentView], documentView, setDocumentView, @"Document view") ADD_RECT([o documentVisibleRect], @"Document visible rect") - ADD_BOOL([o drawsBackground], @"Draws background") + ADD_BOOL([o drawsBackground], drawsBackground, setdrawsBackground, @"Draws background") } else if ([object isKindOfClass:[NSOpenGLView class]]) { NSOpenGLView* o = object; ADD_CLASS_LABEL(@"NSOpenGLView Info"); - ADD_OBJECT([o openGLContext], @"OpenGL context") - ADD_OBJECT([o pixelFormat], @"Pixel format") + ADD_OBJECT([o openGLContext], openGLContext, setOpenGLContext, @"OpenGL context") + ADD_OBJECT([o pixelFormat], pixelFormat, setPixelFormat, @"Pixel format") } else if ([object isKindOfClass:[NSProgressIndicator class]]) { NSProgressIndicator* o = object; @@ -2328,108 +2307,108 @@ - (void)processNSView:(id)object ADD_ENUM(ControlSize, [o controlSize], controlSize, setcontrolSize, @"Control size") ADD_ENUM(ControlTint, [o controlTint], controlTint, setcontrolTint, @"Control tint") if ([o style] == NSProgressIndicatorBarStyle && ![o isIndeterminate]) - ADD_NUMBER([o doubleValue], @"Double value") - ADD_BOOL([o isBezeled], @"Is bezeled") - ADD_BOOL([o isDisplayedWhenStopped], @"Is displayed when stopped") + ADD_NUMBER([o doubleValue], doubleValue, setDoubleValue, @"Double value") + ADD_BOOL([o isBezeled], bezeled, setisBezeled, @"Is bezeled") + ADD_BOOL([o isDisplayedWhenStopped], displayedWhenStopped, setisDisplayedWhenStopped, @"Is displayed when stopped") if ([o style] == NSProgressIndicatorBarStyle && ![o isIndeterminate]) { - ADD_NUMBER([o maxValue], @"Max value") - ADD_NUMBER([o minValue], @"Min value") + ADD_NUMBER([o maxValue], maxValue, setMaxValue, @"Max value") + ADD_NUMBER([o minValue], minValue, setMinValue, @"Min value") } ADD_ENUM(ProgressIndicatorStyle, [o style], style, setstyle, @"Style") - ADD_BOOL([o usesThreadedAnimation], @"Uses threaded animation") + ADD_BOOL([o usesThreadedAnimation], usesThreadedAnimation, setusesThreadedAnimation, @"Uses threaded animation") } else if ([object isKindOfClass:[NSRulerView class]]) { NSRulerView* o = object; ADD_CLASS_LABEL(@"NSRulerView Info"); - ADD_OBJECT_NOT_NIL([o accessoryView], @"Accessory view") - ADD_NUMBER([o baselineLocation], @"Baseline location") - ADD_OBJECT([o clientView], @"Client view") - ADD_BOOL([o isFlipped], @"Is flipped") + ADD_OBJECT_NOT_NIL([o accessoryView], accessoryView, setAccessoryView, @"Accessory view") + ADD_NUMBER([o baselineLocation], baselineLocation, setBaselineLocation, @"Baseline location") + ADD_OBJECT([o clientView], clientView, setClientView, @"Client view") + ADD_BOOL([o isFlipped], flipped, setisFlipped, @"Is flipped") ADD_OBJECTS([o markers], @"Markers") - ADD_OBJECT([o measurementUnits], @"Measurement units") + ADD_OBJECT([o measurementUnits], measurementUnits, setMeasurementUnits, @"Measurement units") ADD_ENUM(RulerOrientation, [o orientation], orientation, setorientation, @"Orientation") - ADD_NUMBER([o originOffset], @"Origin offset") - ADD_NUMBER([o requiredThickness], @"Required thickness") - ADD_NUMBER([o reservedThicknessForAccessoryView], @"Reserved thickness for accessory view") - ADD_NUMBER([o reservedThicknessForMarkers], @"Reserved thickness for markers") - ADD_NUMBER([o ruleThickness], @"Rule thickness") - ADD_OBJECT([o scrollView], @"ScrollView") + ADD_NUMBER([o originOffset], originOffset, setOriginOffset, @"Origin offset") + ADD_NUMBER([o requiredThickness], requiredThickness, setRequiredThickness, @"Required thickness") + ADD_NUMBER([o reservedThicknessForAccessoryView], reservedThicknessForAccessoryView, setReservedThicknessForAccessoryView, @"Reserved thickness for accessory view") + ADD_NUMBER([o reservedThicknessForMarkers], reservedThicknessForMarkers, setReservedThicknessForMarkers, @"Reserved thickness for markers") + ADD_NUMBER([o ruleThickness], ruleThickness, setRuleThickness, @"Rule thickness") + ADD_OBJECT([o scrollView], scrollView, setScrollView, @"ScrollView") } else if ([object isKindOfClass:[NSScrollView class]]) { NSScrollView* o = object; ADD_CLASS_LABEL(@"NSScrollView Info"); - ADD_BOOL([o autohidesScrollers], @"Autohides scrollers") - ADD_OBJECT([o backgroundColor], @"Background color") + ADD_BOOL([o autohidesScrollers], autohidesScrollers, setautohidesScrollers, @"Autohides scrollers") + ADD_COLOR([o backgroundColor], backgroundColor, setBackgroundColor, @"Background color") ADD_ENUM(BorderType, [o borderType], borderType, setborderType, @"Border type") ADD_SIZE([o contentSize], @"Content size") - ADD_OBJECT([o contentView], @"Content view") - ADD_OBJECT([o documentCursor], @"Document cursor") - ADD_OBJECT([o documentView], @"Document view") + ADD_OBJECT([o contentView], contentView, setContentView, @"Content view") + ADD_OBJECT([o documentCursor], documentCursor, setDocumentCursor, @"Document cursor") + ADD_OBJECT([o documentView], documentView, setDocumentView, @"Document view") ADD_RECT([o documentVisibleRect], @"Document visible rect") - ADD_BOOL([o drawsBackground], @"Draws background") - ADD_BOOL([o hasHorizontalRuler], @"Has horizontal ruler") - ADD_BOOL([o hasHorizontalScroller], @"Has horizontal scroller") - ADD_BOOL([o hasVerticalRuler], @"Has vertical ruler") - ADD_BOOL([o hasVerticalScroller], @"Has vertical scroller") - ADD_NUMBER([o horizontalLineScroll], @"Horizontal line scroll") - ADD_NUMBER([o horizontalPageScroll], @"Horizontal page scroll") - ADD_OBJECT([o horizontalRulerView], @"Horizontal ruler view") - ADD_OBJECT([o horizontalScroller], @"Horizontal scroller") - ADD_NUMBER([o lineScroll], @"Line scroll") - ADD_NUMBER([o pageScroll], @"Page scroll") - ADD_BOOL([o rulersVisible], @"Ruller visible") - ADD_BOOL([o scrollsDynamically], @"Scrolls dynamically") - ADD_NUMBER([o verticalLineScroll], @"Vertical line scroll") - ADD_NUMBER([o verticalPageScroll], @"Vertical page scroll") - ADD_OBJECT([o verticalRulerView], @"Vertical ruler view") - ADD_OBJECT([o verticalScroller], @"Vertical scroller") + ADD_BOOL([o drawsBackground], drawsBackground, setdrawsBackground, @"Draws background") + ADD_BOOL([o hasHorizontalRuler], hasHorizontalRuler, sethasHorizontalRuler, @"Has horizontal ruler") + ADD_BOOL([o hasHorizontalScroller], hasHorizontalScroller, sethasHorizontalScroller, @"Has horizontal scroller") + ADD_BOOL([o hasVerticalRuler], hasVerticalRuler, sethasVerticalRuler, @"Has vertical ruler") + ADD_BOOL([o hasVerticalScroller], hasVerticalScroller, sethasVerticalScroller, @"Has vertical scroller") + ADD_NUMBER([o horizontalLineScroll], horizontalLineScroll, setHorizontalLineScroll, @"Horizontal line scroll") + ADD_NUMBER([o horizontalPageScroll], horizontalPageScroll, setHorizontalPageScroll, @"Horizontal page scroll") + ADD_OBJECT([o horizontalRulerView], horizontalRulerView, setHorizontalRulerView, @"Horizontal ruler view") + ADD_OBJECT([o horizontalScroller], horizontalScroller, setHorizontalScroller, @"Horizontal scroller") + ADD_NUMBER([o lineScroll], lineScroll, setLineScroll, @"Line scroll") + ADD_NUMBER([o pageScroll], pageScroll, setPageScroll, @"Page scroll") + ADD_BOOL([o rulersVisible], rulersVisible, setrulersVisible, @"Ruller visible") + ADD_BOOL([o scrollsDynamically], scrollsDynamically, setscrollsDynamically, @"Scrolls dynamically") + ADD_NUMBER([o verticalLineScroll], verticalLineScroll, setVerticalLineScroll, @"Vertical line scroll") + ADD_NUMBER([o verticalPageScroll], verticalPageScroll, setVerticalPageScroll, @"Vertical page scroll") + ADD_OBJECT([o verticalRulerView], verticalRulerView, setVerticalRulerView, @"Vertical ruler view") + ADD_OBJECT([o verticalScroller], verticalScroller, setVerticalScroller, @"Vertical scroller") } else if ([object isKindOfClass:[NSSplitView class]]) { NSSplitView* o = object; ADD_CLASS_LABEL(@"NSSplitView Info"); - ADD_OBJECT_NOT_NIL([o delegate], @"Delegate") - ADD_NUMBER([o dividerThickness], @"Divider thickness") - ADD_BOOL([o isVertical], @"Is vertical") - ADD_OBJECT_NOT_NIL([o autosaveName], @"Autosave name") + ADD_OBJECT_NOT_NIL([o delegate], delegate, setDelegate, @"Delegate") + ADD_NUMBER([o dividerThickness], dividerThickness, setDividerThickness, @"Divider thickness") + ADD_BOOL([o isVertical], vertical, setisVertical, @"Is vertical") + ADD_OBJECT_NOT_NIL([o autosaveName], autosaveName, setAutosaveName, @"Autosave name") } else if ([object isKindOfClass:[NSTabView class]]) { NSTabView* o = object; ADD_CLASS_LABEL(@"NSTabView Info"); - ADD_BOOL([o allowsTruncatedLabels], @"Allows truncated labels") + ADD_BOOL([o allowsTruncatedLabels], allowsTruncatedLabels, setallowsTruncatedLabels, @"Allows truncated labels") ADD_RECT([o contentRect], @"Content rect") ADD_ENUM(ControlSize, [o controlSize], controlSize, setcontrolSize, @"Control size") ADD_ENUM(ControlTint, [o controlTint], controlTint, setcontrolTint, @"Control tint") - ADD_OBJECT([o delegate], @"Delegate") - ADD_BOOL([o drawsBackground], @"Draws background") - ADD_OBJECT([o font], @"Font") + ADD_OBJECT([o delegate], delegate, setDelegate, @"Delegate") + ADD_BOOL([o drawsBackground], drawsBackground, setdrawsBackground, @"Draws background") + ADD_OBJECT([o font], font, setFont, @"Font") ADD_SIZE([o minimumSize], @"Minimum size") - ADD_OBJECT([o selectedTabViewItem], @"Selected tab view item") + ADD_OBJECT([o selectedTabViewItem], selectedTabViewItem, setSelectedTabViewItem, @"Selected tab view item") ADD_OBJECTS([o tabViewItems], @"Tab view items") ADD_ENUM(TabViewType, [o tabViewType], tabViewType, settabViewType, @"Tab view type") } else if ([object isKindOfClass:[NSTableHeaderView class]]) { NSTableHeaderView* o = object; ADD_CLASS_LABEL(@"NSTableHeaderView Info"); - ADD_OBJECT([o tableView], @"Table view") + ADD_OBJECT([o tableView], tableView, setTableView, @"Table view") } else if ([object isKindOfClass:[NSText class]]) { if ([object isKindOfClass:[NSTextView class]]) { NSTextView* o = object; ADD_CLASS_LABEL(@"NSTextView Info"); ADD_OBJECTS([o acceptableDragTypes], @"Acceptable drag types") - ADD_BOOL([o acceptsGlyphInfo], @"Accepts glyph info") + ADD_BOOL([o acceptsGlyphInfo], acceptsGlyphInfo, setacceptsGlyphInfo, @"Accepts glyph info") ADD_OBJECTS([o allowedInputSourceLocales], @"Allowed input source locales") - ADD_BOOL([o allowsImageEditing], @"Allows image editing") - ADD_BOOL([o allowsDocumentBackgroundColorChange], @"Allows document background color change") - ADD_BOOL([o allowsUndo], @"Allows undo") - ADD_OBJECT_NOT_NIL([o defaultParagraphStyle], @"Default paragraph style") - ADD_BOOL([o displaysLinkToolTips], @"Displays link tool tips") - ADD_OBJECT([o insertionPointColor], @"Insertion point color") - ADD_BOOL([o isAutomaticLinkDetectionEnabled], @"Is automatic link detection enabled") - ADD_BOOL([o isAutomaticQuoteSubstitutionEnabled], @"Is automatic quote substitution enabled") - ADD_BOOL([o isContinuousSpellCheckingEnabled], @"Is continuous spell checking enabled") - ADD_BOOL([o isGrammarCheckingEnabled], @"Is grammar checking enabled") - ADD_OBJECT_NOT_NIL([o layoutManager], @"Layout manager") + ADD_BOOL([o allowsImageEditing], allowsImageEditing, setallowsImageEditing, @"Allows image editing") + ADD_BOOL([o allowsDocumentBackgroundColorChange], allowsDocumentBackgroundColorChange, setallowsDocumentBackgroundColorChange, @"Allows document background color change") + ADD_BOOL([o allowsUndo], allowsUndo, setallowsUndo, @"Allows undo") + ADD_OBJECT_NOT_NIL([o defaultParagraphStyle], defaultParagraphStyle, setDefaultParagraphStyle, @"Default paragraph style") + ADD_BOOL([o displaysLinkToolTips], displaysLinkToolTips, setdisplaysLinkToolTips, @"Displays link tool tips") + ADD_COLOR([o insertionPointColor], insertionPointColor, setInsertionPointColor, @"Insertion point color") + ADD_BOOL([o isAutomaticLinkDetectionEnabled], automaticLinkDetectionEnabled, setisAutomaticLinkDetectionEnabled, @"Is automatic link detection enabled") + ADD_BOOL([o isAutomaticQuoteSubstitutionEnabled], automaticQuoteSubstitutionEnabled, setisAutomaticQuoteSubstitutionEnabled, @"Is automatic quote substitution enabled") + ADD_BOOL([o isContinuousSpellCheckingEnabled], continuousSpellCheckingEnabled, setisContinuousSpellCheckingEnabled, @"Is continuous spell checking enabled") + ADD_BOOL([o isGrammarCheckingEnabled], grammarCheckingEnabled, setisGrammarCheckingEnabled, @"Is grammar checking enabled") + ADD_OBJECT_NOT_NIL([o layoutManager], layoutManager, setLayoutManager, @"Layout manager") ADD_DICTIONARY([o linkTextAttributes], @"Link text attributes") ADD_DICTIONARY([o markedTextAttributes], @"Marked text attributes") ADD_RANGE([o rangeForUserCompletion], @"Range for user completion") @@ -2441,88 +2420,172 @@ - (void)processNSView:(id)object ADD_DICTIONARY([o selectedTextAttributes], @"Selected text attributes") ADD_ENUM(SelectionAffinity, [o selectionAffinity], selectionAffinity, setselectionAffinity, @"Selection affinity") ADD_ENUM(SelectionGranularity, [o selectionGranularity], selectionGranularity, setselectionGranularity, @"Selection granularity") - ADD_BOOL([o shouldDrawInsertionPoint], @"Should draw insertion point") - ADD_BOOL([o smartInsertDeleteEnabled], @"Smart insert delete enabled") - ADD_NUMBER([o spellCheckerDocumentTag], @"Spell checker document tag") - ADD_OBJECT([o textContainer], @"Text container") + ADD_BOOL([o shouldDrawInsertionPoint], shouldDrawInsertionPoint, setshouldDrawInsertionPoint, @"Should draw insertion point") + ADD_BOOL([o smartInsertDeleteEnabled], smartInsertDeleteEnabled, setsmartInsertDeleteEnabled, @"Smart insert delete enabled") + ADD_NUMBER([o spellCheckerDocumentTag], spellCheckerDocumentTag, setSpellCheckerDocumentTag, @"Spell checker document tag") + ADD_OBJECT([o textContainer], textContainer, setTextContainer, @"Text container") ADD_SIZE([o textContainerInset], @"Text container inset") ADD_POINT([o textContainerOrigin], @"Text container origin") - ADD_OBJECT([o textStorage], @"Text storage") + ADD_OBJECT([o textStorage], textStorage, setTextStorage, @"Text storage") ADD_DICTIONARY([o typingAttributes], @"Typing attributes") - ADD_BOOL([o usesFindPanel], @"Uses find panel") - ADD_BOOL([o usesFontPanel], @"Uses font panel") - ADD_BOOL([o usesRuler], @"Uses ruler") - ADD_OBJECT([o writablePasteboardTypes], @"Writable pasteboard types") + ADD_BOOL([o usesFindPanel], usesFindPanel, setusesFindPanel, @"Uses find panel") + ADD_BOOL([o usesFontPanel], usesFontPanel, setusesFontPanel, @"Uses font panel") + ADD_BOOL([o usesRuler], usesRuler, setusesRuler, @"Uses ruler") + ADD_OBJECT([o writablePasteboardTypes], writablePasteboardTypes, setWritablePasteboardTypes, @"Writable pasteboard types") } NSText* o = object; ADD_CLASS_LABEL(@"NSText Info"); ADD_ENUM(TextAlignment, [o alignment], alignment, setalignment, @"Alignment") - ADD_OBJECT([o backgroundColor], @"Background color") + ADD_COLOR([o backgroundColor], backgroundColor, setBackgroundColor, @"Background color") ADD_ENUM(WritingDirection, [o baseWritingDirection], baseWritingDirection, setbaseWritingDirection, @"Base writing direction") - ADD_OBJECT_NOT_NIL([o delegate], @"Delegate") - ADD_BOOL([o drawsBackground], @"Draws background") - ADD_OBJECT([o font], @"Font") - ADD_BOOL([o importsGraphics], @"Imports graphics") - ADD_BOOL([o isEditable], @"Is editable") - ADD_BOOL([o isFieldEditor], @"Is field editor") - ADD_BOOL([o isHorizontallyResizable], @"Is horizontally resizable") - ADD_BOOL([o isRichText], @"Is rich text") - ADD_BOOL([o isRulerVisible], @"Is ruler visible") - ADD_BOOL([o isSelectable], @"Is selectable") - ADD_BOOL([o isVerticallyResizable], @"Is vertically resizable") + ADD_OBJECT_NOT_NIL([o delegate], delegate, setDelegate, @"Delegate") + ADD_BOOL([o drawsBackground], drawsBackground, setdrawsBackground, @"Draws background") + ADD_OBJECT([o font], font, setFont, @"Font") + ADD_BOOL([o importsGraphics], importsGraphics, setimportsGraphics, @"Imports graphics") + ADD_BOOL([o isEditable], editable, setisEditable, @"Is editable") + ADD_BOOL([o isFieldEditor], fieldEditor, setisFieldEditor, @"Is field editor") + ADD_BOOL([o isHorizontallyResizable], horizontallyResizable, setisHorizontallyResizable, @"Is horizontally resizable") + ADD_BOOL([o isRichText], richText, setisRichText, @"Is rich text") + ADD_BOOL([o isRulerVisible], rulerVisible, setisRulerVisible, @"Is ruler visible") + ADD_BOOL([o isSelectable], selectable, setisSelectable, @"Is selectable") + ADD_BOOL([o isVerticallyResizable], verticallyResizable, setisVerticallyResizable, @"Is vertically resizable") ADD_SIZE([o maxSize], @"Max size") ADD_SIZE([o minSize], @"Min size") ADD_RANGE([o selectedRange], @"Selected range") - ADD_OBJECT([o string], @"String") - ADD_OBJECT_NOT_NIL([o textColor], @"Text color") - ADD_BOOL([o usesFontPanel], @"Uses font panel") + ADD_OBJECT([o string], string, setString, @"String") + ADD_COLOR_NOT_NIL([o textColor], textColor, setTextColor, @"Text color") + ADD_BOOL([o usesFontPanel], usesFontPanel, setusesFontPanel, @"Uses font panel") } NSView* o = object; ADD_CLASS_LABEL(@"NSView Info"); ADD_ENUM(AutoresizingMaskOptions, [o autoresizingMask], autoresizingMask, setautoresizingMask, @"Autoresizing mask") - ADD_BOOL([o autoresizesSubviews], @"Autoresizes subviews") + ADD_BOOL([o autoresizesSubviews], autoresizesSubviews, setautoresizesSubviews, @"Autoresizes subviews") ADD_RECT([o bounds], @"Bounds") - ADD_NUMBER([o boundsRotation], @"Bounds rotation") - ADD_BOOL([o canBecomeKeyView], @"Can become key view") - ADD_BOOL([o canDraw], @"Can draw") - ADD_OBJECT_NOT_NIL([o enclosingMenuItem], @"Enclosing menu item") - ADD_OBJECT_NOT_NIL([o enclosingScrollView], @"Enclosing scroll view") + ADD_NUMBER([o boundsRotation], boundsRotation, setBoundsRotation, @"Bounds rotation") + ADD_BOOL([o canBecomeKeyView], canBecomeKeyView, setcanBecomeKeyView, @"Can become key view") + ADD_BOOL([o canDraw], canDraw, setcanDraw, @"Can draw") + ADD_OBJECT_NOT_NIL([o enclosingMenuItem], enclosingMenuItem, setEnclosingMenuItem, @"Enclosing menu item") + ADD_OBJECT_NOT_NIL([o enclosingScrollView], enclosingScrollView, setEnclosingScrollView, @"Enclosing scroll view") ADD_RECT([o frame], @"Frame") - ADD_NUMBER([o frameRotation], @"Frame rotation") + ADD_NUMBER([o frameRotation], frameRotation, setFrameRotation, @"Frame rotation") ADD_ENUM(FocusRingType, [o focusRingType], focusRingType, setfocusRingType, @"Focus ring type") - ADD_NUMBER([o gState], @"gState") - ADD_NUMBER([o heightAdjustLimit], @"Height adjust limit") - ADD_BOOL([o isFlipped], @"Is flipped") - ADD_BOOL([o isHidden], @"Is hidden") - ADD_BOOL([o isHiddenOrHasHiddenAncestor], @"Is hidden or has hidden ancestor") - ADD_BOOL([o isInFullScreenMode], @"Is in full screen mode") - ADD_BOOL([o isOpaque], @"Is opaque") - ADD_BOOL([o isRotatedFromBase], @"Is rotated from base") - ADD_BOOL([o isRotatedOrScaledFromBase], @"Is rotated or scaled from base") - ADD_OBJECT([o layer], @"Layer") - ADD_BOOL([o mouseDownCanMoveWindow], @"Mouse down can move window") - ADD_BOOL([o needsDisplay], @"Needs display") - ADD_BOOL([o needsPanelToBecomeKey], @"Needs panel to become key") - ADD_OBJECT([o nextKeyView], @"Next key view") - ADD_OBJECT([o nextValidKeyView], @"Next valid key view") - ADD_OBJECT([o opaqueAncestor], @"Opaque ancestor") - ADD_BOOL([o preservesContentDuringLiveResize], @"Preserves content during live resize") - ADD_BOOL([o postsBoundsChangedNotifications], @"Posts bounds changed notifications") - ADD_BOOL([o postsFrameChangedNotifications], @"Posts frame changed notifications") - ADD_OBJECT([o previousKeyView], @"Previous key view") - ADD_OBJECT([o previousValidKeyView], @"Previous valid key view") - ADD_OBJECT([o printJobTitle], @"Print job title") + ADD_NUMBER([o gState], gState, setGState, @"gState") + ADD_NUMBER([o heightAdjustLimit], heightAdjustLimit, setHeightAdjustLimit, @"Height adjust limit") + ADD_BOOL([o isFlipped], flipped, setisFlipped, @"Is flipped") + ADD_BOOL([o isHidden], hidden, setisHidden, @"Is hidden") + ADD_BOOL([o isHiddenOrHasHiddenAncestor], hiddenOrHasHiddenAncestor, setisHiddenOrHasHiddenAncestor, @"Is hidden or has hidden ancestor") + ADD_BOOL([o isInFullScreenMode], inFullScreenMode, setisInFullScreenMode, @"Is in full screen mode") + ADD_BOOL([o isOpaque], opaque, setisOpaque, @"Is opaque") + ADD_BOOL([o isRotatedFromBase], rotatedFromBase, setisRotatedFromBase, @"Is rotated from base") + ADD_BOOL([o isRotatedOrScaledFromBase], rotatedOrScaledFromBase, setisRotatedOrScaledFromBase, @"Is rotated or scaled from base") + ADD_OBJECT([o layer], layer, setLayer, @"Layer") + ADD_BOOL([o mouseDownCanMoveWindow], mouseDownCanMoveWindow, setmouseDownCanMoveWindow, @"Mouse down can move window") + ADD_BOOL([o needsDisplay], needsDisplay, setneedsDisplay, @"Needs display") + ADD_BOOL([o needsPanelToBecomeKey], needsPanelToBecomeKey, setneedsPanelToBecomeKey, @"Needs panel to become key") + ADD_OBJECT([o nextKeyView], nextKeyView, setNextKeyView, @"Next key view") + ADD_OBJECT([o nextValidKeyView], nextValidKeyView, setNextValidKeyView, @"Next valid key view") + ADD_OBJECT([o opaqueAncestor], opaqueAncestor, setOpaqueAncestor, @"Opaque ancestor") + ADD_BOOL([o preservesContentDuringLiveResize], preservesContentDuringLiveResize, setpreservesContentDuringLiveResize, @"Preserves content during live resize") + ADD_BOOL([o postsBoundsChangedNotifications], postsBoundsChangedNotifications, setpostsBoundsChangedNotifications, @"Posts bounds changed notifications") + ADD_BOOL([o postsFrameChangedNotifications], postsFrameChangedNotifications, setpostsFrameChangedNotifications, @"Posts frame changed notifications") + ADD_OBJECT([o previousKeyView], previousKeyView, setPreviousKeyView, @"Previous key view") + ADD_OBJECT([o previousValidKeyView], previousValidKeyView, setPreviousValidKeyView, @"Previous valid key view") + ADD_OBJECT([o printJobTitle], printJobTitle, setPrintJobTitle, @"Print job title") ADD_OBJECTS([o registeredDraggedTypes], @"Registered dragged types") - ADD_BOOL([o shouldDrawColor], @"Should draw color") - ADD_NUMBER([o tag], @"Tag") + ADD_BOOL([o shouldDrawColor], shouldDrawColor, setshouldDrawColor, @"Should draw color") + ADD_NUMBER([o tag], tag, setTag, @"Tag") ADD_OBJECTS([o trackingAreas], @"Tracking areas") ADD_RECT([o visibleRect], @"Visible rect") - ADD_BOOL([o wantsDefaultClipping], @"Wants default clipping") - ADD_BOOL([o wantsLayer], @"Wants layer") - ADD_NUMBER([o widthAdjustLimit], @"Width adjust limit") - ADD_OBJECT([o window], @"Window") + ADD_BOOL([o wantsDefaultClipping], wantsDefaultClipping, setwantsDefaultClipping, @"Wants default clipping") + ADD_BOOL([o wantsLayer], wantsLayer, setwantsLayer, @"Wants layer") + ADD_NUMBER([o widthAdjustLimit], widthAdjustLimit, setWidthAdjustLimit, @"Width adjust limit") + ADD_OBJECT([o window], window, setWindow, @"Window") +} + +// Works for NSSegmentedControl and NSSegmentedCell +-(void)processSegmentedItem:(id)segmentedItem +{ + NSSegmentedCell *o = segmentedItem; + NSUInteger segmentCount = o.segmentCount; + for (NSInteger i = 0; i < segmentCount; i++) { + [self addGroup:[NSString stringWithFormat:@"Segment %lu", i]]; + [self addObject:[o imageForSegment:i] + valueType:FS_ITEM_OBJECT + getter:^id(id obj, FSObjectInspectorViewModelItem *item) { return [(NSSegmentedControl*)obj imageForSegment:i]; } + setter:^(id obj, id newValue, FSObjectInspectorViewModelItem *item) { [(NSSegmentedControl*)obj setImage:newValue forSegment:i];} + withLabel:[NSString stringWithFormat:@"Image for segment %ld", (long)i] + toMatrix:m + notNil:YES]; + if ([o respondsToSelector:@selector(imageScalingForSegment:)]) { + [self addObject:objectFromImageScaling([o imageScalingForSegment:i]) + valueType:FS_ITEM_ENUM + getter:^id(id obj, FSObjectInspectorViewModelItem *item) { return @([(NSSegmentedCell*)obj imageScalingForSegment:i]); } + setter:^(id obj, id newValue, FSObjectInspectorViewModelItem *item) { [(NSSegmentedCell*)obj setImageScaling:[newValue integerValue] forSegment:i];} + withLabel:[NSString stringWithFormat:@"Image scaling for segment %ld", (long)i] + toMatrix:m + enumBiDict:FSObjectEnumInfo.optionsForImageScaling + valueClass:nil + notNil:NO]; + } + [self addObject:[FSBoolean booleanWithBool:[o isEnabledForSegment:i]] + valueType:FS_ITEM_BOOL + getter:^id(id obj, FSObjectInspectorViewModelItem *item) { return @([(NSSegmentedControl*)obj isEnabledForSegment:i]); } + setter:^(id obj, id newValue, FSObjectInspectorViewModelItem *item) { [(NSSegmentedControl*)obj setEnabled:[newValue boolValue] forSegment:i];} + withLabel:[NSString stringWithFormat:@"Is enabled for segment %ld", (long)i] + toMatrix:m ]; + [self addObject:[FSBoolean booleanWithBool:[o isSelectedForSegment:i]] + valueType:FS_ITEM_BOOL + getter:^id(id obj, FSObjectInspectorViewModelItem *item) { return @([(NSSegmentedControl*)obj isSelectedForSegment:i]); } + setter:^(id obj, id newValue, FSObjectInspectorViewModelItem *item) { [(NSSegmentedControl*)obj setSelected:[newValue boolValue] forSegment:i];} + withLabel:[NSString stringWithFormat:@"Is selected for segment %ld", (long)i] + toMatrix:m ]; + [self addObject:[o labelForSegment:i] + valueType:FS_ITEM_OBJECT + getter:^id(id obj, FSObjectInspectorViewModelItem *item) { return [(NSSegmentedControl*)obj labelForSegment:i]; } + setter:^(id obj, id newValue, FSObjectInspectorViewModelItem *item) { [(NSSegmentedControl*)obj setLabel:newValue forSegment:i];} + withLabel:[NSString stringWithFormat:@"Label for segment %ld", (long)i] + toMatrix:m + notNil:YES]; + [self addObject:[o menuForSegment:i] + valueType:FS_ITEM_OBJECT + getter:^id(id obj, FSObjectInspectorViewModelItem *item) { return [(NSSegmentedControl*)obj menuForSegment:i]; } + setter:^(id obj, id newValue, FSObjectInspectorViewModelItem *item) { [(NSSegmentedControl*)obj setMenu:newValue forSegment:i];} + withLabel:[NSString stringWithFormat:@"Menu for segment %ld", (long)i] + toMatrix:m + notNil:YES]; + if ([o respondsToSelector:@selector(tagForSegment:)]) { + [self addObject:[FSNumber numberWithDouble:[o tagForSegment:i]] + valueType:FS_ITEM_NUMBER + getter:^id(id obj, FSObjectInspectorViewModelItem *item) { return @([(NSSegmentedCell*)obj tagForSegment:i]); } + setter:^(id obj, id newValue, FSObjectInspectorViewModelItem *item) { [(NSSegmentedCell*)obj setTag:[newValue integerValue] forSegment:i];} + withLabel:[NSString stringWithFormat:@"Tag for segment %ld", (long)i] + toMatrix:m + enumBiDict:FSObjectEnumInfo.optionsForImageScaling + valueClass:nil + notNil:NO]; + } + if ([o respondsToSelector:@selector(toolTipForSegment:)]) { + [self addObject:[o toolTipForSegment:i] + valueType:FS_ITEM_OBJECT + getter:^id(id obj, FSObjectInspectorViewModelItem *item) { return [(NSSegmentedCell*)obj toolTipForSegment:i]; } + setter:^(id obj, id newValue, FSObjectInspectorViewModelItem *item) { [(NSSegmentedCell*)obj setToolTip:newValue forSegment:i];} + withLabel:[NSString stringWithFormat:@"ToolTip for segment %ld", (long)i] + toMatrix:m + notNil:YES]; + } + if ([o widthForSegment:i] != 0) { + [self addObject:[FSNumber numberWithDouble:[o widthForSegment:i]] + valueType:FS_ITEM_NUMBER + getter:^id(id obj, FSObjectInspectorViewModelItem *item) { return @([(NSSegmentedControl*)obj widthForSegment:i]); } + setter:^(id obj, id newValue, FSObjectInspectorViewModelItem *item) { [(NSSegmentedControl*)obj setWidth:[newValue floatValue] forSegment:i];} + withLabel:[NSString stringWithFormat:@"Width for segment %ld", (long)i] + toMatrix:m ]; + } + [self endGroup]; + } + } - (void)processNSControl:(id)object @@ -2531,127 +2594,127 @@ - (void)processNSControl:(id)object if ([object isKindOfClass:[NSBrowser class]]) { NSBrowser* o = object; ADD_CLASS_LABEL(@"NSBrowser Info"); - ADD_BOOL([o allowsBranchSelection], @"Allows branch selection") - ADD_BOOL([o allowsEmptySelection], @"Allows empty selection") - ADD_BOOL([o allowsMultipleSelection], @"Allows multiple selection") - ADD_BOOL([o allowsTypeSelect], @"Allows type select") - ADD_OBJECT([o backgroundColor], @"Background color") - ADD_OBJECT([o cellPrototype], @"Cell prototype") + ADD_BOOL([o allowsBranchSelection], allowsBranchSelection, setallowsBranchSelection, @"Allows branch selection") + ADD_BOOL([o allowsEmptySelection], allowsEmptySelection, setallowsEmptySelection, @"Allows empty selection") + ADD_BOOL([o allowsMultipleSelection], allowsMultipleSelection, setallowsMultipleSelection, @"Allows multiple selection") + ADD_BOOL([o allowsTypeSelect], allowsTypeSelect, setallowsTypeSelect, @"Allows type select") + ADD_COLOR([o backgroundColor], backgroundColor, setBackgroundColor, @"Background color") + ADD_OBJECT([o cellPrototype], cellPrototype, setCellPrototype, @"Cell prototype") ADD_ENUM(BrowserColumnResizingType, [o columnResizingType], columnResizingType, setcolumnResizingType, @"Column resizing type") - ADD_OBJECT([o columnsAutosaveName], @"Columns autosave name") - ADD_OBJECT([o delegate], @"Delegate") + ADD_OBJECT([o columnsAutosaveName], columnsAutosaveName, setColumnsAutosaveName, @"Columns autosave name") + ADD_OBJECT([o delegate], delegate, setDelegate, @"Delegate") ADD_SEL([o doubleAction], @"Double action") - ADD_NUMBER([o firstVisibleColumn], @"First visible column") - ADD_BOOL([o hasHorizontalScroller], @"Has horizontal scroller") - ADD_BOOL([o isLoaded], @"Is loaded") - ADD_BOOL([o isTitled], @"Is titled") - ADD_NUMBER([o lastColumn], @"Last column") - ADD_NUMBER([o lastVisibleColumn], @"Last visible column") - ADD_OBJECT([o matrixClass], @"Matrix class") - ADD_NUMBER([o maxVisibleColumns], @"Max visible columns") - ADD_NUMBER([o minColumnWidth], @"Min column width") - ADD_NUMBER([o numberOfVisibleColumns], @"Number of visible columns") - ADD_OBJECT([o path], @"Path") - ADD_OBJECT([o pathSeparator], @"Path separator") - ADD_BOOL([o prefersAllColumnUserResizing], @"Prefers all column user resizing") - ADD_BOOL([o reusesColumns], @"Reuses columns") + ADD_NUMBER([o firstVisibleColumn], firstVisibleColumn, setFirstVisibleColumn, @"First visible column") + ADD_BOOL([o hasHorizontalScroller], hasHorizontalScroller, sethasHorizontalScroller, @"Has horizontal scroller") + ADD_BOOL([o isLoaded], loaded, setisLoaded, @"Is loaded") + ADD_BOOL([o isTitled], titled, setisTitled, @"Is titled") + ADD_NUMBER([o lastColumn], lastColumn, setLastColumn, @"Last column") + ADD_NUMBER([o lastVisibleColumn], lastVisibleColumn, setLastVisibleColumn, @"Last visible column") + ADD_OBJECT([o matrixClass], matrixClass, setMatrixClass, @"Matrix class") + ADD_NUMBER([o maxVisibleColumns], maxVisibleColumns, setMaxVisibleColumns, @"Max visible columns") + ADD_NUMBER([o minColumnWidth], minColumnWidth, setMinColumnWidth, @"Min column width") + ADD_NUMBER([o numberOfVisibleColumns], numberOfVisibleColumns, setNumberOfVisibleColumns, @"Number of visible columns") + ADD_OBJECT([o path], path, setPath, @"Path") + ADD_OBJECT([o pathSeparator], pathSeparator, setPathSeparator, @"Path separator") + ADD_BOOL([o prefersAllColumnUserResizing], prefersAllColumnUserResizing, setprefersAllColumnUserResizing, @"Prefers all column user resizing") + ADD_BOOL([o reusesColumns], reusesColumns, setreusesColumns, @"Reuses columns") ADD_OBJECTS([o selectedCells], @"Selected cells") - ADD_NUMBER([o selectedColumn], @"Selected column") - ADD_BOOL([o sendsActionOnArrowKeys], @"Sends action on arrow keys") - ADD_BOOL([o separatesColumns], @"Separates columns") - ADD_BOOL([o takesTitleFromPreviousColumn], @"Takes title from previous column") - ADD_NUMBER([o titleHeight], @"Title height") + ADD_NUMBER([o selectedColumn], selectedColumn, setSelectedColumn, @"Selected column") + ADD_BOOL([o sendsActionOnArrowKeys], sendsActionOnArrowKeys, setsendsActionOnArrowKeys, @"Sends action on arrow keys") + ADD_BOOL([o separatesColumns], separatesColumns, setseparatesColumns, @"Separates columns") + ADD_BOOL([o takesTitleFromPreviousColumn], takesTitleFromPreviousColumn, settakesTitleFromPreviousColumn, @"Takes title from previous column") + ADD_NUMBER([o titleHeight], titleHeight, setTitleHeight, @"Title height") } else if ([object isKindOfClass:[NSButton class]]) { if ([object isKindOfClass:[NSPopUpButton class]]) { NSPopUpButton* o = object; ADD_CLASS_LABEL(@"NSPopUpButton Info"); - ADD_BOOL([o autoenablesItems], @"Autoenables Items") - ADD_NUMBER([o indexOfSelectedItem], @"Index of selected item") + ADD_BOOL([o autoenablesItems], autoenablesItems, setautoenablesItems, @"Autoenables Items") + ADD_NUMBER([o indexOfSelectedItem], indexOfSelectedItem, setIndexOfSelectedItem, @"Index of selected item") ADD_OBJECTS([o itemArray], @"Item array") - ADD_NUMBER([o numberOfItems], @"Number of items") - ADD_OBJECT([o objectValue], @"Object value") + ADD_NUMBER([o numberOfItems], numberOfItems, setNumberOfItems, @"Number of items") + ADD_OBJECT([o objectValue], objectValue, setObjectValue, @"Object value") ADD_ENUM(RectEdge, [o preferredEdge], preferredEdge, setpreferredEdge, @"Preferred edge") - ADD_BOOL([o pullsDown], @"Pulls down") - ADD_OBJECT([o selectedItem], @"Selected item") + ADD_BOOL([o pullsDown], pullsDown, setpullsDown, @"Pulls down") + ADD_OBJECT([o selectedItem], selectedItem, setSelectedItem, @"Selected item") } NSButton* o = object; ADD_CLASS_LABEL(@"NSButton Info"); - ADD_BOOL([o allowsMixedState], @"Allows mixed state") - ADD_OBJECT_NOT_NIL([o alternateImage], @"Alternate image") - ADD_OBJECT([o alternateTitle], @"Alternate title") - ADD_OBJECT([o attributedAlternateTitle], @"Attributed alternate title") - ADD_OBJECT([o attributedTitle], @"Attributed title") + ADD_BOOL([o allowsMixedState], allowsMixedState, setallowsMixedState, @"Allows mixed state") + ADD_OBJECT_NOT_NIL([o alternateImage], alternateImage, setAlternateImage, @"Alternate image") + ADD_OBJECT([o alternateTitle], alternateTitle, setAlternateTitle, @"Alternate title") + ADD_OBJECT([o attributedAlternateTitle], attributedAlternateTitle, setAttributedAlternateTitle, @"Attributed alternate title") + ADD_OBJECT([o attributedTitle], attributedTitle, setAttributedTitle, @"Attributed title") ADD_ENUM(BezelStyle, [o bezelStyle], bezelStyle, setbezelStyle, @"Bezel style") - ADD_OBJECT([o image], @"Image") + ADD_OBJECT([o image], image, setImage, @"Image") ADD_ENUM(CellImagePosition, [o imagePosition], imagePosition, setimagePosition, @"Image position") - ADD_BOOL([o isBordered], @"Is bordered") - ADD_BOOL([o isTransparent], @"Is transparent") - ADD_OBJECT([o keyEquivalent], @"Key equivalent") + ADD_BOOL([o isBordered], bordered, setisBordered, @"Is bordered") + ADD_BOOL([o isTransparent], transparent, setisTransparent, @"Is transparent") + ADD_OBJECT([o keyEquivalent], keyEquivalent, setKeyEquivalent, @"Key equivalent") ADD_ENUM(EventModifierFlags, [o keyEquivalentModifierMask] & NSDeviceIndependentModifierFlagsMask, keyEquivalentModifierMask, setKeyEquivalentModifierMask, @"Key equivalent modifier mask") - ADD_BOOL([o showsBorderOnlyWhileMouseInside], @"Shows border only while mouse inside") - ADD_OBJECT_NOT_NIL([o sound], @"Sound") + ADD_BOOL([o showsBorderOnlyWhileMouseInside], showsBorderOnlyWhileMouseInside, setshowsBorderOnlyWhileMouseInside, @"Shows border only while mouse inside") + ADD_OBJECT_NOT_NIL([o sound], sound, setSound, @"Sound") ADD_ENUM(CellStateValue, [o state], state, setstate, @"State") - ADD_OBJECT([o title], @"Title") + ADD_OBJECT([o title], title, setTitle, @"Title") } else if ([object isKindOfClass:[NSColorWell class]]) { NSColorWell* o = object; ADD_CLASS_LABEL(@"NSColorWell Info"); - ADD_OBJECT([o color], @"Color") - ADD_BOOL([o isActive], @"Is active") - ADD_BOOL([o isBordered], @"Is bordered") + ADD_COLOR([o color], color, setColor, @"Color") + ADD_BOOL([o isActive], active, setisActive, @"Is active") + ADD_BOOL([o isBordered], bordered, setisBordered, @"Is bordered") } else if ([object isKindOfClass:[NSDatePicker class]]) { NSDatePicker* o = object; ADD_CLASS_LABEL(@"NSDatePicker Info"); - ADD_OBJECT([o backgroundColor], @"Background color") - ADD_OBJECT([o calendar], @"Calendar") + ADD_COLOR([o backgroundColor], backgroundColor, setBackgroundColor, @"Background color") + ADD_OBJECT([o calendar], calendar, setCalendar, @"Calendar") ADD_ENUM(DatePickerElementFlags, [o datePickerElements], datePickerElements, setdatePickerElements, @"Date picker elements") ADD_ENUM(DatePickerMode, [o datePickerMode], datePickerMode, setdatePickerMode, @"Date picker mode") ADD_ENUM(DatePickerStyle, [o datePickerStyle], datePickerStyle, setdatePickerStyle, @"Date picker style") - ADD_OBJECT([o dateValue], @"Date value") - ADD_OBJECT_NOT_NIL([o delegate], @"Delegate") - ADD_BOOL([o drawsBackground], @"Draws background") - ADD_BOOL([o isBezeled], @"Is bezeled") - ADD_BOOL([o isBordered], @"Is bordered") - ADD_OBJECT_NOT_NIL([o locale], @"Locale") - ADD_OBJECT([o maxDate], @"Max date") - ADD_OBJECT([o minDate], @"Min date") - ADD_OBJECT([o textColor], @"Text Color") - ADD_NUMBER([o timeInterval], @"Time interval") - ADD_OBJECT([o timeZone], @"Time zone") + ADD_OBJECT([o dateValue], dateValue, setDateValue, @"Date value") + ADD_OBJECT_NOT_NIL([o delegate], delegate, setDelegate, @"Delegate") + ADD_BOOL([o drawsBackground], drawsBackground, setdrawsBackground, @"Draws background") + ADD_BOOL([o isBezeled], bezeled, setisBezeled, @"Is bezeled") + ADD_BOOL([o isBordered], bordered, setisBordered, @"Is bordered") + ADD_OBJECT_NOT_NIL([o locale], locale, setLocale, @"Locale") + ADD_OBJECT([o maxDate], maxDate, setMaxDate, @"Max date") + ADD_OBJECT([o minDate], minDate, setMinDate, @"Min date") + ADD_COLOR([o textColor], textColor, setTextColor, @"Text Color") + ADD_NUMBER([o timeInterval], timeInterval, setTimeInterval, @"Time interval") + ADD_OBJECT([o timeZone], timeZone, setTimeZone, @"Time zone") } else if ([object isKindOfClass:[NSImageView class]]) { NSImageView* o = object; ADD_CLASS_LABEL(@"NSImageView Info"); - ADD_BOOL([o allowsCutCopyPaste], @"Allows cut copy paste") - ADD_BOOL([o animates], @"Animates") - ADD_OBJECT([o image], @"Image") + ADD_BOOL([o allowsCutCopyPaste], allowsCutCopyPaste, setallowsCutCopyPaste, @"Allows cut copy paste") + ADD_BOOL([o animates], animates, setanimates, @"Animates") + ADD_OBJECT([o image], image, setImage, @"Image") ADD_ENUM(ImageAlignment, [o imageAlignment], imageAlignment, setimageAlignment, @"Image alignment") ADD_ENUM(ImageFrameStyle, [o imageFrameStyle], imageFrameStyle, setimageFrameStyle, @"Image frame style") ADD_ENUM(ImageScaling, [o imageScaling], imageScaling, setimageScaling, @"Image scaling") - ADD_BOOL([o isEditable], @"Is editable") + ADD_BOOL([o isEditable], editable, setisEditable, @"Is editable") } else if ([object isKindOfClass:[NSLevelIndicator class]]) { NSLevelIndicator* o = object; ADD_CLASS_LABEL(@"NSLevelIndicator Info"); - ADD_NUMBER([o criticalValue], @"Critical value") - ADD_NUMBER([o maxValue], @"Max value") - ADD_NUMBER([o minValue], @"Min value") - ADD_NUMBER([o numberOfMajorTickMarks], @"Number of major tick marks") - ADD_NUMBER([o numberOfTickMarks], @"Number of tick marks") - ADD_OBJECT(objectFromTickMarkPosition([o tickMarkPosition], NO), @"Tick mark position") - ADD_NUMBER([o warningValue], @"Warning value") + ADD_NUMBER([o criticalValue], criticalValue, setCriticalValue, @"Critical value") + ADD_NUMBER([o maxValue], maxValue, setMaxValue, @"Max value") + ADD_NUMBER([o minValue], minValue, setMinValue, @"Min value") + ADD_NUMBER([o numberOfMajorTickMarks], numberOfMajorTickMarks, setNumberOfMajorTickMarks, @"Number of major tick marks") + ADD_NUMBER([o numberOfTickMarks], numberOfTickMarks, setNumberOfTickMarks, @"Number of tick marks") + ADD_OBJECT(objectFromTickMarkPosition([o tickMarkPosition], NO), tickMarkPosition, setTickMarkPosition, @"Tick mark position") + ADD_NUMBER([o warningValue], warningValue, setWarningValue, @"Warning value") } else if ([object isKindOfClass:[NSMatrix class]]) { NSMatrix* o = object; ADD_CLASS_LABEL(@"NSMatrix Info"); - ADD_BOOL([o allowsEmptySelection], @"Allows empty selection") - ADD_BOOL([o autosizesCells], @"Autosizes cells") - ADD_OBJECT([o backgroundColor], @"Background color") - ADD_OBJECT([o cellBackgroundColor], @"Cell background color") - ADD_OBJECT([o cellClass], @"Cell class") + ADD_BOOL([o allowsEmptySelection], allowsEmptySelection, setallowsEmptySelection, @"Allows empty selection") + ADD_BOOL([o autosizesCells], autosizesCells, setautosizesCells, @"Autosizes cells") + ADD_COLOR([o backgroundColor], backgroundColor, setBackgroundColor, @"Background color") + ADD_COLOR([o cellBackgroundColor], cellBackgroundColor, setCellBackgroundColor, @"Cell background color") + ADD_OBJECT([o cellClass], cellClass, setCellClass, @"Cell class") ADD_SIZE([o cellSize], @"Cell size"); NSInteger numberOfColumns = [o numberOfColumns]; @@ -2662,36 +2725,36 @@ - (void)processNSControl:(id)object NSMutableArray* columnArray = [NSMutableArray arrayWithCapacity:numberOfRows]; for (NSInteger row = 0; row < numberOfRows; row++) [columnArray addObject:[o cellAtRow:row column:column]]; - ADD_OBJECT([NSArray arrayWithArray:columnArray], ([NSString stringWithFormat:@"Column %ld", (long)column])) + ADD_OBJECT_RO([NSArray arrayWithArray:columnArray], ([NSString stringWithFormat:@"Column %ld", (long)column])) } } - ADD_OBJECT([o delegate], @"Delegate") + ADD_OBJECT([o delegate], delegate, setDelegate, @"Delegate") ADD_SEL([o doubleAction], @"Double action") - ADD_BOOL([o drawsBackground], @"Draws background") - ADD_BOOL([o drawsCellBackground], @"Draws cell background") + ADD_BOOL([o drawsBackground], drawsBackground, setdrawsBackground, @"Draws background") + ADD_BOOL([o drawsCellBackground], drawsCellBackground, setdrawsCellBackground, @"Draws cell background") ADD_SIZE([o intercellSpacing], @"Intercell spacing") - ADD_BOOL([o isAutoscroll], @"Is autoscroll") - ADD_BOOL([o isSelectionByRect], @"Is selection by rect") - ADD_OBJECT([o keyCell], @"Key cell") + ADD_BOOL([o isAutoscroll], autoscroll, setisAutoscroll, @"Is autoscroll") + ADD_BOOL([o isSelectionByRect], selectionByRect, setisSelectionByRect, @"Is selection by rect") + ADD_OBJECT([o keyCell], keyCell, setKeyCell, @"Key cell") ADD_ENUM(MatrixMode, [(NSMatrix*)o mode], mode, setMode, @"Mode") - ADD_NUMBER([o numberOfColumns], @"Number of columns") - ADD_NUMBER([o numberOfRows], @"Number of rows") - ADD_OBJECT([o prototype], @"Prototype") + ADD_NUMBER([o numberOfColumns], numberOfColumns, setNumberOfColumns, @"Number of columns") + ADD_NUMBER([o numberOfRows], numberOfRows, setNumberOfRows, @"Number of rows") + ADD_OBJECT([o prototype], prototype, setPrototype, @"Prototype") ADD_OBJECTS([o selectedCells], @"Selected cells") - ADD_NUMBER([o selectedColumn], @"Selected column") - ADD_NUMBER([o selectedRow], @"Selected row") - ADD_BOOL([o tabKeyTraversesCells], @"Tab key traverses cells") + ADD_NUMBER([o selectedColumn], selectedColumn, setSelectedColumn, @"Selected column") + ADD_NUMBER([o selectedRow], selectedRow, setSelectedRow, @"Selected row") + ADD_BOOL([o tabKeyTraversesCells], tabKeyTraversesCells, settabKeyTraversesCells, @"Tab key traverses cells") } else if ([object isKindOfClass:[NSPathControl class]]) { NSPathControl* o = object; ADD_CLASS_LABEL(@"NSPathControl Info"); - ADD_OBJECT_NOT_NIL([o backgroundColor], @"Background color") - ADD_OBJECT([o delegate], @"Delegate") + ADD_COLOR_NOT_NIL([o backgroundColor], backgroundColor, setBackgroundColor, @"Background color") + ADD_OBJECT([o delegate], delegate, setDelegate, @"Delegate") ADD_SEL([o doubleAction], @"Double action") ADD_OBJECTS([o pathComponentCells], @"Path component cells") ADD_ENUM(PathStyle, [o pathStyle], pathStyle, setpathStyle, @"Path style") - ADD_OBJECT([o URL], @"URL") + ADD_OBJECT([o URL], URL, setURL, @"URL") } else if ([object isKindOfClass:[NSRuleEditor class]]) { if ([object isKindOfClass:[NSPredicateEditor class]]) { @@ -2702,21 +2765,21 @@ - (void)processNSControl:(id)object NSRuleEditor* o = object; ADD_CLASS_LABEL(@"NSRuleEditor Info"); - ADD_BOOL([o canRemoveAllRows], @"Can remove all rows") - ADD_OBJECT_NOT_NIL([o criteriaKeyPath], @"Criteria key path") - ADD_OBJECT([o delegate], @"Delegate") - ADD_OBJECT_NOT_NIL([o displayValuesKeyPath], @"Display values key path") + ADD_BOOL([o canRemoveAllRows], canRemoveAllRows, setcanRemoveAllRows, @"Can remove all rows") + ADD_OBJECT_NOT_NIL([o criteriaKeyPath], criteriaKeyPath, setCriteriaKeyPath, @"Criteria key path") + ADD_OBJECT([o delegate], delegate, setDelegate, @"Delegate") + ADD_OBJECT_NOT_NIL([o displayValuesKeyPath], displayValuesKeyPath, setDisplayValuesKeyPath, @"Display values key path") ADD_DICTIONARY([o formattingDictionary], @"Formatting dictionary") - ADD_OBJECT_NOT_NIL([o formattingStringsFilename], @"Formatting strings filename") - ADD_BOOL([o isEditable], @"Is editable") + ADD_OBJECT_NOT_NIL([o formattingStringsFilename], formattingStringsFilename, setFormattingStringsFilename, @"Formatting strings filename") + ADD_BOOL([o isEditable], editable, setisEditable, @"Is editable") ADD_ENUM(RuleEditorNestingMode, [o nestingMode], nestingMode, setnestingMode, @"Nesting mode") - ADD_NUMBER([o numberOfRows], @"Number of rows") - ADD_OBJECT([o predicate], @"Predicate") - ADD_OBJECT([o rowClass], @"Row class") - ADD_NUMBER([o rowHeight], @"Row height") - ADD_OBJECT_NOT_NIL([o rowTypeKeyPath], @"Row type key path") - ADD_OBJECT_NOT_NIL([o selectedRowIndexes], @"Selected row indexes") - ADD_OBJECT_NOT_NIL([o subrowsKeyPath], @"Subrows key path") + ADD_NUMBER([o numberOfRows], numberOfRows, setNumberOfRows, @"Number of rows") + ADD_OBJECT([o predicate], predicate, setPredicate, @"Predicate") + ADD_OBJECT([o rowClass], rowClass, setRowClass, @"Row class") + ADD_NUMBER([o rowHeight], rowHeight, setRowHeight, @"Row height") + ADD_OBJECT_NOT_NIL([o rowTypeKeyPath], rowTypeKeyPath, setRowTypeKeyPath, @"Row type key path") + ADD_OBJECT_NOT_NIL([o selectedRowIndexes], selectedRowIndexes, setSelectedRowIndexes, @"Selected row indexes") + ADD_OBJECT_NOT_NIL([o subrowsKeyPath], subrowsKeyPath, setSubrowsKeyPath, @"Subrows key path") } else if ([object isKindOfClass:[NSScroller class]]) { NSScroller* o = object; @@ -2724,9 +2787,9 @@ - (void)processNSControl:(id)object ADD_ENUM(ScrollArrowPosition, [o arrowsPosition], arrowsPosition, setarrowsPosition, @"Arrows position") ADD_ENUM(ControlSize, [o controlSize], controlSize, setcontrolSize, @"Control size") ADD_ENUM(ControlTint, [o controlTint], controlTint, setcontrolTint, @"Control tint") - ADD_NUMBER([o doubleValue], @"Double value") + ADD_NUMBER([o doubleValue], doubleValue, setDoubleValue, @"Double value") ADD_ENUM(ScrollerPart, [o hitPart], hitPart, sethitPart, @"Hit part") - ADD_NUMBER([o knobProportion], @"Knob proportion") + ADD_NUMBER([o knobProportion], knobProportion, setKnobProportion, @"Knob proportion") ADD_ENUM(UsableScrollerParts, [o usableParts], usableParts, setusableParts, @"Usable parts") } else if ([object isKindOfClass:[NSSegmentedControl class]]) { @@ -2734,135 +2797,126 @@ - (void)processNSControl:(id)object NSInteger segmentCount = [o segmentCount]; ADD_CLASS_LABEL(@"NSSegmentedControl Info"); - ADD_NUMBER(segmentCount, @"Segment count") - ADD_NUMBER([o selectedSegment], @"Selected segment") - - for (NSInteger i = 0; i < segmentCount; i++) { - ADD_OBJECT_NOT_NIL([o imageForSegment:i], ([NSString stringWithFormat:@"Image for segment %ld", (long)i])) - ADD_BOOL([o isEnabledForSegment:i], ([NSString stringWithFormat:@"Is enabled for segment %ld", (long)i])) - ADD_BOOL([o isSelectedForSegment:i], ([NSString stringWithFormat:@"Is selected for segment %ld", (long)i])) - ADD_OBJECT_NOT_NIL([o labelForSegment:i], ([NSString stringWithFormat:@"Label for segment %ld", (long)i])) - ADD_OBJECT_NOT_NIL([o menuForSegment:i], ([NSString stringWithFormat:@"Menu for segment %ld", (long)i])) - if ([o widthForSegment:i] != 0) - ADD_NUMBER([o widthForSegment:i], ([NSString stringWithFormat:@"Width for segment %ld", (long)i])) - } + ADD_NUMBER(segmentCount, segmentCount, setSegmentCount, @"Segment count") + ADD_NUMBER([o selectedSegment], selectedSegment, setSelectedSegment, @"Selected segment") + [self processSegmentedItem:o]; } else if ([object isKindOfClass:[NSSlider class]]) { NSSlider* o = object; ADD_CLASS_LABEL(@"NSSlider Info"); - ADD_BOOL([o allowsTickMarkValuesOnly], @"Allows tick mark values only") - ADD_NUMBER([o altIncrementValue], @"Alt increment value") - ADD_NUMBER([(NSSlider*)o isVertical], @"Is vertical") - ADD_NUMBER([o knobThickness], @"Knob thickness") - ADD_NUMBER([o maxValue], @"Max value") - ADD_NUMBER([o minValue], @"Min value") - ADD_NUMBER([o numberOfTickMarks], @"Number of tick marks") - ADD_OBJECT(objectFromTickMarkPosition([o tickMarkPosition], [(NSSlider*)o isVertical] == 1), @"Tick mark position") - ADD_OBJECT([o title], @"title") + ADD_BOOL([o allowsTickMarkValuesOnly], allowsTickMarkValuesOnly, setallowsTickMarkValuesOnly, @"Allows tick mark values only") + ADD_NUMBER([o altIncrementValue], altIncrementValue, setAltIncrementValue, @"Alt increment value") + ADD_NUMBER([(NSSlider*)o isVertical], vertical, setVertical:, @"Is vertical") + ADD_NUMBER([o knobThickness], knobThickness, setKnobThickness, @"Knob thickness") + ADD_NUMBER([o maxValue], maxValue, setMaxValue, @"Max value") + ADD_NUMBER([o minValue], minValue, setMinValue, @"Min value") + ADD_NUMBER([o numberOfTickMarks], numberOfTickMarks, setNumberOfTickMarks, @"Number of tick marks") + ADD_OBJECT(objectFromTickMarkPosition([o tickMarkPosition], [(NSSlider*)o isVertical] == 1), tickMarkPosition, setTickMarkPosition, @"Tick mark position") + ADD_OBJECT([o title], title, setTitle, @"title") } else if ([object isKindOfClass:[NSTableView class]]) { if ([object isKindOfClass:[NSOutlineView class]]) { NSOutlineView* o = object; ADD_CLASS_LABEL(@"NSOutlineView Info"); - ADD_BOOL([o autoresizesOutlineColumn], @"Autoresizes outline column") - ADD_BOOL([o autosaveExpandedItems], @"Autosave expanded items") - ADD_BOOL([o indentationMarkerFollowsCell], @"Indentation marker follows cell") - ADD_NUMBER([o indentationPerLevel], @"Indentation per level") - ADD_OBJECT([o outlineTableColumn], @"Outline table column") + ADD_BOOL([o autoresizesOutlineColumn], autoresizesOutlineColumn, setautoresizesOutlineColumn, @"Autoresizes outline column") + ADD_BOOL([o autosaveExpandedItems], autosaveExpandedItems, setautosaveExpandedItems, @"Autosave expanded items") + ADD_BOOL([o indentationMarkerFollowsCell], indentationMarkerFollowsCell, setindentationMarkerFollowsCell, @"Indentation marker follows cell") + ADD_NUMBER([o indentationPerLevel], indentationPerLevel, setIndentationPerLevel, @"Indentation per level") + ADD_OBJECT([o outlineTableColumn], outlineTableColumn, setOutlineTableColumn, @"Outline table column") } NSTableView* o = object; ADD_CLASS_LABEL(@"NSTableView Info"); - ADD_BOOL([o allowsColumnReordering], @"Allows column reordering") - ADD_BOOL([o allowsColumnResizing], @"Allows column resizing") - ADD_BOOL([o allowsColumnSelection], @"Allows column selection") - ADD_BOOL([o allowsEmptySelection], @"Allows empty selection") - ADD_BOOL([o allowsMultipleSelection], @"Allows multiple selection") - ADD_BOOL([o allowsTypeSelect], @"Allows type select") - ADD_OBJECT_NOT_NIL([o autosaveName], @"Autosave name") - ADD_BOOL([o autosaveTableColumns], @"Autosave table columns") - ADD_OBJECT([o backgroundColor], @"Background color") + ADD_BOOL([o allowsColumnReordering], allowsColumnReordering, setallowsColumnReordering, @"Allows column reordering") + ADD_BOOL([o allowsColumnResizing], allowsColumnResizing, setallowsColumnResizing, @"Allows column resizing") + ADD_BOOL([o allowsColumnSelection], allowsColumnSelection, setallowsColumnSelection, @"Allows column selection") + ADD_BOOL([o allowsEmptySelection], allowsEmptySelection, setallowsEmptySelection, @"Allows empty selection") + ADD_BOOL([o allowsMultipleSelection], allowsMultipleSelection, setallowsMultipleSelection, @"Allows multiple selection") + ADD_BOOL([o allowsTypeSelect], allowsTypeSelect, setallowsTypeSelect, @"Allows type select") + ADD_OBJECT_NOT_NIL([o autosaveName], autosaveName, setAutosaveName, @"Autosave name") + ADD_BOOL([o autosaveTableColumns], autosaveTableColumns, setautosaveTableColumns, @"Autosave table columns") + ADD_COLOR([o backgroundColor], backgroundColor, setBackgroundColor, @"Background color") ADD_ENUM(TableViewColumnAutoresizingStyle, [o columnAutoresizingStyle], columnAutoresizingStyle, setcolumnAutoresizingStyle, @"Column autoresizing style") - ADD_OBJECT([o cornerView], @"Corner view") - ADD_OBJECT([o dataSource], @"Data source") - ADD_OBJECT([o delegate], @"Delegate") + ADD_OBJECT([o cornerView], cornerView, setCornerView, @"Corner view") + ADD_OBJECT([o dataSource], dataSource, setDataSource, @"Data source") + ADD_OBJECT([o delegate], delegate, setDelegate, @"Delegate") ADD_SEL([o doubleAction], @"Double action") - ADD_OBJECT([o gridColor], @"Grid color") + ADD_COLOR([o gridColor], gridColor, setGridColor, @"Grid color") ADD_ENUM(TableViewGridLineStyle, [o gridStyleMask], gridStyleMask, setgridStyleMask, @"Grid style mask") - ADD_OBJECT([o headerView], @"Header view") - ADD_OBJECT_NOT_NIL([o highlightedTableColumn], @"Highlighted table column") + ADD_OBJECT([o headerView], headerView, setHeaderView, @"Header view") + ADD_OBJECT_NOT_NIL([o highlightedTableColumn], highlightedTableColumn, setHighlightedTableColumn, @"Highlighted table column") ADD_SIZE([o intercellSpacing], @"Intercell spacing") - ADD_NUMBER([o numberOfColumns], @"Number of columns") - ADD_NUMBER([o numberOfRows], @"Number of rows") - ADD_NUMBER([o numberOfSelectedColumns], @"Number of selected columns") - ADD_NUMBER([o numberOfSelectedRows], @"Number of selected rows") - ADD_NUMBER([o rowHeight], @"Row height") - ADD_NUMBER([o selectedColumn], @"Selected column") - ADD_OBJECT([o selectedColumnIndexes], @"Selected column indexes") - ADD_NUMBER([o selectedRow], @"Selected row") - ADD_OBJECT([o selectedRowIndexes], @"Selected row indexes") + ADD_NUMBER([o numberOfColumns], numberOfColumns, setNumberOfColumns, @"Number of columns") + ADD_NUMBER([o numberOfRows], numberOfRows, setNumberOfRows, @"Number of rows") + ADD_NUMBER([o numberOfSelectedColumns], numberOfSelectedColumns, setNumberOfSelectedColumns, @"Number of selected columns") + ADD_NUMBER([o numberOfSelectedRows], numberOfSelectedRows, setNumberOfSelectedRows, @"Number of selected rows") + ADD_NUMBER([o rowHeight], rowHeight, setRowHeight, @"Row height") + ADD_NUMBER([o selectedColumn], selectedColumn, setSelectedColumn, @"Selected column") + ADD_OBJECT([o selectedColumnIndexes], selectedColumnIndexes, setSelectedColumnIndexes, @"Selected column indexes") + ADD_NUMBER([o selectedRow], selectedRow, setSelectedRow, @"Selected row") + ADD_OBJECT([o selectedRowIndexes], selectedRowIndexes, setSelectedRowIndexes, @"Selected row indexes") ADD_ENUM(TableViewSelectionHighlightStyle, [o selectionHighlightStyle], selectionHighlightStyle, setselectionHighlightStyle, @"Selection highlight style") ADD_OBJECTS([o sortDescriptors], @"Sort descriptors") ADD_OBJECTS([o tableColumns], @"Table columns") - ADD_BOOL([o usesAlternatingRowBackgroundColors], @"Uses alternating row background colors") - ADD_BOOL([o verticalMotionCanBeginDrag], @"Vertical motion can begin drag") + ADD_BOOL([o usesAlternatingRowBackgroundColors], usesAlternatingRowBackgroundColors, setusesAlternatingRowBackgroundColors, @"Uses alternating row background colors") + ADD_BOOL([o verticalMotionCanBeginDrag], verticalMotionCanBeginDrag, setverticalMotionCanBeginDrag, @"Vertical motion can begin drag") } else if ([object isKindOfClass:[NSStepper class]]) { NSStepper* o = object; ADD_CLASS_LABEL(@"NSStepper Info"); - ADD_BOOL([o autorepeat], @"Autorepeat") - ADD_NUMBER([o increment], @"Increment") - ADD_NUMBER([o maxValue], @"Max value") - ADD_NUMBER([o minValue], @"Min value") - ADD_BOOL([o valueWraps], @"Value wraps") + ADD_BOOL([o autorepeat], autorepeat, setautorepeat, @"Autorepeat") + ADD_NUMBER([o increment], increment, setIncrement, @"Increment") + ADD_NUMBER([o maxValue], maxValue, setMaxValue, @"Max value") + ADD_NUMBER([o minValue], minValue, setMinValue, @"Min value") + ADD_BOOL([o valueWraps], valueWraps, setvalueWraps, @"Value wraps") } else if ([object isKindOfClass:[NSTextField class]]) { if ([object isKindOfClass:[NSComboBox class]]) { NSComboBox* o = object; ADD_CLASS_LABEL(@"NSComboBox Info"); if ([o usesDataSource]) - ADD_OBJECT([o dataSource], @"Data source") - ADD_BOOL([o hasVerticalScroller], @"Has vertical scroller") - ADD_NUMBER([o indexOfSelectedItem], @"Index of selected item") + ADD_OBJECT([o dataSource], dataSource, setDataSource, @"Data source") + ADD_BOOL([o hasVerticalScroller], hasVerticalScroller, sethasVerticalScroller, @"Has vertical scroller") + ADD_NUMBER([o indexOfSelectedItem], indexOfSelectedItem, setIndexOfSelectedItem, @"Index of selected item") ADD_SIZE([o intercellSpacing], @"Intercell spacing") - ADD_BOOL([o isButtonBordered], @"Is button bordered") - ADD_NUMBER([o itemHeight], @"Item height") - ADD_NUMBER([o numberOfItems], @"Number of items") - ADD_NUMBER([o numberOfVisibleItems], @"Number of visible items") + ADD_BOOL([o isButtonBordered], buttonBordered, setisButtonBordered, @"Is button bordered") + ADD_NUMBER([o itemHeight], itemHeight, setItemHeight, @"Item height") + ADD_NUMBER([o numberOfItems], numberOfItems, setNumberOfItems, @"Number of items") + ADD_NUMBER([o numberOfVisibleItems], numberOfVisibleItems, setNumberOfVisibleItems, @"Number of visible items") if (![o usesDataSource] && [o indexOfSelectedItem] != -1) - ADD_OBJECT([o objectValueOfSelectedItem], @"Object value of selected item") + ADD_OBJECT([o objectValueOfSelectedItem], objectValueOfSelectedItem, setObjectValueOfSelectedItem, @"Object value of selected item") if (![o usesDataSource]) ADD_OBJECTS([o objectValues], @"Object values") - ADD_BOOL([o usesDataSource], @"Uses data source") + ADD_BOOL([o usesDataSource], usesDataSource, setusesDataSource, @"Uses data source") } else if ([object isKindOfClass:[NSSearchField class]]) { NSSearchField* o = object; if ([[o recentSearches] count] != 0 || [o recentsAutosaveName] != nil) ADD_CLASS_LABEL(@"NSSearchField Info"); ADD_OBJECTS([o recentSearches], @"Recent searches") - ADD_OBJECT_NOT_NIL([o recentsAutosaveName], @"Recents autosave name") + ADD_OBJECT_NOT_NIL([o recentsAutosaveName], recentsAutosaveName, setRecentsAutosaveName, @"Recents autosave name") } else if ([object isKindOfClass:[NSTokenField class]]) { NSTokenField* o = object; ADD_CLASS_LABEL(@"NSTokenField Info"); - ADD_NUMBER([o completionDelay], @"Completion delay") - ADD_OBJECT([o tokenizingCharacterSet], @"Tokenizing character set") + ADD_NUMBER([o completionDelay], completionDelay, setCompletionDelay, @"Completion delay") + ADD_OBJECT([o tokenizingCharacterSet], tokenizingCharacterSet, setTokenizingCharacterSet, @"Tokenizing character set") ADD_ENUM(TokenStyle, [o tokenStyle], tokenStyle, settokenStyle, @"Token style") } NSTextField* o = object; ADD_CLASS_LABEL(@"NSTextField Info"); - ADD_BOOL([o allowsEditingTextAttributes], @"Allows editing text attributes") - ADD_OBJECT([o backgroundColor], @"Background color") + ADD_BOOL([o allowsEditingTextAttributes], allowsEditingTextAttributes, setallowsEditingTextAttributes, @"Allows editing text attributes") + ADD_COLOR([o backgroundColor], backgroundColor, setBackgroundColor, @"Background color") ADD_ENUM(TextFieldBezelStyle, [o bezelStyle], bezelStyle, setbezelStyle, @"Bezel style") - ADD_OBJECT_NOT_NIL([o delegate], @"Delegate") - ADD_BOOL([o drawsBackground], @"Draws background") - ADD_BOOL([o importsGraphics], @"Imports graphics") - ADD_BOOL([o isBezeled], @"Is bezeled") - ADD_BOOL([o isBordered], @"Is bordered") - ADD_BOOL([o isEditable], @"Is editable") - ADD_BOOL([o isSelectable], @"Is selectable") - ADD_OBJECT([o textColor], @"Text color") + ADD_OBJECT_NOT_NIL([o delegate], delegate, setDelegate, @"Delegate") + ADD_BOOL([o drawsBackground], drawsBackground, setdrawsBackground, @"Draws background") + ADD_BOOL([o importsGraphics], importsGraphics, setimportsGraphics, @"Imports graphics") + ADD_BOOL([o isBezeled], bezeled, setisBezeled, @"Is bezeled") + ADD_BOOL([o isBordered], bordered, setisBordered, @"Is bordered") + ADD_BOOL([o isEditable], editable, setisEditable, @"Is editable") + ADD_BOOL([o isSelectable], selectable, setisSelectable, @"Is selectable") + ADD_COLOR([o textColor], textColor, setTextColor, @"Text color") } NSControl* o = object; @@ -2870,20 +2924,20 @@ - (void)processNSControl:(id)object ADD_SEL([o action], @"Action") ADD_ENUM(TextAlignment, [o alignment], alignment, setalignment, @"Alignment") ADD_ENUM(WritingDirection, [o baseWritingDirection], baseWritingDirection, setbaseWritingDirection, @"Base writing direction") - ADD_OBJECT([o cell], @"Cell") + ADD_OBJECT([o cell], cell, setCell, @"Cell") ADD_ENUM(ControlSize, [o controlSize], controlSize, setcontrolSize, @"Control size") - ADD_OBJECT_NOT_NIL([o currentEditor], @"Current editor") - ADD_OBJECT([o font], @"Font") - ADD_OBJECT([o formatter], @"Formatter") - ADD_BOOL([o ignoresMultiClick], @"Ignores multiclick") - ADD_BOOL([o isContinuous], @"Is continuous") - ADD_BOOL([o isEnabled], @"Is enabled") + ADD_OBJECT_NOT_NIL([o currentEditor], currentEditor, setCurrentEditor, @"Current editor") + ADD_OBJECT([o font], font, setFont, @"Font") + ADD_OBJECT([o formatter], formatter, setFormatter, @"Formatter") + ADD_BOOL([o ignoresMultiClick], ignoresMultiClick, setignoresMultiClick, @"Ignores multiclick") + ADD_BOOL([o isContinuous], continuous, setisContinuous, @"Is continuous") + ADD_BOOL([o isEnabled], enabled, setisEnabled, @"Is enabled") if ([o currentEditor] == nil) - ADD_OBJECT([o objectValue], @"Object value") // To avoid side-effects, we only call objectValue if the control is not being edited, which is determined with the currentEditor call. - ADD_BOOL([o refusesFirstResponder], @"Refuses first responder") - ADD_OBJECT([o selectedCell], @"Selected cell") - ADD_NUMBER([o selectedTag], @"Selected tag") - ADD_OBJECT([o target], @"Target") + ADD_OBJECT([o objectValue], objectValue, setObjectValue, @"Object value") // To avoid side-effects, we only call objectValue if the control is not being edited, which is determined with the currentEditor call. + ADD_BOOL([o refusesFirstResponder], refusesFirstResponder, setrefusesFirstResponder, @"Refuses first responder") + ADD_OBJECT([o selectedCell], selectedCell, setSelectedCell, @"Selected cell") + ADD_NUMBER([o selectedTag], selectedTag, setSelectedTag, @"Selected tag") + ADD_OBJECT([o target], target, setTarget, @"Target") } } @@ -2894,135 +2948,135 @@ - (void)processNSWindow:(id)object if ([object isKindOfClass:[NSColorPanel class]]) { NSColorPanel* o = object; ADD_CLASS_LABEL(@"NSColorPanel Info"); - ADD_OBJECT_NOT_NIL([o accessoryView], @"Accessory view") - ADD_NUMBER([o alpha], @"Alpha") - ADD_OBJECT([o color], @"Color") - ADD_BOOL([o isContinuous], @"Is continuous") + ADD_OBJECT_NOT_NIL([o accessoryView], accessoryView, setAccessoryView, @"Accessory view") + ADD_NUMBER([o alpha], alpha, setAlpha, @"Alpha") + ADD_COLOR([o color], color, setColor, @"Color") + ADD_BOOL([o isContinuous], continuous, setisContinuous, @"Is continuous") ADD_ENUM(ColorPanelMode, [o mode], mode, setmode, @"Mode") - ADD_BOOL([o showsAlpha], @"Shows alpha") + ADD_BOOL([o showsAlpha], showsAlpha, setshowsAlpha, @"Shows alpha") } else if ([object isKindOfClass:[NSFontPanel class]]) { NSFontPanel* o = object; ADD_CLASS_LABEL(@"NSFontPanel Info"); - ADD_OBJECT_NOT_NIL([o accessoryView], @"Accessory view") - ADD_BOOL([o isEnabled], @"Is enabled") + ADD_OBJECT_NOT_NIL([o accessoryView], accessoryView, setAccessoryView, @"Accessory view") + ADD_BOOL([o isEnabled], enabled, setisEnabled, @"Is enabled") } else if ([object isKindOfClass:[NSSavePanel class]]) { if ([object isKindOfClass:[NSOpenPanel class]]) { NSOpenPanel* o = object; ADD_CLASS_LABEL(@"NSOpenPanel Info"); - ADD_BOOL([o allowsMultipleSelection], @"Allows multiple selection") - ADD_BOOL([o canChooseDirectories], @"Can choose directories") - ADD_BOOL([o canChooseFiles], @"Can choose files") + ADD_BOOL([o allowsMultipleSelection], allowsMultipleSelection, setallowsMultipleSelection, @"Allows multiple selection") + ADD_BOOL([o canChooseDirectories], canChooseDirectories, setcanChooseDirectories, @"Can choose directories") + ADD_BOOL([o canChooseFiles], canChooseFiles, setcanChooseFiles, @"Can choose files") ADD_OBJECTS([o filenames], @"Filenames") - ADD_BOOL([o resolvesAliases], @"Resolves aliases") + ADD_BOOL([o resolvesAliases], resolvesAliases, setresolvesAliases, @"Resolves aliases") ADD_OBJECTS([o URLs], @"URLs") } NSSavePanel* o = object; ADD_CLASS_LABEL(@"NSSavePanel Info"); - ADD_OBJECT_NOT_NIL([o accessoryView], @"Accessory view") + ADD_OBJECT_NOT_NIL([o accessoryView], accessoryView, setAccessoryView, @"Accessory view") ADD_OBJECTS([o allowedFileTypes], @"Allowed file types") - ADD_BOOL([o allowsOtherFileTypes], @"Allows other file types") - ADD_BOOL([o canCreateDirectories], @"Can create directories") - ADD_BOOL([o canSelectHiddenExtension], @"Can select hidden extension") - ADD_OBJECT_NOT_NIL([o delegate], @"Delegate") - ADD_OBJECT([o directory], @"Directory") - ADD_OBJECT([o filename], @"Filename") - ADD_BOOL([o isExpanded], @"Is expanded") - ADD_BOOL([o isExtensionHidden], @"Is extension hidden") - ADD_OBJECT([o message], @"Message") - ADD_OBJECT([o nameFieldLabel], @"nameFieldLabel") - ADD_OBJECT([o prompt], @"Prompt") - ADD_BOOL([o treatsFilePackagesAsDirectories], @"Treats file packages as directories") - ADD_OBJECT([o URL], @"URL") + ADD_BOOL([o allowsOtherFileTypes], allowsOtherFileTypes, setallowsOtherFileTypes, @"Allows other file types") + ADD_BOOL([o canCreateDirectories], canCreateDirectories, setcanCreateDirectories, @"Can create directories") + ADD_BOOL([o canSelectHiddenExtension], canSelectHiddenExtension, setcanSelectHiddenExtension, @"Can select hidden extension") + ADD_OBJECT_NOT_NIL([o delegate], delegate, setDelegate, @"Delegate") + ADD_OBJECT([o directory], directory, setDirectory, @"Directory") + ADD_OBJECT([o filename], filename, setFilename, @"Filename") + ADD_BOOL([o isExpanded], expanded, setisExpanded, @"Is expanded") + ADD_BOOL([o isExtensionHidden], extensionHidden, setisExtensionHidden, @"Is extension hidden") + ADD_OBJECT([o message], message, setMessage, @"Message") + ADD_OBJECT([o nameFieldLabel], nameFieldLabel, setNameFieldLabel, @"nameFieldLabel") + ADD_OBJECT([o prompt], prompt, setPrompt, @"Prompt") + ADD_BOOL([o treatsFilePackagesAsDirectories], treatsFilePackagesAsDirectories, settreatsFilePackagesAsDirectories, @"Treats file packages as directories") + ADD_OBJECT([o URL], URL, setURL, @"URL") } NSPanel* o = object; ADD_CLASS_LABEL(@"NSPanel Info"); - ADD_BOOL([o becomesKeyOnlyIfNeeded], @"Becomes key only if needed") - ADD_BOOL([o isFloatingPanel], @"Is floating panel") + ADD_BOOL([o becomesKeyOnlyIfNeeded], becomesKeyOnlyIfNeeded, setbecomesKeyOnlyIfNeeded, @"Becomes key only if needed") + ADD_BOOL([o isFloatingPanel], floatingPanel, setisFloatingPanel, @"Is floating panel") } NSWindow* o = object; ADD_CLASS_LABEL(@"NSWindow Info"); - ADD_BOOL([o acceptsMouseMovedEvents], @"Accepts mouse moved events") - ADD_BOOL([o allowsToolTipsWhenApplicationIsInactive], @"Allows tool tips when application is inactive") - ADD_NUMBER([o alphaValue], @"Alpha value") - ADD_BOOL([o areCursorRectsEnabled], @"Are cursor rects enabled") + ADD_BOOL([o acceptsMouseMovedEvents], acceptsMouseMovedEvents, setacceptsMouseMovedEvents, @"Accepts mouse moved events") + ADD_BOOL([o allowsToolTipsWhenApplicationIsInactive], allowsToolTipsWhenApplicationIsInactive, setallowsToolTipsWhenApplicationIsInactive, @"Allows tool tips when application is inactive") + ADD_NUMBER([o alphaValue], alphaValue, setAlphaValue, @"Alpha value") + ADD_BOOL([o areCursorRectsEnabled], areCursorRectsEnabled, setareCursorRectsEnabled, @"Are cursor rects enabled") ADD_SIZE([o aspectRatio], @"Aspect ratio") - ADD_OBJECT_NOT_NIL([o attachedSheet], @"Attached sheet") - ADD_BOOL([o autorecalculatesKeyViewLoop], @"Autorecalculates key view loop") + ADD_OBJECT_NOT_NIL([o attachedSheet], attachedSheet, setAttachedSheet, @"Attached sheet") + ADD_BOOL([o autorecalculatesKeyViewLoop], autorecalculatesKeyViewLoop, setautorecalculatesKeyViewLoop, @"Autorecalculates key view loop") ADD_ENUM(WindowBackingLocation, [o backingLocation], backingLocation, setbackingLocation, @"Backing location") - ADD_OBJECT([o backgroundColor], @"Background color") + ADD_COLOR([o backgroundColor], backgroundColor, setBackgroundColor, @"Background color") ADD_ENUM(BackingStoreType, [o backingType], backingType, setbackingType, @"Backing type") - ADD_BOOL([o canBecomeKeyWindow], @"Can become key window") - ADD_BOOL([o canBecomeMainWindow], @"Can become main window") - ADD_BOOL([o canBecomeVisibleWithoutLogin], @"Can become visible without login") - ADD_BOOL([o canHide], @"Can hide") - ADD_BOOL([o canStoreColor], @"Can store color") + ADD_BOOL([o canBecomeKeyWindow], canBecomeKeyWindow, setcanBecomeKeyWindow, @"Can become key window") + ADD_BOOL([o canBecomeMainWindow], canBecomeMainWindow, setcanBecomeMainWindow, @"Can become main window") + ADD_BOOL([o canBecomeVisibleWithoutLogin], canBecomeVisibleWithoutLogin, setcanBecomeVisibleWithoutLogin, @"Can become visible without login") + ADD_BOOL([o canHide], canHide, setcanHide, @"Can hide") + ADD_BOOL([o canStoreColor], canStoreColor, setcanStoreColor, @"Can store color") ADD_ENUM(WindowCollectionBehavior, [o collectionBehavior], collectionBehavior, setcollectionBehavior, @"Collection behavior") ADD_OBJECTS([o childWindows], @"Child windows") ADD_SIZE([o contentAspectRatio], @"Content aspect ratio") ADD_SIZE([o contentMaxSize], @"Content max size") ADD_SIZE([o contentMinSize], @"Content min size") ADD_SIZE([o contentResizeIncrements], @"Content resize increments") - ADD_OBJECT([o contentView], @"Content view") - ADD_OBJECT_NOT_NIL([o deepestScreen], @"Deepest screen") - ADD_OBJECT([o defaultButtonCell], @"Default button cell") - ADD_OBJECT([o delegate], @"Delegate") - ADD_NUMBER([o depthLimit], @"Depth limit") + ADD_OBJECT([o contentView], contentView, setContentView, @"Content view") + ADD_OBJECT_NOT_NIL([o deepestScreen], deepestScreen, setDeepestScreen, @"Deepest screen") + ADD_OBJECT([o defaultButtonCell], defaultButtonCell, setDefaultButtonCell, @"Default button cell") + ADD_OBJECT([o delegate], delegate, setDelegate, @"Delegate") + ADD_NUMBER([o depthLimit], depthLimit, setDepthLimit, @"Depth limit") ADD_DICTIONARY([o deviceDescription], @"Device description") - ADD_BOOL([o displaysWhenScreenProfileChanges], @"Displays when screen profile changes") + ADD_BOOL([o displaysWhenScreenProfileChanges], displaysWhenScreenProfileChanges, setdisplaysWhenScreenProfileChanges, @"Displays when screen profile changes") ADD_OBJECTS([o drawers], @"Drawers") - ADD_OBJECT([o firstResponder], @"First responder") + ADD_OBJECT([o firstResponder], firstResponder, setFirstResponder, @"First responder") ADD_RECT([o frame], @"Frame") - ADD_OBJECT_NOT_NIL([o frameAutosaveName], @"Frame autosave name") - ADD_OBJECT([o graphicsContext], @"Graphics context") + ADD_OBJECT_NOT_NIL([o frameAutosaveName], frameAutosaveName, setFrameAutosaveName, @"Frame autosave name") + ADD_OBJECT([o graphicsContext], graphicsContext, setGraphicsContext, @"Graphics context") // Call to gState fails when the window in miniaturized //ADD_NUMBER( [o gState] ,@"gState") - ADD_BOOL([o hasDynamicDepthLimit], @"Has dynamic depth limit") - ADD_BOOL([o hasShadow], @"Has shadow") - ADD_BOOL([o hidesOnDeactivate], @"Hides on deactivate") - ADD_BOOL([o ignoresMouseEvents], @"Ignores mouse events") - ADD_OBJECT([o initialFirstResponder], @"Initial first responder") - ADD_BOOL([o isAutodisplay], @"Is autodisplay") - ADD_BOOL([o isDocumentEdited], @"Is document edited") - ADD_BOOL([o isExcludedFromWindowsMenu], @"Is exclude from windowsmenu") - ADD_BOOL([o isFlushWindowDisabled], @"Is flush window disabled") - ADD_BOOL([o isMiniaturized], @"Is miniaturized") - ADD_BOOL([o isMovableByWindowBackground], @"Is movable by window background") - ADD_BOOL([o isOneShot], @"Is oneShot") - ADD_BOOL([o isOpaque], @"Is opaque") - ADD_BOOL([o isReleasedWhenClosed], @"Is released when closed") - ADD_BOOL([o isSheet], @"Is sheet") - ADD_BOOL([o isVisible], @"Is visible") - ADD_BOOL([o isZoomed], @"Is zoomed") + ADD_BOOL([o hasDynamicDepthLimit], hasDynamicDepthLimit, sethasDynamicDepthLimit, @"Has dynamic depth limit") + ADD_BOOL([o hasShadow], hasShadow, sethasShadow, @"Has shadow") + ADD_BOOL([o hidesOnDeactivate], hidesOnDeactivate, sethidesOnDeactivate, @"Hides on deactivate") + ADD_BOOL([o ignoresMouseEvents], ignoresMouseEvents, setignoresMouseEvents, @"Ignores mouse events") + ADD_OBJECT([o initialFirstResponder], initialFirstResponder, setInitialFirstResponder, @"Initial first responder") + ADD_BOOL([o isAutodisplay], autodisplay, setisAutodisplay, @"Is autodisplay") + ADD_BOOL([o isDocumentEdited], documentEdited, setisDocumentEdited, @"Is document edited") + ADD_BOOL([o isExcludedFromWindowsMenu], excludedFromWindowsMenu, setisExcludedFromWindowsMenu, @"Is exclude from windowsmenu") + ADD_BOOL([o isFlushWindowDisabled], flushWindowDisabled, setisFlushWindowDisabled, @"Is flush window disabled") + ADD_BOOL([o isMiniaturized], miniaturized, setisMiniaturized, @"Is miniaturized") + ADD_BOOL([o isMovableByWindowBackground], movableByWindowBackground, setisMovableByWindowBackground, @"Is movable by window background") + ADD_BOOL([o isOneShot], oneShot, setisOneShot, @"Is oneShot") + ADD_BOOL([o isOpaque], opaque, setisOpaque, @"Is opaque") + ADD_BOOL([o isReleasedWhenClosed], releasedWhenClosed, setisReleasedWhenClosed, @"Is released when closed") + ADD_BOOL([o isSheet], sheet, setisSheet, @"Is sheet") + ADD_BOOL([o isVisible], visible, setisVisible, @"Is visible") + ADD_BOOL([o isZoomed], zoomed, setisZoomed, @"Is zoomed") ADD_ENUM(SelectionDirection, [o keyViewSelectionDirection], keyViewSelectionDirection, setkeyViewSelectionDirection, @"Key view selection direction") ADD_ENUM(WindowLevel, [o level], level, setlevel, @"Level") ADD_SIZE([o maxSize], @"Max size") ADD_SIZE([o minSize], @"Min size") - ADD_OBJECT_NOT_NIL([o miniwindowImage], @"Miniwindow image") - ADD_OBJECT([o miniwindowTitle], @"Miniwindow title") - ADD_OBJECT_NOT_NIL([o parentWindow], @"Parent window") + ADD_OBJECT_NOT_NIL([o miniwindowImage], miniwindowImage, setMiniwindowImage, @"Miniwindow image") + ADD_OBJECT([o miniwindowTitle], miniwindowTitle, setMiniwindowTitle, @"Miniwindow title") + ADD_OBJECT_NOT_NIL([o parentWindow], parentWindow, setParentWindow, @"Parent window") ADD_ENUM(WindowBackingLocation, [o preferredBackingLocation], preferredBackingLocation, setpreferredBackingLocation, @"Preferred backing location") - ADD_BOOL([o preservesContentDuringLiveResize], @"Preserves content during live resize") - ADD_OBJECT_NOT_NIL([o representedFilename], @"Represented filename") - ADD_OBJECT_NOT_NIL([o representedURL], @"Represented URL") + ADD_BOOL([o preservesContentDuringLiveResize], preservesContentDuringLiveResize, setpreservesContentDuringLiveResize, @"Preserves content during live resize") + ADD_OBJECT_NOT_NIL([o representedFilename], representedFilename, setRepresentedFilename, @"Represented filename") + ADD_OBJECT_NOT_NIL([o representedURL], representedURL, setRepresentedURL, @"Represented URL") ADD_SIZE([o resizeIncrements], @"Resize increments") - ADD_OBJECT([o screen], @"Screen") + ADD_OBJECT([o screen], screen, setScreen, @"Screen") ADD_ENUM(WindowSharingType, [o sharingType], sharingType, setsharingType, @"Sharing type") - ADD_BOOL([o showsResizeIndicator], @"Shows resize indicator") - ADD_BOOL([o showsToolbarButton], @"Shows toolbar button") + ADD_BOOL([o showsResizeIndicator], showsResizeIndicator, setshowsResizeIndicator, @"Shows resize indicator") + ADD_BOOL([o showsToolbarButton], showsToolbarButton, setshowsToolbarButton, @"Shows toolbar button") ADD_ENUM(WindowMask, [o styleMask], styleMask, setstyleMask, @"Style mask") - ADD_OBJECT([o title], @"Title") - ADD_OBJECT_NOT_NIL([o toolbar], @"Toolbar") - ADD_NUMBER([o userSpaceScaleFactor], @"User space scale factor") - ADD_BOOL([o viewsNeedDisplay], @"Views need display") - ADD_OBJECT_NOT_NIL([o windowController], @"Window controller") - ADD_NUMBER([o windowNumber], @"Window number") - ADD_BOOL([o worksWhenModal], @"Works when modal") + ADD_OBJECT([o title], title, setTitle, @"Title") + ADD_OBJECT_NOT_NIL([o toolbar], toolbar, setToolbar, @"Toolbar") + ADD_NUMBER([o userSpaceScaleFactor], userSpaceScaleFactor, setUserSpaceScaleFactor, @"User space scale factor") + ADD_BOOL([o viewsNeedDisplay], viewsNeedDisplay, setviewsNeedDisplay, @"Views need display") + ADD_OBJECT_NOT_NIL([o windowController], windowController, setWindowController, @"Window controller") + ADD_NUMBER([o windowNumber], windowNumber, setWindowNumber, @"Window number") + ADD_BOOL([o worksWhenModal], worksWhenModal, setworksWhenModal, @"Works when modal") } } @end diff --git a/FScriptFramework/FSObjectEnumInfo.h b/FScriptFramework/FSObjectEnumInfo.h index ca308df..7e7168e 100644 --- a/FScriptFramework/FSObjectEnumInfo.h +++ b/FScriptFramework/FSObjectEnumInfo.h @@ -21,7 +21,8 @@ typedef id NSMergePolicyMarker; #define BIMAP_CLASS_METHODS_DECL(_name) \ +(id)objectFor##_name : (NS##_name)mask; \ +(CHBidirectionalDictionary*)optionsFor##_name; \ - extern id objectFrom##_name(NS##_name _name); + extern id objectFrom##_name(NS##_name _name); \ + extern const NSUInteger _name##Mask ; @interface FSObjectEnumInfo : NSObject @@ -127,3 +128,5 @@ BIMAP_CLASS_METHODS_DECL(WritingDirection); id objectFromTickMarkPosition(NSTickMarkPosition tickMarkPosition, BOOL isVertical); @end + +id objectFromOptions(NSUInteger opts, CHBidirectionalDictionary *dict, NSUInteger mask); \ No newline at end of file diff --git a/FScriptFramework/FSObjectEnumInfo.m b/FScriptFramework/FSObjectEnumInfo.m index 75b5d9a..732b4c9 100644 --- a/FScriptFramework/FSObjectEnumInfo.m +++ b/FScriptFramework/FSObjectEnumInfo.m @@ -92,22 +92,25 @@ +(CHBidirectionalDictionary*)optionsFor##_name { return (_name##Bimap()); } // Define a lookup function 'objectTo', for flag enumerations (can take a logical OR of enumeration values) #define OPTSTOOBJ(_name, ...) \ OPTSDICT(_name, __VA_ARGS__) \ - id objectFrom##_name(NS##_name mask) \ + id objectFrom##_name(NS##_name opts) \ { \ - if (_name##Mask == 0 || (mask & ~(_name##Mask))) { \ - return [FSNumber numberWithDouble:mask]; \ - } \ - CHBidirectionalDictionary* dict = _name##Bimap(); \ - NSMutableArray* result = [NSMutableArray array]; \ - for (NSNumber * opt in dict.allKeys) { \ - if (mask & opt.unsignedIntegerValue) { \ - [result addObject:dict[opt]]; \ - } \ - } \ - return result.count ? [FSNamedNumber namedNumberWithDouble:mask name:[result componentsJoinedByString:@" + "]] : [FSNumber numberWithDouble:mask]; \ + return objectFromOptions(opts, _name##Bimap(), _name##Mask); \ } \ BIMAP_CLASS_METHODS_DEFN(_name) +id objectFromOptions(NSUInteger opts, CHBidirectionalDictionary *dict, NSUInteger mask) +{ + if (mask == 0 || (opts & ~mask)) { + return [FSNumber numberWithDouble:opts]; + } + NSMutableArray* result = [NSMutableArray array]; + for (NSNumber * opt in dict.allKeys) { + if (opts & opt.unsignedIntegerValue) { + [result addObject:dict[opt]]; + } + } + return result.count ? [FSNamedNumber namedNumberWithDouble:opts name:[result componentsJoinedByString:@" + "]] : [FSNumber numberWithDouble:opts]; +} @implementation FSObjectEnumInfo ENUMTOOBJ(AnimationBlockingMode, diff --git a/FScriptFramework/FSObjectInspectorViewController.h b/FScriptFramework/FSObjectInspectorViewController.h index 0d33687..494d573 100644 --- a/FScriptFramework/FSObjectInspectorViewController.h +++ b/FScriptFramework/FSObjectInspectorViewController.h @@ -14,6 +14,9 @@ @interface FSObjectInspectorViewController : NSViewController @property (assign) IBOutlet NSOutlineView *outlineView; @property (weak,nonatomic) FSObjectInspectorViewModelItem *rootViewModelItem; +@property (weak,nonatomic) FSObjectInspectorViewModelItem *selectedViewModelItem; @property (readonly,nonatomic) NSSize desiredSize; @property (strong,nonatomic) FSInterpreter *interpreter; + +-(IBAction)showColorPanel:(id)sender; @end diff --git a/FScriptFramework/FSObjectInspectorViewController.m b/FScriptFramework/FSObjectInspectorViewController.m index 6277b1b..c89fac8 100644 --- a/FScriptFramework/FSObjectInspectorViewController.m +++ b/FScriptFramework/FSObjectInspectorViewController.m @@ -12,6 +12,7 @@ #import #import + @interface FSObjectInspectorViewController () @property (nonatomic) BOOL hasAwoken; @@ -48,7 +49,6 @@ - (NSSize)desiredSize scrollViewSize.height += NSHeight(self.outlineView.headerView.bounds); return scrollViewSize; } - /* * * @@ -66,39 +66,40 @@ - (NSView*)outlineView:(NSOutlineView*)outlineView viewForTableColumn:(NSTableCo FSObjectInspectorViewModelItem* viewModel = [item representedObject]; if ([viewModel respondsToSelector:@selector(valueType)]) { switch (viewModel.valueType) { - case FS_ITEM_HEADER: - view = [self.outlineView makeViewWithIdentifier:@"ObjectInspectorReadOnlyView" owner:self]; - break; - case FS_ITEM_ENUM: - view = [self.outlineView makeViewWithIdentifier:@"ObjectInspectorEnumView" owner:self]; - break; - case FS_ITEM_OPTIONS: - view = [self.outlineView makeViewWithIdentifier:@"ObjectInspectorReadOnlyView" owner:self]; - break; - case FS_ITEM_NUMBER: - view = [self.outlineView makeViewWithIdentifier:@"ObjectInspectorNumberView" owner:self]; - break; - case FS_ITEM_SIZE: - view = [self.outlineView makeViewWithIdentifier:@"ObjectInspectorReadOnlyView" owner:self]; - break; - case FS_ITEM_RECT: - view = [self.outlineView makeViewWithIdentifier:@"ObjectInspectorReadOnlyView" owner:self]; - break; - case FS_ITEM_OBJECT: - view = [self.outlineView makeViewWithIdentifier:@"ObjectInspectorReadOnlyView" owner:self]; - break; - case FS_ITEM_POINT: - view = [self.outlineView makeViewWithIdentifier:@"ObjectInspectorReadOnlyView" owner:self]; - break; - case FS_ITEM_RANGE: - view = [self.outlineView makeViewWithIdentifier:@"ObjectInspectorReadOnlyView" owner:self]; - break; - case FS_ITEM_BOOL: - view = [self.outlineView makeViewWithIdentifier:@"ObjectInspectorEnumView" owner:self]; - break; - - default: - break; + case FS_ITEM_HEADER: + view = [self.outlineView makeViewWithIdentifier:@"ObjectInspectorReadOnlyView" owner:self]; + break; + case FS_ITEM_ENUM: + view = [self.outlineView makeViewWithIdentifier:@"ObjectInspectorEnumView" owner:self]; + break; + case FS_ITEM_OPTIONS: + view = [self.outlineView makeViewWithIdentifier:@"ObjectInspectorReadOnlyView" owner:self]; + break; + case FS_ITEM_NUMBER: + view = [self.outlineView makeViewWithIdentifier:@"ObjectInspectorNumberView" owner:self]; + break; + case FS_ITEM_SIZE: + view = [self.outlineView makeViewWithIdentifier:@"ObjectInspectorReadOnlyView" owner:self]; + break; + case FS_ITEM_RECT: + view = [self.outlineView makeViewWithIdentifier:@"ObjectInspectorReadOnlyView" owner:self]; + break; + case FS_ITEM_OBJECT: + view = [self.outlineView makeViewWithIdentifier:[self _viewIdentifierForValueClass:viewModel.valueClass] + owner:self]; + break; + case FS_ITEM_POINT: + view = [self.outlineView makeViewWithIdentifier:@"ObjectInspectorReadOnlyView" owner:self]; + break; + case FS_ITEM_RANGE: + view = [self.outlineView makeViewWithIdentifier:@"ObjectInspectorReadOnlyView" owner:self]; + break; + case FS_ITEM_BOOL: + view = [self.outlineView makeViewWithIdentifier:@"ObjectInspectorEnumView" owner:self]; + break; + + default: + break; } } else { @@ -106,4 +107,33 @@ - (NSView*)outlineView:(NSOutlineView*)outlineView viewForTableColumn:(NSTableCo } return view; } + +-(NSString*)_viewIdentifierForValueClass:(Class)class +{ + if (class == NSColor.class) { + return @"ObjectInspectorColorView"; + } + return @"ObjectInspectorReadOnlyView"; +} + +-(IBAction)setColor:(id)sender +{ + NSColor *color = [(NSColorPanel*)sender color]; + self.selectedViewModelItem.value = color; +} + +-(void)showColorPanel:(id)sender +{ + NSInteger row = [self.outlineView rowForView:sender]; + if (row >= 0) { + [NSColorPanel.sharedColorPanel orderFront:self]; + NSColorPanel.sharedColorPanel.target = self; + NSColorPanel.sharedColorPanel.action = @selector(setColor:); + + self.selectedViewModelItem = [[self.outlineView itemAtRow:row] representedObject]; + + } + +} + @end diff --git a/FScriptFramework/FSObjectInspectorViewController.xib b/FScriptFramework/FSObjectInspectorViewController.xib index dd311c2..da3cd94 100644 --- a/FScriptFramework/FSObjectInspectorViewController.xib +++ b/FScriptFramework/FSObjectInspectorViewController.xib @@ -60,6 +60,7 @@ + @@ -98,6 +99,7 @@ + @@ -111,26 +113,35 @@ + + + + + + + + + - + - + - + @@ -166,9 +177,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/FScriptFramework/FSObjectInspectorViewModelItem.h b/FScriptFramework/FSObjectInspectorViewModelItem.h index a90bd8a..dde95ca 100644 --- a/FScriptFramework/FSObjectInspectorViewModelItem.h +++ b/FScriptFramework/FSObjectInspectorViewModelItem.h @@ -19,10 +19,16 @@ typedef NS_ENUM(NSUInteger, FSInspectorVMValueType) { FS_ITEM_POINT, FS_ITEM_RANGE, FS_ITEM_BOOL, + FS_ITEM_GROUP, }; +@class FSObjectInspectorViewModelItem; @class CHBidirectionalDictionary; +typedef id(^FSGetterBlock)(id obj, FSObjectInspectorViewModelItem *item) ; +typedef void(^FSSetterBlock)(id obj, id newValue, FSObjectInspectorViewModelItem *item); + + @interface FSObjectInspectorViewModelItem : NSTreeNode @property (copy,nonatomic) NSString *name; @property (strong,nonatomic) id value; @@ -32,6 +38,11 @@ typedef NS_ENUM(NSUInteger, FSInspectorVMValueType) { @property (readonly,nonatomic) NSArray *enumNames; @property (readonly,nonatomic) NSArray *enumValues; @property (nonatomic) NSInteger numValue; -@property (nonatomic,copy) NSString *getter; -@property (nonatomic,copy) NSString *setter; +@property (nonatomic,copy) FSGetterBlock getter; +@property (nonatomic,copy) FSSetterBlock setter; +@property (nonatomic) NSUInteger optsMask; +@property (nonatomic) NSInteger minValue; +@property (nonatomic) NSInteger maxValue; +@property (nonatomic) Class valueClass; + @end diff --git a/FScriptFramework/FSObjectInspectorViewModelItem.m b/FScriptFramework/FSObjectInspectorViewModelItem.m index 37fccc9..65c40ea 100644 --- a/FScriptFramework/FSObjectInspectorViewModelItem.m +++ b/FScriptFramework/FSObjectInspectorViewModelItem.m @@ -7,8 +7,10 @@ // #import "FSObjectInspectorViewModelItem.h" +#import "FSBoolean.h" #import "FSNamedNumber.h" #import "FSNumber.h" +#import "FSObjectEnumInfo.h" #import "CHBidirectionalDictionary.h" @interface FSNamedInteger : NSObject @@ -37,6 +39,16 @@ +(void)initialize } } +- (instancetype)init +{ + self = [super init]; + if (self) { + self.minValue = NSIntegerMin; + self.maxValue = NSIntegerMax; + } + return self; +} + - (NSString*)displayValue { switch (self.valueType) { @@ -59,7 +71,7 @@ - (NSString*)displayValue return NSStringFromRect([(NSValue*)self.value rectValue]); break; case FS_ITEM_OBJECT: - return [self.value description]; + return [[self.value description] stringByReplacingOccurrencesOfString:@"\n" withString:@""]; break; case FS_ITEM_POINT: return NSStringFromPoint([(NSValue*)self.value pointValue]); @@ -99,9 +111,32 @@ - (NSInteger)numValue - (void)setNumValue:(NSInteger)value { - self.value = [FSNumber numberWithDouble:value]; + switch (self.valueType) { + case FS_ITEM_ENUM: + self.value = [FSNamedNumber namedNumberWithDouble:value name:self.enumBiDict[@(value)]] ?: [FSNumber numberWithDouble:value]; + break; + case FS_ITEM_OPTIONS: + self.value = objectFromOptions(value, self.enumBiDict, self.optsMask); + break; + case FS_ITEM_NUMBER: + self.value = [FSNumber numberWithDouble:value]; + break; + case FS_ITEM_BOOL: + self.value = [FSBoolean booleanWithBool:value]; + break; + + case FS_ITEM_SIZE: + case FS_ITEM_OBJECT: + case FS_ITEM_RECT: + case FS_ITEM_POINT: + case FS_ITEM_RANGE: + case FS_ITEM_HEADER: + default: + break; + } } + + (NSSet*)keyPathsForValuesAffectingDisplayValue { return [NSSet setWithObject:@"value"]; From 137f2a75149e45c32550308a8a167ec8c3377b35 Mon Sep 17 00:00:00 2001 From: Ant Date: Thu, 20 Nov 2014 21:45:14 +0000 Subject: [PATCH 19/33] Added string editing in inspector view --- .../FSObjectBrowserViewObjectInfo.m | 63 +++++++++++-------- .../FSObjectInspectorViewController.m | 3 + .../FSObjectInspectorViewController.xib | 25 ++++++++ 3 files changed, 64 insertions(+), 27 deletions(-) diff --git a/FScriptFramework/FSObjectBrowserViewObjectInfo.m b/FScriptFramework/FSObjectBrowserViewObjectInfo.m index 2ef719f..ce6e3f7 100644 --- a/FScriptFramework/FSObjectBrowserViewObjectInfo.m +++ b/FScriptFramework/FSObjectBrowserViewObjectInfo.m @@ -206,6 +206,11 @@ -(void)endGroup #define ADD_COLOR_NOT_NIL(OBJECT, GETTER, SETTER, LABEL) if (OBJECT) { ADD_COLOR(OBJECT,GETTER,SETTER,LABEL); } +#define ADD_STRING(OBJECT, GETTER, SETTER, LABEL) \ + ADD_VALUE(OBJECT, FS_ITEM_OBJECT, GETTER, SETTER, nil, NSString.class, LABEL) + +#define ADD_STRING_NOT_NIL(OBJECT, GETTER, SETTER, LABEL) if (OBJECT) { ADD_COLOR(OBJECT,GETTER,SETTER,LABEL); } + #define ADD_BOOL(B, GETTER, SETTER, LABEL) \ ADD_VALUE([FSBoolean booleanWithBool:(B)], FS_ITEM_BOOL, GETTER, SETTER, nil, nil, LABEL); @@ -689,8 +694,8 @@ - (void)addNSAlert:(id)object ADD_OBJECT_NOT_NIL([o delegate], delegate, setDelegate, @"Delegate") ADD_OBJECT_NOT_NIL([o helpAnchor], helpAnchor, setHelpAnchor, @"Help anchor") ADD_OBJECT([o icon], icon, setIcon, @"Icon") - ADD_OBJECT([o informativeText], informativeText, setInformativeText, @"Informative text") - ADD_OBJECT([o messageText], messageText, setMessageText, @"Message text") + ADD_STRING([o informativeText], informativeText, setInformativeText, @"Informative text") + ADD_STRING([o messageText], messageText, setMessageText, @"Message text") ADD_BOOL([o showsHelp], showsHelp, setshowsHelp, @"Shows help") ADD_BOOL([o showsSuppressionButton], showsSuppressionButton, setshowsSuppressionButton, @"Shows suppression button") ADD_OBJECT([o suppressionButton], suppressionButton, setSuppressionButton, @"Suppression button") @@ -805,7 +810,7 @@ - (void)addNSCell:(id)object NSButtonCell* o = object; ADD_CLASS_LABEL(@"NSButtonCell Info"); ADD_OBJECT_NOT_NIL([o alternateImage], alternateImage, setAlternateImage, @"Alternate image") - ADD_OBJECT([o alternateTitle], alternateTitle, setAlternateTitle, @"Alternate title") + ADD_STRING([o alternateTitle], alternateTitle, setAlternateTitle, @"Alternate title") ADD_OBJECT([o attributedAlternateTitle], attributedAlternateTitle, setAttributedAlternateTitle, @"Attributed alternate title") ADD_OBJECT([o attributedTitle], attributedTitle, setAttributedTitle, @"Attributed title") ADD_COLOR([o backgroundColor], backgroundColor, setBackgroundColor, @"Background color") @@ -821,7 +826,7 @@ - (void)addNSCell:(id)object ADD_BOOL([o showsBorderOnlyWhileMouseInside], showsBorderOnlyWhileMouseInside, setshowsBorderOnlyWhileMouseInside, @"Shows border only while mouse inside") ADD_ENUM(CellStyleMask, [o showsStateBy], showsStateBy, setshowsStateBy, @"Shows state by") ADD_OBJECT_NOT_NIL([o sound], sound, setSound, @"Sound") - ADD_OBJECT([o title], title, setTitle, @"Title") + ADD_STRING([o title], title, setTitle, @"Title") } else if ([object isKindOfClass:[NSDatePickerCell class]]) { NSDatePickerCell* o = object; @@ -846,7 +851,7 @@ - (void)addNSCell:(id)object ADD_CLASS_LABEL(@"NSFormCell Info"); ADD_OBJECT([o attributedTitle], attributedTitle, setAttributedTitle, @"Attributed title") ADD_OBJECT_NOT_NIL([o placeholderAttributedString], placeholderAttributedString, setPlaceholderAttributedString, @"Placeholder attributed string") - ADD_OBJECT_NOT_NIL([o placeholderString], placeholderString, setPlaceholderString, @"Placeholder string") + ADD_STRING_NOT_NIL([o placeholderString], placeholderString, setPlaceholderString, @"Placeholder string") ADD_ENUM(TextAlignment, [o titleAlignment], titleAlignment, settitleAlignment, @"Title alignment") ADD_ENUM(WritingDirection, [o titleBaseWritingDirection], titleBaseWritingDirection, settitleBaseWritingDirection, @"Title base writing direction") ADD_OBJECT([o titleFont], titleFont, setTitleFont, @"Title font") @@ -874,7 +879,7 @@ - (void)addNSCell:(id)object ADD_OBJECTS([o pathComponentCells], @"Path component cells") ADD_ENUM(PathStyle, [o pathStyle], pathStyle, setpathStyle, @"Path style") ADD_OBJECT_NOT_NIL([o placeholderAttributedString], placeholderAttributedString, setPlaceholderAttributedString, @"Placeholder attributed string") - ADD_OBJECT_NOT_NIL([o placeholderString], placeholderString, setPlaceholderString, @"Placeholder string") + ADD_STRING_NOT_NIL([o placeholderString], placeholderString, setPlaceholderString, @"Placeholder string") ADD_OBJECT_NOT_NIL([o URL], URL, setURL, @"URL") } else if ([object isKindOfClass:[NSSegmentedCell class]]) { @@ -964,7 +969,7 @@ - (void)addNSCell:(id)object ADD_ENUM(TextFieldBezelStyle, [o bezelStyle], bezelStyle, setbezelStyle, @"Bezel style") ADD_BOOL([o drawsBackground], drawsBackground, setdrawsBackground, @"Draws background") ADD_OBJECT_NOT_NIL([o placeholderAttributedString], placeholderAttributedString, setPlaceholderAttributedString, @"Placeholder attributed string") - ADD_OBJECT_NOT_NIL([o placeholderString], placeholderString, setPlaceholderString, @"Placeholder string") + ADD_STRING_NOT_NIL([o placeholderString], placeholderString, setPlaceholderString, @"Placeholder string") ADD_COLOR([o textColor], textColor, setTextColor, @"Text color") } } @@ -1022,11 +1027,11 @@ - (void)addNSCell:(id)object ADD_BOOL([o isScrollable], scrollable, setisScrollable, @"Is scrollable") ADD_BOOL([o isSelectable], selectable, setisSelectable, @"Is selectable") if ([[o keyEquivalent] length] != 0) - ADD_OBJECT([o keyEquivalent], keyEquivalent, setKeyEquivalent, @"Key equivalent") + ADD_STRING([o keyEquivalent], keyEquivalent, setKeyEquivalent, @"Key equivalent") ADD_ENUM(LineBreakMode, [o lineBreakMode], lineBreakMode, setlineBreakMode, @"Line break mode") ADD_OBJECT_NOT_NIL([o menu], menu, setMenu, @"Menu") if ([[o mnemonic] length] != 0) - ADD_OBJECT([o mnemonic], mnemonic, setMnemonic, @"Mnemonic") + ADD_STRING([o mnemonic], mnemonic, setMnemonic, @"Mnemonic") if ([o mnemonicLocation] != NSNotFound) ADD_NUMBER([o mnemonicLocation], mnemonicLocation, setMnemonicLocation, @"Mnemonic location") ADD_ENUM(CellStateValue, [o nextState], nextState, setnextState, @"Next state") @@ -1734,7 +1739,7 @@ - (void)addNSMenu:(id)object ADD_BOOL([o menuChangedMessagesEnabled], menuChangedMessagesEnabled, setmenuChangedMessagesEnabled, @"Menu changed messages enabled") ADD_BOOL([o showsStateColumn], showsStateColumn, setshowsStateColumn, @"Shows state column") ADD_OBJECT_NOT_NIL([o supermenu], supermenu, setSupermenu, @"Supermenu") - ADD_OBJECT([o title], title, setTitle, @"Title") + ADD_STRING([o title], title, setTitle, @"Title") } - (void)addNSMenuItem:(id)object @@ -1763,7 +1768,7 @@ - (void)addNSMenuItem:(id)object ADD_OBJECT_NOT_NIL([o submenu], submenu, setSubmenu, @"Submenu") ADD_NUMBER([o tag], tag, setTag, @"Tag") ADD_OBJECT_NOT_NIL([o target], target, setTarget, @"Target") - ADD_OBJECT([o title], title, setTitle, @"Title") + ADD_STRING([o title], title, setTitle, @"Title") ADD_OBJECT_NOT_NIL([o toolTip], toolTip, setToolTip, @"Tool tip") ADD_OBJECT([o userKeyEquivalent], userKeyEquivalent, setUserKeyEquivalent, @"User key equivalent") ADD_OBJECT_NOT_NIL([o view], view, setView, @"View") @@ -1947,7 +1952,7 @@ - (void)addNSResponder:(id)object ADD_OBJECT_NOT_NIL([o nibBundle], nibBundle, setNibBundle, @"Nib bundle") ADD_OBJECT_NOT_NIL([o nibName], nibName, setNibName, @"Nib name") ADD_OBJECT_NOT_NIL([o representedObject], representedObject, setRepresentedObject, @"Represented object") - ADD_OBJECT_NOT_NIL([o title], title, setTitle, @"Title") + ADD_STRING_NOT_NIL([o title], title, setTitle, @"Title") ADD_OBJECT_NOT_NIL([o view], view, setView, @"View") } else if ([object isKindOfClass:[NSWindow class]]) { @@ -2048,8 +2053,8 @@ - (void)addNSStatusItem:(id)object ADD_OBJECT_NOT_NIL([o menu], menu, setMenu, @"Menu") ADD_OBJECT([o statusBar], statusBar, setStatusBar, @"Status bar") ADD_OBJECT([o target], target, setTarget, @"Target") - ADD_OBJECT_NOT_NIL([o title], title, setTitle, @"Title") - ADD_OBJECT_NOT_NIL([o toolTip], toolTip, setToolTip, @"Tool tip") + ADD_STRING_NOT_NIL([o title], title, setTitle, @"Title") + ADD_STRING_NOT_NIL([o toolTip], toolTip, setToolTip, @"Tool tip") ADD_OBJECT_NOT_NIL([o view], view, setView, @"View") } @@ -2217,11 +2222,11 @@ - (void)addNSUndoManager:(id)object ADD_BOOL([o groupsByEvent], groupsByEvent, setgroupsByEvent, @"Groups by event") ADD_BOOL([o isUndoRegistrationEnabled], undoRegistrationEnabled, setisUndoRegistrationEnabled, @"Is undo registration enabled") ADD_NUMBER([o levelsOfUndo], levelsOfUndo, setLevelsOfUndo, @"Levels of undo") - ADD_OBJECT_NOT_NIL([o redoActionName], redoActionName, setRedoActionName, @"Redo action name") - ADD_OBJECT_NOT_NIL([o redoMenuItemTitle], redoMenuItemTitle, setRedoMenuItemTitle, @"Redo menu item title") + ADD_STRING_NOT_NIL([o redoActionName], redoActionName, setRedoActionName, @"Redo action name") + ADD_STRING_NOT_NIL([o redoMenuItemTitle], redoMenuItemTitle, setRedoMenuItemTitle, @"Redo menu item title") ADD_OBJECTS([o runLoopModes], @"Run loop modes") - ADD_OBJECT_NOT_NIL([o undoActionName], undoActionName, setUndoActionName, @"Undo action name") - ADD_OBJECT_NOT_NIL([o undoMenuItemTitle], undoMenuItemTitle, setUndoMenuItemTitle, @"Undo menu item title") + ADD_STRING_NOT_NIL([o undoActionName], undoActionName, setUndoActionName, @"Undo action name") + ADD_STRING_NOT_NIL([o undoMenuItemTitle], undoMenuItemTitle, setUndoMenuItemTitle, @"Undo menu item title") } - (void)addNSATSTypesetter:(id)object @@ -2260,7 +2265,7 @@ - (void)processNSView:(id)object ADD_NUMBER([o cornerRadius], cornerRadius, setCornerRadius, @"Corner radius") ADD_COLOR([o fillColor], fillColor, setFillColor, @"Fill color") ADD_BOOL([o isTransparent], transparent, setisTransparent, @"Is transparent") - ADD_OBJECT([o title], title, setTitle, @"Title") + ADD_STRING([o title], title, setTitle, @"Title") ADD_OBJECT([o titleCell], titleCell, setTitleCell, @"Title cell") ADD_OBJECT([o titleFont], titleFont, setTitleFont, @"Title font") ADD_ENUM(TitlePosition, [o titlePosition], titlePosition, settitlePosition, @"Title position") @@ -2492,7 +2497,7 @@ - (void)processNSView:(id)object ADD_BOOL([o postsFrameChangedNotifications], postsFrameChangedNotifications, setpostsFrameChangedNotifications, @"Posts frame changed notifications") ADD_OBJECT([o previousKeyView], previousKeyView, setPreviousKeyView, @"Previous key view") ADD_OBJECT([o previousValidKeyView], previousValidKeyView, setPreviousValidKeyView, @"Previous valid key view") - ADD_OBJECT([o printJobTitle], printJobTitle, setPrintJobTitle, @"Print job title") + ADD_STRING([o printJobTitle], printJobTitle, setPrintJobTitle, @"Print job title") ADD_OBJECTS([o registeredDraggedTypes], @"Registered dragged types") ADD_BOOL([o shouldDrawColor], shouldDrawColor, setshouldDrawColor, @"Should draw color") ADD_NUMBER([o tag], tag, setTag, @"Tag") @@ -2547,6 +2552,8 @@ -(void)processSegmentedItem:(id)segmentedItem setter:^(id obj, id newValue, FSObjectInspectorViewModelItem *item) { [(NSSegmentedControl*)obj setLabel:newValue forSegment:i];} withLabel:[NSString stringWithFormat:@"Label for segment %ld", (long)i] toMatrix:m + enumBiDict:nil + valueClass:NSString.class notNil:YES]; [self addObject:[o menuForSegment:i] valueType:FS_ITEM_OBJECT @@ -2573,6 +2580,8 @@ -(void)processSegmentedItem:(id)segmentedItem setter:^(id obj, id newValue, FSObjectInspectorViewModelItem *item) { [(NSSegmentedCell*)obj setToolTip:newValue forSegment:i];} withLabel:[NSString stringWithFormat:@"ToolTip for segment %ld", (long)i] toMatrix:m + enumBiDict:nil + valueClass:NSString.class notNil:YES]; } if ([o widthForSegment:i] != 0) { @@ -2643,7 +2652,7 @@ - (void)processNSControl:(id)object ADD_CLASS_LABEL(@"NSButton Info"); ADD_BOOL([o allowsMixedState], allowsMixedState, setallowsMixedState, @"Allows mixed state") ADD_OBJECT_NOT_NIL([o alternateImage], alternateImage, setAlternateImage, @"Alternate image") - ADD_OBJECT([o alternateTitle], alternateTitle, setAlternateTitle, @"Alternate title") + ADD_STRING([o alternateTitle], alternateTitle, setAlternateTitle, @"Alternate title") ADD_OBJECT([o attributedAlternateTitle], attributedAlternateTitle, setAttributedAlternateTitle, @"Attributed alternate title") ADD_OBJECT([o attributedTitle], attributedTitle, setAttributedTitle, @"Attributed title") ADD_ENUM(BezelStyle, [o bezelStyle], bezelStyle, setbezelStyle, @"Bezel style") @@ -2656,7 +2665,7 @@ - (void)processNSControl:(id)object ADD_BOOL([o showsBorderOnlyWhileMouseInside], showsBorderOnlyWhileMouseInside, setshowsBorderOnlyWhileMouseInside, @"Shows border only while mouse inside") ADD_OBJECT_NOT_NIL([o sound], sound, setSound, @"Sound") ADD_ENUM(CellStateValue, [o state], state, setstate, @"State") - ADD_OBJECT([o title], title, setTitle, @"Title") + ADD_STRING([o title], title, setTitle, @"Title") } else if ([object isKindOfClass:[NSColorWell class]]) { NSColorWell* o = object; @@ -2812,7 +2821,7 @@ - (void)processNSControl:(id)object ADD_NUMBER([o minValue], minValue, setMinValue, @"Min value") ADD_NUMBER([o numberOfTickMarks], numberOfTickMarks, setNumberOfTickMarks, @"Number of tick marks") ADD_OBJECT(objectFromTickMarkPosition([o tickMarkPosition], [(NSSlider*)o isVertical] == 1), tickMarkPosition, setTickMarkPosition, @"Tick mark position") - ADD_OBJECT([o title], title, setTitle, @"title") + ADD_STRING([o title], title, setTitle, @"title") } else if ([object isKindOfClass:[NSTableView class]]) { if ([object isKindOfClass:[NSOutlineView class]]) { @@ -2985,8 +2994,8 @@ - (void)processNSWindow:(id)object ADD_OBJECT([o filename], filename, setFilename, @"Filename") ADD_BOOL([o isExpanded], expanded, setisExpanded, @"Is expanded") ADD_BOOL([o isExtensionHidden], extensionHidden, setisExtensionHidden, @"Is extension hidden") - ADD_OBJECT([o message], message, setMessage, @"Message") - ADD_OBJECT([o nameFieldLabel], nameFieldLabel, setNameFieldLabel, @"nameFieldLabel") + ADD_STRING([o message], message, setMessage, @"Message") + ADD_STRING([o nameFieldLabel], nameFieldLabel, setNameFieldLabel, @"nameFieldLabel") ADD_OBJECT([o prompt], prompt, setPrompt, @"Prompt") ADD_BOOL([o treatsFilePackagesAsDirectories], treatsFilePackagesAsDirectories, settreatsFilePackagesAsDirectories, @"Treats file packages as directories") ADD_OBJECT([o URL], URL, setURL, @"URL") @@ -3058,7 +3067,7 @@ - (void)processNSWindow:(id)object ADD_SIZE([o maxSize], @"Max size") ADD_SIZE([o minSize], @"Min size") ADD_OBJECT_NOT_NIL([o miniwindowImage], miniwindowImage, setMiniwindowImage, @"Miniwindow image") - ADD_OBJECT([o miniwindowTitle], miniwindowTitle, setMiniwindowTitle, @"Miniwindow title") + ADD_STRING([o miniwindowTitle], miniwindowTitle, setMiniwindowTitle, @"Miniwindow title") ADD_OBJECT_NOT_NIL([o parentWindow], parentWindow, setParentWindow, @"Parent window") ADD_ENUM(WindowBackingLocation, [o preferredBackingLocation], preferredBackingLocation, setpreferredBackingLocation, @"Preferred backing location") ADD_BOOL([o preservesContentDuringLiveResize], preservesContentDuringLiveResize, setpreservesContentDuringLiveResize, @"Preserves content during live resize") @@ -3070,7 +3079,7 @@ - (void)processNSWindow:(id)object ADD_BOOL([o showsResizeIndicator], showsResizeIndicator, setshowsResizeIndicator, @"Shows resize indicator") ADD_BOOL([o showsToolbarButton], showsToolbarButton, setshowsToolbarButton, @"Shows toolbar button") ADD_ENUM(WindowMask, [o styleMask], styleMask, setstyleMask, @"Style mask") - ADD_OBJECT([o title], title, setTitle, @"Title") + ADD_STRING([o title], title, setTitle, @"Title") ADD_OBJECT_NOT_NIL([o toolbar], toolbar, setToolbar, @"Toolbar") ADD_NUMBER([o userSpaceScaleFactor], userSpaceScaleFactor, setUserSpaceScaleFactor, @"User space scale factor") ADD_BOOL([o viewsNeedDisplay], viewsNeedDisplay, setviewsNeedDisplay, @"Views need display") diff --git a/FScriptFramework/FSObjectInspectorViewController.m b/FScriptFramework/FSObjectInspectorViewController.m index c89fac8..04ec8ec 100644 --- a/FScriptFramework/FSObjectInspectorViewController.m +++ b/FScriptFramework/FSObjectInspectorViewController.m @@ -113,6 +113,9 @@ -(NSString*)_viewIdentifierForValueClass:(Class)class if (class == NSColor.class) { return @"ObjectInspectorColorView"; } + else if (class == NSString.class) { + return @"ObjectInspectorStringView"; + } return @"ObjectInspectorReadOnlyView"; } diff --git a/FScriptFramework/FSObjectInspectorViewController.xib b/FScriptFramework/FSObjectInspectorViewController.xib index da3cd94..92c91f9 100644 --- a/FScriptFramework/FSObjectInspectorViewController.xib +++ b/FScriptFramework/FSObjectInspectorViewController.xib @@ -147,6 +147,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + From 991cb61e42c718c8faad988ed696fda3f84b8895 Mon Sep 17 00:00:00 2001 From: Ant Date: Fri, 21 Nov 2014 14:29:34 +0000 Subject: [PATCH 20/33] Inspector now handles options correctly --- FScript.xcodeproj/project.pbxproj | 132 ++++++++++++++---- FScriptFramework/FSDetailedObjectInspector.m | 21 +-- .../FSObjectBrowserViewObjectInfo.m | 108 ++++++++------ FScriptFramework/FSObjectEnumInfo.h | 3 + FScriptFramework/FSObjectEnumInfo.m | 4 + .../FSObjectInspectorBackgroundView.m | 6 - .../FSObjectInspectorOptionsViewController.h | 14 ++ .../FSObjectInspectorOptionsViewController.m | 22 +++ ...FSObjectInspectorOptionsViewController.xib | 101 ++++++++++++++ .../FSObjectInspectorOutlineView.h | 13 ++ .../FSObjectInspectorOutlineView.m | 23 +++ .../FSObjectInspectorViewController.h | 3 +- .../FSObjectInspectorViewController.m | 124 +++++++++++++++- .../FSObjectInspectorViewController.xib | 95 ++++++++++--- .../FSObjectInspectorViewModelItem.h | 1 - 15 files changed, 563 insertions(+), 107 deletions(-) create mode 100644 FScriptFramework/FSObjectInspectorOptionsViewController.h create mode 100644 FScriptFramework/FSObjectInspectorOptionsViewController.m create mode 100644 FScriptFramework/FSObjectInspectorOptionsViewController.xib create mode 100644 FScriptFramework/FSObjectInspectorOutlineView.h create mode 100644 FScriptFramework/FSObjectInspectorOutlineView.m diff --git a/FScript.xcodeproj/project.pbxproj b/FScript.xcodeproj/project.pbxproj index bfbd9e2..76f1bcd 100644 --- a/FScript.xcodeproj/project.pbxproj +++ b/FScript.xcodeproj/project.pbxproj @@ -2817,6 +2817,54 @@ ED8319421A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8319311A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.m */; }; ED8319431A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8319311A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.m */; }; ED8319441A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.m in Sources */ = {isa = PBXBuildFile; fileRef = ED8319311A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.m */; }; + EDA6AC401A1F407C001CD1F2 /* FSObjectInspectorOutlineView.h in Headers */ = {isa = PBXBuildFile; fileRef = EDA6AC3E1A1F407C001CD1F2 /* FSObjectInspectorOutlineView.h */; }; + EDA6AC411A1F407C001CD1F2 /* FSObjectInspectorOutlineView.h in Headers */ = {isa = PBXBuildFile; fileRef = EDA6AC3E1A1F407C001CD1F2 /* FSObjectInspectorOutlineView.h */; }; + EDA6AC421A1F407C001CD1F2 /* FSObjectInspectorOutlineView.h in Headers */ = {isa = PBXBuildFile; fileRef = EDA6AC3E1A1F407C001CD1F2 /* FSObjectInspectorOutlineView.h */; }; + EDA6AC431A1F407C001CD1F2 /* FSObjectInspectorOutlineView.h in Headers */ = {isa = PBXBuildFile; fileRef = EDA6AC3E1A1F407C001CD1F2 /* FSObjectInspectorOutlineView.h */; }; + EDA6AC441A1F407C001CD1F2 /* FSObjectInspectorOutlineView.h in Headers */ = {isa = PBXBuildFile; fileRef = EDA6AC3E1A1F407C001CD1F2 /* FSObjectInspectorOutlineView.h */; }; + EDA6AC451A1F407C001CD1F2 /* FSObjectInspectorOutlineView.h in Headers */ = {isa = PBXBuildFile; fileRef = EDA6AC3E1A1F407C001CD1F2 /* FSObjectInspectorOutlineView.h */; }; + EDA6AC461A1F407C001CD1F2 /* FSObjectInspectorOutlineView.h in Headers */ = {isa = PBXBuildFile; fileRef = EDA6AC3E1A1F407C001CD1F2 /* FSObjectInspectorOutlineView.h */; }; + EDA6AC471A1F407C001CD1F2 /* FSObjectInspectorOutlineView.h in Headers */ = {isa = PBXBuildFile; fileRef = EDA6AC3E1A1F407C001CD1F2 /* FSObjectInspectorOutlineView.h */; }; + EDA6AC481A1F407C001CD1F2 /* FSObjectInspectorOutlineView.h in Headers */ = {isa = PBXBuildFile; fileRef = EDA6AC3E1A1F407C001CD1F2 /* FSObjectInspectorOutlineView.h */; }; + EDA6AC491A1F407C001CD1F2 /* FSObjectInspectorOutlineView.m in Sources */ = {isa = PBXBuildFile; fileRef = EDA6AC3F1A1F407C001CD1F2 /* FSObjectInspectorOutlineView.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; + EDA6AC4A1A1F407C001CD1F2 /* FSObjectInspectorOutlineView.m in Sources */ = {isa = PBXBuildFile; fileRef = EDA6AC3F1A1F407C001CD1F2 /* FSObjectInspectorOutlineView.m */; }; + EDA6AC4B1A1F407C001CD1F2 /* FSObjectInspectorOutlineView.m in Sources */ = {isa = PBXBuildFile; fileRef = EDA6AC3F1A1F407C001CD1F2 /* FSObjectInspectorOutlineView.m */; }; + EDA6AC4C1A1F407C001CD1F2 /* FSObjectInspectorOutlineView.m in Sources */ = {isa = PBXBuildFile; fileRef = EDA6AC3F1A1F407C001CD1F2 /* FSObjectInspectorOutlineView.m */; }; + EDA6AC4D1A1F407C001CD1F2 /* FSObjectInspectorOutlineView.m in Sources */ = {isa = PBXBuildFile; fileRef = EDA6AC3F1A1F407C001CD1F2 /* FSObjectInspectorOutlineView.m */; }; + EDA6AC4E1A1F407C001CD1F2 /* FSObjectInspectorOutlineView.m in Sources */ = {isa = PBXBuildFile; fileRef = EDA6AC3F1A1F407C001CD1F2 /* FSObjectInspectorOutlineView.m */; }; + EDA6AC4F1A1F407C001CD1F2 /* FSObjectInspectorOutlineView.m in Sources */ = {isa = PBXBuildFile; fileRef = EDA6AC3F1A1F407C001CD1F2 /* FSObjectInspectorOutlineView.m */; }; + EDA6AC501A1F407C001CD1F2 /* FSObjectInspectorOutlineView.m in Sources */ = {isa = PBXBuildFile; fileRef = EDA6AC3F1A1F407C001CD1F2 /* FSObjectInspectorOutlineView.m */; }; + EDA6AC511A1F407C001CD1F2 /* FSObjectInspectorOutlineView.m in Sources */ = {isa = PBXBuildFile; fileRef = EDA6AC3F1A1F407C001CD1F2 /* FSObjectInspectorOutlineView.m */; }; + EDA6AC521A1F407C001CD1F2 /* FSObjectInspectorOutlineView.m in Sources */ = {isa = PBXBuildFile; fileRef = EDA6AC3F1A1F407C001CD1F2 /* FSObjectInspectorOutlineView.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; + EDA6AC561A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = EDA6AC531A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.h */; }; + EDA6AC571A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = EDA6AC531A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.h */; }; + EDA6AC581A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = EDA6AC531A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.h */; }; + EDA6AC591A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = EDA6AC531A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.h */; }; + EDA6AC5A1A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = EDA6AC531A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.h */; }; + EDA6AC5B1A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = EDA6AC531A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.h */; }; + EDA6AC5C1A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = EDA6AC531A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.h */; }; + EDA6AC5D1A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = EDA6AC531A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.h */; }; + EDA6AC5E1A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = EDA6AC531A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.h */; }; + EDA6AC5F1A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = EDA6AC541A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; + EDA6AC601A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = EDA6AC541A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.m */; }; + EDA6AC611A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = EDA6AC541A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.m */; }; + EDA6AC621A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = EDA6AC541A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.m */; }; + EDA6AC631A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = EDA6AC541A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.m */; }; + EDA6AC641A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = EDA6AC541A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.m */; }; + EDA6AC651A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = EDA6AC541A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.m */; }; + EDA6AC661A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = EDA6AC541A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.m */; }; + EDA6AC671A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = EDA6AC541A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.m */; }; + EDA6AC681A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = EDA6AC541A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; + EDA6AC691A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDA6AC551A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.xib */; }; + EDA6AC6A1A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDA6AC551A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.xib */; }; + EDA6AC6B1A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDA6AC551A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.xib */; }; + EDA6AC6C1A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDA6AC551A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.xib */; }; + EDA6AC6D1A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDA6AC551A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.xib */; }; + EDA6AC6E1A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDA6AC551A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.xib */; }; + EDA6AC6F1A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDA6AC551A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.xib */; }; + EDA6AC701A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDA6AC551A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.xib */; }; + EDA6AC711A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDA6AC551A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.xib */; }; + EDA6AC721A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDA6AC551A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.xib */; }; EDC2C8DE1A1A943600942777 /* FSDetailedObjectInspector.h in Headers */ = {isa = PBXBuildFile; fileRef = EDC2C8DC1A1A943600942777 /* FSDetailedObjectInspector.h */; }; EDC2C8DF1A1A943600942777 /* FSDetailedObjectInspector.h in Headers */ = {isa = PBXBuildFile; fileRef = EDC2C8DC1A1A943600942777 /* FSDetailedObjectInspector.h */; }; EDC2C8E01A1A943600942777 /* FSDetailedObjectInspector.h in Headers */ = {isa = PBXBuildFile; fileRef = EDC2C8DC1A1A943600942777 /* FSDetailedObjectInspector.h */; }; @@ -3761,20 +3809,6 @@ remoteGlobalIDString = 8F6DA5DE055FC6980050409A; remoteInfo = FSTest2; }; - EDC2C9011A1AA50D00942777 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 0CD4E2FA00D7DD4D7BE9C1BD /* Project object */; - proxyType = 1; - remoteGlobalIDString = 8F6DA6D8055FC6C80050409A; - remoteInfo = FSTest1; - }; - EDC2C9031A1AA50D00942777 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 0CD4E2FA00D7DD4D7BE9C1BD /* Project object */; - proxyType = 1; - remoteGlobalIDString = 8F6DA5DE055FC6980050409A; - remoteInfo = FSTest2; - }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ @@ -4231,6 +4265,11 @@ ED83191C1A1BC2B500290EE2 /* FSUtils.m */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 8; lastKnownFileType = sourcecode.c.objc; path = FSUtils.m; sourceTree = ""; tabWidth = 8; }; ED8319301A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "FSObjectInspectorViewController+NonArc.h"; sourceTree = ""; }; ED8319311A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.m */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 8; lastKnownFileType = sourcecode.c.objc; path = "FSObjectInspectorViewController+NonArc.m"; sourceTree = ""; tabWidth = 8; }; + EDA6AC3E1A1F407C001CD1F2 /* FSObjectInspectorOutlineView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSObjectInspectorOutlineView.h; sourceTree = ""; }; + EDA6AC3F1A1F407C001CD1F2 /* FSObjectInspectorOutlineView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FSObjectInspectorOutlineView.m; sourceTree = ""; }; + EDA6AC531A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSObjectInspectorOptionsViewController.h; sourceTree = ""; }; + EDA6AC541A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FSObjectInspectorOptionsViewController.m; sourceTree = ""; }; + EDA6AC551A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = FSObjectInspectorOptionsViewController.xib; sourceTree = ""; }; EDC2C8DC1A1A943600942777 /* FSDetailedObjectInspector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSDetailedObjectInspector.h; sourceTree = ""; }; EDC2C8DD1A1A943600942777 /* FSDetailedObjectInspector.m */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 8; lastKnownFileType = sourcecode.c.objc; path = FSDetailedObjectInspector.m; sourceTree = ""; tabWidth = 8; }; EDC2C8EE1A1AA34D00942777 /* FSObjectInspectorBackgroundView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSObjectInspectorBackgroundView.h; sourceTree = ""; }; @@ -5380,6 +5419,11 @@ EDC2C8EF1A1AA34D00942777 /* FSObjectInspectorBackgroundView.m */, ED3CB63F1A1E5B3300771077 /* FSColorWell.h */, ED3CB6401A1E5B3300771077 /* FSColorWell.m */, + EDA6AC3E1A1F407C001CD1F2 /* FSObjectInspectorOutlineView.h */, + EDA6AC3F1A1F407C001CD1F2 /* FSObjectInspectorOutlineView.m */, + EDA6AC531A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.h */, + EDA6AC541A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.m */, + EDA6AC551A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.xib */, ); name = "Object Inspector"; sourceTree = ""; @@ -5483,6 +5527,7 @@ 8F6DA600055FC6980050409A /* FScriptFunctions.h in Headers */, 8F6DA601055FC6980050409A /* FSInterpreter.h in Headers */, 8F6DA602055FC6980050409A /* FSInterpreterView.h in Headers */, + EDA6AC5E1A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.h in Headers */, 8F6DA603055FC6980050409A /* FSInterpreterViewIBHeader.h in Headers */, 8F6DA604055FC6980050409A /* FSNSArray.h in Headers */, 8F6DA605055FC6980050409A /* FSNSDictionary.h in Headers */, @@ -5549,6 +5594,7 @@ 8F60217605A25CDC0004EFF1 /* FSCollectionInspectorTableView.h in Headers */, 8F60F24D05A9FE8B00985FEC /* FSNSSet.h in Headers */, 8FDCCD5605C09F8200747C0A /* FSAttributedStringInspector.h in Headers */, + EDA6AC481A1F407C001CD1F2 /* FSObjectInspectorOutlineView.h in Headers */, 8FDCCDC705C0A23100747C0A /* FSNSAttributedString.h in Headers */, 8F71F72605C43A7D00C34794 /* FSInterpreterViewPrivate.h in Headers */, 8F0B670105C5639E0099180D /* FScriptMenuItem.h in Headers */, @@ -5763,6 +5809,7 @@ 8F95E3C708034A670030B65C /* FSPredicateTextView.h in Headers */, 8FE7E0EA082AD964008231E8 /* FSCoreDataSample.h in Headers */, 8F936BFA082E8E5000A04EBF /* FSNSManagedObjectContext.h in Headers */, + EDA6AC561A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.h in Headers */, 8F917E28095F5DE5000932D0 /* FSObjectBrowserSearchField.h in Headers */, 8F90A2F7096DB0660064F4BC /* FSBlockCompilationResult.h in Headers */, 8FD7D4A80975B377009B2685 /* FSReturnSignal.h in Headers */, @@ -5775,6 +5822,7 @@ 8F4822090D2C317700754A4E /* FSTestObjCClass2.h in Headers */, 8F8112F60D85E58200CB3407 /* FSCNCategory.h in Headers */, 8F59CA750D86DD0800D67A78 /* FSCNMessage.h in Headers */, + EDA6AC401A1F407C001CD1F2 /* FSObjectInspectorOutlineView.h in Headers */, 8F7223830D870C6A00394C99 /* FSCNSuper.h in Headers */, 8F2E34220D8DB61C00912543 /* FSCNUnaryMessage.h in Headers */, 8F2E34350D8DBF6A00912543 /* FSCNBinaryMessage.h in Headers */, @@ -5920,6 +5968,7 @@ EDFB30021A188B4E002C8DD7 /* CHBidirectionalDictionary.h in Headers */, 8FDCCD5205C09F8200747C0A /* FSAttributedStringInspector.h in Headers */, 8FDCCDC305C0A23000747C0A /* FSNSAttributedString.h in Headers */, + EDA6AC571A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.h in Headers */, 8F71F72405C43A7D00C34794 /* FSInterpreterViewPrivate.h in Headers */, 8F0B66FF05C5639E0099180D /* FScriptMenuItem.h in Headers */, 8F658B2F05C9694F0040FB24 /* FSNSFont.h in Headers */, @@ -5939,6 +5988,7 @@ 8F95E3C308034A670030B65C /* FSPredicateTextView.h in Headers */, 8FE7E0EC082AD964008231E8 /* FSCoreDataSample.h in Headers */, 8F936BF1082E8DA400A04EBF /* FSManagedObjectContextInspector.h in Headers */, + EDA6AC411A1F407C001CD1F2 /* FSObjectInspectorOutlineView.h in Headers */, EDC2C8F11A1AA34D00942777 /* FSObjectInspectorBackgroundView.h in Headers */, 8F936BFD082E8E5C00A04EBF /* FSNSManagedObjectContext.h in Headers */, 8F917E2C095F5DE7000932D0 /* FSObjectBrowserSearchField.h in Headers */, @@ -6119,6 +6169,7 @@ BA22321E189FA403002C5B6A /* FSPredicateTextView.h in Headers */, BA22321F189FA403002C5B6A /* FSCoreDataSample.h in Headers */, BA223220189FA403002C5B6A /* FSNSManagedObjectContext.h in Headers */, + EDA6AC581A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.h in Headers */, BA223221189FA403002C5B6A /* FSObjectBrowserSearchField.h in Headers */, BA223222189FA403002C5B6A /* FSBlockCompilationResult.h in Headers */, BA223223189FA403002C5B6A /* FSReturnSignal.h in Headers */, @@ -6131,6 +6182,7 @@ BA22322A189FA403002C5B6A /* FSTestObjCClass2.h in Headers */, BA22322B189FA403002C5B6A /* FSCNCategory.h in Headers */, BA22322C189FA403002C5B6A /* FSCNMessage.h in Headers */, + EDA6AC421A1F407C001CD1F2 /* FSObjectInspectorOutlineView.h in Headers */, BA22322D189FA403002C5B6A /* FSCNSuper.h in Headers */, BA22322E189FA403002C5B6A /* FSCNUnaryMessage.h in Headers */, BA22322F189FA403002C5B6A /* FSCNBinaryMessage.h in Headers */, @@ -6299,6 +6351,7 @@ BA2233DE189FA412002C5B6A /* FSPredicateTextView.h in Headers */, BA2233DF189FA412002C5B6A /* FSCoreDataSample.h in Headers */, BA2233E0189FA412002C5B6A /* FSNSManagedObjectContext.h in Headers */, + EDA6AC5A1A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.h in Headers */, BA2233E1189FA412002C5B6A /* FSObjectBrowserSearchField.h in Headers */, BA2233E2189FA412002C5B6A /* FSBlockCompilationResult.h in Headers */, BA2233E3189FA412002C5B6A /* FSReturnSignal.h in Headers */, @@ -6311,6 +6364,7 @@ BA2233EA189FA412002C5B6A /* FSTestObjCClass2.h in Headers */, BA2233EB189FA412002C5B6A /* FSCNCategory.h in Headers */, BA2233EC189FA412002C5B6A /* FSCNMessage.h in Headers */, + EDA6AC441A1F407C001CD1F2 /* FSObjectInspectorOutlineView.h in Headers */, BA2233ED189FA412002C5B6A /* FSCNSuper.h in Headers */, BA2233EE189FA412002C5B6A /* FSCNUnaryMessage.h in Headers */, BA2233EF189FA412002C5B6A /* FSCNBinaryMessage.h in Headers */, @@ -6456,6 +6510,7 @@ EDFB30041A188B4E002C8DD7 /* CHBidirectionalDictionary.h in Headers */, BA223585189FA429002C5B6A /* FSAttributedStringInspector.h in Headers */, BA223586189FA429002C5B6A /* FSNSAttributedString.h in Headers */, + EDA6AC591A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.h in Headers */, BA223587189FA429002C5B6A /* FSInterpreterViewPrivate.h in Headers */, BA223588189FA429002C5B6A /* FScriptMenuItem.h in Headers */, BA223589189FA429002C5B6A /* FSNSFont.h in Headers */, @@ -6475,6 +6530,7 @@ BA223597189FA429002C5B6A /* FSPredicateTextView.h in Headers */, BA223598189FA429002C5B6A /* FSCoreDataSample.h in Headers */, BA223599189FA429002C5B6A /* FSManagedObjectContextInspector.h in Headers */, + EDA6AC431A1F407C001CD1F2 /* FSObjectInspectorOutlineView.h in Headers */, EDC2C8F31A1AA34D00942777 /* FSObjectInspectorBackgroundView.h in Headers */, BA22359A189FA429002C5B6A /* FSNSManagedObjectContext.h in Headers */, BA22359B189FA429002C5B6A /* FSObjectBrowserSearchField.h in Headers */, @@ -6632,6 +6688,7 @@ EDFB30061A188B4E002C8DD7 /* CHBidirectionalDictionary.h in Headers */, BA2236CD189FA431002C5B6A /* FSAttributedStringInspector.h in Headers */, BA2236CE189FA431002C5B6A /* FSNSAttributedString.h in Headers */, + EDA6AC5B1A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.h in Headers */, BA2236CF189FA431002C5B6A /* FSInterpreterViewPrivate.h in Headers */, BA2236D0189FA431002C5B6A /* FScriptMenuItem.h in Headers */, BA2236D1189FA431002C5B6A /* FSNSFont.h in Headers */, @@ -6651,6 +6708,7 @@ BA2236DF189FA431002C5B6A /* FSPredicateTextView.h in Headers */, BA2236E0189FA431002C5B6A /* FSCoreDataSample.h in Headers */, BA2236E1189FA431002C5B6A /* FSManagedObjectContextInspector.h in Headers */, + EDA6AC451A1F407C001CD1F2 /* FSObjectInspectorOutlineView.h in Headers */, EDC2C8F51A1AA34D00942777 /* FSObjectInspectorBackgroundView.h in Headers */, BA2236E2189FA431002C5B6A /* FSNSManagedObjectContext.h in Headers */, BA2236E3189FA431002C5B6A /* FSObjectBrowserSearchField.h in Headers */, @@ -6831,6 +6889,7 @@ EDC2C9831A1AA50D00942777 /* FSPredicateTextView.h in Headers */, EDC2C9841A1AA50D00942777 /* FSCoreDataSample.h in Headers */, EDC2C9851A1AA50D00942777 /* FSNSManagedObjectContext.h in Headers */, + EDA6AC5C1A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.h in Headers */, EDC2C9861A1AA50D00942777 /* FSObjectBrowserSearchField.h in Headers */, EDC2C9871A1AA50D00942777 /* FSBlockCompilationResult.h in Headers */, EDC2C9881A1AA50D00942777 /* FSReturnSignal.h in Headers */, @@ -6843,6 +6902,7 @@ EDC2C98F1A1AA50D00942777 /* FSTestObjCClass2.h in Headers */, EDC2C9901A1AA50D00942777 /* FSCNCategory.h in Headers */, EDC2C9911A1AA50D00942777 /* FSCNMessage.h in Headers */, + EDA6AC461A1F407C001CD1F2 /* FSObjectInspectorOutlineView.h in Headers */, EDC2C9921A1AA50D00942777 /* FSCNSuper.h in Headers */, EDC2C9931A1AA50D00942777 /* FSCNUnaryMessage.h in Headers */, EDC2C9941A1AA50D00942777 /* FSCNBinaryMessage.h in Headers */, @@ -6890,6 +6950,7 @@ EDC2CAD91A1AA52500942777 /* FSObjectBrowser.h in Headers */, EDC2CADA1A1AA52500942777 /* FSObjectBrowserCell.h in Headers */, EDC2CADB1A1AA52500942777 /* FSObjectInspectorViewModelItem.h in Headers */, + EDA6AC471A1F407C001CD1F2 /* FSObjectInspectorOutlineView.h in Headers */, EDC2CADC1A1AA52500942777 /* FSBlock.h in Headers */, EDC2CADD1A1AA52500942777 /* BlockInspector.h in Headers */, EDC2CADE1A1AA52500942777 /* BlockPrivate.h in Headers */, @@ -7020,6 +7081,7 @@ EDC2CB591A1AA52500942777 /* FSTestObjCClass2.h in Headers */, EDC2CB5A1A1AA52500942777 /* FSCNCategory.h in Headers */, EDC2CB5B1A1AA52500942777 /* FSCNMessage.h in Headers */, + EDA6AC5D1A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.h in Headers */, EDC2CB5C1A1AA52500942777 /* FSCNSuper.h in Headers */, EDC2CB5D1A1AA52500942777 /* FSCNUnaryMessage.h in Headers */, EDC2CB5E1A1AA52500942777 /* FSCNBinaryMessage.h in Headers */, @@ -7247,8 +7309,6 @@ buildRules = ( ); dependencies = ( - EDC2C9001A1AA50D00942777 /* PBXTargetDependency */, - EDC2C9021A1AA50D00942777 /* PBXTargetDependency */, ); name = "F-Script 10.10"; productName = fs; @@ -7342,6 +7402,7 @@ EDE508D919DD4D310012F16A /* FSConsole.xib in Resources */, 8F6597B60C37F061006CDCA0 /* FScriptMenuItem.png in Resources */, 8F6631D20C4A270000FA798A /* FSMovieInspector.nib in Resources */, + EDA6AC721A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.xib in Resources */, EDFB2FFA1A17E345002C8DD7 /* FSObjectBrowserButtonsInspector.xib in Resources */, 8FE3DC9B0D26C0FD00A1D767 /* FSTestClasses.txt in Resources */, ); @@ -7358,6 +7419,7 @@ 8F6DA655055FC6980050409A /* KTest.txt in Resources */, 8F6DA656055FC6980050409A /* license.txt in Resources */, EDFB2FF91A17E345002C8DD7 /* FSObjectBrowserButtonsInspector.xib in Resources */, + EDA6AC711A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.xib in Resources */, 8F6DA657055FC6980050409A /* genObjInspector.nib in Resources */, 8F6DA658055FC6980050409A /* fs.scriptSuite in Resources */, 8F6DA659055FC6980050409A /* fs.scriptTerminology in Resources */, @@ -7410,6 +7472,7 @@ EDE508DB19DD4FDC0012F16A /* FScriptPreferences.xib in Resources */, 8F2D067105CED9B9007EA81B /* run.tiff in Resources */, 8F56036805CF22660044FA65 /* build.tiff in Resources */, + EDA6AC691A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.xib in Resources */, 8FA8EFA007739FD5001BEC7B /* FSCollectionInspectorView.nib in Resources */, 8FCA6B88078E0E4F005FC6B2 /* FSManagedObjectContextInspector.nib in Resources */, 8F6631D40C4A270200FA798A /* FSMovieInspector.nib in Resources */, @@ -7443,6 +7506,7 @@ EDFB2FF41A17E345002C8DD7 /* FSObjectBrowserButtonsInspector.xib in Resources */, 8FA8EF9F07739FD4001BEC7B /* FSCollectionInspectorView.nib in Resources */, 8F936BEF082E8D9F00A04EBF /* FSManagedObjectContextInspector.nib in Resources */, + EDA6AC6A1A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.xib in Resources */, 8F6631D50C4A270200FA798A /* FSMovieInspector.nib in Resources */, 8FE3DC9D0D26C0FD00A1D767 /* FSTestClasses.txt in Resources */, ); @@ -7475,6 +7539,7 @@ EDE508DD19DD4FDC0012F16A /* FScriptPreferences.xib in Resources */, BA22325E189FA403002C5B6A /* run.tiff in Resources */, BA22325F189FA403002C5B6A /* build.tiff in Resources */, + EDA6AC6B1A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.xib in Resources */, BA223260189FA403002C5B6A /* FSCollectionInspectorView.nib in Resources */, BA223261189FA403002C5B6A /* FSManagedObjectContextInspector.nib in Resources */, BA223262189FA403002C5B6A /* FSMovieInspector.nib in Resources */, @@ -7510,6 +7575,7 @@ EDE508DF19DD4FDC0012F16A /* FScriptPreferences.xib in Resources */, BA22341E189FA412002C5B6A /* run.tiff in Resources */, BA22341F189FA412002C5B6A /* build.tiff in Resources */, + EDA6AC6D1A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.xib in Resources */, BA223420189FA412002C5B6A /* FSCollectionInspectorView.nib in Resources */, BA223421189FA412002C5B6A /* FSManagedObjectContextInspector.nib in Resources */, BA223422189FA412002C5B6A /* FSMovieInspector.nib in Resources */, @@ -7543,6 +7609,7 @@ EDFB2FF61A17E345002C8DD7 /* FSObjectBrowserButtonsInspector.xib in Resources */, BA2235D4189FA429002C5B6A /* FSCollectionInspectorView.nib in Resources */, BA2235D5189FA429002C5B6A /* FSManagedObjectContextInspector.nib in Resources */, + EDA6AC6C1A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.xib in Resources */, BA2235D6189FA429002C5B6A /* FSMovieInspector.nib in Resources */, BA2235D7189FA429002C5B6A /* FSTestClasses.txt in Resources */, ); @@ -7573,6 +7640,7 @@ EDFB2FF81A17E345002C8DD7 /* FSObjectBrowserButtonsInspector.xib in Resources */, BA22371C189FA431002C5B6A /* FSCollectionInspectorView.nib in Resources */, BA22371D189FA431002C5B6A /* FSManagedObjectContextInspector.nib in Resources */, + EDA6AC6E1A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.xib in Resources */, BA22371E189FA431002C5B6A /* FSMovieInspector.nib in Resources */, BA22371F189FA431002C5B6A /* FSTestClasses.txt in Resources */, ); @@ -7605,6 +7673,7 @@ EDC2C9C41A1AA50D00942777 /* FScriptPreferences.xib in Resources */, EDC2C9C51A1AA50D00942777 /* run.tiff in Resources */, EDC2C9C61A1AA50D00942777 /* build.tiff in Resources */, + EDA6AC6F1A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.xib in Resources */, EDC2C9C71A1AA50D00942777 /* FSCollectionInspectorView.nib in Resources */, EDC2C9C81A1AA50D00942777 /* FSManagedObjectContextInspector.nib in Resources */, EDC2C9C91A1AA50D00942777 /* FSMovieInspector.nib in Resources */, @@ -7638,6 +7707,7 @@ EDC2CB8A1A1AA52500942777 /* FSObjectBrowserButtonsInspector.xib in Resources */, EDC2CB8B1A1AA52500942777 /* FSCollectionInspectorView.nib in Resources */, EDC2CB8C1A1AA52500942777 /* FSManagedObjectContextInspector.nib in Resources */, + EDA6AC701A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.xib in Resources */, EDC2CB8D1A1AA52500942777 /* FSMovieInspector.nib in Resources */, EDC2CB8E1A1AA52500942777 /* FSTestClasses.txt in Resources */, ); @@ -7818,6 +7888,7 @@ 8F0CBC480BDB94AD002B0AD7 /* FSObjectBrowserViewObjectInfo.m in Sources */, 8F0CBC490BDB94AD002B0AD7 /* FSCollectionInspectorView.m in Sources */, EDFB302D1A188B4E002C8DD7 /* Util.m in Sources */, + EDA6AC521A1F407C001CD1F2 /* FSObjectInspectorOutlineView.m in Sources */, 8F0CBC4A0BDB94AD002B0AD7 /* ArrayRepFetchRequest.m in Sources */, 8F0CBC4B0BDB94AD002B0AD7 /* FSPointer.m in Sources */, 8F0CBC4C0BDB94AD002B0AD7 /* FSGenericPointer.m in Sources */, @@ -7851,6 +7922,7 @@ 8F747DAF0DA03AE200148342 /* FSCNPrecomputedObject.m in Sources */, 8F747DBE0DA0467100148342 /* FSCNArray.m in Sources */, 8FAE79AC0DA0ED5D00CB6E14 /* FSCNBlock.m in Sources */, + EDA6AC681A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.m in Sources */, 8FAE79F30DA109C500CB6E14 /* FSCNAssignment.m in Sources */, 8F45CBBF0DA813F200AFA8C8 /* FSCNMethod.m in Sources */, 8FD0A3140DD7276000E47459 /* FSCNReturn.m in Sources */, @@ -7922,6 +7994,7 @@ 8F6DA68E055FC6980050409A /* FSUnarchiver.m in Sources */, 8F6DA68F055FC6980050409A /* FSGenericObjectInspector.m in Sources */, 8F6DA690055FC6980050409A /* KTestManager.m in Sources */, + EDA6AC671A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.m in Sources */, 8F6DA691055FC6980050409A /* MessagePatternCodeNode.m in Sources */, 8F6DA692055FC6980050409A /* FSMiscTools.m in Sources */, 8F6DA693055FC6980050409A /* FSMsgContext.m in Sources */, @@ -7997,6 +8070,7 @@ 8F7223820D870C6A00394C99 /* FSCNSuper.m in Sources */, ED8319431A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.m in Sources */, 8F2E34250D8DB61C00912543 /* FSCNUnaryMessage.m in Sources */, + EDA6AC511A1F407C001CD1F2 /* FSObjectInspectorOutlineView.m in Sources */, 8F2E34380D8DBF6A00912543 /* FSCNBinaryMessage.m in Sources */, 8F2E34410D8DBFE700912543 /* FSCNKeywordMessage.m in Sources */, EDC2C8ED1A1A99F600942777 /* FSObjectInspectorViewController.m in Sources */, @@ -8168,6 +8242,7 @@ 8F48220A0D2C317700754A4E /* FSTestObjCClass2.m in Sources */, 8F8112F70D85E58200CB3407 /* FSCNCategory.m in Sources */, 8F59CA760D86DD0800D67A78 /* FSCNMessage.m in Sources */, + EDA6AC5F1A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.m in Sources */, 8F7223840D870C6A00394C99 /* FSCNSuper.m in Sources */, 8F2E34230D8DB61C00912543 /* FSCNUnaryMessage.m in Sources */, 8F2E34360D8DBF6A00912543 /* FSCNBinaryMessage.m in Sources */, @@ -8176,6 +8251,7 @@ 8F8F58670D9FE6AA00ED0FED /* FSCNStatementList.m in Sources */, 8F747DAE0DA03AE200148342 /* FSCNPrecomputedObject.m in Sources */, 8F747DBD0DA0467100148342 /* FSCNArray.m in Sources */, + EDA6AC491A1F407C001CD1F2 /* FSObjectInspectorOutlineView.m in Sources */, 8FAE79B20DA0ED5D00CB6E14 /* FSCNBlock.m in Sources */, 8FAE79F90DA109C500CB6E14 /* FSCNAssignment.m in Sources */, 8F45CBC30DA813F200AFA8C8 /* FSCNMethod.m in Sources */, @@ -8299,6 +8375,7 @@ 8F4E294F075B8E5600F8DCDB /* FSObjectBrowserViewObjectInfo.m in Sources */, 8FA8EDEC07735B3B001BEC7B /* FSCollectionInspectorView.m in Sources */, 8FBC289F077B7D5200F9B4A2 /* ArrayRepFetchRequest.m in Sources */, + EDA6AC4A1A1F407C001CD1F2 /* FSObjectInspectorOutlineView.m in Sources */, EDFB30181A188B4E002C8DD7 /* CHMutableDictionary.m in Sources */, 8F8EA731077F6A5200AC1C96 /* FSPointer.m in Sources */, 8F8EA7A1077F6C9300AC1C96 /* FSGenericPointer.m in Sources */, @@ -8332,6 +8409,7 @@ 8F747DB90DA0467100148342 /* FSCNArray.m in Sources */, 8FAE79AE0DA0ED5D00CB6E14 /* FSCNBlock.m in Sources */, 8FAE79F50DA109C500CB6E14 /* FSCNAssignment.m in Sources */, + EDA6AC601A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.m in Sources */, ED3004EF1A1A86EF00675D94 /* FSObjectInspectorViewController.m in Sources */, 8F45CBC10DA813F200AFA8C8 /* FSCNMethod.m in Sources */, 8FD0A3160DD7276000E47459 /* FSCNReturn.m in Sources */, @@ -8483,6 +8561,7 @@ BA2232D6189FA403002C5B6A /* FSTestObjCClass2.m in Sources */, BA2232D7189FA403002C5B6A /* FSCNCategory.m in Sources */, BA2232D8189FA403002C5B6A /* FSCNMessage.m in Sources */, + EDA6AC611A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.m in Sources */, BA2232D9189FA403002C5B6A /* FSCNSuper.m in Sources */, BA2232DA189FA403002C5B6A /* FSCNUnaryMessage.m in Sources */, BA2232DB189FA403002C5B6A /* FSCNBinaryMessage.m in Sources */, @@ -8491,6 +8570,7 @@ BA2232DE189FA403002C5B6A /* FSCNStatementList.m in Sources */, BA2232DF189FA403002C5B6A /* FSCNPrecomputedObject.m in Sources */, BA2232E0189FA403002C5B6A /* FSCNArray.m in Sources */, + EDA6AC4B1A1F407C001CD1F2 /* FSObjectInspectorOutlineView.m in Sources */, BA2232E1189FA403002C5B6A /* FSCNBlock.m in Sources */, BA2232E2189FA403002C5B6A /* FSCNAssignment.m in Sources */, BA2232E3189FA403002C5B6A /* FSCNMethod.m in Sources */, @@ -8644,6 +8724,7 @@ BA223496189FA412002C5B6A /* FSTestObjCClass2.m in Sources */, BA223497189FA412002C5B6A /* FSCNCategory.m in Sources */, BA223498189FA412002C5B6A /* FSCNMessage.m in Sources */, + EDA6AC631A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.m in Sources */, BA223499189FA412002C5B6A /* FSCNSuper.m in Sources */, BA22349A189FA412002C5B6A /* FSCNUnaryMessage.m in Sources */, BA22349B189FA412002C5B6A /* FSCNBinaryMessage.m in Sources */, @@ -8652,6 +8733,7 @@ BA22349E189FA412002C5B6A /* FSCNStatementList.m in Sources */, BA22349F189FA412002C5B6A /* FSCNPrecomputedObject.m in Sources */, BA2234A0189FA412002C5B6A /* FSCNArray.m in Sources */, + EDA6AC4D1A1F407C001CD1F2 /* FSObjectInspectorOutlineView.m in Sources */, BA2234A1189FA412002C5B6A /* FSCNBlock.m in Sources */, BA2234A2189FA412002C5B6A /* FSCNAssignment.m in Sources */, BA2234A3189FA412002C5B6A /* FSCNMethod.m in Sources */, @@ -8775,6 +8857,7 @@ BA22362E189FA429002C5B6A /* FSObjectBrowserViewObjectInfo.m in Sources */, BA22362F189FA429002C5B6A /* FSCollectionInspectorView.m in Sources */, BA223630189FA429002C5B6A /* ArrayRepFetchRequest.m in Sources */, + EDA6AC4C1A1F407C001CD1F2 /* FSObjectInspectorOutlineView.m in Sources */, EDFB301A1A188B4E002C8DD7 /* CHMutableDictionary.m in Sources */, BA223631189FA429002C5B6A /* FSPointer.m in Sources */, BA223632189FA429002C5B6A /* FSGenericPointer.m in Sources */, @@ -8808,6 +8891,7 @@ BA22364D189FA429002C5B6A /* FSCNArray.m in Sources */, BA22364E189FA429002C5B6A /* FSCNBlock.m in Sources */, BA22364F189FA429002C5B6A /* FSCNAssignment.m in Sources */, + EDA6AC621A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.m in Sources */, ED3004F11A1A86EF00675D94 /* FSObjectInspectorViewController.m in Sources */, BA223650189FA429002C5B6A /* FSCNMethod.m in Sources */, BA223651189FA429002C5B6A /* FSCNReturn.m in Sources */, @@ -8929,6 +9013,7 @@ BA223776189FA431002C5B6A /* FSObjectBrowserViewObjectInfo.m in Sources */, BA223777189FA431002C5B6A /* FSCollectionInspectorView.m in Sources */, BA223778189FA431002C5B6A /* ArrayRepFetchRequest.m in Sources */, + EDA6AC4E1A1F407C001CD1F2 /* FSObjectInspectorOutlineView.m in Sources */, EDFB301C1A188B4E002C8DD7 /* CHMutableDictionary.m in Sources */, BA223779189FA432002C5B6A /* FSPointer.m in Sources */, BA22377A189FA432002C5B6A /* FSGenericPointer.m in Sources */, @@ -8962,6 +9047,7 @@ BA223795189FA432002C5B6A /* FSCNArray.m in Sources */, BA223796189FA432002C5B6A /* FSCNBlock.m in Sources */, BA223797189FA432002C5B6A /* FSCNAssignment.m in Sources */, + EDA6AC641A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.m in Sources */, ED3004F31A1A86EF00675D94 /* FSObjectInspectorViewController.m in Sources */, BA223798189FA432002C5B6A /* FSCNMethod.m in Sources */, BA223799189FA432002C5B6A /* FSCNReturn.m in Sources */, @@ -9113,6 +9199,7 @@ EDC2CA451A1AA50D00942777 /* FSTestObjCClass2.m in Sources */, EDC2CA461A1AA50D00942777 /* FSCNCategory.m in Sources */, EDC2CA471A1AA50D00942777 /* FSCNMessage.m in Sources */, + EDA6AC651A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.m in Sources */, EDC2CA481A1AA50D00942777 /* FSCNSuper.m in Sources */, EDC2CA491A1AA50D00942777 /* FSCNUnaryMessage.m in Sources */, EDC2CA4A1A1AA50D00942777 /* FSCNBinaryMessage.m in Sources */, @@ -9121,6 +9208,7 @@ EDC2CA4D1A1AA50D00942777 /* FSCNStatementList.m in Sources */, EDC2CA4E1A1AA50D00942777 /* FSCNPrecomputedObject.m in Sources */, EDC2CA4F1A1AA50D00942777 /* FSCNArray.m in Sources */, + EDA6AC4F1A1F407C001CD1F2 /* FSObjectInspectorOutlineView.m in Sources */, EDC2CA501A1AA50D00942777 /* FSCNBlock.m in Sources */, EDC2CA511A1AA50D00942777 /* FSCNAssignment.m in Sources */, EDC2CA521A1AA50D00942777 /* FSCNMethod.m in Sources */, @@ -9244,6 +9332,7 @@ EDC2CBE91A1AA52500942777 /* FSObjectBrowserViewObjectInfo.m in Sources */, EDC2CBEA1A1AA52500942777 /* FSCollectionInspectorView.m in Sources */, EDC2CBEB1A1AA52500942777 /* ArrayRepFetchRequest.m in Sources */, + EDA6AC501A1F407C001CD1F2 /* FSObjectInspectorOutlineView.m in Sources */, EDC2CBEC1A1AA52500942777 /* CHMutableDictionary.m in Sources */, EDC2CBED1A1AA52500942777 /* FSPointer.m in Sources */, EDC2CBEE1A1AA52500942777 /* FSGenericPointer.m in Sources */, @@ -9277,6 +9366,7 @@ EDC2CC0A1A1AA52500942777 /* FSCNArray.m in Sources */, EDC2CC0B1A1AA52500942777 /* FSCNBlock.m in Sources */, EDC2CC0C1A1AA52500942777 /* FSCNAssignment.m in Sources */, + EDA6AC661A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.m in Sources */, EDC2CC0D1A1AA52500942777 /* FSObjectInspectorViewController.m in Sources */, EDC2CC0E1A1AA52500942777 /* FSCNMethod.m in Sources */, EDC2CC0F1A1AA52500942777 /* FSCNReturn.m in Sources */, @@ -9337,16 +9427,6 @@ target = 8F6DA5DE055FC6980050409A /* FSTest2 */; targetProxy = BA223366189FA412002C5B6A /* PBXContainerItemProxy */; }; - EDC2C9001A1AA50D00942777 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 8F6DA6D8055FC6C80050409A /* FSTest1 */; - targetProxy = EDC2C9011A1AA50D00942777 /* PBXContainerItemProxy */; - }; - EDC2C9021A1AA50D00942777 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 8F6DA5DE055FC6980050409A /* FSTest2 */; - targetProxy = EDC2C9031A1AA50D00942777 /* PBXContainerItemProxy */; - }; /* End PBXTargetDependency section */ /* Begin PBXVariantGroup section */ diff --git a/FScriptFramework/FSDetailedObjectInspector.m b/FScriptFramework/FSDetailedObjectInspector.m index 6047784..58c9022 100644 --- a/FScriptFramework/FSDetailedObjectInspector.m +++ b/FScriptFramework/FSDetailedObjectInspector.m @@ -112,16 +112,21 @@ -(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NS NSLog(@"Value changed for %@. Change = %@", object, change); id target = self.inspectedObject; FSObjectInspectorViewModelItem *item = object; - if (item.setter) { - if (item.valueType == FS_ITEM_OBJECT) { - item.setter(target, item.value, item); - NSLog(@"[%@ setValue:%@ forKey:%@",target,item.value,item.getter); - } - else { - item.setter(target, @(item.numValue), item); - NSLog(@"[%@ setValue:%@ forKey:%@",target,@(item.numValue),item.getter); + @try { + if (item.setter) { + if (item.valueType == FS_ITEM_OBJECT) { + item.setter(target, item.value, item); + NSLog(@"[%@ setValue:%@ forKey:%@",target,item.value,item.getter); + } + else { + item.setter(target, @(item.numValue), item); + NSLog(@"[%@ setValue:%@ forKey:%@",target,@(item.numValue),item.getter); + } } } + @catch(NSException *e) { + NSLog(@"Exception when setting value for key %@ on %@: %@", keyPath, target, e); + } } } /* diff --git a/FScriptFramework/FSObjectBrowserViewObjectInfo.m b/FScriptFramework/FSObjectBrowserViewObjectInfo.m index ce6e3f7..70cf5db 100644 --- a/FScriptFramework/FSObjectBrowserViewObjectInfo.m +++ b/FScriptFramework/FSObjectBrowserViewObjectInfo.m @@ -123,20 +123,33 @@ - (void)dealloc [_rootViewModelItem release]; [super dealloc]; } -- (void)addObject:(id)object valueType:(FSInspectorVMValueType)valueType getter:(FSGetterBlock)getter setter:(FSSetterBlock)setter withLabel:(NSString*)label toMatrix:(NSMatrix*)matrix enumBiDict:(CHBidirectionalDictionary*)enumBiDict valueClass:(Class)valueClass notNil:(BOOL)notNil +-(void)addClassLabel:(NSString*)cLabel toMatrix:(NSMatrix *)matrix +{ + [view addClassLabel:cLabel toMatrix:matrix]; + FSObjectInspectorViewModelItem *item = [[FSObjectInspectorViewModelItem new] autorelease]; + item.valueType = FS_ITEM_HEADER; + item.name = cLabel; + [self.rootViewModelItem.mutableChildNodes addObject:item]; + self.currentViewModelItem = item; +} + +- (void)addObject:(id)object valueType:(FSInspectorVMValueType)valueType getter:(FSGetterBlock)getter setter:(FSSetterBlock)setter withLabel:(NSString*)label toMatrix:(NSMatrix*)matrix enumBiDict:(CHBidirectionalDictionary*)enumBiDict mask:(NSUInteger)mask valueClass:(Class)valueClass notNil:(BOOL)notNil { @try { if (!notNil || object) { [view addObject:object withLabel:label toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; - FSObjectInspectorViewModelItem *item = [[FSObjectInspectorViewModelItem new] autorelease]; - item.name = label; - item.valueType = valueType; - item.value = object; - item.enumBiDict = enumBiDict; - item.getter = getter; - item.setter = setter; - item.valueClass = valueClass ?: [object class]; - [self.currentViewModelItem.mutableChildNodes addObject:item]; + if (valueType != FS_ITEM_OBJECT || valueClass) { + FSObjectInspectorViewModelItem *item = [[FSObjectInspectorViewModelItem new] autorelease]; + item.name = label; + item.valueType = valueType; + item.value = object; + item.enumBiDict = enumBiDict; + item.getter = getter; + item.setter = setter; + item.optsMask = mask; + item.valueClass = valueClass ?: [object class]; + [self.currentViewModelItem.mutableChildNodes addObject:item]; + } } } @catch (id exception) @@ -146,15 +159,15 @@ - (void)addObject:(id)object valueType:(FSInspectorVMValueType)valueType getter: } - (void)addObject:(id)object valueType:(FSInspectorVMValueType)valueType getter:(FSGetterBlock)getter setter:(FSSetterBlock)setter withLabel:(NSString*)label toMatrix:(NSMatrix*)matrix notNil:(BOOL)notNil { - [self addObject:object valueType:valueType getter:getter setter:setter withLabel:label toMatrix:matrix enumBiDict:nil valueClass:nil notNil:notNil]; + [self addObject:object valueType:valueType getter:getter setter:setter withLabel:label toMatrix:matrix enumBiDict:nil mask:0 valueClass:nil notNil:notNil]; } - (void)addObject:(id)object valueType:(FSInspectorVMValueType)valueType withLabel:(NSString*)label toMatrix:(NSMatrix*)matrix notNil:(BOOL)notNil { - [self addObject:object valueType:valueType getter:nil setter:nil withLabel:label toMatrix:matrix enumBiDict:nil valueClass:(Class)nil notNil:notNil]; + [self addObject:object valueType:valueType getter:nil setter:nil withLabel:label toMatrix:matrix enumBiDict:nil mask:0 valueClass:(Class)nil notNil:notNil]; } - (void)addObject:(id)object valueType:(FSInspectorVMValueType)valueType getter:(FSGetterBlock)getter setter:(FSSetterBlock)setter withLabel:(NSString*)label toMatrix:(NSMatrix*)matrix { - [self addObject:object valueType:valueType getter:getter setter:setter withLabel:label toMatrix:matrix enumBiDict:nil valueClass:nil notNil:NO]; + [self addObject:object valueType:valueType getter:getter setter:setter withLabel:label toMatrix:matrix enumBiDict:nil mask:0 valueClass:nil notNil:NO]; } -(void)addGroup:(NSString*)groupName @@ -174,7 +187,7 @@ -(void)endGroup #define START_GROUP(GROUP) [self addGroup:(@#GROUP)]; #define END_GROUP(GROUP) [self endGroup]; -#define ADD_VALUE(OBJECT, VALUE_TYPE, GETTER, SETTER, BIDICT, VALUE_CLASS, LABEL) \ +#define ADD_VALUE(OBJECT, VALUE_TYPE, GETTER, SETTER, BIDICT, MASK, VALUE_CLASS, LABEL) \ @try { \ [self addObject:(OBJECT) \ valueType:VALUE_TYPE \ @@ -183,39 +196,43 @@ -(void)endGroup withLabel:(LABEL) \ toMatrix:m \ enumBiDict:BIDICT \ + mask:MASK \ valueClass:VALUE_CLASS \ notNil:NO]; \ } \ @catch (id exception) { NSLog(@"%@", exception); } #define ADD_ENUM(ENUM, OBJECT, GETTER, SETTER, LABEL) \ - ADD_VALUE(objectFrom ## ENUM(OBJECT), FS_ITEM_ENUM, GETTER, SETTER, FSObjectEnumInfo.optionsFor ## ENUM, nil, LABEL); + ADD_VALUE(objectFrom ## ENUM(OBJECT), FS_ITEM_ENUM, GETTER, SETTER, FSObjectEnumInfo.optionsFor ## ENUM, 0, nil, LABEL); + +#define ADD_OPTIONS(ENUM, OBJECT, GETTER, SETTER, LABEL) \ + ADD_VALUE(objectFrom ## ENUM(OBJECT), FS_ITEM_OPTIONS, GETTER, SETTER, FSObjectEnumInfo.optionsFor ## ENUM, ENUM ## Mask, nil, LABEL); #define ADD_OBJECT(OBJECT, GETTER, SETTER, LABEL) \ - ADD_VALUE(OBJECT, FS_ITEM_OBJECT, GETTER, SETTER, nil, nil, LABEL) + ADD_VALUE(OBJECT, FS_ITEM_OBJECT, GETTER, SETTER, nil, nil, 0, LABEL) #define ADD_OBJECT_NOT_NIL(OBJECT, GETTER, SETTER, LABEL) \ - if (OBJECT) { ADD_VALUE(OBJECT, FS_ITEM_OBJECT, GETTER, SETTER, nil, nil, LABEL); } + if (OBJECT) { ADD_VALUE(OBJECT, FS_ITEM_OBJECT, GETTER, SETTER, nil, 0, nil, LABEL); } #define ADD_OBJECT_RO(OBJECT, LABEL) ADD_OBJECT(OBJECT, nil, nil, LABEL) #define ADD_OBJECT_RO_NOT_NIL(OBJECT, LABEL) ADD_OBJECT_NOT_NIL(OBJECT, nil, nil, LABEL) #define ADD_COLOR(OBJECT, GETTER, SETTER, LABEL) \ - ADD_VALUE(OBJECT, FS_ITEM_OBJECT, GETTER, SETTER, nil, NSColor.class, LABEL) + ADD_VALUE(OBJECT, FS_ITEM_OBJECT, GETTER, SETTER, nil, 0, NSColor.class, LABEL) #define ADD_COLOR_NOT_NIL(OBJECT, GETTER, SETTER, LABEL) if (OBJECT) { ADD_COLOR(OBJECT,GETTER,SETTER,LABEL); } #define ADD_STRING(OBJECT, GETTER, SETTER, LABEL) \ - ADD_VALUE(OBJECT, FS_ITEM_OBJECT, GETTER, SETTER, nil, NSString.class, LABEL) + ADD_VALUE(OBJECT, FS_ITEM_OBJECT, GETTER, SETTER, nil, 0, NSString.class, LABEL) #define ADD_STRING_NOT_NIL(OBJECT, GETTER, SETTER, LABEL) if (OBJECT) { ADD_COLOR(OBJECT,GETTER,SETTER,LABEL); } #define ADD_BOOL(B, GETTER, SETTER, LABEL) \ - ADD_VALUE([FSBoolean booleanWithBool:(B)], FS_ITEM_BOOL, GETTER, SETTER, nil, nil, LABEL); + ADD_VALUE([FSBoolean booleanWithBool:(B)], FS_ITEM_BOOL, GETTER, SETTER, nil, 0, nil, LABEL); #define ADD_NUMBER(NUMBER, GETTER, SETTER, LABEL) \ - ADD_VALUE([FSNumber numberWithDouble:(NUMBER)], FS_ITEM_NUMBER, GETTER, SETTER, nil, nil, LABEL); + ADD_VALUE([FSNumber numberWithDouble:(NUMBER)], FS_ITEM_NUMBER, GETTER, SETTER, nil, 0, nil, LABEL); #define ADD_DICTIONARY(OBJECTS, LABEL) \ @try { \ @@ -272,8 +289,7 @@ -(void)endGroup #define ADD_CLASS_LABEL(LABEL) \ { \ - classLabel = (LABEL); \ - [view addClassLabel:classLabel toMatrix:m]; \ + [self addClassLabel:(LABEL) toMatrix:m]; \ } @synthesize baseClasses; @@ -743,7 +759,7 @@ - (void)addNSAttributedString:(id)object //ADD_OBJECT( [o attributeRuns] ,@"Attribute runs") ADD_NUMBER([o changeInLength], changeInLength, setChangeInLength, @"Change in length") ADD_OBJECT_NOT_NIL([o delegate], delegate, setDelegate, @"Delegate") - ADD_ENUM(TextStorageEditedOptions, [o editedMask], editedMask, seteditedMask, @"Edited mask") + ADD_OPTIONS(TextStorageEditedOptions, [o editedMask], editedMask, seteditedMask, @"Edited mask") ADD_RANGE([o editedRange], @"Edited range") ADD_BOOL([o fixesAttributesLazily], fixesAttributesLazily, setfixesAttributesLazily, @"Fixes attributes lazily") ADD_OBJECT([o font], font, setFont, @"Font") @@ -816,15 +832,15 @@ - (void)addNSCell:(id)object ADD_COLOR([o backgroundColor], backgroundColor, setBackgroundColor, @"Background color") ADD_ENUM(BezelStyle, [o bezelStyle], bezelStyle, setbezelStyle, @"Bezel style") ADD_ENUM(GradientType, [o gradientType], gradientType, setgradientType, @"Gradient type") - ADD_ENUM(CellStyleMask, [o highlightsBy], highlightsBy, sethighlightsBy, @"Highlights by") + ADD_OPTIONS(CellStyleMask, [o highlightsBy], highlightsBy, sethighlightsBy, @"Highlights by") ADD_BOOL([o imageDimsWhenDisabled], imageDimsWhenDisabled, setimageDimsWhenDisabled, @"Image dims when disabled") ADD_ENUM(CellImagePosition, [o imagePosition], imagePosition, setimagePosition, @"Image position") ADD_ENUM(ImageScaling, [o imageScaling], imageScaling, setimageScaling, @"Image scaling") ADD_BOOL([o isTransparent], transparent, setisTransparent, @"Is transparent") ADD_OBJECT_NOT_NIL([o keyEquivalentFont], keyEquivalentFont, setKeyEquivalentFont, @"Key equivalent font") - ADD_ENUM(EventModifierFlags, [o keyEquivalentModifierMask] & NSDeviceIndependentModifierFlagsMask, keyEquivalentModifierMask, setKeyEquivalentModifierMask, @"Key equivalent modifier mask") + ADD_OPTIONS(EventModifierFlags, [o keyEquivalentModifierMask] & NSDeviceIndependentModifierFlagsMask, keyEquivalentModifierMask, setKeyEquivalentModifierMask, @"Key equivalent modifier mask") ADD_BOOL([o showsBorderOnlyWhileMouseInside], showsBorderOnlyWhileMouseInside, setshowsBorderOnlyWhileMouseInside, @"Shows border only while mouse inside") - ADD_ENUM(CellStyleMask, [o showsStateBy], showsStateBy, setshowsStateBy, @"Shows state by") + ADD_OPTIONS(CellStyleMask, [o showsStateBy], showsStateBy, setshowsStateBy, @"Shows state by") ADD_OBJECT_NOT_NIL([o sound], sound, setSound, @"Sound") ADD_STRING([o title], title, setTitle, @"Title") } @@ -833,7 +849,7 @@ - (void)addNSCell:(id)object ADD_CLASS_LABEL(@"NSDatePickerCell Info"); ADD_COLOR([o backgroundColor], backgroundColor, setBackgroundColor, @"Background color") ADD_OBJECT([o calendar], calendar, setCalendar, @"Calendar") - ADD_ENUM(DatePickerElementFlags, [o datePickerElements], datePickerElements, setdatePickerElements, @"Date picker elements") + ADD_OPTIONS(DatePickerElementFlags, [o datePickerElements], datePickerElements, setdatePickerElements, @"Date picker elements") ADD_ENUM(DatePickerMode, [o datePickerMode], datePickerMode, setdatePickerMode, @"Date picker mode") ADD_ENUM(DatePickerStyle, [o datePickerStyle], datePickerStyle, setdatePickerStyle, @"Date picker style") ADD_OBJECT([o dateValue], dateValue, setDateValue, @"Date value") @@ -1043,7 +1059,7 @@ - (void)addNSCell:(id)object ADD_ENUM(CellStateValue, [o state], state, setstate, @"State") ADD_NUMBER([o tag], tag, setTag, @"Tag") ADD_OBJECT_NOT_NIL([o target], target, setTarget, @"Target") - ADD_ENUM(CellType, [(NSCell*)o type], type, setType, @"Type") + ADD_OPTIONS(CellType, [(NSCell*)o type], type, setType, @"Type") ADD_BOOL([o wantsNotificationForMarkedText], wantsNotificationForMarkedText, setwantsNotificationForMarkedText, @"Wants notification for marked text") ADD_BOOL([o wraps], wraps, setwraps, @"Wraps") } @@ -1248,7 +1264,7 @@ - (void)addNSEvent:(id)object ADD_NUMBER([o absoluteX], absoluteX, setAbsoluteX, @"Absolute x") ADD_NUMBER([o absoluteY], absoluteY, setAbsoluteY, @"Absolute y") ADD_NUMBER([o absoluteZ], absoluteZ, setAbsoluteZ, @"Absolute z") - ADD_ENUM(EventButtonMask, [o buttonMask], buttonMask, setbuttonMask, @"Button mask") + ADD_OPTIONS(EventButtonMask, [o buttonMask], buttonMask, setbuttonMask, @"Button mask") } if (type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp) ADD_NUMBER([o buttonNumber], buttonNumber, setButtonNumber, @"Button number") @@ -1284,7 +1300,7 @@ - (void)addNSEvent:(id)object ADD_NUMBER([o keyCode], keyCode, setKeyCode, @"Key code") if (type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) ADD_POINT([o locationInWindow], @"Location in window") - ADD_ENUM(EventModifierFlags, [o modifierFlags] & NSDeviceIndependentModifierFlagsMask, modifierFlags, setModifierFlags, @"Modifier flags") + ADD_OPTIONS(EventModifierFlags, [o modifierFlags] & NSDeviceIndependentModifierFlagsMask, modifierFlags, setModifierFlags, @"Modifier flags") if (type == NSTabletProximity || ((type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp || type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) && [object subtype] == NSTabletProximityEventSubtype)) { ADD_NUMBER([o pointingDeviceID], pointingDeviceID, setPointingDeviceID, @"Pointing device ID") ADD_NUMBER([o pointingDeviceSerialNumber], pointingDeviceSerialNumber, setPointingDeviceSerialNumber, @"Pointing device serial number") @@ -1594,7 +1610,7 @@ - (void)addNSImageRep:(id)object if ([object isKindOfClass:[NSBitmapImageRep class]]) { NSBitmapImageRep* o = object; ADD_CLASS_LABEL(@"NSBitmapImageRep Info"); - ADD_ENUM(BitmapFormat, [o bitmapFormat], bitmapFormat, setbitmapFormat, @"Bitmap format") + ADD_OPTIONS(BitmapFormat, [o bitmapFormat], bitmapFormat, setbitmapFormat, @"Bitmap format") ADD_NUMBER([o bitsPerPixel], bitsPerPixel, setBitsPerPixel, @"Bits per pixel") ADD_NUMBER([o bytesPerPlane], bytesPerPlane, setBytesPerPlane, @"Bytes per plane") ADD_NUMBER([o bytesPerRow], bytesPerRow, setBytesPerRow, @"Bytes per row") @@ -1677,7 +1693,7 @@ - (void)addNSLayoutManager:(id)object ADD_OBJECT([o glyphGenerator], glyphGenerator, setGlyphGenerator, @"Glyph generator") ADD_BOOL([o hasNonContiguousLayout], hasNonContiguousLayout, sethasNonContiguousLayout, @"Has non contiguous layout") ADD_NUMBER([o hyphenationFactor], hyphenationFactor, setHyphenationFactor, @"Hyphenation factor") - ADD_ENUM(GlyphStorageLayoutOptions, [o layoutOptions], layoutOptions, setlayoutOptions, @"Layout options") + ADD_OPTIONS(GlyphStorageLayoutOptions, [o layoutOptions], layoutOptions, setlayoutOptions, @"Layout options") ADD_BOOL([o showsControlCharacters], showsControlCharacters, setshowsControlCharacters, @"Shows control characters") ADD_BOOL([o showsInvisibleCharacters], showsInvisibleCharacters, setshowsInvisibleCharacters, @"Shows invisible characters") ADD_OBJECTS([o textContainers], @"Text containers") @@ -1696,7 +1712,7 @@ - (void)addNSManagedObjectContext:(id)object ADD_OBJECT([o deletedObjects], deletedObjects, setDeletedObjects, @"Deleted objects") ADD_BOOL([o hasChanges], hasChanges, sethasChanges, @"Has changes") ADD_OBJECT([o insertedObjects], insertedObjects, setInsertedObjects, @"Inserted objects") - ADD_ENUM(MergePolicyMarker, [o mergePolicy], mergePolicy, setmergePolicy, @"Merge policy") + ADD_OPTIONS(MergePolicyMarker, [o mergePolicy], mergePolicy, setmergePolicy, @"Merge policy") ADD_OBJECT([o persistentStoreCoordinator], persistentStoreCoordinator, setPersistentStoreCoordinator, @"Persistent store coordinator") ADD_BOOL([o propagatesDeletesAtEndOfEvent], propagatesDeletesAtEndOfEvent, setpropagatesDeletesAtEndOfEvent, @"Propagates deletes at end of event") ADD_OBJECT([o registeredObjects], registeredObjects, setRegisteredObjects, @"Registered objects") @@ -1758,7 +1774,7 @@ - (void)addNSMenuItem:(id)object ADD_BOOL([o isHighlighted], highlighted, setisHighlighted, @"Is highlighted") ADD_BOOL([o isSeparatorItem], separatorItem, setisSeparatorItem, @"Is separatorItem") ADD_OBJECT([o keyEquivalent], keyEquivalent, setKeyEquivalent, @"Key equivalent") - ADD_ENUM(EventModifierFlags, [o keyEquivalentModifierMask] & NSDeviceIndependentModifierFlagsMask, keyEquivalentModifierMask, setKeyEquivalentModifierMask, @"Key equivalent modifier mask") + ADD_OPTIONS(EventModifierFlags, [o keyEquivalentModifierMask] & NSDeviceIndependentModifierFlagsMask, keyEquivalentModifierMask, setKeyEquivalentModifierMask, @"Key equivalent modifier mask") ADD_OBJECT([o menu], menu, setMenu, @"Menu") ADD_OBJECT_NOT_NIL([o mixedStateImage], mixedStateImage, setMixedStateImage, @"Mixed state image") ADD_OBJECT_NOT_NIL([o offStateImage], offStateImage, setOffStateImage, @"Off state image") @@ -1857,7 +1873,7 @@ - (void)addNSPredicateEditorRowTemplate:(id)object ADD_OBJECTS([o leftExpressions], @"Left expressions") ADD_ENUM(ComparisonPredicateModifier, [o modifier], modifier, setmodifier, @"Modifier") ADD_OBJECTS([o operators], @"Operators") - ADD_ENUM(ComparisonPredicateOptions, [o options], options, setoptions, @"Options") + ADD_OPTIONS(ComparisonPredicateOptions, [o options], options, setoptions, @"Options") ADD_ENUM(AttributeType, [o rightExpressionAttributeType], rightExpressionAttributeType, setrightExpressionAttributeType, @"Right expression attribute type") ADD_OBJECTS([o rightExpressions], @"Right expressions") ADD_OBJECTS([o templateViews], @"Template views") @@ -2083,7 +2099,7 @@ - (void)addNSTableColumn:(id)object ADD_BOOL([o isHidden], hidden, setisHidden, @"Is hidden") ADD_NUMBER([o maxWidth], maxWidth, setMaxWidth, @"Max width") ADD_NUMBER([o minWidth], minWidth, setMinWidth, @"Min width") - ADD_ENUM(TableColumnResizingOptions, [o resizingMask], resizingMask, setresizingMask, @"Resizing mask") + ADD_OPTIONS(TableColumnResizingOptions, [o resizingMask], resizingMask, setresizingMask, @"Resizing mask") ADD_OBJECT_NOT_NIL([o sortDescriptorPrototype], sortDescriptorPrototype, setSortDescriptorPrototype, @"Sort descriptor prototype") ADD_OBJECT([o tableView], tableView, setTableView, @"Table view") ADD_NUMBER([o width], width, setWidth, @"Width") @@ -2142,7 +2158,7 @@ - (void)addNSTextList:(id)object { NSTextList* o = object; ADD_CLASS_LABEL(@"NSTextList Info"); - ADD_ENUM(TextListOptions, [o listOptions], listOptions, setlistOptions, @"List options") + ADD_OPTIONS(TextListOptions, [o listOptions], listOptions, setlistOptions, @"List options") ADD_OBJECT([o markerFormat], markerFormat, setMarkerFormat, @"Marker format") } @@ -2208,7 +2224,7 @@ - (void)addNSTrackingArea:(id)object { NSTrackingArea* o = object; ADD_CLASS_LABEL(@"NSTrackingArea Info"); - ADD_ENUM(TrackingAreaOptions, [o options], options, setoptions, @"Options") + ADD_OPTIONS(TrackingAreaOptions, [o options], options, setoptions, @"Options") ADD_OBJECT([o owner], owner, setOwner, @"Owner") ADD_RECT([o rect], @"Rect") ADD_DICTIONARY([o userInfo], @"User info") @@ -2465,7 +2481,7 @@ - (void)processNSView:(id)object NSView* o = object; ADD_CLASS_LABEL(@"NSView Info"); - ADD_ENUM(AutoresizingMaskOptions, [o autoresizingMask], autoresizingMask, setautoresizingMask, @"Autoresizing mask") + ADD_OPTIONS(AutoresizingMaskOptions, [o autoresizingMask], autoresizingMask, setautoresizingMask, @"Autoresizing mask") ADD_BOOL([o autoresizesSubviews], autoresizesSubviews, setautoresizesSubviews, @"Autoresizes subviews") ADD_RECT([o bounds], @"Bounds") ADD_NUMBER([o boundsRotation], boundsRotation, setBoundsRotation, @"Bounds rotation") @@ -2531,6 +2547,7 @@ -(void)processSegmentedItem:(id)segmentedItem withLabel:[NSString stringWithFormat:@"Image scaling for segment %ld", (long)i] toMatrix:m enumBiDict:FSObjectEnumInfo.optionsForImageScaling + mask:0 valueClass:nil notNil:NO]; } @@ -2553,6 +2570,7 @@ -(void)processSegmentedItem:(id)segmentedItem withLabel:[NSString stringWithFormat:@"Label for segment %ld", (long)i] toMatrix:m enumBiDict:nil + mask:0 valueClass:NSString.class notNil:YES]; [self addObject:[o menuForSegment:i] @@ -2570,6 +2588,7 @@ -(void)processSegmentedItem:(id)segmentedItem withLabel:[NSString stringWithFormat:@"Tag for segment %ld", (long)i] toMatrix:m enumBiDict:FSObjectEnumInfo.optionsForImageScaling + mask:0 valueClass:nil notNil:NO]; } @@ -2581,6 +2600,7 @@ -(void)processSegmentedItem:(id)segmentedItem withLabel:[NSString stringWithFormat:@"ToolTip for segment %ld", (long)i] toMatrix:m enumBiDict:nil + mask:0 valueClass:NSString.class notNil:YES]; } @@ -2661,7 +2681,7 @@ - (void)processNSControl:(id)object ADD_BOOL([o isBordered], bordered, setisBordered, @"Is bordered") ADD_BOOL([o isTransparent], transparent, setisTransparent, @"Is transparent") ADD_OBJECT([o keyEquivalent], keyEquivalent, setKeyEquivalent, @"Key equivalent") - ADD_ENUM(EventModifierFlags, [o keyEquivalentModifierMask] & NSDeviceIndependentModifierFlagsMask, keyEquivalentModifierMask, setKeyEquivalentModifierMask, @"Key equivalent modifier mask") + ADD_OPTIONS(EventModifierFlags, [o keyEquivalentModifierMask] & NSDeviceIndependentModifierFlagsMask, keyEquivalentModifierMask, setKeyEquivalentModifierMask, @"Key equivalent modifier mask") ADD_BOOL([o showsBorderOnlyWhileMouseInside], showsBorderOnlyWhileMouseInside, setshowsBorderOnlyWhileMouseInside, @"Shows border only while mouse inside") ADD_OBJECT_NOT_NIL([o sound], sound, setSound, @"Sound") ADD_ENUM(CellStateValue, [o state], state, setstate, @"State") @@ -2679,7 +2699,7 @@ - (void)processNSControl:(id)object ADD_CLASS_LABEL(@"NSDatePicker Info"); ADD_COLOR([o backgroundColor], backgroundColor, setBackgroundColor, @"Background color") ADD_OBJECT([o calendar], calendar, setCalendar, @"Calendar") - ADD_ENUM(DatePickerElementFlags, [o datePickerElements], datePickerElements, setdatePickerElements, @"Date picker elements") + ADD_OPTIONS(DatePickerElementFlags, [o datePickerElements], datePickerElements, setdatePickerElements, @"Date picker elements") ADD_ENUM(DatePickerMode, [o datePickerMode], datePickerMode, setdatePickerMode, @"Date picker mode") ADD_ENUM(DatePickerStyle, [o datePickerStyle], datePickerStyle, setdatePickerStyle, @"Date picker style") ADD_OBJECT([o dateValue], dateValue, setDateValue, @"Date value") @@ -2851,7 +2871,7 @@ - (void)processNSControl:(id)object ADD_OBJECT([o delegate], delegate, setDelegate, @"Delegate") ADD_SEL([o doubleAction], @"Double action") ADD_COLOR([o gridColor], gridColor, setGridColor, @"Grid color") - ADD_ENUM(TableViewGridLineStyle, [o gridStyleMask], gridStyleMask, setgridStyleMask, @"Grid style mask") + ADD_OPTIONS(TableViewGridLineStyle, [o gridStyleMask], gridStyleMask, setgridStyleMask, @"Grid style mask") ADD_OBJECT([o headerView], headerView, setHeaderView, @"Header view") ADD_OBJECT_NOT_NIL([o highlightedTableColumn], highlightedTableColumn, setHighlightedTableColumn, @"Highlighted table column") ADD_SIZE([o intercellSpacing], @"Intercell spacing") @@ -3078,7 +3098,7 @@ - (void)processNSWindow:(id)object ADD_ENUM(WindowSharingType, [o sharingType], sharingType, setsharingType, @"Sharing type") ADD_BOOL([o showsResizeIndicator], showsResizeIndicator, setshowsResizeIndicator, @"Shows resize indicator") ADD_BOOL([o showsToolbarButton], showsToolbarButton, setshowsToolbarButton, @"Shows toolbar button") - ADD_ENUM(WindowMask, [o styleMask], styleMask, setstyleMask, @"Style mask") + ADD_OPTIONS(WindowMask, [o styleMask], styleMask, setstyleMask, @"Style mask") ADD_STRING([o title], title, setTitle, @"Title") ADD_OBJECT_NOT_NIL([o toolbar], toolbar, setToolbar, @"Toolbar") ADD_NUMBER([o userSpaceScaleFactor], userSpaceScaleFactor, setUserSpaceScaleFactor, @"User space scale factor") diff --git a/FScriptFramework/FSObjectEnumInfo.h b/FScriptFramework/FSObjectEnumInfo.h index 7e7168e..43c5d35 100644 --- a/FScriptFramework/FSObjectEnumInfo.h +++ b/FScriptFramework/FSObjectEnumInfo.h @@ -24,6 +24,9 @@ typedef id NSMergePolicyMarker; extern id objectFrom##_name(NS##_name _name); \ extern const NSUInteger _name##Mask ; +extern const NSUInteger CellTypeMask; +extern const NSUInteger MergePolicyMarkerMask; + @interface FSObjectEnumInfo : NSObject BIMAP_CLASS_METHODS_DECL(AlertStyle); diff --git a/FScriptFramework/FSObjectEnumInfo.m b/FScriptFramework/FSObjectEnumInfo.m index 732b4c9..25aaf67 100644 --- a/FScriptFramework/FSObjectEnumInfo.m +++ b/FScriptFramework/FSObjectEnumInfo.m @@ -14,6 +14,9 @@ #import "CHBidirectionalDictionary.h" #import "metamacros.h" +const NSUInteger CellTypeMask = NSUIntegerMax; +const NSUInteger MergePolicyMarkerMask = NSUIntegerMax; + #define _BIDICT(_idx, _enum) \ @(_enum) \ : @metamacro_stringify(_enum) \ @@ -111,6 +114,7 @@ id objectFromOptions(NSUInteger opts, CHBidirectionalDictionary *dict, NSUIntege } return result.count ? [FSNamedNumber namedNumberWithDouble:opts name:[result componentsJoinedByString:@" + "]] : [FSNumber numberWithDouble:opts]; } + @implementation FSObjectEnumInfo ENUMTOOBJ(AnimationBlockingMode, diff --git a/FScriptFramework/FSObjectInspectorBackgroundView.m b/FScriptFramework/FSObjectInspectorBackgroundView.m index 382ccf5..b318e2a 100644 --- a/FScriptFramework/FSObjectInspectorBackgroundView.m +++ b/FScriptFramework/FSObjectInspectorBackgroundView.m @@ -10,11 +10,5 @@ @implementation FSObjectInspectorBackgroundView -- (void)drawRect:(NSRect)dirtyRect { - [super drawRect:dirtyRect]; - - // Drawing code here. -} - -(BOOL)allowsVibrancy { return YES; } @end diff --git a/FScriptFramework/FSObjectInspectorOptionsViewController.h b/FScriptFramework/FSObjectInspectorOptionsViewController.h new file mode 100644 index 0000000..aa9cf26 --- /dev/null +++ b/FScriptFramework/FSObjectInspectorOptionsViewController.h @@ -0,0 +1,14 @@ +// +// FSObjectInspectorOptionsViewController.h +// FScript +// +// Created by Anthony Dervish on 21/11/2014. +// +// + +#import + +@interface FSObjectInspectorOptionsViewController : NSViewController +@property (assign) IBOutlet NSArrayController *optionsArrayController; +@property (copy,nonatomic) NSArray *optionItems; +@end diff --git a/FScriptFramework/FSObjectInspectorOptionsViewController.m b/FScriptFramework/FSObjectInspectorOptionsViewController.m new file mode 100644 index 0000000..073506e --- /dev/null +++ b/FScriptFramework/FSObjectInspectorOptionsViewController.m @@ -0,0 +1,22 @@ +// +// FSObjectInspectorOptionsViewController.m +// FScript +// +// Created by Anthony Dervish on 21/11/2014. +// +// + +#import "FSObjectInspectorOptionsViewController.h" + +@interface FSObjectInspectorOptionsViewController () + +@end + +@implementation FSObjectInspectorOptionsViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + // Do view setup here. +} + +@end diff --git a/FScriptFramework/FSObjectInspectorOptionsViewController.xib b/FScriptFramework/FSObjectInspectorOptionsViewController.xib new file mode 100644 index 0000000..f423d77 --- /dev/null +++ b/FScriptFramework/FSObjectInspectorOptionsViewController.xib @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/FScriptFramework/FSObjectInspectorOutlineView.h b/FScriptFramework/FSObjectInspectorOutlineView.h new file mode 100644 index 0000000..a09508b --- /dev/null +++ b/FScriptFramework/FSObjectInspectorOutlineView.h @@ -0,0 +1,13 @@ +// +// FSObjectInspectorOutlineView.h +// FScript +// +// Created by Anthony Dervish on 21/11/2014. +// +// + +#import + +@interface FSObjectInspectorOutlineView : NSOutlineView + +@end diff --git a/FScriptFramework/FSObjectInspectorOutlineView.m b/FScriptFramework/FSObjectInspectorOutlineView.m new file mode 100644 index 0000000..53e7664 --- /dev/null +++ b/FScriptFramework/FSObjectInspectorOutlineView.m @@ -0,0 +1,23 @@ +// +// FSObjectInspectorOutlineView.m +// FScript +// +// Created by Anthony Dervish on 21/11/2014. +// +// + +#import "FSObjectInspectorOutlineView.h" + +@implementation FSObjectInspectorOutlineView + +- (void)drawRect:(NSRect)dirtyRect { + [super drawRect:dirtyRect]; + + // Drawing code here. +} + +// Allow stepper views to work properly +- (BOOL)validateProposedFirstResponder:(NSResponder *)responder forEvent:(NSEvent *)event { + return YES; +} +@end diff --git a/FScriptFramework/FSObjectInspectorViewController.h b/FScriptFramework/FSObjectInspectorViewController.h index 494d573..ccb68a0 100644 --- a/FScriptFramework/FSObjectInspectorViewController.h +++ b/FScriptFramework/FSObjectInspectorViewController.h @@ -11,7 +11,7 @@ @class FSObjectInspectorViewModelItem; @class FSInterpreter; -@interface FSObjectInspectorViewController : NSViewController +@interface FSObjectInspectorViewController : NSViewController @property (assign) IBOutlet NSOutlineView *outlineView; @property (weak,nonatomic) FSObjectInspectorViewModelItem *rootViewModelItem; @property (weak,nonatomic) FSObjectInspectorViewModelItem *selectedViewModelItem; @@ -19,4 +19,5 @@ @property (strong,nonatomic) FSInterpreter *interpreter; -(IBAction)showColorPanel:(id)sender; +-(IBAction)showOptionsPopover:(id)sender; @end diff --git a/FScriptFramework/FSObjectInspectorViewController.m b/FScriptFramework/FSObjectInspectorViewController.m index 04ec8ec..6471d2f 100644 --- a/FScriptFramework/FSObjectInspectorViewController.m +++ b/FScriptFramework/FSObjectInspectorViewController.m @@ -9,15 +9,62 @@ #import "FSObjectInspectorViewController.h" #import "FSObjectInspectorViewController+NonArc.h" #import "FSObjectInspectorViewModelItem.h" +#import "FSObjectInspectorOptionsViewController.h" +#import "FSNamedNumber.h" +#import "FSObjectEnumInfo.h" +#import "CHBidirectionalDictionary.h" #import #import - @interface FSObjectInspectorViewController () @property (nonatomic) BOOL hasAwoken; +@property (nonatomic,strong) NSPopover *optionsPopover; +@end + +@interface FSObjectInspectorOption : NSObject +@property (copy,nonatomic) NSString *name; +@property (nonatomic) BOOL state; +@property (nonatomic) NSUInteger value; +@end +@implementation FSObjectInspectorOption ++(FSObjectInspectorOption*)optionWithName:(NSString*)name value:(NSUInteger)value state:(BOOL)on +{ + FSObjectInspectorOption *opt = [FSObjectInspectorOption new]; + opt.name = name; + opt.state = on; + opt.value = value; + return opt; +} ++(NSArray *)arrayFromOptions:(NSUInteger) opts dict:(CHBidirectionalDictionary *)dict mask:(NSUInteger) mask +{ + NSMutableArray* result = [NSMutableArray array]; + for (NSNumber * opt in dict.allKeys) { + [result addObject:[FSObjectInspectorOption optionWithName:(NSString*)dict[opt] value:opt.unsignedIntegerValue state:(opts & opt.unsignedIntegerValue)]]; + } + return result; +} ++(NSUInteger)optionsFromArray:(NSArray /*of FSObjectInspectorOption */ *) opts dict:(CHBidirectionalDictionary *)dict mask:(NSUInteger) mask +{ + NSUInteger result = 0; + for (FSObjectInspectorOption *opt in opts) { + if (opt.state) { + result |= opt.value; + } + } + return result; +} @end +/* + * + * + *================================================================================================*/ +#pragma mark - FSObjectInspectorViewController Implementation +/*================================================================================================== + */ + + @implementation FSObjectInspectorViewController - (void)viewDidLoad @@ -46,7 +93,9 @@ - (NSSize)desiredSize borderType:scrollView.borderType controlSize:scrollView.horizontalScroller.controlSize scrollerStyle:scrollView.scrollerStyle]; - scrollViewSize.height += NSHeight(self.outlineView.headerView.bounds); + if (self.outlineView.headerView) { + scrollViewSize.height += NSHeight(self.outlineView.headerView.bounds); + } return scrollViewSize; } /* @@ -67,13 +116,13 @@ - (NSView*)outlineView:(NSOutlineView*)outlineView viewForTableColumn:(NSTableCo if ([viewModel respondsToSelector:@selector(valueType)]) { switch (viewModel.valueType) { case FS_ITEM_HEADER: - view = [self.outlineView makeViewWithIdentifier:@"ObjectInspectorReadOnlyView" owner:self]; + view = [self.outlineView makeViewWithIdentifier:@"Header" owner:self]; break; case FS_ITEM_ENUM: view = [self.outlineView makeViewWithIdentifier:@"ObjectInspectorEnumView" owner:self]; break; case FS_ITEM_OPTIONS: - view = [self.outlineView makeViewWithIdentifier:@"ObjectInspectorReadOnlyView" owner:self]; + view = [self.outlineView makeViewWithIdentifier:@"ObjectInspectorOptionsView" owner:self]; break; case FS_ITEM_NUMBER: view = [self.outlineView makeViewWithIdentifier:@"ObjectInspectorNumberView" owner:self]; @@ -108,6 +157,26 @@ - (NSView*)outlineView:(NSOutlineView*)outlineView viewForTableColumn:(NSTableCo return view; } +-(BOOL)outlineView:(NSOutlineView *)outlineView isGroupItem:(id)item +{ + FSInspectorVMValueType vmType = ((FSObjectInspectorViewModelItem*)[item representedObject]).valueType; + return vmType == FS_ITEM_HEADER; +} + +-(BOOL)outlineView:(NSOutlineView *)outlineView shouldSelectItem:(id)item +{ + FSInspectorVMValueType valueType = [(FSObjectInspectorViewModelItem*)[item representedObject] valueType] ; + return (valueType != FS_ITEM_HEADER && valueType != FS_ITEM_GROUP); +} +/* + * + * + *================================================================================================*/ +#pragma mark - Utilities +/*================================================================================================== + */ + + -(NSString*)_viewIdentifierForValueClass:(Class)class { if (class == NSColor.class) { @@ -139,4 +208,51 @@ -(void)showColorPanel:(id)sender } +-(FSObjectInspectorOptionsViewController*)optionsViewController +{ + return (FSObjectInspectorOptionsViewController*)self.optionsPopover.contentViewController; +} +-(NSPopover*)optionsPopover +{ + if (_optionsPopover == nil) { + _optionsPopover = [NSPopover new]; + _optionsPopover.behavior = NSPopoverBehaviorTransient; +#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10 + _optionsPopover.appearance = [NSAppearance appearanceNamed:NSAppearanceNameLightContent]; +#else + _optionsPopover.appearance = NSPopoverAppearanceHUD; +#endif + _optionsPopover.contentViewController = [FSObjectInspectorOptionsViewController new]; + _optionsPopover.delegate = self; + } + return _optionsPopover; +} + +-(IBAction)showOptionsPopover:(id)sender +{ + NSInteger row = [self.outlineView rowForView:sender]; + if (row >= 0) { + NSRect senderFrame = [sender frame]; + FSObjectInspectorViewModelItem *clickedItem = [[self.outlineView itemAtRow:row] representedObject]; + self.selectedViewModelItem = clickedItem; + NSArray *optionItems = [FSObjectInspectorOption arrayFromOptions:clickedItem.numValue dict:clickedItem.enumBiDict mask:clickedItem.optsMask]; + self.optionsViewController.optionItems = optionItems; + [self.optionsPopover showRelativeToRect:senderFrame ofView:sender preferredEdge:NSMaxYEdge]; + } +} +/* + * + * + *================================================================================================*/ +#pragma mark - NSPopoverDelegate +/*================================================================================================== + */ + +-(void)popoverDidClose:(NSNotification *)notification +{ + + NSUInteger newOpts = [FSObjectInspectorOption optionsFromArray:self.optionsViewController.optionItems dict:self.selectedViewModelItem.enumBiDict mask:self.selectedViewModelItem.optsMask]; + self.selectedViewModelItem.value = objectFromOptions(newOpts, self.selectedViewModelItem.enumBiDict, self.selectedViewModelItem.optsMask); +} + @end diff --git a/FScriptFramework/FSObjectInspectorViewController.xib b/FScriptFramework/FSObjectInspectorViewController.xib index 92c91f9..6754afc 100644 --- a/FScriptFramework/FSObjectInspectorViewController.xib +++ b/FScriptFramework/FSObjectInspectorViewController.xib @@ -16,16 +16,16 @@ - + - + - + - - + + @@ -66,6 +66,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -106,6 +147,30 @@ + + + + + + + + + + + @@ -128,7 +193,7 @@ - + @@ -156,7 +221,7 @@ - + @@ -178,12 +243,12 @@ - + - + @@ -238,24 +303,20 @@ - + - + + + + + + + + + + + + NSIsNil + + + + + + + diff --git a/FScriptFramework/FSObjectInspectorViewModelItem.m b/FScriptFramework/FSObjectInspectorViewModelItem.m index c41eb89..10c81b7 100644 --- a/FScriptFramework/FSObjectInspectorViewModelItem.m +++ b/FScriptFramework/FSObjectInspectorViewModelItem.m @@ -40,9 +40,14 @@ +(void)initialize } } -- (instancetype)init +-(id)representedObject { - self = [super init]; + return [super representedObject] ?: self.value; +} + +- (instancetype)initWithRepresentedObject:(id)modelObject +{ + self = [super initWithRepresentedObject:modelObject]; if (self) { self.minValue = NSIntegerMin; self.maxValue = NSIntegerMax; @@ -70,6 +75,7 @@ - (instancetype)init return self; } + - (void)dealloc { [self removeObserver:self forKeyPath:@"float1"]; diff --git a/FScriptFramework/Resources/view.png b/FScriptFramework/Resources/view.png new file mode 100755 index 0000000000000000000000000000000000000000..8a753181d233ad5e66353a872405617b857d829a GIT binary patch literal 278 zcmeAS@N?(olHy`uVBq!ia0vp^av;pX#=yYnV?NIW$dN2@jVKAuPb(=;EJ|f?Ovz75 zRq)JBOiv9;O-!jQJeg_(RJ6m>#WAGfR#Jikb5FviSO4p0FbMDB;$duHIMnEn=5RLA z$xJ}$!m$$_It&617F!>ch;uQ_I>wT0FoBzase`5E4WEMa`o|yI#CugfGBq$P;xK%~ z!|uc&=bpl(wkhZ61s^vqNsDx5mJ1HbIeu-aem3_KRn!XuEVsN|BpGjM*)iAF#d&sA zpsOGQ#|B2{o|3P8_f(v^qr|#r`Y?-LQ9l33amo(2IGO%5bty)%q~^ASQ_F+*C%s@| Z_;tsTZ_lcO^MHO}@O1TaS?83{1OP*;T}}W1 literal 0 HcmV?d00001 diff --git a/FScriptFramework/Resources/window.png b/FScriptFramework/Resources/window.png new file mode 100755 index 0000000000000000000000000000000000000000..06eb113c92e57fcd98abe2b139152e6e7c2fbb32 GIT binary patch literal 285 zcmeAS@N?(olHy`uVBq!ia0vp^av;pX#=yYnV?NIW$dN2@jVKAuPb(=;EJ|f?Ovz75 zRq)JBOiv9;O-!jQJeg_(RJ7mI#WAGfR#Jikb5FviSO4p0FmO*PYvD9ln9azcz~*B- z;fwJWL!(U!ua9T3IWPz&svU{ti%7jK!9O8S#fpJL;gjI1_KOT|3_@?SKB<0WYG7D& zVRgpK<_rd3b{>mn=IzIrMXD5rxO>kfkaBvn0oZ>M?j%W5oaf literal 0 HcmV?d00001 From 17e414a8aaa75b87d92a6a5ad5d79886424d954f Mon Sep 17 00:00:00 2001 From: Ant Date: Wed, 26 Nov 2014 16:11:00 +0000 Subject: [PATCH 31/33] Added NSStackView. FSObjectEnumInfo can now handle multiple enums with the same value. --- FScriptFramework/FSDetailedObjectInspector.m | 1 + .../FSObjectBrowserViewObjectInfo.m | 27 +++++++++- FScriptFramework/FSObjectEnumInfo.h | 9 ++++ FScriptFramework/FSObjectEnumInfo.m | 50 ++++++++++++++++--- .../FSObjectInspectorViewController.xib | 2 +- 5 files changed, 81 insertions(+), 8 deletions(-) diff --git a/FScriptFramework/FSDetailedObjectInspector.m b/FScriptFramework/FSDetailedObjectInspector.m index 6837fea..eb251df 100644 --- a/FScriptFramework/FSDetailedObjectInspector.m +++ b/FScriptFramework/FSDetailedObjectInspector.m @@ -61,6 +61,7 @@ - (FSDetailedObjectInspector *)initWithObject:(id)object interpreter:(FSInterpre FSObjectInspectorViewController *objectInspectorViewController = [[FSObjectInspectorViewController alloc] initWithNibName:@"FSObjectInspectorViewController" bundle:[NSBundle bundleForClass:self.class]]; self.viewController = objectInspectorViewController; objectInspectorViewController.inspector = self; + objectInspectorViewController.interpreter = self.interpreter; [self refreshModel:self]; panel.contentView = objectInspectorViewController.view; NSSize desiredSize = self.viewController.desiredSize; diff --git a/FScriptFramework/FSObjectBrowserViewObjectInfo.m b/FScriptFramework/FSObjectBrowserViewObjectInfo.m index be1df02..e0ab6ad 100644 --- a/FScriptFramework/FSObjectBrowserViewObjectInfo.m +++ b/FScriptFramework/FSObjectBrowserViewObjectInfo.m @@ -221,8 +221,14 @@ - (void)endGroup ADD_VALUE([NSValue valueWithSize:[OBJECT PROPERTY]], FS_ITEM_SIZE, PROPERTY, nil, 0, nil, labelFromPropertyName(@#PROPERTY), NO) #define ADD_RECT(OBJECT, PROPERTY) \ - ADD_VALUE([NSValue valueWithRect:[OBJECT PROPERTY]], FS_ITEM_RECT, PROPERTY, nil, 0, nil, labelFromPropertyName(@#PROPERTY), NO) + ADD_VALUE([NSValue valueWithRect:(NSRect)[OBJECT PROPERTY]], FS_ITEM_RECT, PROPERTY, nil, 0, nil, labelFromPropertyName(@#PROPERTY), NO) +#define ADD_EDGE_INSETS(OBJECT, PROPERTY) \ +{ \ + NSEdgeInsets _insets = [OBJECT PROPERTY]; \ + NSRect _rect = NSMakeRect(_insets.top, _insets.left, _insets.bottom, _insets.right); \ + ADD_VALUE([NSValue valueWithRect:_rect], FS_ITEM_RECT, PROPERTY, nil, 0, nil, labelFromPropertyName(@#PROPERTY), NO) \ +} #define ADD_POINT(OBJECT, PROPERTY) \ ADD_VALUE([NSValue valueWithPoint:[OBJECT PROPERTY]], FS_ITEM_POINT, PROPERTY, nil, 0, nil, labelFromPropertyName(@#PROPERTY), NO) @@ -2529,6 +2535,25 @@ - (void)processNSView:(id)object ADD_BOOL(o, isVertical) ADD_OBJECT_NOT_NIL(o, autosaveName) } +#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_9 + else if ([object isKindOfClass:[NSStackView class]]) { + + + #pragma mark â–º NSStackView + //-------------------------------------------------------------------------------- + + NSStackView* o = object; + ADD_CLASS_LABEL(@"NSStackView Info"); + ADD_ENUM(o, alignment, LayoutAttribute) + ADD_ENUM(o, orientation, UserInterfaceLayoutOrientation) + ADD_NUMBER(o, spacing) + ADD_OBJECT(o, delegate, NSObject.class, YES) + ADD_BOOL(o, hasEqualSpacing) + ADD_OBJECTS(o, views) + ADD_OBJECTS(o, detachedViews) + } + +#endif else if ([object isKindOfClass:[NSTabView class]]) { diff --git a/FScriptFramework/FSObjectEnumInfo.h b/FScriptFramework/FSObjectEnumInfo.h index 7e9fb7b..a482b33 100644 --- a/FScriptFramework/FSObjectEnumInfo.h +++ b/FScriptFramework/FSObjectEnumInfo.h @@ -74,6 +74,9 @@ BIMAP_CLASS_METHODS_DECL(ImageCacheMode); BIMAP_CLASS_METHODS_DECL(ImageFrameStyle); BIMAP_CLASS_METHODS_DECL(ImageInterpolation); BIMAP_CLASS_METHODS_DECL(ImageScaling); +#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_7 +BIMAP_CLASS_METHODS_DECL(LayoutAttribute); +#endif BIMAP_CLASS_METHODS_DECL(LevelIndicatorStyle); BIMAP_CLASS_METHODS_DECL(LineBreakMode); BIMAP_CLASS_METHODS_DECL(LineCapStyle); @@ -96,6 +99,9 @@ BIMAP_CLASS_METHODS_DECL(SelectionAffinity); BIMAP_CLASS_METHODS_DECL(SelectionDirection); BIMAP_CLASS_METHODS_DECL(SelectionGranularity); BIMAP_CLASS_METHODS_DECL(SliderType); +#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_9 +BIMAP_CLASS_METHODS_DECL(StackViewGravity); +#endif BIMAP_CLASS_METHODS_DECL(StatusItemLength); BIMAP_CLASS_METHODS_DECL(StringEncoding); BIMAP_CLASS_METHODS_DECL(TIFFCompression); @@ -121,6 +127,9 @@ BIMAP_CLASS_METHODS_DECL(ToolbarSizeMode); BIMAP_CLASS_METHODS_DECL(TrackingAreaOptions); BIMAP_CLASS_METHODS_DECL(TypesetterBehavior); BIMAP_CLASS_METHODS_DECL(UsableScrollerParts); +#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_9 +BIMAP_CLASS_METHODS_DECL(UserInterfaceLayoutOrientation); +#endif BIMAP_CLASS_METHODS_DECL(WindingRule); BIMAP_CLASS_METHODS_DECL(WindowBackingLocation); BIMAP_CLASS_METHODS_DECL(WindowCollectionBehavior); diff --git a/FScriptFramework/FSObjectEnumInfo.m b/FScriptFramework/FSObjectEnumInfo.m index 680fbce..2f94566 100644 --- a/FScriptFramework/FSObjectEnumInfo.m +++ b/FScriptFramework/FSObjectEnumInfo.m @@ -16,6 +16,9 @@ const NSUInteger CellTypeMask = NSUIntegerMax; const NSUInteger MergePolicyMarkerMask = NSUIntegerMax; +#define _ENUMDICT(_idx, _enum) \ + @{ @(_enum) : @metamacro_stringify(_enum) }, + #define _BIDICT(_idx, _enum) \ @(_enum) \ : @metamacro_stringify(_enum) \ @@ -27,21 +30,22 @@ static NSMutableDictionary* dict = nil; \ if (!dict) { \ dict = [NSMutableDictionary new]; \ - [dict addEntriesFromDictionary: #define BIDICT(_name, ...) \ _BIDICT_LEADER(_name) \ - @{ metamacro_foreach(_BIDICT, ,__VA_ARGS__) } \ - ]; \ - } \ + NSArray * enumItems = @[ metamacro_foreach(_ENUMDICT, ,__VA_ARGS__) ] ; \ + for (NSDictionary *enumDict in enumItems) { \ + NSNumber *key = enumDict.allKeys.firstObject; NSString *val = enumDict.allValues.firstObject; \ + if (dict[key]) { dict[key] = [ NSString stringWithFormat:@"%@ / %@", dict[key], val ]; } else { dict[key] = val; } \ + } \ + } \ return dict; \ } #define BIDICT_LIT(_name, _dict) \ _BIDICT_LEADER(_name) \ - _dict \ - ]; \ + [dict addEntriesFromDictionary:_dict ]; \ } \ return dict; \ } @@ -484,6 +488,23 @@ @implementation FSObjectEnumInfo NSShowInvisibleGlyphs, NSWantsBidiLevels); +#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_7 +ENUMTOOBJ(LayoutAttribute, + NSLayoutAttributeNotAnAttribute, + NSLayoutAttributeLeft, + NSLayoutAttributeRight, + NSLayoutAttributeTop, + NSLayoutAttributeBottom, + NSLayoutAttributeLeading, + NSLayoutAttributeTrailing, + NSLayoutAttributeWidth, + NSLayoutAttributeHeight, + NSLayoutAttributeCenterX, + NSLayoutAttributeCenterY, + NSLayoutAttributeBaseline + ); + +#endif ENUMTOOBJ(LevelIndicatorStyle, NSRelevancyLevelIndicatorStyle, @@ -636,6 +657,16 @@ @implementation FSObjectEnumInfo NSLinearSlider, NSCircularSlider); +#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_9 +ENUMTOOBJ(StackViewGravity, + NSStackViewGravityTop, + NSStackViewGravityLeading, + NSStackViewGravityCenter, + NSStackViewGravityBottom, + NSStackViewGravityTrailing + ); + +#endif ENUMTOOBJ(StatusItemLength, NSVariableStatusItemLength, @@ -808,6 +839,13 @@ @implementation FSObjectEnumInfo NSOnlyScrollerArrows, NSAllScrollerParts); +#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_9 +ENUMTOOBJ(UserInterfaceLayoutOrientation, + NSUserInterfaceLayoutOrientationHorizontal, + NSUserInterfaceLayoutOrientationVertical + ); +#endif + ENUMTOOBJ(WindingRule, NSNonZeroWindingRule, diff --git a/FScriptFramework/FSObjectInspectorViewController.xib b/FScriptFramework/FSObjectInspectorViewController.xib index dd7cca8..e4e5704 100644 --- a/FScriptFramework/FSObjectInspectorViewController.xib +++ b/FScriptFramework/FSObjectInspectorViewController.xib @@ -195,7 +195,7 @@ - + From 7595e96753bf321cde975e49b5284d9b9deba9f5 Mon Sep 17 00:00:00 2001 From: Ant Date: Fri, 5 Dec 2014 22:41:23 +0000 Subject: [PATCH 32/33] Added NSEdgeInsets as a supported type --- FScript.xcodeproj/project.pbxproj | 2 +- FScriptFramework/FSExecEngine.m | 8 +++++ FScriptFramework/FSGenericPointer.m | 1 + FScriptFramework/FSMiscTools.h | 2 +- FScriptFramework/FSMiscTools.m | 18 ++++++++-- FScriptFramework/FSMsgContext.m | 4 +-- FScriptFramework/FSNSValue.h | 5 +++ FScriptFramework/FSNSValue.m | 50 ++++++++++++++++++++++++++ FScriptFramework/FSObjectBrowserView.m | 2 ++ FScriptFramework/Pointer.m | 11 +++++- 10 files changed, 96 insertions(+), 7 deletions(-) diff --git a/FScript.xcodeproj/project.pbxproj b/FScript.xcodeproj/project.pbxproj index 8910aff..aefd2f1 100644 --- a/FScript.xcodeproj/project.pbxproj +++ b/FScript.xcodeproj/project.pbxproj @@ -5102,7 +5102,6 @@ 0CD4E32500D7DFE17BE9C1BD /* FSObjectBrowserView.m */, 8F4E294C075B8E5600F8DCDB /* FSObjectBrowserViewObjectInfo.h */, 8F4E294D075B8E5600F8DCDB /* FSObjectBrowserViewObjectInfo.m */, - EDC2C8DB1A1A925800942777 /* Object Inspector */, ED8222E51A19554F00C42C72 /* FSObjectEnumInfo.h */, ED8222E61A19554F00C42C72 /* FSObjectEnumInfo.m */, F5EBBE820321029601CA10C6 /* FSObjectFormatter.h */, @@ -5159,6 +5158,7 @@ 8FBB2FF00EEB3467007A3163 /* Number_fscript.h */, 8FBB2FF10EEB3467007A3163 /* Number.m */, 0CD4E38F00D7DFE17BE9C1BD /* NumberPrivate.h */, + EDC2C8DB1A1A925800942777 /* Object Inspector */, F505648002DF417501FE0326 /* Pointer.h */, F505647F02DF417501FE0326 /* Pointer.m */, F5F856C002EB281C01F7E6F0 /* PointerPrivate.h */, diff --git a/FScriptFramework/FSExecEngine.m b/FScriptFramework/FSExecEngine.m index 3372631..032ade3 100644 --- a/FScriptFramework/FSExecEngine.m +++ b/FScriptFramework/FSExecEngine.m @@ -144,6 +144,7 @@ id FSMapToObject(void *valuePtr, NSUInteger index, char fsEncodedType, const cha case fscode_CGSize: return [NSValue valueWithSize:((NSSize *)valuePtr)[index]]; case fscode_NSRect: case fscode_CGRect: return [NSValue valueWithRect:((NSRect *)valuePtr)[index]]; + case fscode_NSEdgeInsets: return [NSValue valueWithEdgeInsets:((NSEdgeInsets *)valuePtr)[index]]; case fscode_CGAffineTransform: return FSNSAffineTransformFromCGAffineTransform(((CGAffineTransform *)valuePtr)[index]); case '*': case '^': @@ -303,6 +304,13 @@ void FSMapFromObject(void *valuePtr, NSUInteger index, char fsEncodedType, id ob else if (strcmp([object objCType], @encode(NSRect)) != 0) FSExecError([NSString stringWithFormat:@"%@ must be an NSValue containing a NSRect", description(mapType, argumentNumber, selector, ivarName)]); else ((NSRect *)valuePtr)[index] = [object rectValue]; break; + } + case fscode_NSEdgeInsets: + { + if (![object isKindOfClass:[NSValue class]]) FSExecError([NSString stringWithFormat:@"%@ is %@. An instance of NSValue containing a NSEdgeInsets was expected", description(mapType, argumentNumber, selector, ivarName), descriptionForFSMessage(object)]); + else if (strcmp([object objCType], @encode(NSEdgeInsets)) != 0) FSExecError([NSString stringWithFormat:@"%@ must be an NSValue containing a NSEdgeInsets", description(mapType, argumentNumber, selector, ivarName)]); + else ((NSEdgeInsets *)valuePtr)[index] = [object edgeInsetsValue]; + break; } case fscode_CGAffineTransform: { diff --git a/FScriptFramework/FSGenericPointer.m b/FScriptFramework/FSGenericPointer.m index ffd6c3e..ea9c6fe 100644 --- a/FScriptFramework/FSGenericPointer.m +++ b/FScriptFramework/FSGenericPointer.m @@ -187,6 +187,7 @@ - (NSArray *)memoryContent case fscode_CGSize: itemSize = sizeof(NSSize); break; case fscode_NSRect: case fscode_CGRect: itemSize = sizeof(NSRect); break; + case fscode_NSEdgeInsets: itemSize = sizeof(NSEdgeInsets); break; case fscode_CGAffineTransform: itemSize = sizeof(CGAffineTransform); break; default: itemSize = 0; } diff --git a/FScriptFramework/FSMiscTools.h b/FScriptFramework/FSMiscTools.h index a06ce80..89b112c 100644 --- a/FScriptFramework/FSMiscTools.h +++ b/FScriptFramework/FSMiscTools.h @@ -22,7 +22,7 @@ ffi_type *ffiTypeFromFSEncodedType(char fsEncodedType); enum e_FSObjCTypeCode {fscode_CGAffineTransform = '9', fscode_NSRect = 'w', fscode_NSSize = 'x', fscode_NSPoint = 'y', fscode_NSRange = 'z', - fscode_CGRect = 'W', fscode_CGSize = 'X', fscode_CGPoint = 'Y'}; + fscode_CGRect = 'W', fscode_CGSize = 'X', fscode_CGPoint = 'Y', fscode_NSEdgeInsets = 'Z'}; char FSEncode(const char *foundationEncodeStyleStr); diff --git a/FScriptFramework/FSMiscTools.m b/FScriptFramework/FSMiscTools.m index 86e5066..9254bad 100644 --- a/FScriptFramework/FSMiscTools.m +++ b/FScriptFramework/FSMiscTools.m @@ -30,7 +30,7 @@ @class _NSZombie, NSFault, NSRTFD; -static ffi_type ffi_type_NSRange, ffi_type_NSPoint, ffi_type_NSRect, ffi_type_NSSize, ffi_type_CGAffineTransform; +static ffi_type ffi_type_NSRange, ffi_type_NSPoint, ffi_type_NSRect, ffi_type_NSSize, ffi_type_CGAffineTransform, ffi_type_NSEdgeInsets; void __attribute__ ((constructor)) initializeFFITypes(void) { @@ -87,6 +87,18 @@ void __attribute__ ((constructor)) initializeFFITypes(void) ffi_type_NSRect.elements[1] = &ffi_type_NSSize; ffi_type_NSRect.elements[2] = NULL; + + //////////////////////////// Define ffi_type_NSEdgeInsets + ffi_type_NSEdgeInsets.size = 0; + ffi_type_NSEdgeInsets.alignment = 0; + ffi_type_NSEdgeInsets.type = FFI_TYPE_STRUCT; + ffi_type_NSEdgeInsets.elements = malloc(5 * sizeof(ffi_type*)); + ffi_type_NSEdgeInsets.elements[0] = &ffi_type_double; + ffi_type_NSEdgeInsets.elements[1] = &ffi_type_double; + ffi_type_NSEdgeInsets.elements[2] = &ffi_type_double; + ffi_type_NSEdgeInsets.elements[3] = &ffi_type_double; + ffi_type_NSEdgeInsets.elements[4] = NULL; + //////////////////////////// Define ffi_type_CGAffineTransform ffi_type_CGAffineTransform.size = 0; ffi_type_CGAffineTransform.alignment = 0; @@ -220,7 +232,8 @@ BOOL containsString(NSString *s, NSString *t, NSUInteger mask) case fscode_NSRect : case fscode_CGRect : return &ffi_type_NSRect; case fscode_NSSize : - case fscode_CGSize : return &ffi_type_NSSize; + case fscode_CGSize : return &ffi_type_NSSize; + case fscode_NSEdgeInsets : return &ffi_type_NSEdgeInsets; case fscode_CGAffineTransform : return &ffi_type_CGAffineTransform; case 'B' : // No ffi_type defined yet for _Bool (Mac OS X 10.5.4), so we handle it ourselves if (sizeof(_Bool) == 4) return &ffi_type_uint32; @@ -258,6 +271,7 @@ char FSEncode(const char *foundationEncodeStyleStr) else if (strcmp(ptr,@encode(NSPoint)) == 0 || strncmp(ptr,"{_NSPoint=" , 10) == 0) return fscode_NSPoint; else if (strcmp(ptr,@encode(NSSize)) == 0 || strncmp(ptr,"{_NSSize=" , 9) == 0) return fscode_NSSize; else if (strcmp(ptr,@encode(NSRect)) == 0 || strncmp(ptr,"{_NSRect=" , 9) == 0) return fscode_NSRect; + else if (strcmp(ptr,@encode(NSEdgeInsets)) == 0 || strncmp(ptr,"{_NSEdgeInsets=" , 15) == 0) return fscode_NSEdgeInsets; else if (strcmp(ptr,@encode(CGPoint)) == 0 || strncmp(ptr,"{CGPoint=" , 9) == 0) return fscode_CGPoint; else if (strcmp(ptr,@encode(CGSize)) == 0 || strncmp(ptr,"{CGSize=" , 8) == 0) return fscode_CGSize; else if (strcmp(ptr,@encode(CGRect)) == 0 || strncmp(ptr,"{CGRect=" , 8) == 0) return fscode_CGRect; diff --git a/FScriptFramework/FSMsgContext.m b/FScriptFramework/FSMsgContext.m index 815896b..447a576 100644 --- a/FScriptFramework/FSMsgContext.m +++ b/FScriptFramework/FSMsgContext.m @@ -119,7 +119,7 @@ - (void) prepareForMessageWithReceiver:(id)receiver selector:(SEL)selector // Ma && returnType != 'c' && returnType != '*' && returnType != 's' && returnType != 'l' && returnType != 'q' && returnType != 'C' && returnType != 'I' && returnType != 'S' && returnType != 'Q' && returnType != 'f' && returnType != ':' && returnType != 'w' - && returnType != 'x' && returnType != 'y' && returnType != 'z' && returnType != 'W' + && returnType != 'x' && returnType != 'y' && returnType != 'z' && returnType != 'Z' && returnType != 'W' && returnType != 'X' && returnType != 'Y' && returnType != '^' && returnType != 'B' && returnType != '9'; @@ -162,7 +162,7 @@ -(NSInteger)unsuportedArgumentIndex && argumentTypes[i] != 'q' && argumentTypes[i] != 'C' && argumentTypes[i] != 'I' && argumentTypes[i] != 'S' && argumentTypes[i] != 'Q' && argumentTypes[i] != 'f' && argumentTypes[i] != ':' && argumentTypes[i] != 'w' && argumentTypes[i] != 'W' && argumentTypes[i] != 'x' && argumentTypes[i] != 'X' && argumentTypes[i] != 'y' - && argumentTypes[i] != 'Y' && argumentTypes[i] != 'z' && argumentTypes[i] != '^' && argumentTypes[i] != '9') + && argumentTypes[i] != 'Y' && argumentTypes[i] != 'z' && argumentTypes[i] != 'Z' && argumentTypes[i] != '^' && argumentTypes[i] != '9') { return i; } diff --git a/FScriptFramework/FSNSValue.h b/FScriptFramework/FSNSValue.h index b2f1af4..eb08eb3 100644 --- a/FScriptFramework/FSNSValue.h +++ b/FScriptFramework/FSNSValue.h @@ -41,5 +41,10 @@ - (CGFloat)height; - (CGFloat)width; ++ (NSEdgeInsets)edgeInsetsWithTop:(CGFloat)top left:(CGFloat)left bottom:(CGFloat)bottom right:(CGFloat)right; +-(CGFloat)top; +-(CGFloat)left; +-(CGFloat)bottom; +-(CGFloat)right; @end diff --git a/FScriptFramework/FSNSValue.m b/FScriptFramework/FSNSValue.m index c6fba58..5d5b2e2 100644 --- a/FScriptFramework/FSNSValue.m +++ b/FScriptFramework/FSNSValue.m @@ -15,6 +15,10 @@ + (NSRange)rangeWithLocation:(NSUInteger)location length:(NSUInteger)length { return NSMakeRange(location,length); } ++ (NSEdgeInsets)edgeInsetsWithTop:(CGFloat)top left:(CGFloat)left bottom:(CGFloat)bottom right:(CGFloat)right +{ + return NSEdgeInsetsMake(top, left, bottom, right); +} + (NSSize)sizeWithWidth:(CGFloat)width height:(CGFloat)height { @@ -234,4 +238,50 @@ - (CGFloat)y else return [self pointValue].y; } + +- (CGFloat)top +{ + if (strcmp([self objCType],@encode(NSEdgeInsets)) != 0) + { + if ([self isKindOfClass:[NSNumber class]]) + FSExecError(@"message \"top\" sent to a number"); + else + FSExecError(@"message \"top\" sent to an NSValue that does not contain an NSEdgeInsets"); + } + else return [self edgeInsetsValue].top; +} + +- (CGFloat)left +{ + if (strcmp([self objCType],@encode(NSEdgeInsets)) != 0) + { + if ([self isKindOfClass:[NSNumber class]]) + FSExecError(@"message \"left\" sent to a number"); + else + FSExecError(@"message \"left\" sent to an NSValue that does not contain an NSEdgeInsets"); + } + else return [self edgeInsetsValue].left; +} +- (CGFloat)bottom +{ + if (strcmp([self objCType],@encode(NSEdgeInsets)) != 0) + { + if ([self isKindOfClass:[NSNumber class]]) + FSExecError(@"message \"bottom\" sent to a number"); + else + FSExecError(@"message \"bottom\" sent to an NSValue that does not contain an NSEdgeInsets"); + } + else return [self edgeInsetsValue].bottom; +} +- (CGFloat)right +{ + if (strcmp([self objCType],@encode(NSEdgeInsets)) != 0) + { + if ([self isKindOfClass:[NSNumber class]]) + FSExecError(@"message \"right\" sent to a number"); + else + FSExecError(@"message \"right\" sent to an NSValue that does not contain an NSEdgeInsets"); + } + else return [self edgeInsetsValue].right; +} @end diff --git a/FScriptFramework/FSObjectBrowserView.m b/FScriptFramework/FSObjectBrowserView.m index aab8c36..cf45244 100644 --- a/FScriptFramework/FSObjectBrowserView.m +++ b/FScriptFramework/FSObjectBrowserView.m @@ -1761,6 +1761,8 @@ static NSInteger FSCompareMethodsNamesForAlphabeticalOrder(NSString* m1, NSStrin return @"NSValue sizeWithWidth:0 height:0"; else if (strcmp(ptr, @encode(NSRect)) == 0) return @"0<>0 extent:0<>0"; + else if (strcmp(ptr, @encode(NSEdgeInsets)) == 0) + return @"NSValue edgeInsetsWithTop:0 left:0 bottom:0 right:0"; else if (strcmp(ptr, @encode(CGPoint)) == 0) return @"0<>0"; else if (strcmp(ptr, @encode(CGSize)) == 0) diff --git a/FScriptFramework/Pointer.m b/FScriptFramework/Pointer.m index 8e94d86..b387cc1 100644 --- a/FScriptFramework/Pointer.m +++ b/FScriptFramework/Pointer.m @@ -121,6 +121,7 @@ - (id)at:(id)i case fscode_NSPoint: return [NSValue valueWithPoint:((NSPoint *)cPointer)[index]]; case fscode_NSSize: return [NSValue valueWithSize: ((NSSize *) cPointer)[index]]; case fscode_NSRect: return [NSValue valueWithRect: ((NSRect *) cPointer)[index]]; + case fscode_NSEdgeInsets: return [NSValue valueWithEdgeInsets: ((NSEdgeInsets *) cPointer)[index]]; case '^': { void *p = ((void **)cPointer)[index]; return (p ? [Pointer pointerWithCPointer:p type:type+1] : nil ); } case 'v': FSExecError(@"dereferencing \"void *\" pointer"); default: FSExecError(@"can't dereference pointer: the type of the referenced data is not supported by F-Script"); @@ -289,7 +290,15 @@ - (id)at:(id)i put:(id)elem } else FSArgumentError(elem,2,@"NSValue containing an NSRect",@"at:put:"); - case '^': + case fscode_NSEdgeInsets: + if ([elem isKindOfClass:[NSValue class]] && strcmp([elem objCType],@encode(NSEdgeInsets)) == 0) + { + ((NSEdgeInsets *)cPointer)[index] = [elem edgeInsetsValue]; + return elem; + } + else FSArgumentError(elem,2,@"NSValue containing an NSEdgeInsets",@"top:left:bottom:right:"); + + case '^': if (elem == nil) ((void **)cPointer)[index] = NULL; else if ([elem isKindOfClass:[Pointer class]]) ((void **)cPointer)[index] = [elem cPointer]; else FSArgumentError(elem,2,@"Pointer",@"at:put:"); From 4921d1cf84aafc7b77f9290c231f58409ac472a3 Mon Sep 17 00:00:00 2001 From: Ant Date: Mon, 8 Dec 2014 16:04:40 +0000 Subject: [PATCH 33/33] Nibified FSObjectBrowser. Added float button to float the browser window above others. --- FScript.xcodeproj/project.pbxproj | 84 ++++++++++-- FScriptFramework/FSObjectBrowser.h | 10 +- FScriptFramework/FSObjectBrowser.m | 122 ++++++++++-------- FScriptFramework/FSObjectBrowser.xib | 49 +++++++ FScriptFramework/FSObjectBrowserSearchField.m | 1 + FScriptFramework/FSObjectBrowserView.h | 5 +- FScriptFramework/FSObjectBrowserView.m | 90 +++++++------ FScriptFramework/FSObjectBrowserWindow.h | 16 +++ FScriptFramework/FSObjectBrowserWindow.m | 47 +++++++ JGAdditions/FSObjectBrowserToolbar.m | 2 +- 10 files changed, 316 insertions(+), 110 deletions(-) create mode 100644 FScriptFramework/FSObjectBrowser.xib create mode 100644 FScriptFramework/FSObjectBrowserWindow.h create mode 100644 FScriptFramework/FSObjectBrowserWindow.m diff --git a/FScript.xcodeproj/project.pbxproj b/FScript.xcodeproj/project.pbxproj index aefd2f1..66f4398 100644 --- a/FScript.xcodeproj/project.pbxproj +++ b/FScript.xcodeproj/project.pbxproj @@ -18,7 +18,7 @@ 8F0CBBEA0BDB94AD002B0AD7 /* ArrayRepEmpty.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E31A00D7DFE17BE9C1BD /* ArrayRepEmpty.m */; }; 8F0CBBEB0BDB94AD002B0AD7 /* ArrayRepId.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E31C00D7DFE17BE9C1BD /* ArrayRepId.m */; }; 8F0CBBEC0BDB94AD002B0AD7 /* FSCollectionInspector.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E31E00D7DFE17BE9C1BD /* FSCollectionInspector.m */; }; - 8F0CBBED0BDB94AD002B0AD7 /* FSObjectBrowser.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32100D7DFE17BE9C1BD /* FSObjectBrowser.m */; }; + 8F0CBBED0BDB94AD002B0AD7 /* FSObjectBrowser.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32100D7DFE17BE9C1BD /* FSObjectBrowser.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; 8F0CBBEE0BDB94AD002B0AD7 /* FSObjectBrowserCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32300D7DFE17BE9C1BD /* FSObjectBrowserCell.m */; }; 8F0CBBEF0BDB94AD002B0AD7 /* FSBlock.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32700D7DFE17BE9C1BD /* FSBlock.m */; }; 8F0CBBF00BDB94AD002B0AD7 /* BlockInspector.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32900D7DFE17BE9C1BD /* BlockInspector.m */; }; @@ -412,7 +412,7 @@ 8F6DA666055FC6980050409A /* ArrayRepEmpty.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E31A00D7DFE17BE9C1BD /* ArrayRepEmpty.m */; }; 8F6DA667055FC6980050409A /* ArrayRepId.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E31C00D7DFE17BE9C1BD /* ArrayRepId.m */; }; 8F6DA668055FC6980050409A /* FSCollectionInspector.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E31E00D7DFE17BE9C1BD /* FSCollectionInspector.m */; }; - 8F6DA669055FC6980050409A /* FSObjectBrowser.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32100D7DFE17BE9C1BD /* FSObjectBrowser.m */; }; + 8F6DA669055FC6980050409A /* FSObjectBrowser.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32100D7DFE17BE9C1BD /* FSObjectBrowser.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; 8F6DA66A055FC6980050409A /* FSObjectBrowserArgumentPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = F5FA8A6D0215D44C01AFEEFD /* FSObjectBrowserArgumentPanel.m */; }; 8F6DA66B055FC6980050409A /* FSObjectBrowserCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32300D7DFE17BE9C1BD /* FSObjectBrowserCell.m */; }; 8F6DA66C055FC6980050409A /* FSObjectBrowserView.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32500D7DFE17BE9C1BD /* FSObjectBrowserView.m */; }; @@ -603,7 +603,7 @@ 8F6DA87E055FC70C0050409A /* ArrayRepEmpty.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E31A00D7DFE17BE9C1BD /* ArrayRepEmpty.m */; }; 8F6DA87F055FC70C0050409A /* ArrayRepId.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E31C00D7DFE17BE9C1BD /* ArrayRepId.m */; }; 8F6DA880055FC70C0050409A /* FSCollectionInspector.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E31E00D7DFE17BE9C1BD /* FSCollectionInspector.m */; }; - 8F6DA881055FC70C0050409A /* FSObjectBrowser.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32100D7DFE17BE9C1BD /* FSObjectBrowser.m */; }; + 8F6DA881055FC70C0050409A /* FSObjectBrowser.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32100D7DFE17BE9C1BD /* FSObjectBrowser.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; 8F6DA882055FC70C0050409A /* FSObjectBrowserArgumentPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = F5FA8A6D0215D44C01AFEEFD /* FSObjectBrowserArgumentPanel.m */; }; 8F6DA883055FC70C0050409A /* FSObjectBrowserCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32300D7DFE17BE9C1BD /* FSObjectBrowserCell.m */; }; 8F6DA884055FC70C0050409A /* FSObjectBrowserView.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32500D7DFE17BE9C1BD /* FSObjectBrowserView.m */; }; @@ -783,7 +783,7 @@ 8F6DA97A055FC71F0050409A /* ArrayRepEmpty.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E31A00D7DFE17BE9C1BD /* ArrayRepEmpty.m */; }; 8F6DA97B055FC71F0050409A /* ArrayRepId.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E31C00D7DFE17BE9C1BD /* ArrayRepId.m */; }; 8F6DA97C055FC71F0050409A /* FSCollectionInspector.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E31E00D7DFE17BE9C1BD /* FSCollectionInspector.m */; }; - 8F6DA97D055FC71F0050409A /* FSObjectBrowser.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32100D7DFE17BE9C1BD /* FSObjectBrowser.m */; }; + 8F6DA97D055FC71F0050409A /* FSObjectBrowser.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32100D7DFE17BE9C1BD /* FSObjectBrowser.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; 8F6DA97E055FC71F0050409A /* FSObjectBrowserCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32300D7DFE17BE9C1BD /* FSObjectBrowserCell.m */; }; 8F6DA97F055FC71F0050409A /* FSBlock.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32700D7DFE17BE9C1BD /* FSBlock.m */; }; 8F6DA980055FC71F0050409A /* BlockInspector.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32900D7DFE17BE9C1BD /* BlockInspector.m */; }; @@ -1425,7 +1425,7 @@ BA223268189FA403002C5B6A /* ArrayRepEmpty.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E31A00D7DFE17BE9C1BD /* ArrayRepEmpty.m */; }; BA223269189FA403002C5B6A /* ArrayRepId.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E31C00D7DFE17BE9C1BD /* ArrayRepId.m */; }; BA22326A189FA403002C5B6A /* FSCollectionInspector.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E31E00D7DFE17BE9C1BD /* FSCollectionInspector.m */; }; - BA22326B189FA403002C5B6A /* FSObjectBrowser.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32100D7DFE17BE9C1BD /* FSObjectBrowser.m */; }; + BA22326B189FA403002C5B6A /* FSObjectBrowser.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32100D7DFE17BE9C1BD /* FSObjectBrowser.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; BA22326C189FA403002C5B6A /* FSObjectBrowserArgumentPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = F5FA8A6D0215D44C01AFEEFD /* FSObjectBrowserArgumentPanel.m */; }; BA22326D189FA403002C5B6A /* FSObjectBrowserCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32300D7DFE17BE9C1BD /* FSObjectBrowserCell.m */; }; BA22326E189FA403002C5B6A /* FSObjectBrowserView.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32500D7DFE17BE9C1BD /* FSObjectBrowserView.m */; }; @@ -1847,7 +1847,7 @@ BA223428189FA412002C5B6A /* ArrayRepEmpty.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E31A00D7DFE17BE9C1BD /* ArrayRepEmpty.m */; }; BA223429189FA412002C5B6A /* ArrayRepId.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E31C00D7DFE17BE9C1BD /* ArrayRepId.m */; }; BA22342A189FA412002C5B6A /* FSCollectionInspector.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E31E00D7DFE17BE9C1BD /* FSCollectionInspector.m */; }; - BA22342B189FA412002C5B6A /* FSObjectBrowser.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32100D7DFE17BE9C1BD /* FSObjectBrowser.m */; }; + BA22342B189FA412002C5B6A /* FSObjectBrowser.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32100D7DFE17BE9C1BD /* FSObjectBrowser.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; BA22342C189FA412002C5B6A /* FSObjectBrowserArgumentPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = F5FA8A6D0215D44C01AFEEFD /* FSObjectBrowserArgumentPanel.m */; }; BA22342D189FA412002C5B6A /* FSObjectBrowserCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32300D7DFE17BE9C1BD /* FSObjectBrowserCell.m */; }; BA22342E189FA412002C5B6A /* FSObjectBrowserView.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32500D7DFE17BE9C1BD /* FSObjectBrowserView.m */; }; @@ -2264,7 +2264,7 @@ BA2235DB189FA429002C5B6A /* ArrayRepEmpty.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E31A00D7DFE17BE9C1BD /* ArrayRepEmpty.m */; }; BA2235DC189FA429002C5B6A /* ArrayRepId.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E31C00D7DFE17BE9C1BD /* ArrayRepId.m */; }; BA2235DD189FA429002C5B6A /* FSCollectionInspector.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E31E00D7DFE17BE9C1BD /* FSCollectionInspector.m */; }; - BA2235DE189FA429002C5B6A /* FSObjectBrowser.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32100D7DFE17BE9C1BD /* FSObjectBrowser.m */; }; + BA2235DE189FA429002C5B6A /* FSObjectBrowser.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32100D7DFE17BE9C1BD /* FSObjectBrowser.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; BA2235DF189FA429002C5B6A /* FSObjectBrowserCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32300D7DFE17BE9C1BD /* FSObjectBrowserCell.m */; }; BA2235E0189FA429002C5B6A /* FSBlock.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32700D7DFE17BE9C1BD /* FSBlock.m */; }; BA2235E1189FA429002C5B6A /* BlockInspector.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32900D7DFE17BE9C1BD /* BlockInspector.m */; }; @@ -2578,7 +2578,7 @@ BA223723189FA431002C5B6A /* ArrayRepEmpty.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E31A00D7DFE17BE9C1BD /* ArrayRepEmpty.m */; }; BA223724189FA431002C5B6A /* ArrayRepId.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E31C00D7DFE17BE9C1BD /* ArrayRepId.m */; }; BA223725189FA431002C5B6A /* FSCollectionInspector.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E31E00D7DFE17BE9C1BD /* FSCollectionInspector.m */; }; - BA223726189FA431002C5B6A /* FSObjectBrowser.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32100D7DFE17BE9C1BD /* FSObjectBrowser.m */; }; + BA223726189FA431002C5B6A /* FSObjectBrowser.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32100D7DFE17BE9C1BD /* FSObjectBrowser.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; BA223727189FA431002C5B6A /* FSObjectBrowserCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32300D7DFE17BE9C1BD /* FSObjectBrowserCell.m */; }; BA223728189FA431002C5B6A /* FSBlock.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32700D7DFE17BE9C1BD /* FSBlock.m */; }; BA223729189FA431002C5B6A /* BlockInspector.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32900D7DFE17BE9C1BD /* BlockInspector.m */; }; @@ -2749,6 +2749,35 @@ ED3CB6501A1E5B3300771077 /* FSColorWell.m in Sources */ = {isa = PBXBuildFile; fileRef = ED3CB6401A1E5B3300771077 /* FSColorWell.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; ED3CB6511A1E5B3300771077 /* FSColorWell.m in Sources */ = {isa = PBXBuildFile; fileRef = ED3CB6401A1E5B3300771077 /* FSColorWell.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; ED3CB6521A1E5B9100771077 /* FSColorWell.m in Sources */ = {isa = PBXBuildFile; fileRef = ED3CB6401A1E5B3300771077 /* FSColorWell.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; + ED68BE421A35E39000968430 /* FSObjectBrowser.xib in Resources */ = {isa = PBXBuildFile; fileRef = ED68BE411A35E38F00968430 /* FSObjectBrowser.xib */; }; + ED68BE431A35E39000968430 /* FSObjectBrowser.xib in Resources */ = {isa = PBXBuildFile; fileRef = ED68BE411A35E38F00968430 /* FSObjectBrowser.xib */; }; + ED68BE441A35E39000968430 /* FSObjectBrowser.xib in Resources */ = {isa = PBXBuildFile; fileRef = ED68BE411A35E38F00968430 /* FSObjectBrowser.xib */; }; + ED68BE451A35E39000968430 /* FSObjectBrowser.xib in Resources */ = {isa = PBXBuildFile; fileRef = ED68BE411A35E38F00968430 /* FSObjectBrowser.xib */; }; + ED68BE461A35E39000968430 /* FSObjectBrowser.xib in Resources */ = {isa = PBXBuildFile; fileRef = ED68BE411A35E38F00968430 /* FSObjectBrowser.xib */; }; + ED68BE471A35E39000968430 /* FSObjectBrowser.xib in Resources */ = {isa = PBXBuildFile; fileRef = ED68BE411A35E38F00968430 /* FSObjectBrowser.xib */; }; + ED68BE481A35E39000968430 /* FSObjectBrowser.xib in Resources */ = {isa = PBXBuildFile; fileRef = ED68BE411A35E38F00968430 /* FSObjectBrowser.xib */; }; + ED68BE491A35E39000968430 /* FSObjectBrowser.xib in Resources */ = {isa = PBXBuildFile; fileRef = ED68BE411A35E38F00968430 /* FSObjectBrowser.xib */; }; + ED68BE4A1A35E39000968430 /* FSObjectBrowser.xib in Resources */ = {isa = PBXBuildFile; fileRef = ED68BE411A35E38F00968430 /* FSObjectBrowser.xib */; }; + ED68BE4B1A35E39000968430 /* FSObjectBrowser.xib in Resources */ = {isa = PBXBuildFile; fileRef = ED68BE411A35E38F00968430 /* FSObjectBrowser.xib */; }; + ED68BE4E1A35E94B00968430 /* FSObjectBrowserWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = ED68BE4C1A35E94B00968430 /* FSObjectBrowserWindow.h */; }; + ED68BE4F1A35E94B00968430 /* FSObjectBrowserWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = ED68BE4C1A35E94B00968430 /* FSObjectBrowserWindow.h */; }; + ED68BE501A35E94B00968430 /* FSObjectBrowserWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = ED68BE4C1A35E94B00968430 /* FSObjectBrowserWindow.h */; }; + ED68BE511A35E94B00968430 /* FSObjectBrowserWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = ED68BE4C1A35E94B00968430 /* FSObjectBrowserWindow.h */; }; + ED68BE521A35E94B00968430 /* FSObjectBrowserWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = ED68BE4C1A35E94B00968430 /* FSObjectBrowserWindow.h */; }; + ED68BE531A35E94B00968430 /* FSObjectBrowserWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = ED68BE4C1A35E94B00968430 /* FSObjectBrowserWindow.h */; }; + ED68BE541A35E94B00968430 /* FSObjectBrowserWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = ED68BE4C1A35E94B00968430 /* FSObjectBrowserWindow.h */; }; + ED68BE551A35E94B00968430 /* FSObjectBrowserWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = ED68BE4C1A35E94B00968430 /* FSObjectBrowserWindow.h */; }; + ED68BE561A35E94B00968430 /* FSObjectBrowserWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = ED68BE4C1A35E94B00968430 /* FSObjectBrowserWindow.h */; }; + ED68BE571A35E94B00968430 /* FSObjectBrowserWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = ED68BE4D1A35E94B00968430 /* FSObjectBrowserWindow.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; + ED68BE581A35E94B00968430 /* FSObjectBrowserWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = ED68BE4D1A35E94B00968430 /* FSObjectBrowserWindow.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; + ED68BE591A35E94B00968430 /* FSObjectBrowserWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = ED68BE4D1A35E94B00968430 /* FSObjectBrowserWindow.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; + ED68BE5A1A35E94B00968430 /* FSObjectBrowserWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = ED68BE4D1A35E94B00968430 /* FSObjectBrowserWindow.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; + ED68BE5B1A35E94B00968430 /* FSObjectBrowserWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = ED68BE4D1A35E94B00968430 /* FSObjectBrowserWindow.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; + ED68BE5C1A35E94B00968430 /* FSObjectBrowserWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = ED68BE4D1A35E94B00968430 /* FSObjectBrowserWindow.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; + ED68BE5D1A35E94B00968430 /* FSObjectBrowserWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = ED68BE4D1A35E94B00968430 /* FSObjectBrowserWindow.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; + ED68BE5E1A35E94B00968430 /* FSObjectBrowserWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = ED68BE4D1A35E94B00968430 /* FSObjectBrowserWindow.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; + ED68BE5F1A35E94B00968430 /* FSObjectBrowserWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = ED68BE4D1A35E94B00968430 /* FSObjectBrowserWindow.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; + ED68BE601A35E94B00968430 /* FSObjectBrowserWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = ED68BE4D1A35E94B00968430 /* FSObjectBrowserWindow.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; ED8222D61A194FD600C42C72 /* FSObjectInspectorViewModelItem.h in Headers */ = {isa = PBXBuildFile; fileRef = ED8222D41A194FD600C42C72 /* FSObjectInspectorViewModelItem.h */; }; ED8222D71A194FD600C42C72 /* FSObjectInspectorViewModelItem.h in Headers */ = {isa = PBXBuildFile; fileRef = ED8222D41A194FD600C42C72 /* FSObjectInspectorViewModelItem.h */; }; ED8222D81A194FD600C42C72 /* FSObjectInspectorViewModelItem.h in Headers */ = {isa = PBXBuildFile; fileRef = ED8222D41A194FD600C42C72 /* FSObjectInspectorViewModelItem.h */; }; @@ -3114,7 +3143,7 @@ EDC2C9CF1A1AA50D00942777 /* ArrayRepEmpty.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E31A00D7DFE17BE9C1BD /* ArrayRepEmpty.m */; }; EDC2C9D01A1AA50D00942777 /* ArrayRepId.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E31C00D7DFE17BE9C1BD /* ArrayRepId.m */; }; EDC2C9D11A1AA50D00942777 /* FSCollectionInspector.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E31E00D7DFE17BE9C1BD /* FSCollectionInspector.m */; }; - EDC2C9D21A1AA50D00942777 /* FSObjectBrowser.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32100D7DFE17BE9C1BD /* FSObjectBrowser.m */; }; + EDC2C9D21A1AA50D00942777 /* FSObjectBrowser.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32100D7DFE17BE9C1BD /* FSObjectBrowser.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; EDC2C9D31A1AA50D00942777 /* FSObjectBrowserArgumentPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = F5FA8A6D0215D44C01AFEEFD /* FSObjectBrowserArgumentPanel.m */; }; EDC2C9D41A1AA50D00942777 /* FSObjectBrowserCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32300D7DFE17BE9C1BD /* FSObjectBrowserCell.m */; }; EDC2C9D51A1AA50D00942777 /* FSObjectBrowserView.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32500D7DFE17BE9C1BD /* FSObjectBrowserView.m */; }; @@ -3548,7 +3577,7 @@ EDC2CB921A1AA52500942777 /* ArrayRepEmpty.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E31A00D7DFE17BE9C1BD /* ArrayRepEmpty.m */; }; EDC2CB931A1AA52500942777 /* ArrayRepId.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E31C00D7DFE17BE9C1BD /* ArrayRepId.m */; }; EDC2CB941A1AA52500942777 /* FSCollectionInspector.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E31E00D7DFE17BE9C1BD /* FSCollectionInspector.m */; }; - EDC2CB951A1AA52500942777 /* FSObjectBrowser.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32100D7DFE17BE9C1BD /* FSObjectBrowser.m */; }; + EDC2CB951A1AA52500942777 /* FSObjectBrowser.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32100D7DFE17BE9C1BD /* FSObjectBrowser.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; EDC2CB961A1AA52500942777 /* FSObjectBrowserCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32300D7DFE17BE9C1BD /* FSObjectBrowserCell.m */; }; EDC2CB971A1AA52500942777 /* FSBlock.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32700D7DFE17BE9C1BD /* FSBlock.m */; }; EDC2CB981A1AA52500942777 /* BlockInspector.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4E32900D7DFE17BE9C1BD /* BlockInspector.m */; }; @@ -4219,6 +4248,9 @@ ED3004E71A1A86EF00675D94 /* FSObjectInspectorViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = FSObjectInspectorViewController.xib; sourceTree = ""; }; ED3CB63F1A1E5B3300771077 /* FSColorWell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSColorWell.h; sourceTree = ""; }; ED3CB6401A1E5B3300771077 /* FSColorWell.m */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 8; lastKnownFileType = sourcecode.c.objc; path = FSColorWell.m; sourceTree = ""; tabWidth = 8; }; + ED68BE411A35E38F00968430 /* FSObjectBrowser.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = FSObjectBrowser.xib; sourceTree = ""; }; + ED68BE4C1A35E94B00968430 /* FSObjectBrowserWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSObjectBrowserWindow.h; sourceTree = ""; }; + ED68BE4D1A35E94B00968430 /* FSObjectBrowserWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FSObjectBrowserWindow.m; sourceTree = ""; }; ED8222D41A194FD600C42C72 /* FSObjectInspectorViewModelItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSObjectInspectorViewModelItem.h; sourceTree = ""; }; ED8222D51A194FD600C42C72 /* FSObjectInspectorViewModelItem.m */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 8; lastKnownFileType = sourcecode.c.objc; path = FSObjectInspectorViewModelItem.m; sourceTree = ""; tabWidth = 8; }; ED8222E51A19554F00C42C72 /* FSObjectEnumInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSObjectEnumInfo.h; sourceTree = ""; }; @@ -5077,6 +5109,9 @@ 0CD4E38E00D7DFE17BE9C1BD /* FSNumber.m */, 0CD4E32000D7DFE17BE9C1BD /* FSObjectBrowser.h */, 0CD4E32100D7DFE17BE9C1BD /* FSObjectBrowser.m */, + ED68BE4C1A35E94B00968430 /* FSObjectBrowserWindow.h */, + ED68BE4D1A35E94B00968430 /* FSObjectBrowserWindow.m */, + ED68BE411A35E38F00968430 /* FSObjectBrowser.xib */, F5FA8A6C0215D44C01AFEEFD /* FSObjectBrowserArgumentPanel.h */, F5FA8A6D0215D44C01AFEEFD /* FSObjectBrowserArgumentPanel.m */, 8F7A71290F48397C00E95364 /* FSObjectBrowserBottomBarTextDisplay.h */, @@ -5473,6 +5508,7 @@ 8F6DA600055FC6980050409A /* FScriptFunctions.h in Headers */, 8F6DA601055FC6980050409A /* FSInterpreter.h in Headers */, 8F6DA602055FC6980050409A /* FSInterpreterView.h in Headers */, + ED68BE561A35E94B00968430 /* FSObjectBrowserWindow.h in Headers */, EDA6AC5E1A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.h in Headers */, 8F6DA603055FC6980050409A /* FSInterpreterViewIBHeader.h in Headers */, 8F6DA604055FC6980050409A /* FSNSArray.h in Headers */, @@ -5768,6 +5804,7 @@ 8F2E34220D8DB61C00912543 /* FSCNUnaryMessage.h in Headers */, 8F2E34350D8DBF6A00912543 /* FSCNBinaryMessage.h in Headers */, 8F2E343E0D8DBFE700912543 /* FSCNKeywordMessage.h in Headers */, + ED68BE4E1A35E94B00968430 /* FSObjectBrowserWindow.h in Headers */, 8F5900170D9468FC003A8B17 /* FSCNCascade.h in Headers */, 8F8F58660D9FE6A900ED0FED /* FSCNStatementList.h in Headers */, 8F747DAD0DA03AE200148342 /* FSCNPrecomputedObject.h in Headers */, @@ -5836,6 +5873,7 @@ 8F6DA915055FC71F0050409A /* FSInterpreterResultPrivate.h in Headers */, 8F6DA916055FC71F0050409A /* FSInterpreterView.h in Headers */, 8F6DA917055FC71F0050409A /* FSInterpreterViewIBHeader.h in Headers */, + ED68BE4F1A35E94B00968430 /* FSObjectBrowserWindow.h in Headers */, 8F6DA918055FC71F0050409A /* FSNSArray.h in Headers */, ED83191E1A1BC2B500290EE2 /* FSUtils.h in Headers */, 8F6DA919055FC71F0050409A /* FSNSArrayPrivate.h in Headers */, @@ -6122,6 +6160,7 @@ BA22322E189FA403002C5B6A /* FSCNUnaryMessage.h in Headers */, BA22322F189FA403002C5B6A /* FSCNBinaryMessage.h in Headers */, BA223230189FA403002C5B6A /* FSCNKeywordMessage.h in Headers */, + ED68BE501A35E94B00968430 /* FSObjectBrowserWindow.h in Headers */, BA223231189FA403002C5B6A /* FSCNCascade.h in Headers */, BA223232189FA403002C5B6A /* FSCNStatementList.h in Headers */, BA223233189FA403002C5B6A /* FSCNPrecomputedObject.h in Headers */, @@ -6301,6 +6340,7 @@ BA2233EE189FA412002C5B6A /* FSCNUnaryMessage.h in Headers */, BA2233EF189FA412002C5B6A /* FSCNBinaryMessage.h in Headers */, BA2233F0189FA412002C5B6A /* FSCNKeywordMessage.h in Headers */, + ED68BE521A35E94B00968430 /* FSObjectBrowserWindow.h in Headers */, BA2233F1189FA412002C5B6A /* FSCNCascade.h in Headers */, BA2233F2189FA412002C5B6A /* FSCNStatementList.h in Headers */, BA2233F3189FA412002C5B6A /* FSCNPrecomputedObject.h in Headers */, @@ -6369,6 +6409,7 @@ BA223543189FA429002C5B6A /* FSInterpreterResultPrivate.h in Headers */, BA223544189FA429002C5B6A /* FSInterpreterView.h in Headers */, BA223545189FA429002C5B6A /* FSInterpreterViewIBHeader.h in Headers */, + ED68BE511A35E94B00968430 /* FSObjectBrowserWindow.h in Headers */, BA223546189FA429002C5B6A /* FSNSArray.h in Headers */, ED8319201A1BC2B500290EE2 /* FSUtils.h in Headers */, BA223547189FA429002C5B6A /* FSNSArrayPrivate.h in Headers */, @@ -6544,6 +6585,7 @@ BA22368B189FA431002C5B6A /* FSInterpreterResultPrivate.h in Headers */, BA22368C189FA431002C5B6A /* FSInterpreterView.h in Headers */, BA22368D189FA431002C5B6A /* FSInterpreterViewIBHeader.h in Headers */, + ED68BE531A35E94B00968430 /* FSObjectBrowserWindow.h in Headers */, BA22368E189FA431002C5B6A /* FSNSArray.h in Headers */, ED8319221A1BC2B500290EE2 /* FSUtils.h in Headers */, BA22368F189FA431002C5B6A /* FSNSArrayPrivate.h in Headers */, @@ -6830,6 +6872,7 @@ EDC2C9931A1AA50D00942777 /* FSCNUnaryMessage.h in Headers */, EDC2C9941A1AA50D00942777 /* FSCNBinaryMessage.h in Headers */, EDC2C9951A1AA50D00942777 /* FSCNKeywordMessage.h in Headers */, + ED68BE541A35E94B00968430 /* FSObjectBrowserWindow.h in Headers */, EDC2C9961A1AA50D00942777 /* FSCNCascade.h in Headers */, EDC2C9971A1AA50D00942777 /* FSCNStatementList.h in Headers */, EDC2C9981A1AA50D00942777 /* FSCNPrecomputedObject.h in Headers */, @@ -6935,6 +6978,7 @@ EDC2CB151A1AA52500942777 /* DOTest.h in Headers */, EDC2CB161A1AA52500942777 /* FScriptTextView.h in Headers */, EDC2CB171A1AA52500942777 /* FSObjectBrowserArgumentPanel.h in Headers */, + ED68BE551A35E94B00968430 /* FSObjectBrowserWindow.h in Headers */, ED8319391A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.h in Headers */, EDC2CB181A1AA52500942777 /* FSNSProtocolChecker.h in Headers */, EDC2CB191A1AA52500942777 /* FSObjectBrowserToolbar.h in Headers */, @@ -7304,6 +7348,7 @@ 8F0CBC660BDB9519002B0AD7 /* license.txt in Resources */, 8F0CBC670BDB9519002B0AD7 /* fs.scriptSuite in Resources */, 8F0CBC680BDB9519002B0AD7 /* fs.scriptTerminology in Resources */, + ED68BE4B1A35E39000968430 /* FSObjectBrowser.xib in Resources */, 8F0CBC6B0BDB9519002B0AD7 /* FSImageInspector.nib in Resources */, 8F0CBC6C0BDB9519002B0AD7 /* ReadMe.txt in Resources */, 8F0CBC6D0BDB9519002B0AD7 /* ArrayTableView.nib in Resources */, @@ -7351,6 +7396,7 @@ EDE508E119DD4FDC0012F16A /* FScriptPreferences.xib in Resources */, 8F6DA65F055FC6980050409A /* ArrayTableView.nib in Resources */, 8FDCCD7E05C0A0A000747C0A /* FSAttributedStringInspector.nib in Resources */, + ED68BE4A1A35E39000968430 /* FSObjectBrowser.xib in Resources */, 8F2D067305CED9B9007EA81B /* run.tiff in Resources */, 8F56036705CF22660044FA65 /* build.tiff in Resources */, 8FA8EFA307739FD5001BEC7B /* FSCollectionInspectorView.nib in Resources */, @@ -7397,6 +7443,7 @@ 8F2D067105CED9B9007EA81B /* run.tiff in Resources */, EDA22BEA1A24C28D0093DB91 /* window.png in Resources */, 8F56036805CF22660044FA65 /* build.tiff in Resources */, + ED68BE421A35E39000968430 /* FSObjectBrowser.xib in Resources */, EDA6AC691A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.xib in Resources */, 8FA8EFA007739FD5001BEC7B /* FSCollectionInspectorView.nib in Resources */, 8FCA6B88078E0E4F005FC6B2 /* FSManagedObjectContextInspector.nib in Resources */, @@ -7417,6 +7464,7 @@ 8F6DA965055FC71F0050409A /* blockInspector.nib in Resources */, 8F6DA968055FC71F0050409A /* FlightTutorial.txt in Resources */, 8F6DA969055FC71F0050409A /* genObjInspector.nib in Resources */, + ED68BE431A35E39000968430 /* FSObjectBrowser.xib in Resources */, EDE508DC19DD4FDC0012F16A /* FScriptPreferences.xib in Resources */, 8F6DA96A055FC71F0050409A /* KTest.txt in Resources */, 8F6DA96B055FC71F0050409A /* license.txt in Resources */, @@ -7468,6 +7516,7 @@ BA22325E189FA403002C5B6A /* run.tiff in Resources */, EDA22BEC1A24C28D0093DB91 /* window.png in Resources */, BA22325F189FA403002C5B6A /* build.tiff in Resources */, + ED68BE441A35E39000968430 /* FSObjectBrowser.xib in Resources */, EDA6AC6B1A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.xib in Resources */, BA223260189FA403002C5B6A /* FSCollectionInspectorView.nib in Resources */, BA223261189FA403002C5B6A /* FSManagedObjectContextInspector.nib in Resources */, @@ -7506,6 +7555,7 @@ BA22341E189FA412002C5B6A /* run.tiff in Resources */, EDA22BEE1A24C28D0093DB91 /* window.png in Resources */, BA22341F189FA412002C5B6A /* build.tiff in Resources */, + ED68BE461A35E39000968430 /* FSObjectBrowser.xib in Resources */, EDA6AC6D1A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.xib in Resources */, BA223420189FA412002C5B6A /* FSCollectionInspectorView.nib in Resources */, BA223421189FA412002C5B6A /* FSManagedObjectContextInspector.nib in Resources */, @@ -7526,6 +7576,7 @@ BA2235C3189FA429002C5B6A /* blockInspector.nib in Resources */, BA2235C4189FA429002C5B6A /* FlightTutorial.txt in Resources */, BA2235C5189FA429002C5B6A /* genObjInspector.nib in Resources */, + ED68BE451A35E39000968430 /* FSObjectBrowser.xib in Resources */, EDE508DE19DD4FDC0012F16A /* FScriptPreferences.xib in Resources */, BA2235C6189FA429002C5B6A /* KTest.txt in Resources */, BA2235C7189FA429002C5B6A /* license.txt in Resources */, @@ -7559,6 +7610,7 @@ BA22370B189FA431002C5B6A /* blockInspector.nib in Resources */, BA22370C189FA431002C5B6A /* FlightTutorial.txt in Resources */, BA22370D189FA431002C5B6A /* genObjInspector.nib in Resources */, + ED68BE471A35E39000968430 /* FSObjectBrowser.xib in Resources */, EDE508E019DD4FDC0012F16A /* FScriptPreferences.xib in Resources */, BA22370E189FA431002C5B6A /* KTest.txt in Resources */, BA22370F189FA431002C5B6A /* license.txt in Resources */, @@ -7598,6 +7650,7 @@ EDC2C9BA1A1AA50D00942777 /* fs.icns in Resources */, EDC2C9BB1A1AA50D00942777 /* FScriptAppPreference.nib in Resources */, EDC2C9BC1A1AA50D00942777 /* fs.nib in Resources */, + ED68BE481A35E39000968430 /* FSObjectBrowser.xib in Resources */, EDC2C9BD1A1AA50D00942777 /* fs.scriptSuite in Resources */, EDC2C9BE1A1AA50D00942777 /* fs.scriptTerminology in Resources */, EDC2C9BF1A1AA50D00942777 /* FSImageInspector.nib in Resources */, @@ -7628,6 +7681,7 @@ EDC2CB7B1A1AA52500942777 /* blockInspector.nib in Resources */, EDC2CB7C1A1AA52500942777 /* FlightTutorial.txt in Resources */, EDC2CB7D1A1AA52500942777 /* genObjInspector.nib in Resources */, + ED68BE491A35E39000968430 /* FSObjectBrowser.xib in Resources */, EDC2CB7E1A1AA52500942777 /* FScriptPreferences.xib in Resources */, EDC2CB7F1A1AA52500942777 /* KTest.txt in Resources */, EDC2CB801A1AA52500942777 /* license.txt in Resources */, @@ -7801,6 +7855,7 @@ 8F0CBC310BDB94AD002B0AD7 /* FSKeyedUnarchiver.m in Sources */, 8F0CBC320BDB94AD002B0AD7 /* FSKeyedArchiver.m in Sources */, 8F0CBC330BDB94AD002B0AD7 /* FSConstantListBuilder.m in Sources */, + ED68BE601A35E94B00968430 /* FSObjectBrowserWindow.m in Sources */, 8F0CBC340BDB94AD002B0AD7 /* FSImageInspector.m in Sources */, 8F0CBC350BDB94AD002B0AD7 /* FSNSImage.m in Sources */, 8F0CBC360BDB94AD002B0AD7 /* FSObjectBrowserToolbarItem.m in Sources */, @@ -7930,6 +7985,7 @@ 8F6DA68F055FC6980050409A /* FSGenericObjectInspector.m in Sources */, 8F6DA690055FC6980050409A /* KTestManager.m in Sources */, EDA6AC671A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.m in Sources */, + ED68BE5F1A35E94B00968430 /* FSObjectBrowserWindow.m in Sources */, 8F6DA691055FC6980050409A /* MessagePatternCodeNode.m in Sources */, 8F6DA692055FC6980050409A /* FSMiscTools.m in Sources */, 8F6DA693055FC6980050409A /* FSMsgContext.m in Sources */, @@ -8105,6 +8161,7 @@ 8F6DA8B8055FC70C0050409A /* FSSystem.m in Sources */, ED8222EE1A19554F00C42C72 /* FSObjectEnumInfo.m in Sources */, 8F6DA8BB055FC70C0050409A /* DOTest.m in Sources */, + ED68BE571A35E94B00968430 /* FSObjectBrowserWindow.m in Sources */, 8F6DA8BC055FC70C0050409A /* FSNSProtocolChecker.m in Sources */, 8F6DA8BD055FC70C0050409A /* fs_main.m in Sources */, 8F6DA8BE055FC70C0050409A /* FScriptAppController.m in Sources */, @@ -8279,6 +8336,7 @@ 8F6DA9C8055FC71F0050409A /* FSIdentifierFormatter.m in Sources */, 8F6DA9CA055FC71F0050409A /* FSKeyedUnarchiver.m in Sources */, 8F6DA9CB055FC71F0050409A /* FSKeyedArchiver.m in Sources */, + ED68BE581A35E94B00968430 /* FSObjectBrowserWindow.m in Sources */, 8F6DA9CC055FC71F0050409A /* FSConstantListBuilder.m in Sources */, 8F6DA9CD055FC71F0050409A /* FSImageInspector.m in Sources */, 8F6DA9CE055FC71F0050409A /* FSNSImage.m in Sources */, @@ -8418,6 +8476,7 @@ BA223299189FA403002C5B6A /* FSSystem.m in Sources */, ED8222F01A19554F00C42C72 /* FSObjectEnumInfo.m in Sources */, BA22329A189FA403002C5B6A /* DOTest.m in Sources */, + ED68BE591A35E94B00968430 /* FSObjectBrowserWindow.m in Sources */, BA22329B189FA403002C5B6A /* FSNSProtocolChecker.m in Sources */, BA22329C189FA403002C5B6A /* fs_main.m in Sources */, BA22329D189FA403002C5B6A /* FScriptAppController.m in Sources */, @@ -8578,6 +8637,7 @@ BA223459189FA412002C5B6A /* FSSystem.m in Sources */, ED8222F21A19554F00C42C72 /* FSObjectEnumInfo.m in Sources */, BA22345A189FA412002C5B6A /* DOTest.m in Sources */, + ED68BE5B1A35E94B00968430 /* FSObjectBrowserWindow.m in Sources */, BA22345B189FA412002C5B6A /* FSNSProtocolChecker.m in Sources */, BA22345C189FA412002C5B6A /* fs_main.m in Sources */, BA22345D189FA412002C5B6A /* FScriptAppController.m in Sources */, @@ -8752,6 +8812,7 @@ BA223619189FA429002C5B6A /* FSIdentifierFormatter.m in Sources */, BA22361A189FA429002C5B6A /* FSKeyedUnarchiver.m in Sources */, BA22361B189FA429002C5B6A /* FSKeyedArchiver.m in Sources */, + ED68BE5A1A35E94B00968430 /* FSObjectBrowserWindow.m in Sources */, BA22361C189FA429002C5B6A /* FSConstantListBuilder.m in Sources */, BA22361D189FA429002C5B6A /* FSImageInspector.m in Sources */, BA22361E189FA429002C5B6A /* FSNSImage.m in Sources */, @@ -8905,6 +8966,7 @@ BA223761189FA431002C5B6A /* FSIdentifierFormatter.m in Sources */, BA223762189FA431002C5B6A /* FSKeyedUnarchiver.m in Sources */, BA223763189FA431002C5B6A /* FSKeyedArchiver.m in Sources */, + ED68BE5C1A35E94B00968430 /* FSObjectBrowserWindow.m in Sources */, BA223764189FA431002C5B6A /* FSConstantListBuilder.m in Sources */, BA223765189FA431002C5B6A /* FSImageInspector.m in Sources */, BA223766189FA431002C5B6A /* FSNSImage.m in Sources */, @@ -9044,6 +9106,7 @@ EDC2CA031A1AA50D00942777 /* FSSystem.m in Sources */, EDC2CA041A1AA50D00942777 /* FSObjectEnumInfo.m in Sources */, EDC2CA051A1AA50D00942777 /* DOTest.m in Sources */, + ED68BE5D1A35E94B00968430 /* FSObjectBrowserWindow.m in Sources */, EDC2CA061A1AA50D00942777 /* FSNSProtocolChecker.m in Sources */, EDC2CA071A1AA50D00942777 /* fs_main.m in Sources */, EDC2CA081A1AA50D00942777 /* FScriptAppController.m in Sources */, @@ -9218,6 +9281,7 @@ EDC2CBD41A1AA52500942777 /* FSIdentifierFormatter.m in Sources */, EDC2CBD51A1AA52500942777 /* FSKeyedUnarchiver.m in Sources */, EDC2CBD61A1AA52500942777 /* FSKeyedArchiver.m in Sources */, + ED68BE5E1A35E94B00968430 /* FSObjectBrowserWindow.m in Sources */, EDC2CBD71A1AA52500942777 /* FSConstantListBuilder.m in Sources */, EDC2CBD81A1AA52500942777 /* FSImageInspector.m in Sources */, EDC2CBD91A1AA52500942777 /* FSNSImage.m in Sources */, diff --git a/FScriptFramework/FSObjectBrowser.h b/FScriptFramework/FSObjectBrowser.h index 67d2771..0243a14 100644 --- a/FScriptFramework/FSObjectBrowser.h +++ b/FScriptFramework/FSObjectBrowser.h @@ -4,15 +4,17 @@ #import @class FSInterpreter; +@class FSObjectBrowserView; -@interface FSObjectBrowser : NSWindow -{ -} +@interface FSObjectBrowser : NSWindowController + (FSObjectBrowser *)objectBrowserWithRootObject:(id)object interpreter:(FSInterpreter *)interpreter; - (void) browseWorkspace; - (void)dealloc; - (FSObjectBrowser *)initWithRootObject:(id)object interpreter:(FSInterpreter *)interpreter; -- (BOOL)worksWhenModal; +@property (strong,nonatomic) IBOutlet id rootObject; +@property (strong,nonatomic) IBOutlet FSInterpreter* interpreter; +@property (weak,nonatomic) IBOutlet FSObjectBrowserView *objectBrowserView; +-(IBAction)floatWindow:(id)sender; @end diff --git a/FScriptFramework/FSObjectBrowser.m b/FScriptFramework/FSObjectBrowser.m index 27e21e9..e0a045c 100644 --- a/FScriptFramework/FSObjectBrowser.m +++ b/FScriptFramework/FSObjectBrowser.m @@ -5,30 +5,42 @@ #import "FSObjectBrowser.h" #import "FSObjectBrowserView.h" #import "FSObjectBrowserToolbar.h" +#import "FSObjectBrowserWindow.h" #import "FSObjectBrowserButtonsInspector.h" #import "FSMiscTools.h" static FSObjectBrowserButtonsInspector *buttonsInspector; static NSPoint topLeftPoint = {0,0}; // Used for cascading windows. +static NSMutableArray *sObjectBrowsers; + +@interface FSObjectBrowser () +@property (nonatomic) BOOL hasAwoken; +@end @implementation FSObjectBrowser ++(NSMutableArray*)objectBrowsers +{ + if (!sObjectBrowsers) { + sObjectBrowsers = [NSMutableArray new]; + } + return sObjectBrowsers; +} +(FSObjectBrowser *)objectBrowserWithRootObject:(id)object interpreter:(FSInterpreter *)interpreter { - return [[self alloc] initWithRootObject:object interpreter:interpreter]; // NO autorelease. The window will be released when closed. + FSObjectBrowser *newBrowser = [[self alloc] initWithRootObject:object interpreter:interpreter]; // NO autorelease. The window will be released when closed. + [[self objectBrowsers] addObject:newBrowser]; + return newBrowser; } -- (void) browseWorkspace { [[self contentView] browseWorkspace]; } +- (void) browseWorkspace { + [self.objectBrowserView browseWorkspace]; +} --(void) dealloc -{ - //NSLog(@"\n FSObjectBrowser dealloc\n"); - [super dealloc]; -} - (NSSearchField *)visibleSearchField { - NSArray *visibleItems = [[self toolbar] visibleItems]; + NSArray *visibleItems = [[self.window toolbar] visibleItems]; for (NSUInteger i = 0, count = [visibleItems count]; i < count; i++) { if ([[[visibleItems objectAtIndex:i] itemIdentifier] isEqualToString:@"Filter"]) @@ -41,68 +53,66 @@ - (NSSearchField *)visibleSearchField -(FSObjectBrowser *)initWithRootObject:(id)object interpreter:(FSInterpreter *)interpreter { - FSObjectBrowserView *bbv; - - [super initWithContentRect:NSMakeRect(100,100,830,400) styleMask:NSTitledWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask | NSResizableWindowMask /*| NSTexturedBackgroundWindowMask*/ backing:NSBackingStoreBuffered defer:NO]; + self = [super init]; + if (self) { + self.rootObject = object; + self.interpreter = interpreter; + } - [self setMinSize:NSMakeSize(130,130)]; // FSObjectBrowserView has weird behavior if the window becomes too tiny + return self; +} + +-(void)awakeFromNib +{ + if (!self.hasAwoken) { + self.hasAwoken = YES; + // jg added from here + if ([self.objectBrowserView respondsToSelector:@selector(setupToolbarWithWindow:)]) { + if ([self.objectBrowserView doSetupToolbar]) + [self.objectBrowserView setupToolbarWithWindow:self.window]; // defined in FSObjectBrowserToolBar.m + } + // jg added to here + NSSearchField *searchField = [self visibleSearchField]; + if (searchField) [self.window setInitialFirstResponder:searchField]; - bbv = [[FSObjectBrowserView alloc] initWithFrame:[[self contentView] bounds]]; - [bbv setRootObject:object]; - [bbv setInterpreter:interpreter]; - [bbv setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable]; - [self setContentView:bbv]; - // jg added from here - if ([bbv respondsToSelector:@selector(setupToolbarWithWindow:)]) { - if ([bbv doSetupToolbar]) - [bbv setupToolbarWithWindow:self]; // defined in FSObjectBrowserToolBar.m + [self.window setAcceptsMouseMovedEvents:YES]; + [(FSObjectBrowserWindow*)self.window setVisibleSearchField:searchField]; + self.objectBrowserView.rootObject = self.rootObject; + self.objectBrowserView.interpreter = self.interpreter; + topLeftPoint = [self.window cascadeTopLeftFromPoint:topLeftPoint]; } - // jg added to here - [bbv release]; - - NSSearchField *searchField = [self visibleSearchField]; - if (searchField) [self setInitialFirstResponder:searchField]; - //[self makeFirstResponder:bbv]; // If I don't do that, the mouse moved events are not sent to the bbv. - - [self setContentBorderThickness:FSObjectBrowserBottomBarHeight+1 forEdge:NSMinYEdge]; // Adding 1 here to FSObjectBrowserBottomBarHeight produces a prettier visual effect +} - [self setAcceptsMouseMovedEvents:YES]; - [self setTitle:@"F-Script Object Browser"]; - topLeftPoint = [self cascadeTopLeftFromPoint:topLeftPoint]; - //[self makeKeyAndOrderFront:nil]; - return self; +-(void)windowWillClose:(NSNotification *)notification +{ + self.window.delegate = nil; + [[FSObjectBrowser objectBrowsers] removeObject:self]; } -- (void)sendEvent:(NSEvent *)theEvent +-(void)makeKeyAndOrderFront:(id)sender { - // Goal: route most key events directly to the searchfield - - if ([theEvent type] == NSKeyDown) - { - unichar character = [[theEvent characters] characterAtIndex:0]; - if (character != NSLeftArrowFunctionKey && character != NSRightArrowFunctionKey && character != NSUpArrowFunctionKey && character != NSDownArrowFunctionKey) - { - NSSearchField *searchField = [self visibleSearchField]; - if (searchField && [searchField currentEditor] == nil) // If the searchfield is not already active then we make it become the first responder - [self makeFirstResponder:searchField]; - } - } - [super sendEvent:theEvent]; + [self.window makeKeyAndOrderFront:sender]; +} + +-(NSString *)windowNibName +{ + return @"FSObjectBrowser"; } -- (void)runToolbarCustomizationPalette:(id)sender +-(NSString *)windowNibPath { - if (!buttonsInspector) buttonsInspector = [[FSObjectBrowserButtonsInspector alloc] init]; - [super runToolbarCustomizationPalette:sender]; - [buttonsInspector activate]; + return [[[NSBundle bundleForClass:FSObjectBrowser.class] URLForResource:@"FSObjectBrowser" withExtension:@"nib"] path ]; } -- (BOOL)worksWhenModal +-(void)floatWindow:(id)sender { - // Since F-Script is often used as a debugging tool, we want it to - // continue working even when some other window is being run modally - return YES; + if (self.window.level == NSNormalWindowLevel) { + self.window.level = NSFloatingWindowLevel; + } + else { + self.window.level = NSNormalWindowLevel; + } } @end diff --git a/FScriptFramework/FSObjectBrowser.xib b/FScriptFramework/FSObjectBrowser.xib new file mode 100644 index 0000000..08417f5 --- /dev/null +++ b/FScriptFramework/FSObjectBrowser.xib @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/FScriptFramework/FSObjectBrowserSearchField.m b/FScriptFramework/FSObjectBrowserSearchField.m index 710d5b7..88a41fc 100644 --- a/FScriptFramework/FSObjectBrowserSearchField.m +++ b/FScriptFramework/FSObjectBrowserSearchField.m @@ -79,4 +79,5 @@ - (void)changeUnderscoreFilterPreference:(id)sender // action [[NSApplication sharedApplication] sendAction:[self action] to:[self target] from:self]; } + @end diff --git a/FScriptFramework/FSObjectBrowserView.h b/FScriptFramework/FSObjectBrowserView.h index ace8b5a..ae0a8a4 100644 --- a/FScriptFramework/FSObjectBrowserView.h +++ b/FScriptFramework/FSObjectBrowserView.h @@ -53,6 +53,7 @@ const int FSObjectBrowserBottomBarHeight; - (BOOL)hasEmptyFilterString; - (id)initWithFrame:(NSRect)frameRect; - (id)selectedObject; -- (void)setInterpreter:(FSInterpreter*)theInterpreter; -- (void)setRootObject:(id)theRootObject; +@property (retain,nonatomic) IBOutlet FSInterpreter *interpreter; +@property (retain,nonatomic) IBOutlet id rootObject; + @end diff --git a/FScriptFramework/FSObjectBrowserView.m b/FScriptFramework/FSObjectBrowserView.m index cf45244..dba9153 100644 --- a/FScriptFramework/FSObjectBrowserView.m +++ b/FScriptFramework/FSObjectBrowserView.m @@ -70,6 +70,8 @@ - (BOOL)canBecomeKeyWindow { return YES; } @implementation FSObjectBrowserView +@synthesize interpreter; +@synthesize rootObject; + (NSArray*)customButtons { @@ -160,49 +162,63 @@ + (void)saveCustomButtonsSettings:(NSNotification*)aNotification [self saveCustomButtonsSettings]; } +-(void)_setup +{ + CGFloat baseWidth = NSWidth([self bounds]); + CGFloat baseHeight = NSHeight([self bounds]); + CGFloat fontSize; + + fontSize = systemFontSize(); + + browser = [[NSBrowser alloc] initWithFrame:NSMakeRect(0, FSObjectBrowserBottomBarHeight, baseWidth, baseHeight - FSObjectBrowserBottomBarHeight)]; + [browser setMatrixClass:FSObjectBrowserMatrix.class]; + + [browser setCellClass:[FSObjectBrowserCell class]]; + [browser setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable]; + [browser setHasHorizontalScroller:YES]; + [browser setMinColumnWidth:145 + (fontSize * 6)]; + [browser setTakesTitleFromPreviousColumn:NO]; + [browser setTitled:NO]; + [browser setTarget:self]; + [browser setDoubleAction:@selector(doubleClickAction:)]; + [[browser cellPrototype] setFont:[NSFont systemFontOfSize:fontSize]]; + [browser setDelegate:self]; + [browser setFocusRingType:NSFocusRingTypeNone]; + [browser setAutohidesScroller:YES]; + [browser setAllowsTypeSelect:NO]; + + if ([browser respondsToSelector:@selector(setColumnResizingType:)]) + [browser setColumnResizingType:2]; + + if ([browser respondsToSelector:@selector(setColumnsAutosaveName:)]) + [browser setColumnsAutosaveName:@"Object browser columns autosave configuration"]; + + bottomBarTextDisplay = [[FSObjectBrowserBottomBarTextDisplay alloc] initWithFrame:NSMakeRect(0, 0, baseWidth, FSObjectBrowserBottomBarHeight)]; + + [self addSubview:browser]; + [self addSubview:bottomBarTextDisplay]; + + browsingMode = FSBrowsingWorkspace; + + filterString = @""; + + matrixes = [[NSMutableSet alloc] init]; +} - (id)initWithFrame:(NSRect)frameRect { self = [super initWithFrame:frameRect]; if (self) { - CGFloat baseWidth = NSWidth([self bounds]); - CGFloat baseHeight = NSHeight([self bounds]); - CGFloat fontSize; - - fontSize = systemFontSize(); - - browser = [[NSBrowser alloc] initWithFrame:NSMakeRect(0, FSObjectBrowserBottomBarHeight, baseWidth, baseHeight - FSObjectBrowserBottomBarHeight)]; - [browser setMatrixClass:FSObjectBrowserMatrix.class]; - - [browser setCellClass:[FSObjectBrowserCell class]]; - [browser setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable]; - [browser setHasHorizontalScroller:YES]; - [browser setMinColumnWidth:145 + (fontSize * 6)]; - [browser setTakesTitleFromPreviousColumn:NO]; - [browser setTitled:NO]; - [browser setTarget:self]; - [browser setDoubleAction:@selector(doubleClickAction:)]; - [[browser cellPrototype] setFont:[NSFont systemFontOfSize:fontSize]]; - [browser setDelegate:self]; - [browser setFocusRingType:NSFocusRingTypeNone]; - [browser setAutohidesScroller:YES]; - - if ([browser respondsToSelector:@selector(setColumnResizingType:)]) - [browser setColumnResizingType:2]; - - if ([browser respondsToSelector:@selector(setColumnsAutosaveName:)]) - [browser setColumnsAutosaveName:@"Object browser columns autosave configuration"]; - - bottomBarTextDisplay = [[FSObjectBrowserBottomBarTextDisplay alloc] initWithFrame:NSMakeRect(0, 0, baseWidth, FSObjectBrowserBottomBarHeight)]; - - [self addSubview:browser]; - [self addSubview:bottomBarTextDisplay]; - - browsingMode = FSBrowsingWorkspace; - - filterString = @""; + [self _setup]; + } + return self; +} - matrixes = [[NSMutableSet alloc] init]; +- (instancetype)initWithCoder:(NSCoder *)coder +{ + self = [super initWithCoder:coder]; + if (self) { + [self _setup]; } return self; } diff --git a/FScriptFramework/FSObjectBrowserWindow.h b/FScriptFramework/FSObjectBrowserWindow.h new file mode 100644 index 0000000..72756ec --- /dev/null +++ b/FScriptFramework/FSObjectBrowserWindow.h @@ -0,0 +1,16 @@ +// +// FSObjectBrowserWindow.h +// FScript +// +// Created by Anthony Dervish on 08/12/2014. +// +// + +#import + +@class FSObjectBrowserButtonsInspector; + +@interface FSObjectBrowserWindow : NSWindow +@property (strong,nonatomic) NSSearchField *visibleSearchField; +@property (strong,nonatomic) FSObjectBrowserButtonsInspector *buttonsInspector; +@end diff --git a/FScriptFramework/FSObjectBrowserWindow.m b/FScriptFramework/FSObjectBrowserWindow.m new file mode 100644 index 0000000..e654e05 --- /dev/null +++ b/FScriptFramework/FSObjectBrowserWindow.m @@ -0,0 +1,47 @@ +// +// FSObjectBrowserWindow.m +// FScript +// +// Created by Anthony Dervish on 08/12/2014. +// +// + +#import "FSObjectBrowserWindow.h" +#import "FSObjectBrowserButtonsInspector.h" + +@implementation FSObjectBrowserWindow + +- (void)sendEvent:(NSEvent *)theEvent +{ + // Goal: route most key events directly to the searchfield + + if ([theEvent type] == NSKeyDown) + { + unichar character = [[theEvent characters] characterAtIndex:0]; + if (character != NSLeftArrowFunctionKey && character != NSRightArrowFunctionKey && character != NSUpArrowFunctionKey && character != NSDownArrowFunctionKey) + { + NSSearchField *searchField = [self visibleSearchField]; + if (searchField && [searchField currentEditor] == nil) // If the searchfield is not already active then we make it become the first responder + [self makeFirstResponder:searchField]; + } + } + [super sendEvent:theEvent]; +} + +- (void)runToolbarCustomizationPalette:(id)sender +{ + if (!self.buttonsInspector) { + self.buttonsInspector = [[FSObjectBrowserButtonsInspector alloc] init]; + } + [super runToolbarCustomizationPalette:sender]; + [self.buttonsInspector activate]; +} + +- (BOOL)worksWhenModal +{ + // Since F-Script is often used as a debugging tool, we want it to + // continue working even when some other window is being run modally + return YES; +} + +@end diff --git a/JGAdditions/FSObjectBrowserToolbar.m b/JGAdditions/FSObjectBrowserToolbar.m index a0520f3..749a4a1 100644 --- a/JGAdditions/FSObjectBrowserToolbar.m +++ b/JGAdditions/FSObjectBrowserToolbar.m @@ -247,7 +247,7 @@ - (NSArray *) toolbarDefaultItemIdentifiers:(NSToolbar *) toolbar // Required delegate method Returns the ordered list of items to be shown in the toolbar by default // If during the toolbar's initialization, no overriding values are found in the user defaults, or if the // user chooses to revert to the default items self set will be used - return [NSArray arrayWithObjects: @"Workspace", @"Classes", @"Select View", @"Name", @"Inspect", @"Browse", @"Refresh", @"Filter", nil]; + return [NSArray arrayWithObjects: @"Filter", @"Workspace", @"Classes", @"Select View", @"Name", @"Inspect", @"Browse", @"Refresh", nil]; } - (NSArray *) toolbarAllowedItemIdentifiers: (NSToolbar *) toolbar