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/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/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
+
+
+
+
+
+
+
+ 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
+
+
+
+ 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
+
+
+
+
+
+ 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
+
+
+
+
+
+ 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 2f9449e..66f4398 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, ); }; };
@@ -24,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 */; };
@@ -102,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 */; };
@@ -127,14 +121,11 @@
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 */; };
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 */; };
@@ -412,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 */; };
@@ -422,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 */; };
@@ -605,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 */; };
@@ -614,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 */; };
@@ -785,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 */; };
@@ -795,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 */; };
@@ -1037,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 */; };
@@ -1176,7 +1164,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 +1230,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 */; };
@@ -1423,13 +1409,10 @@
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 */; };
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 */; };
@@ -1442,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 */; };
@@ -1522,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 */; };
@@ -1848,13 +1831,10 @@
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 */; };
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 */; };
@@ -1867,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 */; };
@@ -1947,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 */; };
@@ -2012,7 +1992,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 +2065,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 */; };
@@ -2270,14 +2248,11 @@
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 */; };
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 */; };
@@ -2289,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 */; };
@@ -2367,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 */; };
@@ -2587,14 +2562,11 @@
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 */; };
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 */; };
@@ -2606,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 */; };
@@ -2684,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 */; };
@@ -2741,6 +2713,1040 @@
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 */; };
+ 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"; }; };
+ 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 */; };
+ 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 */; 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 */; };
+ 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 */; };
+ 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"; }; };
+ 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 */; };
+ EDA22BE01A24C28D0093DB91 /* view.png in Resources */ = {isa = PBXBuildFile; fileRef = EDA22BDE1A24C28D0093DB91 /* view.png */; };
+ EDA22BE11A24C28D0093DB91 /* view.png in Resources */ = {isa = PBXBuildFile; fileRef = EDA22BDE1A24C28D0093DB91 /* view.png */; };
+ EDA22BE21A24C28D0093DB91 /* view.png in Resources */ = {isa = PBXBuildFile; fileRef = EDA22BDE1A24C28D0093DB91 /* view.png */; };
+ EDA22BE31A24C28D0093DB91 /* view.png in Resources */ = {isa = PBXBuildFile; fileRef = EDA22BDE1A24C28D0093DB91 /* view.png */; };
+ EDA22BE41A24C28D0093DB91 /* view.png in Resources */ = {isa = PBXBuildFile; fileRef = EDA22BDE1A24C28D0093DB91 /* view.png */; };
+ EDA22BE51A24C28D0093DB91 /* view.png in Resources */ = {isa = PBXBuildFile; fileRef = EDA22BDE1A24C28D0093DB91 /* view.png */; };
+ EDA22BE61A24C28D0093DB91 /* view.png in Resources */ = {isa = PBXBuildFile; fileRef = EDA22BDE1A24C28D0093DB91 /* view.png */; };
+ EDA22BE71A24C28D0093DB91 /* view.png in Resources */ = {isa = PBXBuildFile; fileRef = EDA22BDE1A24C28D0093DB91 /* view.png */; };
+ EDA22BE81A24C28D0093DB91 /* view.png in Resources */ = {isa = PBXBuildFile; fileRef = EDA22BDE1A24C28D0093DB91 /* view.png */; };
+ EDA22BE91A24C28D0093DB91 /* view.png in Resources */ = {isa = PBXBuildFile; fileRef = EDA22BDE1A24C28D0093DB91 /* view.png */; };
+ EDA22BEA1A24C28D0093DB91 /* window.png in Resources */ = {isa = PBXBuildFile; fileRef = EDA22BDF1A24C28D0093DB91 /* window.png */; };
+ EDA22BEB1A24C28D0093DB91 /* window.png in Resources */ = {isa = PBXBuildFile; fileRef = EDA22BDF1A24C28D0093DB91 /* window.png */; };
+ EDA22BEC1A24C28D0093DB91 /* window.png in Resources */ = {isa = PBXBuildFile; fileRef = EDA22BDF1A24C28D0093DB91 /* window.png */; };
+ EDA22BED1A24C28D0093DB91 /* window.png in Resources */ = {isa = PBXBuildFile; fileRef = EDA22BDF1A24C28D0093DB91 /* window.png */; };
+ EDA22BEE1A24C28D0093DB91 /* window.png in Resources */ = {isa = PBXBuildFile; fileRef = EDA22BDF1A24C28D0093DB91 /* window.png */; };
+ EDA22BEF1A24C28D0093DB91 /* window.png in Resources */ = {isa = PBXBuildFile; fileRef = EDA22BDF1A24C28D0093DB91 /* window.png */; };
+ EDA22BF01A24C28D0093DB91 /* window.png in Resources */ = {isa = PBXBuildFile; fileRef = EDA22BDF1A24C28D0093DB91 /* window.png */; };
+ EDA22BF11A24C28D0093DB91 /* window.png in Resources */ = {isa = PBXBuildFile; fileRef = EDA22BDF1A24C28D0093DB91 /* window.png */; };
+ EDA22BF21A24C28D0093DB91 /* window.png in Resources */ = {isa = PBXBuildFile; fileRef = EDA22BDF1A24C28D0093DB91 /* window.png */; };
+ EDA22BF31A24C28D0093DB91 /* window.png in Resources */ = {isa = PBXBuildFile; fileRef = EDA22BDF1A24C28D0093DB91 /* window.png */; };
+ 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 */; };
+ 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 */; };
+ 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 */; };
+ 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 */; };
+ 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 */; };
+ 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 */; 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 */; };
+ 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 */; };
+ 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 */; };
+ 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 */; };
+ 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 */; };
+ 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 */; };
+ 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, ); }; };
+ 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 */; 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 */; };
+ 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 */; };
+ 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 */; };
+ 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 */; };
+ 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 */; };
+ 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 */; };
+ 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 */; };
+ 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 */
@@ -2814,7 +3820,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 = ""; };
@@ -2918,8 +3924,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 = ""; };
@@ -2953,7 +3957,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 = ""; };
@@ -3061,7 +4065,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 = ""; };
@@ -3228,7 +4232,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; };
@@ -3238,6 +4242,42 @@
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; };
+ ED051F431A234DB6000284E2 /* metamacrosorig.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = metamacrosorig.h; sourceTree = ""; };
+ 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; };
+ 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 = ""; };
+ 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; 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; };
+ EDA22BDE1A24C28D0093DB91 /* view.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = view.png; path = Resources/view.png; sourceTree = ""; };
+ EDA22BDF1A24C28D0093DB91 /* window.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = window.png; path = Resources/window.png; sourceTree = ""; };
+ 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 = ""; };
+ 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 /* FScript.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = FScript.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 = ""; };
+ 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 = ""; };
@@ -3304,7 +4344,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 = ""; };
@@ -3317,6 +4356,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 */,
@@ -3364,7 +4404,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 +4468,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 +4606,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 +4681,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 */,
@@ -3684,169 +4720,142 @@
);
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 */
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 */,
+ EDC2CACE1A1AA50F00942777 /* F-Script 10.9 copy-Info.plist */,
+ EDC2CC281A1AA52700942777 /* FScriptFramework 10.9 copy-Info.plist */,
);
sourceTree = "";
};
@@ -3861,7 +4870,9 @@
BA223360189FA403002C5B6A /* F-Script.app */,
BA223520189FA412002C5B6A /* F-Script.app */,
BA223668189FA429002C5B6A /* FScriptFramework.framework */,
- BA2237B0189FA432002C5B6A /* FScriptFramework.framework */,
+ BA2237B0189FA432002C5B6A /* FScript.framework */,
+ EDC2CACD1A1AA50D00942777 /* F-Script.app */,
+ EDC2CC271A1AA52500942777 /* FScript.framework */,
);
name = Products;
sourceTree = "";
@@ -3899,29 +4910,25 @@
0CD4E32E00D7DFE17BE9C1BD /* BlockSignature.h */,
0CD4E32F00D7DFE17BE9C1BD /* BlockStackElem.h */,
0CD4E33000D7DFE17BE9C1BD /* BlockStackElem.m */,
- 8F56036505CF22660044FA65 /* build.tiff */,
0CD4E33200D7DFE17BE9C1BD /* build_config.h */,
+ 8F56036505CF22660044FA65 /* build.tiff */,
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 */,
@@ -3986,9 +4993,13 @@
0CD4E33600D7DFE17BE9C1BD /* FSCompilationResult.m */,
0CD4E33900D7DFE17BE9C1BD /* FSCompiler.h */,
0CD4E33A00D7DFE17BE9C1BD /* FSCompiler.m */,
- 8F0B64C805C5370D0099180D /* FSConsole.nib */,
+ 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 */,
@@ -3996,7 +5007,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 */,
@@ -4008,8 +5019,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 */,
@@ -4020,15 +5031,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 */,
@@ -4054,8 +5065,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 */,
@@ -4081,8 +5092,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 */,
@@ -4098,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 */,
@@ -4106,7 +5120,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 */,
@@ -4123,18 +5137,20 @@
0CD4E32500D7DFE17BE9C1BD /* FSObjectBrowserView.m */,
8F4E294C075B8E5600F8DCDB /* FSObjectBrowserViewObjectInfo.h */,
8F4E294D075B8E5600F8DCDB /* FSObjectBrowserViewObjectInfo.m */,
- F5EBBE810321029601CA10C6 /* FSObjectFormatter.m */,
+ ED8222E51A19554F00C42C72 /* FSObjectEnumInfo.h */,
+ ED8222E61A19554F00C42C72 /* FSObjectEnumInfo.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 */,
@@ -4148,8 +5164,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 */,
@@ -4159,6 +5175,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 */,
@@ -4171,12 +5189,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 */,
@@ -4185,28 +5205,209 @@
8FBB10A4044E28FD00181279 /* TestFS.h */,
0CD4E3A000D7DFE17BE9C1BD /* TestFS.m */,
);
- indentWidth = 2;
- path = FScriptFramework;
+ indentWidth = 2;
+ path = FScriptFramework;
+ sourceTree = "";
+ tabWidth = 2;
+ };
+ 8F6392E00BDB855B005C8D94 /* FScriptIBPlugin */ = {
+ isa = PBXGroup;
+ children = (
+ 8F913FD30BDB92FC001685EA /* FScriptIBPlugin-Info.plist */,
+ 8F913FD40BDB92FC001685EA /* FScriptIBPluginInspector.h */,
+ 8F913FD50BDB92FC001685EA /* FScriptIBPluginInspector.m */,
+ 8F913FD90BDB92FC001685EA /* Info.plist */,
+ 8F913FDA0BDB92FC001685EA /* version.plist */,
+ 8F6597B50C37F061006CDCA0 /* FScriptMenuItem.png */,
+ 8FB524150C2205C20028B297 /* FScriptIBPluginInspector.nib */,
+ 8FB524170C2205C20028B297 /* FScriptIBPluginLibrary.nib */,
+ 8F913FCE0BDB92EE001685EA /* FScriptIBPlugin_Prefix.pch */,
+ 8F913FCF0BDB92EE001685EA /* FScriptIBPlugin.h */,
+ 8F913FD00BDB92EE001685EA /* FScriptIBPlugin.m */,
+ 8F6597D90C381103006CDCA0 /* FSInterpreterView.classdescription */,
+ );
+ 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 = "";
- tabWidth = 2;
};
- 8F6392E00BDB855B005C8D94 /* FScriptIBPlugin */ = {
+ EDC2C8DB1A1A925800942777 /* Object Inspector */ = {
isa = PBXGroup;
children = (
- 8F913FD30BDB92FC001685EA /* FScriptIBPlugin-Info.plist */,
- 8F913FD40BDB92FC001685EA /* FScriptIBPluginInspector.h */,
- 8F913FD50BDB92FC001685EA /* FScriptIBPluginInspector.m */,
- 8F913FD90BDB92FC001685EA /* Info.plist */,
- 8F913FDA0BDB92FC001685EA /* version.plist */,
- 8F6597B50C37F061006CDCA0 /* FScriptMenuItem.png */,
- 8FB524150C2205C20028B297 /* FScriptIBPluginInspector.nib */,
- 8FB524170C2205C20028B297 /* FScriptIBPluginLibrary.nib */,
- 8F913FCE0BDB92EE001685EA /* FScriptIBPlugin_Prefix.pch */,
- 8F913FCF0BDB92EE001685EA /* FScriptIBPlugin.h */,
- 8F913FD00BDB92EE001685EA /* FScriptIBPlugin.m */,
- 8F6597D90C381103006CDCA0 /* FSInterpreterView.classdescription */,
+ EDA22BDE1A24C28D0093DB91 /* view.png */,
+ EDA22BDF1A24C28D0093DB91 /* window.png */,
+ ED051F431A234DB6000284E2 /* metamacrosorig.h */,
+ EDC2C8DC1A1A943600942777 /* FSDetailedObjectInspector.h */,
+ EDC2C8DD1A1A943600942777 /* FSDetailedObjectInspector.m */,
+ ED8222D41A194FD600C42C72 /* FSObjectInspectorViewModelItem.h */,
+ 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 */,
+ ED3CB63F1A1E5B3300771077 /* FSColorWell.h */,
+ ED3CB6401A1E5B3300771077 /* FSColorWell.m */,
+ EDA6AC3E1A1F407C001CD1F2 /* FSObjectInspectorOutlineView.h */,
+ EDA6AC3F1A1F407C001CD1F2 /* FSObjectInspectorOutlineView.m */,
+ EDA6AC531A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.h */,
+ EDA6AC541A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.m */,
+ EDA6AC551A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.xib */,
);
- name = FScriptIBPlugin;
+ name = "Object Inspector";
sourceTree = "";
};
F5F00F100279FB69016D9B48 /* JGAdditions */ = {
@@ -4284,6 +5485,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 */,
@@ -4301,10 +5503,13 @@
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 */,
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 */,
8F6DA605055FC6980050409A /* FSNSDictionary.h in Headers */,
@@ -4320,6 +5525,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 */,
@@ -4369,6 +5575,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 */,
@@ -4381,12 +5588,15 @@
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 */,
+ EDC2C8EC1A1A99F600942777 /* FSObjectInspectorViewController.h in Headers */,
8FE9AE8F07807269005B2CC4 /* FSObjectPointerPrivate.h in Headers */,
8F86923A07F19BA8000D20A4 /* FSObjectBrowserNamedObjectWrapper.h in Headers */,
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 */,
@@ -4401,11 +5611,13 @@
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 */,
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 */,
@@ -4415,6 +5627,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 */,
@@ -4462,6 +5675,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 */,
@@ -4471,6 +5685,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 */,
@@ -4483,6 +5698,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 */,
8F6DA81D055FC70C0050409A /* FSNSDictionary.h in Headers */,
8F6DA81E055FC70C0050409A /* FSNSDistantObject.h in Headers */,
@@ -4504,6 +5720,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 */,
@@ -4518,8 +5735,11 @@
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 */,
+ ED3004E81A1A86EF00675D94 /* FSObjectInspectorViewController.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 */,
@@ -4559,12 +5779,14 @@
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 */,
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 */,
@@ -4577,10 +5799,12 @@
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 */,
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 */,
@@ -4589,6 +5813,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 */,
@@ -4622,12 +5847,14 @@
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 */,
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 */,
@@ -4646,7 +5873,9 @@
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 */,
8F6DA91A055FC71F0050409A /* FSNSDate.h in Headers */,
8F6DA91B055FC71F0050409A /* FSNSDictionary.h in Headers */,
@@ -4670,6 +5899,8 @@
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 */,
8F6DA936055FC71F0050409A /* FSCommandHistory.h in Headers */,
@@ -4679,6 +5910,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 */,
@@ -4707,10 +5939,12 @@
8F553BF90585222700A92293 /* FSNSValue.h in Headers */,
8F7D7DBF058E32CD00F1B8A8 /* FSReplacementForCoderForNilInArray.h in Headers */,
8F0E3B82059F3DBB003F6CE9 /* FSNamedNumber.h in Headers */,
+ ED3CB6421A1E5B3300771077 /* FSColorWell.h in Headers */,
8F60217205A25CDC0004EFF1 /* FSCollectionInspectorTableView.h in Headers */,
8F60F24B05A9FE8B00985FEC /* FSNSSet.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 */,
@@ -4730,9 +5964,12 @@
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 */,
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 */,
@@ -4794,6 +6031,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 */,
@@ -4803,6 +6041,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 */,
@@ -4815,6 +6054,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 */,
BA2231D0189FA403002C5B6A /* FSNSDictionary.h in Headers */,
BA2231D1189FA403002C5B6A /* FSNSDistantObject.h in Headers */,
@@ -4836,6 +6076,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 */,
@@ -4850,8 +6091,11 @@
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 */,
+ ED3004EA1A1A86EF00675D94 /* FSObjectInspectorViewController.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 */,
@@ -4891,12 +6135,14 @@
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 */,
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 */,
@@ -4909,10 +6155,12 @@
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 */,
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 */,
@@ -4921,6 +6169,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 */,
@@ -4962,6 +6211,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 */,
@@ -4971,6 +6221,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 */,
@@ -4983,6 +6234,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 */,
BA223390189FA412002C5B6A /* FSNSDictionary.h in Headers */,
BA223391189FA412002C5B6A /* FSNSDistantObject.h in Headers */,
@@ -5004,6 +6256,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 */,
@@ -5018,8 +6271,11 @@
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 */,
+ ED3004EC1A1A86EF00675D94 /* FSObjectInspectorViewController.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 */,
@@ -5059,12 +6315,14 @@
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 */,
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 */,
@@ -5077,10 +6335,12 @@
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 */,
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 */,
@@ -5089,6 +6349,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 */,
@@ -5122,12 +6383,14 @@
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 */,
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 */,
@@ -5146,7 +6409,9 @@
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 */,
BA223548189FA429002C5B6A /* FSNSDate.h in Headers */,
BA223549189FA429002C5B6A /* FSNSDictionary.h in Headers */,
@@ -5170,6 +6435,8 @@
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 */,
BA223560189FA429002C5B6A /* FSCommandHistory.h in Headers */,
@@ -5179,6 +6446,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 */,
@@ -5207,10 +6475,12 @@
BA223580189FA429002C5B6A /* FSNSValue.h in Headers */,
BA223581189FA429002C5B6A /* FSReplacementForCoderForNilInArray.h in Headers */,
BA223582189FA429002C5B6A /* FSNamedNumber.h in Headers */,
+ ED3CB6441A1E5B3300771077 /* FSColorWell.h in Headers */,
BA223583189FA429002C5B6A /* FSCollectionInspectorTableView.h in Headers */,
BA223584189FA429002C5B6A /* FSNSSet.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 */,
@@ -5230,9 +6500,12 @@
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 */,
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 */,
@@ -5286,12 +6559,14 @@
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 */,
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 */,
@@ -5310,7 +6585,9 @@
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 */,
BA223690189FA431002C5B6A /* FSNSDate.h in Headers */,
BA223691189FA431002C5B6A /* FSNSDictionary.h in Headers */,
@@ -5334,6 +6611,8 @@
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 */,
BA2236A8189FA431002C5B6A /* FSCommandHistory.h in Headers */,
@@ -5343,6 +6622,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 */,
@@ -5371,10 +6651,12 @@
BA2236C8189FA431002C5B6A /* FSNSValue.h in Headers */,
BA2236C9189FA431002C5B6A /* FSReplacementForCoderForNilInArray.h in Headers */,
BA2236CA189FA431002C5B6A /* FSNamedNumber.h in Headers */,
+ ED3CB6461A1E5B3300771077 /* FSColorWell.h in Headers */,
BA2236CB189FA431002C5B6A /* FSCollectionInspectorTableView.h in Headers */,
BA2236CC189FA431002C5B6A /* FSNSSet.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 */,
@@ -5394,9 +6676,12 @@
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 */,
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 */,
@@ -5436,6 +6721,361 @@
);
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 */,
+ ED8319231A1BC2B500290EE2 /* FSUtils.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 */,
+ ED3CB6471A1E5B3300771077 /* FSColorWell.h in Headers */,
+ EDC2C92D1A1AA50D00942777 /* FSNSDate.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 */,
+ 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 */,
+ 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 */,
+ ED8319381A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.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 */,
+ EDA6AC5C1A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.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 */,
+ EDA6AC461A1F407C001CD1F2 /* FSObjectInspectorOutlineView.h in Headers */,
+ EDC2C9921A1AA50D00942777 /* FSCNSuper.h in Headers */,
+ 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 */,
+ 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 */,
+ EDA6AC471A1F407C001CD1F2 /* FSObjectInspectorOutlineView.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 */,
+ ED8319241A1BC2B500290EE2 /* FSUtils.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 */,
+ ED68BE551A35E94B00968430 /* FSObjectBrowserWindow.h in Headers */,
+ ED8319391A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.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 */,
+ 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 */,
+ EDC2CB361A1AA52500942777 /* FSCollectionInspectorTableView.h in Headers */,
+ EDC2CB371A1AA52500942777 /* FSNSSet.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 */,
+ EDA6AC5D1A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.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 */
@@ -5617,7 +7257,46 @@
name = "FScriptFramework 10.9";
productInstallPath = "";
productName = FScript;
- productReference = BA2237B0189FA432002C5B6A /* FScriptFramework.framework */;
+ 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 = (
+ );
+ 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 /* FScript.framework */;
productType = "com.apple.product-type.framework";
};
/* End PBXNativeTarget section */
@@ -5646,6 +7325,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 */,
@@ -5667,25 +7348,29 @@
8F0CBC660BDB9519002B0AD7 /* license.txt in Resources */,
8F0CBC670BDB9519002B0AD7 /* fs.scriptSuite in Resources */,
8F0CBC680BDB9519002B0AD7 /* fs.scriptTerminology in Resources */,
- 8F0CBC6A0BDB9519002B0AD7 /* FSObjectBrowserButtonsInspector.nib in Resources */,
+ ED68BE4B1A35E39000968430 /* FSObjectBrowser.xib in Resources */,
8F0CBC6B0BDB9519002B0AD7 /* FSImageInspector.nib in Resources */,
8F0CBC6C0BDB9519002B0AD7 /* ReadMe.txt in Resources */,
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 */,
+ EDA22BF31A24C28D0093DB91 /* window.png in Resources */,
8FB524190C2205C20028B297 /* FScriptIBPluginInspector.nib in Resources */,
8FB5241A0C2205C20028B297 /* FScriptIBPluginLibrary.nib in Resources */,
+ EDA22BE91A24C28D0093DB91 /* view.png in Resources */,
8F38D0FA0C36AD13002512EE /* FScript.framework in Resources */,
+ 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 */,
);
runOnlyForDeploymentPostprocessing = 0;
@@ -5700,19 +7385,23 @@
8F6DA653055FC6980050409A /* FlightTutorial.txt in Resources */,
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 */,
- 8F6DA65B055FC6980050409A /* FSObjectBrowserButtonsInspector.nib in Resources */,
+ EDE508D819DD4D310012F16A /* FSConsole.xib in Resources */,
8F6DA65D055FC6980050409A /* FSImageInspector.nib in Resources */,
+ EDA22BE81A24C28D0093DB91 /* view.png 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 */,
+ ED68BE4A1A35E39000968430 /* FSObjectBrowser.xib in Resources */,
8F2D067305CED9B9007EA81B /* run.tiff in Resources */,
8F56036705CF22660044FA65 /* build.tiff in Resources */,
8FA8EFA307739FD5001BEC7B /* FSCollectionInspectorView.nib in Resources */,
8F936BF7082E8DC300A04EBF /* FSManagedObjectContextInspector.nib in Resources */,
+ EDA22BF21A24C28D0093DB91 /* window.png in Resources */,
8F6631D30C4A270100FA798A /* FSMovieInspector.nib in Resources */,
8FE3DC9A0D26C0FD00A1D767 /* FSTestClasses.txt in Resources */,
);
@@ -5732,10 +7421,12 @@
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 */,
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 */,
@@ -5743,17 +7434,20 @@
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 */,
+ ED3004F41A1A86EF00675D94 /* FSObjectInspectorViewController.xib 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 */,
+ 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 */,
+ EDA22BE01A24C28D0093DB91 /* view.png in Resources */,
8F6631D40C4A270200FA798A /* FSMovieInspector.nib in Resources */,
8FE3DC9C0D26C0FD00A1D767 /* FSTestClasses.txt in Resources */,
8F9636490F8DF86600A70F39 /* DemoAssistant.xib in Resources */,
@@ -5764,26 +7458,31 @@
isa = PBXResourcesBuildPhase;
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 */,
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 */,
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 */,
8F6DA975055FC71F0050409A /* constantsDictionary in Resources */,
8FDCCD7B05C0A0A000747C0A /* FSAttributedStringInspector.nib in Resources */,
- 8F0B64C905C5370D0099180D /* FSConsole.nib in Resources */,
- 8F0B665005C557A40099180D /* FScriptPreferences.nib in Resources */,
+ EDA22BE11A24C28D0093DB91 /* view.png in Resources */,
8F2D067005CED9B9007EA81B /* run.tiff in Resources */,
8F56036905CF22660044FA65 /* build.tiff in Resources */,
+ EDFB2FF41A17E345002C8DD7 /* FSObjectBrowserButtonsInspector.xib in Resources */,
8FA8EF9F07739FD4001BEC7B /* FSCollectionInspectorView.nib in Resources */,
+ EDA22BEB1A24C28D0093DB91 /* window.png in Resources */,
8F936BEF082E8D9F00A04EBF /* FSManagedObjectContextInspector.nib in Resources */,
+ EDA6AC6A1A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.xib in Resources */,
8F6631D50C4A270200FA798A /* FSMovieInspector.nib in Resources */,
8FE3DC9D0D26C0FD00A1D767 /* FSTestClasses.txt in Resources */,
);
@@ -5795,10 +7494,12 @@
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 */,
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 */,
@@ -5806,17 +7507,20 @@
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 */,
+ ED3004F61A1A86EF00675D94 /* FSObjectInspectorViewController.xib 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 */,
+ 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 */,
+ EDA22BE21A24C28D0093DB91 /* view.png in Resources */,
BA223262189FA403002C5B6A /* FSMovieInspector.nib in Resources */,
BA223263189FA403002C5B6A /* FSTestClasses.txt in Resources */,
BA223264189FA403002C5B6A /* DemoAssistant.xib in Resources */,
@@ -5829,10 +7533,12 @@
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 */,
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 */,
@@ -5840,17 +7546,20 @@
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 */,
+ ED3004F81A1A86EF00675D94 /* FSObjectInspectorViewController.xib 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 */,
+ 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 */,
+ EDA22BE41A24C28D0093DB91 /* view.png in Resources */,
BA223422189FA412002C5B6A /* FSMovieInspector.nib in Resources */,
BA223423189FA412002C5B6A /* FSTestClasses.txt in Resources */,
BA223424189FA412002C5B6A /* DemoAssistant.xib in Resources */,
@@ -5861,26 +7570,31 @@
isa = PBXResourcesBuildPhase;
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 */,
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 */,
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 */,
BA2235CE189FA429002C5B6A /* constantsDictionary in Resources */,
BA2235CF189FA429002C5B6A /* FSAttributedStringInspector.nib in Resources */,
- BA2235D0189FA429002C5B6A /* FSConsole.nib in Resources */,
- BA2235D1189FA429002C5B6A /* FScriptPreferences.nib in Resources */,
+ EDA22BE31A24C28D0093DB91 /* view.png in Resources */,
BA2235D2189FA429002C5B6A /* run.tiff in Resources */,
BA2235D3189FA429002C5B6A /* build.tiff in Resources */,
+ EDFB2FF61A17E345002C8DD7 /* FSObjectBrowserButtonsInspector.xib in Resources */,
BA2235D4189FA429002C5B6A /* FSCollectionInspectorView.nib in Resources */,
+ EDA22BED1A24C28D0093DB91 /* window.png in Resources */,
BA2235D5189FA429002C5B6A /* FSManagedObjectContextInspector.nib in Resources */,
+ EDA6AC6C1A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.xib in Resources */,
BA2235D6189FA429002C5B6A /* FSMovieInspector.nib in Resources */,
BA2235D7189FA429002C5B6A /* FSTestClasses.txt in Resources */,
);
@@ -5890,31 +7604,107 @@
isa = PBXResourcesBuildPhase;
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 */,
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 */,
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 */,
BA223716189FA431002C5B6A /* constantsDictionary in Resources */,
BA223717189FA431002C5B6A /* FSAttributedStringInspector.nib in Resources */,
- BA223718189FA431002C5B6A /* FSConsole.nib in Resources */,
- BA223719189FA431002C5B6A /* FScriptPreferences.nib in Resources */,
+ EDA22BE51A24C28D0093DB91 /* view.png in Resources */,
BA22371A189FA431002C5B6A /* run.tiff in Resources */,
BA22371B189FA431002C5B6A /* build.tiff in Resources */,
+ EDFB2FF81A17E345002C8DD7 /* FSObjectBrowserButtonsInspector.xib in Resources */,
BA22371C189FA431002C5B6A /* FSCollectionInspectorView.nib in Resources */,
+ EDA22BEF1A24C28D0093DB91 /* window.png in Resources */,
BA22371D189FA431002C5B6A /* FSManagedObjectContextInspector.nib in Resources */,
+ EDA6AC6E1A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.xib in Resources */,
BA22371E189FA431002C5B6A /* FSMovieInspector.nib in Resources */,
BA22371F189FA431002C5B6A /* FSTestClasses.txt in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
+ EDC2C9AF1A1AA50D00942777 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ EDC2C9B21A1AA50D00942777 /* FSObjectBrowserButtonsInspector.xib in Resources */,
+ EDC2C9B31A1AA50D00942777 /* FSCollectionInspector.nib in Resources */,
+ EDC2C9B41A1AA50D00942777 /* blockInspector.nib in Resources */,
+ EDC2C9B51A1AA50D00942777 /* FlightTutorial.txt in Resources */,
+ EDA22BF01A24C28D0093DB91 /* window.png 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 */,
+ ED68BE481A35E39000968430 /* FSObjectBrowser.xib in Resources */,
+ EDC2C9BD1A1AA50D00942777 /* fs.scriptSuite in Resources */,
+ EDC2C9BE1A1AA50D00942777 /* fs.scriptTerminology in Resources */,
+ EDC2C9BF1A1AA50D00942777 /* FSImageInspector.nib in Resources */,
+ EDA22BE61A24C28D0093DB91 /* view.png 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 */,
+ EDA6AC6F1A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.xib 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 */,
+ ED68BE491A35E39000968430 /* FSObjectBrowser.xib 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 */,
+ EDA22BE71A24C28D0093DB91 /* view.png in Resources */,
+ EDC2CB881A1AA52500942777 /* run.tiff in Resources */,
+ EDC2CB891A1AA52500942777 /* build.tiff in Resources */,
+ EDC2CB8A1A1AA52500942777 /* FSObjectBrowserButtonsInspector.xib in Resources */,
+ EDC2CB8B1A1AA52500942777 /* FSCollectionInspectorView.nib in Resources */,
+ EDA22BF11A24C28D0093DB91 /* window.png in Resources */,
+ EDC2CB8C1A1AA52500942777 /* FSManagedObjectContextInspector.nib in Resources */,
+ EDA6AC701A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.xib in Resources */,
+ EDC2CB8D1A1AA52500942777 /* FSMovieInspector.nib in Resources */,
+ EDC2CB8E1A1AA52500942777 /* FSTestClasses.txt in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
/* End PBXResourcesBuildPhase section */
/* Begin PBXRezBuildPhase section */
@@ -5974,6 +7764,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 */
@@ -6007,7 +7811,9 @@
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 */,
+ ED3CB6511A1E5B3300771077 /* FSColorWell.m in Sources */,
8F0CBC030BDB94AD002B0AD7 /* FSNSDictionary.m in Sources */,
8F0CBC040BDB94AD002B0AD7 /* FSNSMutableString.m in Sources */,
8F0CBC050BDB94AD002B0AD7 /* FSNSNumber.m in Sources */,
@@ -6049,25 +7855,30 @@
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 */,
8F0CBC370BDB94AD002B0AD7 /* ArrayRepBoolean.m in Sources */,
+ ED8222E41A194FD600C42C72 /* FSObjectInspectorViewModelItem.m in Sources */,
8F0CBC380BDB94AD002B0AD7 /* FSArrayEnumerator.m in Sources */,
8F0CBC390BDB94AD002B0AD7 /* FSNSMutableArray.m in Sources */,
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 */,
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 */,
8F0CBC480BDB94AD002B0AD7 /* FSObjectBrowserViewObjectInfo.m in Sources */,
8F0CBC490BDB94AD002B0AD7 /* FSCollectionInspectorView.m in Sources */,
+ EDA6AC521A1F407C001CD1F2 /* FSObjectInspectorOutlineView.m in Sources */,
8F0CBC4A0BDB94AD002B0AD7 /* ArrayRepFetchRequest.m in Sources */,
8F0CBC4B0BDB94AD002B0AD7 /* FSPointer.m in Sources */,
8F0CBC4C0BDB94AD002B0AD7 /* FSGenericPointer.m in Sources */,
@@ -6101,6 +7912,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 */,
@@ -6114,6 +7926,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 */,
@@ -6142,6 +7955,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 */,
@@ -6170,6 +7984,8 @@
8F6DA68E055FC6980050409A /* FSUnarchiver.m in Sources */,
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 */,
@@ -6192,6 +8008,7 @@
8F6DA6B0055FC6980050409A /* FSObjectBrowserButtonCtxBlock.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 */,
@@ -6220,6 +8037,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 */,
@@ -6239,9 +8057,12 @@
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 */,
+ EDA6AC511A1F407C001CD1F2 /* FSObjectInspectorOutlineView.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 */,
8F747DAC0DA03AE200148342 /* FSCNPrecomputedObject.m in Sources */,
@@ -6249,6 +8070,8 @@
8FAE79B00DA0ED5D00CB6E14 /* FSCNBlock.m in Sources */,
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 */,
@@ -6264,6 +8087,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;
@@ -6296,6 +8120,8 @@
8F6DA888055FC70C0050409A /* BlockStackElem.m in Sources */,
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 */,
@@ -6333,7 +8159,9 @@
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 */,
+ ED68BE571A35E94B00968430 /* FSObjectBrowserWindow.m in Sources */,
8F6DA8BC055FC70C0050409A /* FSNSProtocolChecker.m in Sources */,
8F6DA8BD055FC70C0050409A /* fs_main.m in Sources */,
8F6DA8BE055FC70C0050409A /* FScriptAppController.m in Sources */,
@@ -6350,9 +8178,12 @@
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 */,
+ ED3CB6491A1E5B3300771077 /* FSColorWell.m in Sources */,
+ EDC2C8E41A1A943600942777 /* FSDetailedObjectInspector.m in Sources */,
8F6DA8D7055FC70C0050409A /* FSObjectBrowserToolbarItem.m in Sources */,
8F6DA8D8055FC70C0050409A /* FSArrayEnumerator.m in Sources */,
8F6DA8D9055FC70C0050409A /* FSNSMutableArray.m in Sources */,
@@ -6368,6 +8199,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 */,
@@ -6396,6 +8228,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 */,
@@ -6404,6 +8237,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 */,
@@ -6415,6 +8249,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 */,
@@ -6452,11 +8287,14 @@
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 */,
+ EDC2C8E51A1A943600942777 /* FSDetailedObjectInspector.m in Sources */,
8F6DA98F055FC71F0050409A /* FSInterpreter.m in Sources */,
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 */,
8F6DA995055FC71F0050409A /* FSNSMutableString.m in Sources */,
@@ -6498,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 */,
@@ -6508,17 +8347,20 @@
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 */,
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 */,
8F4E294F075B8E5600F8DCDB /* FSObjectBrowserViewObjectInfo.m in Sources */,
8FA8EDEC07735B3B001BEC7B /* FSCollectionInspectorView.m in Sources */,
8FBC289F077B7D5200F9B4A2 /* ArrayRepFetchRequest.m in Sources */,
+ EDA6AC4A1A1F407C001CD1F2 /* FSObjectInspectorOutlineView.m in Sources */,
8F8EA731077F6A5200AC1C96 /* FSPointer.m in Sources */,
8F8EA7A1077F6C9300AC1C96 /* FSGenericPointer.m in Sources */,
8FE9AE3A078071CC005B2CC4 /* FSObjectPointer.m in Sources */,
@@ -6536,6 +8378,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 */,
@@ -6550,6 +8393,8 @@
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 */,
8F8949DD0DE08B110094EC14 /* FSClassDefinition.m in Sources */,
@@ -6562,6 +8407,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 */,
@@ -6589,6 +8435,8 @@
BA223272189FA403002C5B6A /* BlockStackElem.m in Sources */,
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 */,
@@ -6626,7 +8474,9 @@
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 */,
+ ED68BE591A35E94B00968430 /* FSObjectBrowserWindow.m in Sources */,
BA22329B189FA403002C5B6A /* FSNSProtocolChecker.m in Sources */,
BA22329C189FA403002C5B6A /* fs_main.m in Sources */,
BA22329D189FA403002C5B6A /* FScriptAppController.m in Sources */,
@@ -6643,9 +8493,12 @@
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 */,
+ ED3CB64B1A1E5B3300771077 /* FSColorWell.m in Sources */,
+ EDC2C8E61A1A943600942777 /* FSDetailedObjectInspector.m in Sources */,
BA2232AE189FA403002C5B6A /* FSObjectBrowserToolbarItem.m in Sources */,
BA2232AF189FA403002C5B6A /* FSArrayEnumerator.m in Sources */,
BA2232B0189FA403002C5B6A /* FSNSMutableArray.m in Sources */,
@@ -6661,6 +8514,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 */,
@@ -6689,6 +8543,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 */,
@@ -6697,6 +8552,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 */,
@@ -6708,6 +8564,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 */,
@@ -6739,6 +8596,8 @@
BA223432189FA412002C5B6A /* BlockStackElem.m in Sources */,
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 */,
@@ -6776,7 +8635,9 @@
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 */,
+ ED68BE5B1A35E94B00968430 /* FSObjectBrowserWindow.m in Sources */,
BA22345B189FA412002C5B6A /* FSNSProtocolChecker.m in Sources */,
BA22345C189FA412002C5B6A /* fs_main.m in Sources */,
BA22345D189FA412002C5B6A /* FScriptAppController.m in Sources */,
@@ -6793,9 +8654,12 @@
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 */,
+ ED3CB64D1A1E5B3300771077 /* FSColorWell.m in Sources */,
+ EDC2C8E81A1A943600942777 /* FSDetailedObjectInspector.m in Sources */,
BA22346E189FA412002C5B6A /* FSObjectBrowserToolbarItem.m in Sources */,
BA22346F189FA412002C5B6A /* FSArrayEnumerator.m in Sources */,
BA223470189FA412002C5B6A /* FSNSMutableArray.m in Sources */,
@@ -6811,6 +8675,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 */,
@@ -6839,6 +8704,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 */,
@@ -6847,6 +8713,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 */,
@@ -6858,6 +8725,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 */,
@@ -6895,11 +8763,14 @@
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 */,
+ EDC2C8E71A1A943600942777 /* FSDetailedObjectInspector.m in Sources */,
BA2235EF189FA429002C5B6A /* FSInterpreter.m in Sources */,
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 */,
BA2235F5189FA429002C5B6A /* FSNSMutableString.m in Sources */,
@@ -6941,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 */,
@@ -6951,17 +8823,20 @@
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 */,
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 */,
BA22362E189FA429002C5B6A /* FSObjectBrowserViewObjectInfo.m in Sources */,
BA22362F189FA429002C5B6A /* FSCollectionInspectorView.m in Sources */,
BA223630189FA429002C5B6A /* ArrayRepFetchRequest.m in Sources */,
+ EDA6AC4C1A1F407C001CD1F2 /* FSObjectInspectorOutlineView.m in Sources */,
BA223631189FA429002C5B6A /* FSPointer.m in Sources */,
BA223632189FA429002C5B6A /* FSGenericPointer.m in Sources */,
BA223633189FA429002C5B6A /* FSObjectPointer.m in Sources */,
@@ -6979,6 +8854,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 */,
@@ -6993,6 +8869,8 @@
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 */,
BA223652189FA429002C5B6A /* FSClassDefinition.m in Sources */,
@@ -7005,6 +8883,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 */,
@@ -7038,11 +8917,14 @@
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 */,
+ EDC2C8E91A1A943600942777 /* FSDetailedObjectInspector.m in Sources */,
BA223737189FA431002C5B6A /* FSInterpreter.m in Sources */,
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 */,
BA22373D189FA431002C5B6A /* FSNSMutableString.m in Sources */,
@@ -7084,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 */,
@@ -7094,17 +8977,20 @@
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 */,
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 */,
BA223776189FA431002C5B6A /* FSObjectBrowserViewObjectInfo.m in Sources */,
BA223777189FA431002C5B6A /* FSCollectionInspectorView.m in Sources */,
BA223778189FA431002C5B6A /* ArrayRepFetchRequest.m in Sources */,
+ EDA6AC4E1A1F407C001CD1F2 /* FSObjectInspectorOutlineView.m in Sources */,
BA223779189FA432002C5B6A /* FSPointer.m in Sources */,
BA22377A189FA432002C5B6A /* FSGenericPointer.m in Sources */,
BA22377B189FA432002C5B6A /* FSObjectPointer.m in Sources */,
@@ -7122,6 +9008,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 */,
@@ -7136,6 +9023,8 @@
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 */,
BA22379A189FA432002C5B6A /* FSClassDefinition.m in Sources */,
@@ -7148,6 +9037,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 */,
@@ -7156,6 +9046,321 @@
);
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 */,
+ ED8319411A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.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 */,
+ 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 */,
+ 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 */,
+ ED68BE5D1A35E94B00968430 /* FSObjectBrowserWindow.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 */,
+ ED3CB64F1A1E5B3300771077 /* FSColorWell.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 */,
+ 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 */,
+ 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 */,
+ EDA6AC4F1A1F407C001CD1F2 /* FSObjectInspectorOutlineView.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 */,
+ ED83192C1A1BC2B500290EE2 /* FSUtils.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 */,
+ 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 */,
+ ED3CB6521A1E5B9100771077 /* FSColorWell.m in Sources */,
+ EDC2CBAD1A1AA52500942777 /* FSNSDate.m in Sources */,
+ EDC2CBAE1A1AA52500942777 /* FSNSDictionary.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 */,
+ ED68BE5E1A35E94B00968430 /* FSObjectBrowserWindow.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 */,
+ ED8319421A1BFA7400290EE2 /* FSObjectInspectorViewController+NonArc.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 */,
+ ED83192D1A1BC2B500290EE2 /* FSUtils.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 */,
+ EDA6AC501A1F407C001CD1F2 /* FSObjectInspectorOutlineView.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 */,
+ EDA6AC661A1F52E6001CD1F2 /* FSObjectInspectorOptionsViewController.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 */
@@ -7535,6 +9740,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 +9772,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;
@@ -7835,7 +10042,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 +10077,156 @@
OTHER_LIBTOOL_FLAGS = "$(value) ";
OTHER_REZFLAGS = "";
PRINCIPAL_CLASS = "";
- PRODUCT_NAME = FScriptFramework;
+ PRODUCT_NAME = FScript;
+ SECTORDER_FLAGS = "";
+ SKIP_INSTALL = YES;
+ WRAPPER_EXTENSION = framework;
+ ZERO_LINK = NO;
+ };
+ 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 = FScript;
+ 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 = FScript;
SECTORDER_FLAGS = "";
SKIP_INSTALL = YES;
WRAPPER_EXTENSION = framework;
@@ -7971,6 +10327,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/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 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/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
+ {{472, 0}, {16, 17}}
+
+
+
+ YES
+
+ 47
+ 10
+ 1000
+
+
+ 338690112
+ 1024
+ 9
+
+ Helvetica
+ 12
+ 16
+
+
+
+ 3
+ MQA
+
+
+ 6
+ System
+ controlTextColor
+
+
+
+ 3
+ YES
+ YES
+
+
+
+ 418
+ 10
+ 1000
+
+
+ 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/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/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.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
+
+
+
+ -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 12bd0de..9803471 100644
Binary files a/FScriptFramework/FSCollectionInspectorView.nib/keyedobjects.nib and b/FScriptFramework/FSCollectionInspectorView.nib/keyedobjects.nib differ
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
+
+
+
+ -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/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/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/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/FSDetailedObjectInspector.h b/FScriptFramework/FSDetailedObjectInspector.h
new file mode 100644
index 0000000..49e3e70
--- /dev/null
+++ b/FScriptFramework/FSDetailedObjectInspector.h
@@ -0,0 +1,21 @@
+// FSGenericObjectInspector.h Copyright (c) 2001-2009 Philippe Mougin.
+// This software is open source. See the license.
+
+#import
+
+@class FSObjectInspectorViewModelItem;
+@class FSInterpreter;
+
+@interface FSDetailedObjectInspector : NSObject
+@property (strong,nonatomic) id inspectedObject;
+@property (readonly,nonatomic) NSWindow *window;
+@property (strong,nonatomic) FSInterpreter* interpreter;
+
++ (FSDetailedObjectInspector*)detailedObjectInspectorWithObject:(id)object interpreter:(FSInterpreter*)interpreter;
+- (FSDetailedObjectInspector *)initWithObject:(id)object interpreter:(FSInterpreter*)interpreter;
+
+- (void)windowWillClose:(NSNotification *)aNotification;
+-(IBAction)refreshModel:(id)sender;
+- (IBAction)browseAction:(id)sender;
+
+@end
diff --git a/FScriptFramework/FSDetailedObjectInspector.m b/FScriptFramework/FSDetailedObjectInspector.m
new file mode 100644
index 0000000..eb251df
--- /dev/null
+++ b/FScriptFramework/FSDetailedObjectInspector.m
@@ -0,0 +1,178 @@
+// FSDetailedObjectInspector.m Copyright (c) 2001-2009 Philippe Mougin.
+// This software is open source. See the license.
+
+#import "FSDetailedObjectInspector.h"
+#import "FSMiscTools.h"
+#import "FSInterpreter.h"
+#import "FSObjectInspectorViewModelItem.h"
+#import "FSObjectInspectorViewController.h"
+#import "FSObjectBrowserViewObjectInfo.h"
+#import "FSUtils.h"
+
+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;
+@property (strong,nonatomic) FSObjectInspectorViewModelItem *rootViewModelItem;
+@end
+
+@implementation FSDetailedObjectInspector {
+}
+
++ (FSDetailedObjectInspector*)detailedObjectInspectorWithObject:(id)object interpreter:(FSInterpreter*)interpreter
+{
+ return [[self alloc] initWithObject:object interpreter:(FSInterpreter*)interpreter];
+}
+
+- (FSDetailedObjectInspector *)initWithObject:(id)object interpreter:(FSInterpreter*)interpreter
+{
+ if ((self = [super init])) {
+ 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.interpreter = interpreter;
+ self.window = panel;
+
+ _inspectedObject = object;
+ 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;
+ [panel setFrame:[panel frameRectForContentRect:rectWithSize(desiredSize)] display:YES];
+ sTopLeftPoint = [self.window cascadeTopLeftFromPoint:sTopLeftPoint];
+ if (sIsFirstWindow) {
+ sIsFirstWindow = NO;
+ sTopLeftPoint = [self.window cascadeTopLeftFromPoint:sTopLeftPoint];
+ }
+ [self.window makeKeyAndOrderFront:nil];
+ return self;
+ }
+ return nil;
+}
+
+
+-(void)dealloc
+{
+ //NSLog(@"Dealloc %@",self);
+ [self _unwatchItems];
+}
+
+
+-(IBAction)refreshModel:(id)sender
+{
+ [self.window setTitle:[NSString stringWithFormat:@"Inspecting %@ at address %p", descriptionForFSMessage(self.inspectedObject), self.inspectedObject]];
+ FSObjectBrowserViewObjectHelper *objectInfoHelper = [FSObjectBrowserViewObjectHelper new];
+ [objectInfoHelper introspectPropertiesOfObject:self.inspectedObject];
+ [objectInfoHelper populateModelWithObject:self.inspectedObject];
+ self.rootViewModelItem = objectInfoHelper.rootViewModelItem;
+ self.viewController.rootViewModelItem = self.rootViewModelItem;
+}
+- (IBAction)browseAction:(id)sender
+{
+ [self.interpreter browse:self.inspectedObject];
+}
+
+/////////////////// Window delegate callbacks
+
+- (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;
+ @try {
+ if (item.setter) {
+ if (item.valueType == FS_ITEM_OBJECT
+ || item.valueType == FS_ITEM_RECT
+ || item.valueType == FS_ITEM_SIZE
+ || item.valueType == FS_ITEM_RANGE
+ || item.valueType == FS_ITEM_POINT
+ ) {
+ 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);
+ }
+ }
+}
+/*
+ *
+ *
+ *================================================================================================*/
+#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/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/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.nib/designable.nib b/FScriptFramework/FSManagedObjectContextInspector.nib/designable.nib
index d361e87..4c95ab2 100644
--- a/FScriptFramework/FSManagedObjectContextInspector.nib/designable.nib
+++ b/FScriptFramework/FSManagedObjectContextInspector.nib/designable.nib
@@ -2,32 +2,32 @@
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
{896, 395}
-
- {{0, 0}, {1440, 878}}
+ {{0, 0}, {2560, 1417}}
{854, 304}
{10000000000000, 10000000000000}
YES
@@ -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 a818686..256705a 100644
Binary files a/FScriptFramework/FSManagedObjectContextInspector.nib/keyedobjects.nib and b/FScriptFramework/FSManagedObjectContextInspector.nib/keyedobjects.nib differ
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
+
+
+
+
+ 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/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 567c65f..9254bad 100644
--- a/FScriptFramework/FSMiscTools.m
+++ b/FScriptFramework/FSMiscTools.m
@@ -14,6 +14,8 @@
#import
#import
#import "FSCollectionInspector.h"
+#import "FSDetailedObjectInspector.h"
+#import "FSObjectBrowserViewObjectInfo.h"
#import "FSGenericObjectInspector.h"
#import "FSInterpreter.h"
//#import "FScript.h"
@@ -28,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)
{
@@ -85,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;
@@ -218,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;
@@ -230,15 +245,21 @@ BOOL containsString(NSString *s, NSString *t, NSUInteger mask)
return NULL;
}
+// Return the main type in a type encoding. This is the type code from the Objective-C Runtime Programming guide,
+// but with FScript-specific types for structures that have special FScript type representations.
+// i.e., NSRange, NSPoint, NSSize, NSRect, CGPoint, CGSize, CGRect and CGAffineTransform
char FSEncode(const char *foundationEncodeStyleStr)
{
// NSLog(@"FSEncode called with \"%s\"", foundationEncodeStyleStr);
const char *ptr = foundationEncodeStyleStr;
+ // Skip protocol type qualifiers (const', 'in', 'inout', etc.)
while (*ptr == 'r' || *ptr == 'n' || *ptr == 'N' || *ptr == 'o' || *ptr == 'O' || *ptr == 'R' || *ptr == 'V')
ptr++;
+ // Found a struct type '{=...}'. If ' matches a struct with a type FScript has a special representation
+ // for, return a type-code specific to FScript.
if (*ptr == '{')
{
// NSLog([NSString stringWithFormat:@"ptr = %s",ptr]);
@@ -250,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;
@@ -286,6 +308,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;
@@ -296,23 +343,43 @@ void inspect(id object, FSInterpreter *interpreter, id argument)
{
@try // An exception may occur if the object is invalid (e.g. an invalid proxy)
{
- [object respondsToSelector:@selector(inspect)];
+ [object respondsToSelector:@selector(inspect)];
}
@catch (id exception)
{
error= YES;
[FSGenericObjectInspector genericObjectInspectorWithObject:object];
}
-
+
if (!error)
- {
+ {
if ([object respondsToSelector:@selector(inspectWithSystem:)])
[object inspectWithSystem:[interpreter objectForIdentifier:@"sys" found:NULL]];
else if ([object respondsToSelector:@selector(inspect)])
[object inspect];
- else [FSGenericObjectInspector genericObjectInspectorWithObject:object];
- }
- }
+ else {
+ BOOL knownBaseClass = NO;
+ for (Class cls in [FSObjectBrowserViewObjectHelper baseClasses]){
+ if ([object isKindOfClass:cls]) {
+ knownBaseClass = YES;
+ break;
+ }
+ }
+ if (knownBaseClass) {
+ FSDetailedObjectInspector *inspector = [FSDetailedObjectInspector detailedObjectInspectorWithObject:object
+ interpreter:interpreter];
+ [NSNotificationCenter.defaultCenter addObserver:FSInspectorRepository.class
+ selector:@selector(removeInspector:)
+ name:NSWindowWillCloseNotification
+ object:inspector.window ];
+ [FSInspectorRepository addInspector:inspector];
+ }
+ else {
+ [FSGenericObjectInspector genericObjectInspectorWithObject:object];
+ }
+ }
+ }
+ }
}
void inspectCollection(id collection, FSSystem *system, NSArray *blocks) // Factorize some code that would be duplicated in each collection class otherwise
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/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/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/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/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 8771893..ae0a8a4 100644
--- a/FScriptFramework/FSObjectBrowserView.h
+++ b/FScriptFramework/FSObjectBrowserView.h
@@ -6,50 +6,54 @@
@class FSInterpreter;
@class FSObjectBrowserBottomBarTextDisplay;
+@class FSObjectInspectorViewModelItem;
-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;
+@property (retain,nonatomic) IBOutlet FSInterpreter *interpreter;
+@property (retain,nonatomic) IBOutlet id rootObject;
+
@end
diff --git a/FScriptFramework/FSObjectBrowserView.m b/FScriptFramework/FSObjectBrowserView.m
index 81c77bd..dba9153 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,2028 +43,1749 @@ @interface ArgumentsWindow : NSWindow
@end
@implementation ArgumentsWindow
-- (BOOL)canBecomeKeyWindow {
- return YES;
-}
+- (BOOL)canBecomeKeyWindow { return YES; }
@end
const int FSObjectBrowserBottomBarHeight = 22;
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;
+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);
-@end
+
+static NSMutableArray* customButtons = nil;
+
+/*
+ *
+ *
+ *================================================================================================*/
+#pragma mark - FSObjectBrowserView Implementation
+/*==================================================================================================
+ */
@implementation FSObjectBrowserView
+@synthesize interpreter;
+@synthesize rootObject;
+
++ (NSArray*)customButtons
+{
+ return customButtons;
+}
-+ (NSArray *)customButtons
++ (void)initialize
{
- return customButtons;
+ 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];
+ }
}
-+ (void) initialize
++ (void)saveCustomButtonsSettings
{
- static BOOL tooLate = NO;
- if ( !tooLate )
- {
- int i;
- NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
- NSMutableDictionary *registrationDict = [NSMutableDictionary dictionary];
+ 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)_setup
+{
+ CGFloat baseWidth = NSWidth([self bounds]);
+ CGFloat baseHeight = NSHeight([self bounds]);
+ CGFloat fontSize;
- [registrationDict setObject:[NSNumber numberWithDouble:[[NSFont userFixedPitchFontOfSize:-1] pointSize]] forKey:@"FScriptFontSize"];
- [defaults registerDefaults:registrationDict];
+ fontSize = systemFontSize();
- NSManagedObjectClass = NSClassFromString(@"NSManagedObject");
+ browser = [[NSBrowser alloc] initWithFrame:NSMakeRect(0, FSObjectBrowserBottomBarHeight, baseWidth, baseHeight - FSObjectBrowserBottomBarHeight)];
+ [browser setMatrixClass:FSObjectBrowserMatrix.class];
- 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];
+ [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) {
+ [self _setup];
}
- @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
+ return self;
+}
+
+- (instancetype)initWithCoder:(NSCoder *)coder
+{
+ self = [super initWithCoder:coder];
+ if (self) {
+ [self _setup];
}
- }
-
- 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]";
+ return self;
+}
+
+
+
+- (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 if (i == 2)
- {
- buttonName = @"Example2";
- blockSource = @"#isEqual:";
+}
+
+- (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];
+ }
+ }
+ }
+ }
}
- 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]";
+}
+
+- (void)applyBlockAction:(id)sender
+{
+ FSBlock* block = [sender block];
+
+ @try {
+ [block compilIfNeeded];
}
- 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]))
+ @catch (id exception)
{
- //[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];
+ NSRunAlertPanel(@"Syntax Error", FSErrorMessageFromException(exception), @"OK", nil, nil, nil);
+ FSInspectBlocksInCallStackForException(exception);
+ return;
}
- }
- 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];
- }
+ if ([block isCompact]) {
+ [self sendMessage:[block selector] withArguments:nil];
}
- }
- }
- }
-}
-
-- (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];
+ 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]] column: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]];
}
- }
- 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];
- }
- }
+ [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];
+}
+
+
+- (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];
+ }
+ }
+ 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)addClassLabel:(NSString *)label toMatrix:(NSMatrix *)matrix color:(NSColor *)color
+- (void)addClassLabel:(NSString*)label toMatrix:(NSMatrix*)matrix color:(NSColor*)color
{
- NSBrowserCell *cell;
- NSDictionary *txtDict = [NSDictionary dictionaryWithObjectsAndKeys:[NSColor whiteColor], NSForegroundColorAttributeName, color, NSBackgroundColorAttributeName, nil];
- NSMutableAttributedString *attrStr = [[[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@" %@ ", label] attributes:txtDict] autorelease];
+ 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];
+ [self addBlankRowToMatrix:matrix];
+ cell = addRowToMatrix(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];
+ [cell setLeaf:YES];
+ [cell setEnabled:NO];
+ [attrStr setAlignment:NSCenterTextAlignment range:NSMakeRange(0, [attrStr length])];
+ [cell setAttributedStringValue:attrStr];
}
-- (void)addClassLabel:(NSString *)label toMatrix:(NSMatrix *)matrix
+- (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]];
+ [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
+- (void)addLabel:(NSString*)label toMatrix:(NSMatrix*)matrix indentationLevel:(NSUInteger)indentationLevel
{
- NSBrowserCell *cell;
- NSMutableString *cellString = [NSMutableString string];
+ 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];
+}
- //[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];
+- (void)addLabel:(NSString*)label toMatrix:(NSMatrix*)matrix
+{
+ [self addLabel:label toMatrix:matrix indentationLevel:0];
}
-- (void)addLabel:(NSString *)label toMatrix:(NSMatrix *)matrix
+- (void)addLabelAlone:(NSString*)label toMatrix:(NSMatrix*)matrix
{
- [self addLabel:label toMatrix:matrix indentationLevel:0];
+ if ([self hasEmptyFilterString] || containsString(label, filterString, NSCaseInsensitiveSearch)) {
+ [self addLabel:label toMatrix:matrix];
+ }
}
-- (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
{
- if ( [self hasEmptyFilterString] || containsString(label, filterString, NSCaseInsensitiveSearch) )
- {
- [self addLabel:label toMatrix:matrix];
- }
+ 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 leaf:(BOOL)leaf
+
+- (void)addObject:(id)object
+ toMatrix:(NSMatrix*)matrix
+ label:(NSString*)label
+ classLabel:(NSString*)classLabel
+ indentationLevel:(NSUInteger)indentationLevel
{
- FSObjectBrowserCell *cell;
- NSString *objectString = printStringForObjectBrowser(object);
+ [self addObject:object toMatrix:matrix label:label classLabel:classLabel indentationLevel:indentationLevel leaf:NO];
+}
- //[matrix addRow];
- //cell = [matrix cellAtRow:[matrix numberOfRows]-1 column:0];
- 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
+{
+ [self addObject:object toMatrix:matrix label:label classLabel:classLabel indentationLevel:1];
}
-- (void)addObject:(id)object toMatrix:(NSMatrix *)matrix label:(NSString *)label classLabel:(NSString *)classLabel 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
{
- [self addObject:object toMatrix:matrix label:label classLabel:classLabel indentationLevel:indentationLevel leaf:NO];
+ 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 toMatrix:(NSMatrix *)matrix label:(NSString *)label classLabel:(NSString *)classLabel
+
+- (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 toMatrix:matrix label:label classLabel:classLabel indentationLevel:1];
+ [self addObject:object withLabel:label toMatrix:matrix leaf:NO classLabel:(NSString*)classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject indentationLevel: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];
- }
+- (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
+- (void)addPropertyLabel:(NSString*)label toMatrix:(NSMatrix*)matrix
{
- [self addObject:object withLabel:label toMatrix:matrix leaf:NO classLabel:(NSString *)classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject indentationLevel:0];
+ 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)addObjects:(NSArray *)objects withLabel:(NSString *)label toMatrix:(NSMatrix *)matrix classLabel:(NSString *)classLabel selectedClassLabel:(NSString *)selectedClassLabel selectedLabel:(NSString *)selectedLabel selectedObject:(id)selectedObject
+- (void)browser:(NSBrowser*)sender createRowsForColumn:(NSInteger)column inMatrix:(NSMatrix*)matrix // We are our own delegate
{
- 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];
+ [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 column:column 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 column:column 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] column:column putResultInMatrix:matrix];
+ }
+ else {
+
+
+ #pragma mark ► Send Message with Arguments from Form
+ //--------------------------------------------------------------------------------
+
+ // Create a form to fill in the arguments of a message, with action 'sendMessageAction:'
+ 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])];
-
- //[matrix addRow];
- //cell = [matrix cellAtRow:[matrix numberOfRows]-1 column:0];
- 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++)
+ 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)
{
- [selectorStrings addObject:[FSCompiler stringFromSelector:mlist->method_list[i].method_name]];
+ // An exception may happend if the object is invalid (i.e. an invalid proxy)
+ NSBeep();
+ return;
}
- }
- else*/
-
+
+ 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];
- }
-}
-
-/*- (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"];
-} */
+ 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 column:i 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
+- (void)inspectAction:(id)sender
{
- 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)];
+ inspect([self selectedObject], interpreter, nil);
+}
- [self addSubview:browser];
- [self addSubview:bottomBarTextDisplay];
+- (void)menuWillSendAction:(NSNotification*)notification;
+{
+ NSMenuItem* item = [[notification userInfo] objectForKey:@"MenuItem"];
+ selectedView = [item retain];
+}
- browsingMode = FSBrowsingWorkspace;
-
- filterString = @"";
-
- matrixes = [[NSMutableSet alloc] init];
- }
- return self;
-}
+@class FSObjectBrowser;
-- (void) inspectAction:(id)sender
+- (void)mouseMoved:(NSEvent*)theEvent
{
- inspect([self selectedObject], interpreter, nil);
+ 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)menuWillSendAction:(NSNotification *)notification;
+- (void)nameObjectAction:(id)sender
{
- NSMenuItem *item = [[notification userInfo] objectForKey: @"MenuItem"];
- selectedView = [item retain];
+ 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];
}
-@class FSObjectBrowser;
+- (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];
+ }
+}
-- (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];
- }
- }
+- (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];
-/*
-- (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)
+ 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.
{
- view = [[[window contentView] superview] hitTest:[window convertScreenToBase:[NSEvent mouseLocation]]];
- if (view) break;
+ NSMatrix* matrix = [browser matrixInColumn:methodColumn];
+
+ FSObjectBrowserCell* cell = addRowToMatrix(matrix);
+ [cell setStringValue:@"applyBlock:"];
+ [cell setEnabled:NO];
+
+ count = 1;
+ methodCells = [[browser matrixInColumn:methodColumn] cells];
}
- }
-
- 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];
+
+ 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];
+ }
}
- [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
- {
+}
+
+
+- (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 (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 column:browser.lastColumn 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];
}
+// Called from the 'send message' form
+// Gets the arguments entered into the form, and then calls sendMessageTo:selectorString:arguments:column:putResultsInMatrix:
- (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 column:browser.lastColumn putResultInMatrix:matrix];
+ if (success) {
+ [NSApp endSheet:[sender window]];
+ [[sender window] close];
+ [browser tile];
+ }
+ }
+}
+
+- (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"
+
+ 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 column:column 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];
- /* 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)
+ [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;
+ }
+
+ return selectedObject;
+}
+
+- (void)workspaceAction:(id)sender
+{
+ [self browseWorkspace];
+}
+
+@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];
+ }
}
- else if (selectedRow-j >= 0 && [[matrix cellAtRow:selectedRow-j column:0] representedObject] == selectedElement)
+ @catch (id exception)
{
- [matrix selectCellAtRow:selectedRow-j column:0];
- break;
+ 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
- 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;}
-@end
+ 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(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)
+ 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 @"";
+}
diff --git a/FScriptFramework/FSObjectBrowserViewObjectInfo.h b/FScriptFramework/FSObjectBrowserViewObjectInfo.h
index 8e99ad1..39879d3 100644
--- a/FScriptFramework/FSObjectBrowserViewObjectInfo.h
+++ b/FScriptFramework/FSObjectBrowserViewObjectInfo.h
@@ -6,6 +6,14 @@
@interface FSObjectBrowserView (FSObjectBrowserViewObjectInfo)
-- (void)fillMatrix:(NSMatrix *)m withObject:(id)object;
+- (void)fillMatrix:(NSMatrix*)m column:(NSUInteger)col withObject:(id)object;
@end
+
+@interface FSObjectBrowserViewObjectHelper : NSObject
+@property (nonatomic, retain) FSObjectInspectorViewModelItem* rootViewModelItem;
++ (NSArray*)baseClasses;
+-(void)introspectPropertiesOfObject:(id)object;
+-(void)populateModelWithObject:(id)object;
+
+@end
diff --git a/FScriptFramework/FSObjectBrowserViewObjectInfo.m b/FScriptFramework/FSObjectBrowserViewObjectInfo.m
index 868867d..e0ab6ad 100644
--- a/FScriptFramework/FSObjectBrowserViewObjectInfo.m
+++ b/FScriptFramework/FSObjectBrowserViewObjectInfo.m
@@ -2,16 +2,19 @@
// This software is open source. See the license.
#import "FSObjectBrowserViewObjectInfo.h"
+#import "FSObjectEnumInfo.h"
#import "FSObjectBrowserCell.h"
+#import "FSObjectBrowserMatrix.h"
#import "FSNamedNumber.h"
#import "FSNumber.h"
-#import "FSMiscTools.h"
+#import "FSMiscTools.h"
#import "FSBoolean.h"
#import "FSBlock.h"
#import "BlockRep.h"
#import "FSGenericPointer.h"
#import "FSGenericPointerPrivate.h"
#import "FSObjectBrowserNamedObjectWrapper.h"
+#import "FSObjectInspectorViewModelItem.h"
#import "FSNSString.h"
#import
#import "FSGenericPointerPrivate.h"
@@ -35,4330 +38,3351 @@
#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;
-}
-
-@property (nonatomic, retain) NSMutableArray *baseClasses;
-
-- (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
-
-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];
- }
-}
-
-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)
-{
- 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];
- }
-}
+#import "metamacrosorig.h"
-static id objectFromAttributeType(NSAttributeType attributeType)
+NSString*
+labelFromPropertyName(NSString* propertyName)
{
- 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];
- }
+ NSMutableString* formLabel = [ NSMutableString string ];
+ NSScanner* scanner = [ NSScanner scannerWithString: propertyName ];
+
+ BOOL first = YES;
+ NSString* item = nil;
+ NSString* upperCase = @"";
+
+ while ( ![ scanner isAtEnd ] && [ scanner scanUpToCharactersFromSet: [ NSCharacterSet uppercaseLetterCharacterSet ] intoString: &item ] ) {
+ if ( !first ) {
+ [ formLabel appendFormat: @" %@%@", upperCase, item ];
+ }
+ else {
+ [ formLabel appendFormat: @"%@%@", [ [item substringToIndex:1] uppercaseString ], (item.length>1?[ item substringFromIndex:1]:@"") ];
+ first = NO;
+ }
+
+ [ scanner scanCharactersFromSet: [ NSCharacterSet uppercaseLetterCharacterSet ] intoString: &upperCase ];
+ }
+
+ if ( ![ scanner isAtEnd ] ) {
+ [ formLabel appendFormat: @" %@", [ [ scanner string ] substringFromIndex: [ scanner scanLocation ] ] ];
+ }
+
+ return formLabel;
}
-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];
- }
-}
-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];
- }
-}
+@interface FSObjectBrowserViewObjectHelper ()
-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];
- }
-}
+@property (nonatomic, assign) FSObjectInspectorViewModelItem* currentViewModelItem;
-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];
- }
-}
+- (id)initWithObjectBrowserView:(FSObjectBrowserView*)view;
+- (void)fillMatrix:(NSMatrix*)m withObject:(id)object;
+@end
-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];
- }
-}
-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];
- }
-}
-
-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];
- }
-}
+@implementation FSObjectBrowserView (FSObjectBrowserViewObjectInfo)
-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];
- }
-}
-/*static id objectFromButtonType(NSButtonType buttonType)
+- (void)fillMatrix:(NSMatrix*)m column:(NSUInteger)col withObject:(id)object
{
- 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];
- }
-}*/
-
-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];
- }
-}
+ FSObjectBrowserViewObjectHelper* objectHelper = [[FSObjectBrowserViewObjectHelper alloc] initWithObjectBrowserView:self];
+ [objectHelper fillMatrix:m withObject:object];
-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];
- }
-}
+ [self addBlankRowToMatrix:m];
+ [self fillMatrix:m withMethodsForObject:object];
-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];
- }
-}
+ [m sizeToCells];
+ //[m scrollCellToVisibleAtRow:[matrix selectedRow] column:0];
+ [m setNeedsDisplay];
-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];
- }
+ [objectHelper release];
}
-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];
- }
-}
+@end
-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];
- }
+@implementation FSObjectBrowserViewObjectHelper {
+ FSObjectBrowserCell* selectedCell;
+ NSString* selectedClassLabel;
+ NSString* selectedLabel;
+ id selectedObject;
+ NSString* classLabel;
+ NSMatrix* m;
+ FSObjectBrowserView* view;
}
-static id objectFromComparisonPredicateOptions(NSUInteger mask)
+- (id)init
{
- 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];
- }
+ return [self initWithObjectBrowserView:nil];
}
-static id objectFromComparisonPredicateModifier(NSComparisonPredicateModifier comparisonPredicateModifier)
+- (id)initWithObjectBrowserView:(FSObjectBrowserView*)theView
{
- 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];
- }
-}
+ self = [super init];
+ if (self) {
-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];
- }
-}
+ view = [[theView retain] autorelease];
+ }
-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];
- }
+ return self;
}
-static id objectFromControlSize(NSControlSize controlSize)
+- (void)dealloc
{
- 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];
- }
+ [_rootViewModelItem release];
+ [super dealloc];
+}
+- (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 enumBiDict:(NSMutableDictionary*)enumBiDict mask:(NSUInteger)mask valueClass:(Class)valueClass notNil:(BOOL)notNil
+{
+ @try {
+ if (!notNil || object) {
+ if (view) {
+ [view addObject:object withLabel:label toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject];
+ }
+ }
+ if (self.rootViewModelItem && 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)
+ {
+ NSLog(@"%@", exception);
+ }
}
-
-static id objectFromControlTint(NSControlTint controlTint)
+- (void)addObject:(id)object valueType:(FSInspectorVMValueType)valueType getter:(FSGetterBlock)getter setter:(FSSetterBlock)setter withLabel:(NSString*)label notNil:(BOOL)notNil
{
- 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];
- }
+ [self addObject:object valueType:valueType getter:getter setter:setter withLabel:label enumBiDict:nil mask:0 valueClass:nil notNil:notNil];
}
-
-static id objectFromDatePickerElementFlags(NSUInteger mask)
+- (void)addObject:(id)object valueType:(FSInspectorVMValueType)valueType withLabel:(NSString*)label notNil:(BOOL)notNil
{
- 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];
- }
+ [self addObject:object valueType:valueType getter:nil setter:nil withLabel:label enumBiDict:nil mask:0 valueClass:(Class)nil notNil:notNil];
}
-
-static id objectFromDatePickerMode(NSDatePickerMode datePickerMode)
+- (void)addObject:(id)object valueType:(FSInspectorVMValueType)valueType getter:(FSGetterBlock)getter setter:(FSSetterBlock)setter withLabel:(NSString*)label
{
- switch (datePickerMode)
- {
- case NSSingleDateMode: return [FSNamedNumber namedNumberWithDouble:datePickerMode name:@"NSSingleDateMode"];
- case NSRangeDateMode: return [FSNamedNumber namedNumberWithDouble:datePickerMode name:@"NSRangeDateMode"];
- default: return [FSNumber numberWithDouble:datePickerMode];
- }
+ [self addObject:object valueType:valueType getter:getter setter:setter withLabel:label enumBiDict:nil mask:0 valueClass:nil notNil:NO];
}
-static id objectFromDatePickerStyle(NSDatePickerStyle datePickerStyle)
+- (void)addGroup:(NSString*)groupName
{
- switch (datePickerStyle)
- {
- case NSTextFieldAndStepperDatePickerStyle: return [FSNamedNumber namedNumberWithDouble:datePickerStyle name:@"NSTextFieldAndStepperDatePickerStyle"];
- case NSClockAndCalendarDatePickerStyle: return [FSNamedNumber namedNumberWithDouble:datePickerStyle name:@"NSClockAndCalendarDatePickerStyle"];
- default: return [FSNumber numberWithDouble:datePickerStyle];
- }
+ FSObjectInspectorViewModelItem* item = [[FSObjectInspectorViewModelItem new] autorelease];
+ item.name = groupName;
+ item.valueType = FS_ITEM_GROUP;
+ [self.currentViewModelItem.mutableChildNodes addObject:item];
+ self.currentViewModelItem = item;
}
-static id objectFromDeleteRule(NSDeleteRule deleteRule)
+- (void)endGroup
{
- 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];
- }
+ self.currentViewModelItem = (FSObjectInspectorViewModelItem*)self.currentViewModelItem.parentNode;
}
-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];
- }
-}
+#define START_GROUP(GROUP) [self addGroup:(@ #GROUP)];
+#define END_GROUP(GROUP) [self endGroup];
-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];
- }
-}
+#define ADD_VALUE(OBJECT, VALUE_TYPE, PROPERTY, BIDICT, MASK, VALUE_CLASS, LABEL, NOT_NIL) \
+ @try { \
+ if (#PROPERTY[0] != '-') { \
+ [self addObject:(OBJECT)valueType:VALUE_TYPE getter:^(id obj, FSObjectInspectorViewModelItem* item) { return [obj valueForKey:@ #PROPERTY]; } setter:^(id obj, id newVal, FSObjectInspectorViewModelItem* item) { [obj setValue:newVal forKey:@ #PROPERTY]; } withLabel:(LABEL)enumBiDict:BIDICT mask:MASK valueClass:VALUE_CLASS notNil:NOT_NIL]; \
+ } \
+ else { \
+ [self addObject:(OBJECT)valueType:VALUE_TYPE getter:^(id obj, FSObjectInspectorViewModelItem* item) { return [obj valueForKey:@ #PROPERTY]; } setter:nil withLabel:(LABEL)enumBiDict:BIDICT mask:MASK valueClass:VALUE_CLASS notNil:NOT_NIL]; \
+ } \
+ } \
+ @catch (id exception) { NSLog(@"%@", exception); }
-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];
- }
-}
+#define ADD_VALUE_GETSET(OBJECT, VALUE_TYPE, GETTER, SETTER, LABEL, NOT_NIL) \
+ [self addObject:(OBJECT) valueType:VALUE_TYPE getter:^(id obj, FSObjectInspectorViewModelItem *item)GETTER setter:^(id obj, id val, FSObjectInspectorViewModelItem *item)SETTER withLabel:(LABEL) enumBiDict:nil mask:0 valueClass:nil notNil:NOT_NIL];
-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];
- }
-}
+#define ADD_ENUM(OBJECT, PROPERTY, ENUM) \
+ ADD_VALUE(objectFrom##ENUM([OBJECT PROPERTY]), FS_ITEM_ENUM, PROPERTY, FSObjectEnumInfo.optionsFor##ENUM, 0, nil, labelFromPropertyName(@#PROPERTY), NO);
-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];
- }
-}
+#define ADD_OPTIONS(OBJECT, PROPERTY, ENUM) \
+ ADD_VALUE(objectFrom##ENUM([OBJECT PROPERTY]), FS_ITEM_OPTIONS, PROPERTY, FSObjectEnumInfo.optionsFor##ENUM, ENUM##Mask, nil, labelFromPropertyName(@#PROPERTY), NO);
-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];
- }
-}
+#define ADD_SIZE(OBJECT, PROPERTY) \
+ ADD_VALUE([NSValue valueWithSize:[OBJECT PROPERTY]], FS_ITEM_SIZE, PROPERTY, nil, 0, nil, labelFromPropertyName(@#PROPERTY), NO)
-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];
- }
-}
+#define ADD_RECT(OBJECT, PROPERTY) \
+ ADD_VALUE([NSValue valueWithRect:(NSRect)[OBJECT PROPERTY]], FS_ITEM_RECT, PROPERTY, nil, 0, nil, labelFromPropertyName(@#PROPERTY), NO)
-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];
- }
+#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) \
}
-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];
- }
-}
+#define ADD_POINT(OBJECT, PROPERTY) \
+ ADD_VALUE([NSValue valueWithPoint:[OBJECT PROPERTY]], FS_ITEM_POINT, PROPERTY, nil, 0, nil, labelFromPropertyName(@#PROPERTY), NO)
-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];
- }
-}
+#define ADD_RANGE(OBJECT, PROPERTY) \
+ ADD_VALUE([NSValue valueWithRange:[OBJECT PROPERTY]], FS_ITEM_RANGE, PROPERTY, nil, 0, nil, labelFromPropertyName(@#PROPERTY), NO)
-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];
- }
-}
+#define _ADD_OBJECT2(OBJECT, PROPERTY) \
+ ADD_VALUE([OBJECT PROPERTY], FS_ITEM_OBJECT, PROPERTY, nil, 0, nil, labelFromPropertyName(@#PROPERTY), NO)
+#define _ADD_OBJECT3(OBJECT, PROPERTY, VALUE_CLASS) \
+ ADD_VALUE([OBJECT PROPERTY], FS_ITEM_OBJECT, PROPERTY, nil, 0, VALUE_CLASS, labelFromPropertyName(@#PROPERTY), NO)
+#define _ADD_OBJECT4(OBJECT, PROPERTY, VALUE_CLASS, NOT_NIL) \
+ ADD_VALUE([OBJECT PROPERTY], FS_ITEM_OBJECT, PROPERTY, nil, 0, VALUE_CLASS, labelFromPropertyName(@#PROPERTY), NOT_NIL)
+#define ADD_OBJECT(...) \
+ metamacro_if_eq(2, metamacro_argcount(__VA_ARGS__))(_ADD_OBJECT2(__VA_ARGS__))( \
+ metamacro_if_eq(3, metamacro_argcount(__VA_ARGS__))(_ADD_OBJECT3(__VA_ARGS__)) ( \
+ _ADD_OBJECT4(__VA_ARGS__) \
+ ))
-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];
- }
-}
-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]);
-}
+#define ADD_OBJECT_NOT_NIL(OBJECT, PROPERTY) \
+ ADD_VALUE([OBJECT PROPERTY], FS_ITEM_OBJECT, PROPERTY, nil, 0, nil, labelFromPropertyName(@#PROPERTY), YES)
-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]);
- }
-}
+#define _ADD_OBJECT_RO2(OBJECT, LABEL) \
+ [self addObject:(OBJECT) valueType:FS_ITEM_OBJECT getter:nil setter:nil withLabel:(LABEL) enumBiDict:nil mask:0 valueClass:nil notNil:NO];
+#define _ADD_OBJECT_RO3(OBJECT, LABEL, VALUE_CLASS) \
+ [self addObject:(OBJECT) valueType:FS_ITEM_OBJECT getter:nil setter:nil withLabel:(LABEL) enumBiDict:nil mask:0 valueClass:VALUE_CLASS notNil:NO];
+#define _ADD_OBJECT_RO4(OBJECT, LABEL, VALUE_CLASS, NOT_NIL) \
+ [self addObject:(OBJECT) valueType:FS_ITEM_OBJECT getter:nil setter:nil withLabel:(LABEL) enumBiDict:nil mask:0 valueClass:VALUE_CLASS notNil:NOT_NIL];
-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];
- }
-}
+#define ADD_OBJECT_RO(...) \
+ metamacro_if_eq(2, metamacro_argcount(__VA_ARGS__))(_ADD_OBJECT_RO2(__VA_ARGS__))( \
+ metamacro_if_eq(3, metamacro_argcount(__VA_ARGS__))(_ADD_OBJECT_RO3(__VA_ARGS__)) ( \
+ _ADD_OBJECT_RO4(__VA_ARGS__) \
+ ))
+
+#define ADD_OBJECT_GETSET(OBJECT, GETTER, SETTER, VALUE_CLASS, LABEL, NOT_NIL) \
+{ \
+ FSGetterBlock getBlock = ^id(id obj, FSObjectInspectorViewModelItem *item) GETTER; \
+ FSSetterBlock setBlock = ^void(id obj, id val, FSObjectInspectorViewModelItem *item) SETTER; \
+ [self addObject:getBlock(OBJECT,nil) valueType:FS_ITEM_OBJECT getter:getBlock setter:setBlock withLabel:(LABEL) enumBiDict:nil mask:0 valueClass:VALUE_CLASS notNil:NOT_NIL]; \
+}
+
+#define ADD_OBJECT_RO_NOT_NIL(OBJECT, LABEL) ADD_OBJECT_NOT_NIL(OBJECT, nil, nil, LABEL) \
+ [self addObject:(OBJECT) valueType:FS_ITEM_OBJECT getter:nil setter:nil withLabel:(LABEL) enumBiDict:nil mask:0 valueClass:nil notNil:YES];
+
+
+#define ADD_COLOR(OBJECT, PROPERTY) \
+ ADD_VALUE([OBJECT PROPERTY], FS_ITEM_OBJECT, PROPERTY, nil, 0, NSColor.class, labelFromPropertyName(@#PROPERTY), NO)
+
+#define ADD_COLOR_NOT_NIL(OBJECT, PROPERTY) \
+ ADD_VALUE([OBJECT PROPERTY], FS_ITEM_OBJECT, PROPERTY, nil, 0, NSColor.class, labelFromPropertyName(@#PROPERTY), YES)
+
+#define ADD_STRING(OBJECT, PROPERTY) \
+ ADD_VALUE([OBJECT PROPERTY], FS_ITEM_OBJECT, PROPERTY, nil, 0, NSString.class, labelFromPropertyName(@#PROPERTY), NO)
+
+#define ADD_STRING_NOT_NIL(OBJECT, PROPERTY) \
+ ADD_VALUE([OBJECT PROPERTY], FS_ITEM_OBJECT, PROPERTY, nil, 0, NSString.class, labelFromPropertyName(@#PROPERTY), YES)
+
+#define ADD_BOOL(OBJECT, PROPERTY) \
+ ADD_VALUE([FSBoolean booleanWithBool:[OBJECT PROPERTY]], FS_ITEM_BOOL, PROPERTY, nil, 0, nil, labelFromPropertyName(@#PROPERTY), NO);
+
+#define ADD_NUMBER(OBJECT, PROPERTY) \
+ ADD_VALUE([FSNumber numberWithDouble:[OBJECT PROPERTY]], FS_ITEM_NUMBER, PROPERTY, nil, 0, nil, labelFromPropertyName(@#PROPERTY), NO)
+
+#define ADD_NUMBER_GETSET(OBJECT, GETTER, SETTER, LABEL) \
+{ \
+ double (^getBlock)(id,FSObjectInspectorViewModelItem*) = ^double(id obj, FSObjectInspectorViewModelItem *item) GETTER; \
+ FSGetterBlock wrappedGetBlock = ^id(id obj, FSObjectInspectorViewModelItem *item) { \
+ return [FSNumber numberWithDouble:getBlock(obj,item)]; \
+ }; \
+ void(^setBlock)(id,double,FSObjectInspectorViewModelItem*) = ^(id obj, double val, FSObjectInspectorViewModelItem *item) SETTER; \
+ FSSetterBlock wrappedSetBlock = ^(id obj, id val, FSObjectInspectorViewModelItem *item) { \
+ setBlock(obj, [val doubleValue], item); \
+ }; \
+ [self addObject:wrappedGetBlock(OBJECT,nil) valueType:FS_ITEM_NUMBER getter:wrappedGetBlock setter:wrappedSetBlock withLabel:(LABEL) enumBiDict:nil mask:0 valueClass:nil notNil:NO]; \
+}
+
+#define ADD_BOOL_GETSET(OBJECT, GETTER, SETTER, LABEL) \
+{ \
+ BOOL (^getBlock)(id,FSObjectInspectorViewModelItem*) = ^BOOL(id obj, FSObjectInspectorViewModelItem *item) GETTER; \
+ FSGetterBlock wrappedGetBlock = ^id(id obj, FSObjectInspectorViewModelItem *item) { \
+ return [FSBoolean booleanWithBool:getBlock(obj,item)]; \
+ }; \
+ void(^setBlock)(id,BOOL,FSObjectInspectorViewModelItem*) = ^(id obj, BOOL val, FSObjectInspectorViewModelItem *item) SETTER; \
+ FSSetterBlock wrappedSetBlock = ^(id obj, id val, FSObjectInspectorViewModelItem *item) { \
+ setBlock(obj, [True isEqual:val], item); \
+ }; \
+ [self addObject:wrappedGetBlock(OBJECT,nil) valueType:FS_ITEM_BOOL getter:wrappedGetBlock setter:wrappedSetBlock withLabel:(LABEL) enumBiDict:nil mask:0 valueClass:nil notNil:NO]; \
+}
+#define ADD_DICTIONARY(OBJECTS, LABEL) \
+ @try { \
+ NSDictionary *objs = [OBJECTS LABEL]; \
+ if (objs.count <= 20) \
+ [view addDictionary:objs withLabel:labelFromPropertyName(@#LABEL)toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; \
+ else \
+ [self addObject:objs valueType:FS_ITEM_OBJECT withLabel:labelFromPropertyName(@#LABEL)notNil:NO]; \
+ } \
+ @catch (id exception) { NSLog(@"%@", exception); }
+
+#define ADD_OBJECTS(OBJECTS, LABEL) \
+ @try { \
+ NSArray *objs = [OBJECTS LABEL]; \
+ if (objs.count <= 20) \
+ [view addObjects:objs withLabel:labelFromPropertyName(@#LABEL) toMatrix:m classLabel:classLabel selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject]; \
+ else \
+ [self addObject:(OBJECTS) valueType:FS_ITEM_OBJECT withLabel:labelFromPropertyName(@#LABEL) notNil:NO]; \
+ } \
+ @catch (id exception) { NSLog(@"%@", exception); }
+
+#define ADD_SEL(S, LABEL) \
+ @try { \
+ [view addObject:[FSBlock blockWithSelector:@selector(S)] withLabel:labelFromPropertyName(@#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_POINTER(POINTER, LABEL) \
+ @try { \
+ if (POINTER == NULL) { \
+ 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); }
+
+#define ADD_CLASS_LABEL(LABEL) \
+ { \
+ [self addClassLabel:(LABEL)toMatrix:m]; \
+ }
-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];
- }
-}
+#define ADD_SIZE2(SIZE, PROPERTY, LABEL) \
+ ADD_VALUE([NSValue valueWithSize:(SIZE)], FS_ITEM_SIZE, PROPERTY, nil, nil, 0, LABEL, NO)
+#define ADD_RECT2(RECT,PROPERTY, LABEL) \
+ ADD_VALUE([NSValue valueWithRect:(RECT)], FS_ITEM_RECT, PROPERTY, nil, nil, 0, LABEL, NO)
+#define ADD_POINT2(POINT,PROPERTY, LABEL) \
+ ADD_VALUE([NSValue valueWithPoint:(POINT)], FS_ITEM_POINT, PROPERTY, nil, nil, 0, LABEL, NO)
+#define ADD_RANGE2(RANGE, PROPERTY,LABEL) \
+ ADD_VALUE([NSValue valueWithRange:(RANGE)], FS_ITEM_RANGE, PROPERTY, nil, nil, 0, LABEL, NO)
+#define ADD_OBJECT2(OBJECT, PROPERTY, LABEL) \
+ ADD_VALUE((OBJECT), FS_ITEM_OBJECT, PROPERTY, nil, nil, 0, LABEL, NO)
+#define ADD_COLOR2(OBJECT, PROPERTY, LABEL) \
+ ADD_VALUE(OBJECT, FS_ITEM_OBJECT, PROPERTY, nil, 0, NSColor.class, LABEL, NO)
+#define ADD_NUMBER2(NUMBER, PROPERTY, LABEL) \
+ ADD_VALUE([FSNumber numberWithDouble:(NUMBER)], FS_ITEM_NUMBER, PROPERTY, nil, 0, nil, LABEL, NO);
-static id objectFromLineJoinStyle(NSLineJoinStyle lineJoinStyle)
+- (void)fillMatrix:(NSMatrix*)theMatrix withObject:(id)object
{
- 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];
- }
-}
+ [object retain]; // (1) To be sure object will not be deallocated as a side effect of the removing of rows
-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];
- }
-}
+ 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 = @"";
-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;
-}
-
-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];
- }
-}
+ [m renewRows:0 columns:1];
-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];
- }
-}
+ [view addObject:object toMatrix:m label:@"" classLabel:@"" indentationLevel:0 leaf:YES];
+ [object release]; // It's now safe to match the retain in instruction (1)
-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];
- }
-}
+ if (selectedObject == object && [selectedClassLabel isEqualToString:@""] && [selectedLabel isEqualToString:@""])
+ [m selectCellAtRow:[m numberOfRows] - 1 column:0];
-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];
- }
-}
-
-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];
- }
-}
-
-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];
- }
-}
+ if (object != nil && object == [object class]) // object is a class
+ {
+ NSMutableArray* classNames = [NSMutableArray array];
+ NSUInteger count, i;
+ Class* classes = allClasses(&count);
-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];
- }
-}
+ @try {
+ for (i = 0; i < count; i++) {
+#ifdef __LP64__
+ if (class_getSuperclass(classes[i]) == object)
+ [classNames addObject:NSStringFromClass(classes[i])];
+#else
+ if (classes[i]->super_class == object)
+ [classNames addObject:NSStringFromClass(classes[i])];
+#endif
+ }
+ }
+ @finally
+ {
+ free(classes);
+ }
+ [classNames sortUsingFunction:FSCompareClassNamesForAlphabeticalOrder context:NULL];
-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];
- }
-}
+ [view addBlankRowToMatrix:m];
-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];
- }
-}
+#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];
+#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];
+#endif
-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];
- }
-}
+ 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_OBJECT2([o valueForKey:key], 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_OBJECT2([o valueForKey:key], key, key)
+ }
+
+ ADD_CLASS_LABEL(@"NSManagedObject Info");
+ ADD_OBJECT(o, entity)
+ ADD_BOOL(o, isDeleted)
+ ADD_BOOL(o, isInserted)
+ ADD_BOOL(o, isUpdated)
+ ADD_OBJECT(o, managedObjectContext)
+ ADD_OBJECT(o, objectID)
+ }
+ 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];
-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];
- }
-}
+ [view addObject:[o superview] withLabel:@"Superview" toMatrix:m classLabel:@"" selectedClassLabel:selectedClassLabel selectedLabel:selectedLabel selectedObject:selectedObject];
-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];
- }
-}
+ 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];
+ }
+ }
-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];
- }
-}
+ /////////////////// Objective-C 2.0 declared properties ///////////////////
+ if ([[NSUserDefaults standardUserDefaults] boolForKey:@"FScriptAutomaticallyIntrospectDeclaredProperties"]) {
+ [self introspectPropertiesOfObject:object];
+ }
-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];
- }
+ /////////////////// 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_RO(exposedBindings, @"Exposed Bindings");
+ }
+ }
+ }
+ [self populateModelWithObject:object];
}
-static id objectFromStatusItemLength(CGFloat statusItemLength)
+-(void)_resetRootNodeWithObject:(id)object
{
- if (statusItemLength == NSVariableStatusItemLength) return [FSNamedNumber namedNumberWithDouble:statusItemLength name:@"NSVariableStatusItemLength"];
- else if (statusItemLength == NSSquareStatusItemLength) return [FSNamedNumber namedNumberWithDouble:statusItemLength name:@"NSSquareStatusItemLength"];
- else return [FSNumber numberWithDouble:statusItemLength];
+ self.rootViewModelItem = [FSObjectInspectorViewModelItem treeNodeWithRepresentedObject:object];
+ self.currentViewModelItem = self.rootViewModelItem;
+ self.rootViewModelItem.value = object;
}
-static id objectFromStringEncoding(NSStringEncoding stringEncoding)
+- (void)populateModelWithObject:(id)object
{
- 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];
- }
+ [self _resetRootNodeWithObject:object];
+ if (!view && [object isKindOfClass:NSView.class]) {
+ self.rootViewModelItem.valueClass = NSView.class;
+ [self populateModelWithAssociatedViews:object];
+ }
+ // For each documented base class the object inherits from, populate the matrix with 'interesting' values
+ // declared as members of that base class
+ for (Class baseClass in FSObjectBrowserViewObjectHelper.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;
+ }
+ }
}
-static id objectFromTableColumnResizingMask(NSUInteger mask)
+-(void)populateModelWithAssociatedViews:(id)object
{
- 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];
- }
-}
+ NSView* o = object;
-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];
- }
+ ADD_OBJECT(o, superview, NSView.class, YES);
+
+ if (o.subviews.count) {
+ [self addGroup:@"Subviews"];
+ NSUInteger idx = 0;
+ for (NSView *subview in o.subviews) {
+ ADD_OBJECT_RO(subview, ([NSString stringWithFormat:@"Subviews[%lu]",idx]), NSView.class)
+ ++idx;
+ }
+ [self endGroup];
+ }
}
-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];
- }
+-(void)introspectPropertiesOfObject:(id)object
+{
+ 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_RO(propertyValue, propertyName)
+ }
+ free(properties);
+ }
+ if (cls == [cls superclass]) // Defensive programming against flawed class hierarchies with infinite loops.
+ cls = nil;
+ else
+ cls = [cls superclass];
+ }
+
}
-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];
- }
++ (NSArray*)baseClasses
+{
+ static NSArray *sBaseClasses = nil;
+ if (!sBaseClasses) {
+ sBaseClasses = [[NSArray 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 sBaseClasses;
}
-
-static id objectFromTextAlignment(NSTextAlignment alignment)
+- (void)addFSGenericPointer:(id)object
{
- 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];
- }
-}
+ FSGenericPointer* o = object;
+ NSArray* memoryContent = [o memoryContent];
-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];
- }
+ if (memoryContent) {
+ ADD_CLASS_LABEL(@"FSGenericPointer Info");
+ ADD_OBJECT_RO(memoryContent, @"Memory content")
+ ADD_OBJECT_NOT_NIL(o, memoryContentUTF8)
+ }
}
-static id objectFromTextBlockVerticalAlignment(NSTextBlockVerticalAlignment verticalAlignment)
+- (void)addFSObjectPointer:(id)object
{
- 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];
- }
-}
+ FSObjectPointer* o = object;
+ NSArray* memoryContent = [o memoryContent];
-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];
- }
+ if (memoryContent) {
+ ADD_CLASS_LABEL(@"FSObjectPointer Info");
+ ADD_OBJECT_RO(memoryContent, @"Memory content")
+ }
}
-static id objectFromTextListOptionsMask(NSUInteger mask)
+- (void)addNSAffineTransform:(id)object
{
- 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];
- }
+ NSAffineTransform* o = object;
+ ADD_CLASS_LABEL(@"NSAffineTransform Info");
+ ADD_NUMBER_GETSET(o, {NSAffineTransform *o = obj; return o.transformStruct.m11; }, { ; }, @"m11")
+ ADD_NUMBER_GETSET(o, {NSAffineTransform *o = obj; return o.transformStruct.m12; }, { ;}, @"m12")
+ ADD_NUMBER_GETSET(o, {NSAffineTransform *o = obj; return o.transformStruct.m21; }, { ;}, @"m21")
+ ADD_NUMBER_GETSET(o, {NSAffineTransform *o = obj; return o.transformStruct.m22; }, { ;}, @"m22")
+ ADD_NUMBER_GETSET(o, {NSAffineTransform *o = obj; return o.transformStruct.tX; }, { ;}, @"tX")
+ ADD_NUMBER_GETSET(o, {NSAffineTransform *o = obj; return o.transformStruct.tY; }, { ;}, @"tY")
}
-static id objectFromTextStorageEditedMask(NSUInteger mask)
+- (void)addNSAlert:(id)object
{
- 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];
- }
+ NSAlert* o = object;
+ ADD_CLASS_LABEL(@"NSAlert Info");
+ ADD_OBJECT(o, accessoryView)
+ ADD_ENUM(o, alertStyle, AlertStyle)
+ ADD_OBJECTS(o, buttons)
+ ADD_OBJECT(o, delegate, NSObject.class, YES)
+ ADD_OBJECT_NOT_NIL(o, helpAnchor)
+ ADD_OBJECT(o, icon)
+ ADD_STRING(o, informativeText)
+ ADD_STRING(o, messageText)
+ ADD_BOOL(o, showsHelp)
+ ADD_BOOL(o, showsSuppressionButton)
+ ADD_OBJECT(o, suppressionButton)
+ ADD_OBJECT(o, window)
}
-static id objectFromTextTableLayoutAlgorithm(NSTextTableLayoutAlgorithm layoutAlgorithm)
+- (void)addNSAnimation:(id)object
{
- switch (layoutAlgorithm)
- {
- case NSTextTableAutomaticLayoutAlgorithm: return [FSNamedNumber namedNumberWithDouble:layoutAlgorithm name:@"NSTextTableAutomaticLayoutAlgorithm"];
- case NSTextTableFixedLayoutAlgorithm: return [FSNamedNumber namedNumberWithDouble:layoutAlgorithm name:@"NSTextTableFixedLayoutAlgorithm"];
- default: return [FSNumber numberWithDouble:layoutAlgorithm];
- }
-}
+ if ([object isKindOfClass:[NSViewAnimation class]]) {
+ NSViewAnimation* o = object;
-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];
- }
-}
+ if ([o viewAnimations] != nil) {
+ ADD_CLASS_LABEL(@"NSViewAnimation Info");
+ ADD_OBJECTS(o, viewAnimations)
+ }
+ }
-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];
- }
+ NSAnimation* o = object;
+ ADD_CLASS_LABEL(@"NSAnimation Info");
+ ADD_ENUM(o, animationBlockingMode, AnimationBlockingMode)
+ ADD_ENUM(o, animationCurve, AnimationCurve)
+ ADD_NUMBER(o, currentProgress)
+ ADD_NUMBER(o, currentValue)
+ ADD_OBJECT(o, delegate, NSObject.class, YES)
+ ADD_NUMBER(o, duration)
+ ADD_NUMBER(o, frameRate)
+ ADD_BOOL(o, isAnimating)
+ ADD_OBJECTS(o, progressMarks)
+ ADD_OBJECT(o, runLoopModesForAnimating)
}
-static id objectFromTIFFCompression(NSTIFFCompression compression)
+- (void)addNSAnimationContext:(id)object
{
- 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];
- }
+ NSAnimationContext* o = object;
+ ADD_CLASS_LABEL(@"NSAnimationContext Info");
+ ADD_NUMBER(o, duration)
}
-static id objectFromTitlePosition(NSTitlePosition titlePosition)
+- (void)addNSAttributedString:(id)object
{
- 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];
- }
+ 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)
+ ADD_OBJECT(o, delegate, NSObject.class, YES)
+ ADD_OPTIONS(o, editedMask, TextStorageEditedOptions)
+ ADD_RANGE(o, editedRange)
+ ADD_BOOL(o, fixesAttributesLazily)
+ ADD_OBJECT(o, font)
+ ADD_COLOR(o, foregroundColor)
+ ADD_OBJECTS(o, layoutManagers)
+ // Note: invoking "paragraphs" and retaining the result cause the result of "layoutManager" to become trash !
+ }
+ }
}
-static id objectFromTokenStyle(NSTokenStyle tokenStyle)
+- (void)addNSBezierPath:(id)object
{
- 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];
- }
+ NSBezierPath* o = object;
+ ADD_CLASS_LABEL(@"NSBezierPath Info");
+ ADD_RECT(o, bounds)
+ ADD_RECT(o, controlPointBounds)
+ if (![o isEmpty])
+ ADD_POINT(o, currentPoint)
+ ADD_NUMBER(o, elementCount)
+ ADD_NUMBER(o, flatness)
+ ADD_BOOL(o, isEmpty)
+ ADD_ENUM(o, lineCapStyle, LineCapStyle)
+ ADD_ENUM(o, lineJoinStyle, LineJoinStyle)
+ ADD_NUMBER(o, lineWidth)
+ ADD_NUMBER(o, miterLimit)
+ ADD_ENUM(o, windingRule, WindingRule)
}
-static id objectFromToolbarDisplayMode(NSToolbarDisplayMode toolbarDisplayMode)
+- (void)addNSCell:(id)object
{
- 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];
- }
-}
+ 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)
+ ADD_ENUM(o, arrowPosition, PopUpArrowPosition)
+ ADD_BOOL(o, autoenablesItems)
+ ADD_NUMBER(o, indexOfSelectedItem)
+ ADD_OBJECTS(o, itemArray)
+ ADD_NUMBER(o, numberOfItems)
+ ADD_OBJECT(o, objectValue)
+ ADD_ENUM(o, preferredEdge, RectEdge)
+ ADD_BOOL(o, pullsDown)
+ ADD_OBJECT(o, selectedItem)
+ ADD_BOOL(o, usesItemFromMenu)
+ }
+
+ NSMenuItemCell* o = object;
+ ADD_CLASS_LABEL(@"NSMenuItemCell Info");
+ if ([[o menuItem] image])
+ ADD_NUMBER(o, imageWidth)
+ ADD_BOOL(o, isHighlighted)
+ if (![[[o menuItem] keyEquivalent] isEqualToString:@""])
+ ADD_NUMBER(o, keyEquivalentWidth)
+ ADD_OBJECT(o, menuItem)
+ ADD_BOOL(o, needsDisplay)
+ ADD_BOOL(o, needsSizing)
+ ADD_NUMBER(o, stateImageWidth)
+ ADD_NUMBER(o, titleWidth)
+ }
+
+ NSButtonCell* o = object;
+ ADD_CLASS_LABEL(@"NSButtonCell Info");
+ ADD_OBJECT_NOT_NIL(o, alternateImage)
+ ADD_STRING(o, alternateTitle)
+ ADD_OBJECT(o, attributedAlternateTitle)
+ ADD_OBJECT(o, attributedTitle)
+ ADD_COLOR(o, backgroundColor)
+ ADD_ENUM(o, bezelStyle, BezelStyle)
+ ADD_ENUM(o, gradientType, GradientType)
+ ADD_OPTIONS(o, highlightsBy, CellStyleMask)
+ ADD_BOOL(o, imageDimsWhenDisabled)
+ ADD_ENUM(o, imagePosition, CellImagePosition)
+ ADD_ENUM(o, imageScaling, ImageScaling)
+ ADD_BOOL(o, isTransparent)
+ ADD_OBJECT_NOT_NIL(o, keyEquivalentFont)
+ ADD_OPTIONS( o, keyEquivalentModifierMask, EventModifierFlags)
+ ADD_BOOL(o, showsBorderOnlyWhileMouseInside)
+ ADD_OPTIONS(o, showsStateBy, CellStyleMask)
+ ADD_OBJECT_NOT_NIL(o, sound)
+ ADD_STRING(o, title)
+ }
+ else if ([object isKindOfClass:[NSDatePickerCell class]]) {
+ NSDatePickerCell* o = object;
+ ADD_CLASS_LABEL(@"NSDatePickerCell Info");
+ ADD_COLOR(o, backgroundColor)
+ ADD_OBJECT(o, calendar)
+ ADD_OPTIONS(o, datePickerElements, DatePickerElementFlags)
+ ADD_ENUM(o, datePickerMode, DatePickerMode)
+ ADD_ENUM(o, datePickerStyle, DatePickerStyle)
+ ADD_OBJECT(o, dateValue)
+ ADD_OBJECT(o, delegate, NSObject.class, YES)
+ ADD_BOOL(o, drawsBackground)
+ ADD_OBJECT_NOT_NIL(o, locale)
+ ADD_OBJECT(o, maxDate)
+ ADD_OBJECT(o, minDate)
+ ADD_COLOR(o, textColor)
+ ADD_NUMBER(o, timeInterval)
+ ADD_OBJECT(o, timeZone)
+ }
+ else if ([object isKindOfClass:[NSFormCell class]]) {
+ NSFormCell* o = object;
+ ADD_CLASS_LABEL(@"NSFormCell Info");
+ ADD_OBJECT(o, attributedTitle)
+ ADD_OBJECT_NOT_NIL(o, placeholderAttributedString)
+ ADD_STRING_NOT_NIL(o, placeholderString)
+ ADD_ENUM(o, titleAlignment, TextAlignment)
+ ADD_ENUM(o, titleBaseWritingDirection, WritingDirection)
+ ADD_OBJECT(o, titleFont)
+ ADD_NUMBER(o, titleWidth)
+ }
+ else if ([object isKindOfClass:[NSLevelIndicatorCell class]]) {
+ NSLevelIndicatorCell* o = object;
+ ADD_CLASS_LABEL(@"NSLevelIndicatorCell Info");
+ ADD_NUMBER(o, criticalValue)
+ ADD_ENUM(o, levelIndicatorStyle, LevelIndicatorStyle)
+ ADD_NUMBER(o, maxValue)
+ ADD_NUMBER(o, minValue)
+ ADD_NUMBER(o, numberOfMajorTickMarks)
+ ADD_NUMBER(o, numberOfTickMarks)
+ ADD_OBJECT_RO(objectFromTickMarkPosition([o tickMarkPosition],NO), @"Tick mark position")
+ ADD_NUMBER(o, warningValue)
+ }
+ else if ([object isKindOfClass:[NSPathCell class]]) {
+ NSPathCell* o = object;
+ ADD_CLASS_LABEL(@"NSPathCell Info");
+ ADD_OBJECTS(o, allowedTypes)
+ ADD_COLOR_NOT_NIL(o, backgroundColor)
+ ADD_OBJECT(o, delegate, NSObject.class)
+ ADD_SEL(o, doubleAction)
+ ADD_OBJECTS(o, pathComponentCells)
+ ADD_ENUM(o, pathStyle, PathStyle)
+ ADD_OBJECT_NOT_NIL(o, placeholderAttributedString)
+ ADD_STRING_NOT_NIL(o, placeholderString)
+ ADD_OBJECT_NOT_NIL(o, URL)
+ }
+ else if ([object isKindOfClass:[NSSegmentedCell class]]) {
+ NSSegmentedCell* o = object;
+ ADD_CLASS_LABEL(@"NSSegmentedCell Info");
+
+ ADD_NUMBER(o, segmentCount)
+ ADD_NUMBER(o, selectedSegment)
+ ADD_ENUM(o, trackingMode, SegmentSwitchTracking)
+
+ [self processSegmentedItem:o];
+ }
+ else if ([object isKindOfClass:[NSSliderCell class]]) {
+ NSSliderCell* o = object;
+ ADD_CLASS_LABEL(@"NSSliderCell Info");
+ ADD_BOOL(o, allowsTickMarkValuesOnly)
+ ADD_NUMBER(o, altIncrementValue)
+#if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_10
+ ADD_BOOL(o, isVertical)
+ ADD_NUMBER(o, knobThickness)
+#endif
+ ADD_NUMBER(o, maxValue)
+ ADD_NUMBER(o, minValue)
+ ADD_NUMBER(o, numberOfTickMarks)
+ ADD_ENUM(o, sliderType, SliderType)
+ ADD_OBJECT_RO(objectFromTickMarkPosition([o tickMarkPosition], [(NSSliderCell*)o isVertical] == 1), @"Tick mark position")
+ ADD_RECT(o, trackRect)
+ }
+ else if ([object isKindOfClass:[NSStepperCell class]]) {
+ NSStepperCell* o = object;
+ ADD_CLASS_LABEL(@"NSStepperCell Info");
+ ADD_BOOL(o, autorepeat)
+ ADD_NUMBER(o, increment)
+ ADD_NUMBER(o, maxValue)
+ ADD_NUMBER(o, minValue)
+ ADD_BOOL(o, valueWraps)
+ }
+ 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)
+ ADD_BOOL(o, hasVerticalScroller)
+ ADD_NUMBER(o, indexOfSelectedItem)
+ ADD_SIZE(o, intercellSpacing)
+ ADD_BOOL(o, isButtonBordered)
+ ADD_NUMBER(o, itemHeight)
+ ADD_NUMBER(o, numberOfItems)
+ ADD_NUMBER(o, numberOfVisibleItems)
+ if (![o usesDataSource] && [o indexOfSelectedItem] != -1)
+ ADD_OBJECT(o, objectValueOfSelectedItem)
+ if (![o usesDataSource])
+ ADD_OBJECTS(o, objectValues)
+ ADD_BOOL(o, usesDataSource)
+ }
+ else if ([object isKindOfClass:[NSPathComponentCell class]]) {
+ NSPathComponentCell* o = object;
+ ADD_CLASS_LABEL(@"NSPathComponentCell Info");
+ ADD_OBJECT_NOT_NIL(o, image)
+ ADD_OBJECT_NOT_NIL(o, URL)
+ }
+ else if ([object isKindOfClass:[NSSearchFieldCell class]]) {
+ NSSearchFieldCell* o = object;
+ ADD_CLASS_LABEL(@"NSSearchFieldCell Info");
+ ADD_OBJECT(o, cancelButtonCell)
+ ADD_NUMBER(o, maximumRecents)
+ ADD_OBJECTS(o, recentSearches)
+ ADD_OBJECT_NOT_NIL(o, recentsAutosaveName)
+ ADD_OBJECT(o, searchButtonCell)
+ ADD_OBJECT_NOT_NIL(o, searchMenuTemplate)
+ ADD_BOOL(o, sendsSearchStringImmediately)
+ ADD_BOOL(o, sendsWholeSearchString)
+ }
+ else if ([object isKindOfClass:[NSTokenFieldCell class]]) {
+ NSTokenField* o = object;
+ ADD_CLASS_LABEL(@"NSTokenField Info");
+ ADD_NUMBER(o, completionDelay)
+ ADD_OBJECT(o, delegate, NSObject.class, YES)
+ ADD_OBJECT(o, tokenizingCharacterSet)
+ ADD_ENUM(o, tokenStyle, TokenStyle)
+ }
+
+ NSTextFieldCell* o = object;
+ ADD_CLASS_LABEL(@"NSTextFieldCell Info");
+ ADD_OBJECTS(o, allowedInputSourceLocales)
+ ADD_COLOR(o, backgroundColor)
+ ADD_ENUM(o, bezelStyle, TextFieldBezelStyle)
+ ADD_BOOL(o, drawsBackground)
+ ADD_OBJECT_NOT_NIL(o, placeholderAttributedString)
+ ADD_STRING_NOT_NIL(o, placeholderString)
+ ADD_COLOR(o, textColor)
+ }
+ }
+ else if ([object isKindOfClass:[NSBrowserCell class]]) {
+ NSBrowserCell* o = object;
+ ADD_CLASS_LABEL(@"NSBrowserCell Info");
+ ADD_OBJECT_NOT_NIL(o, alternateImage)
+ ADD_BOOL(o, isLeaf)
+ ADD_BOOL(o, isLoaded)
+ }
+ else if ([object isKindOfClass:[NSImageCell class]]) {
+ NSImageCell* o = object;
+ ADD_CLASS_LABEL(@"NSImageCell Info");
+ ADD_ENUM(o, imageAlignment, ImageAlignment)
+ ADD_ENUM(o, imageScaling, ImageScaling)
+ }
+ else if ([object isKindOfClass:[NSTextAttachmentCell class]]) {
+ NSTextAttachmentCell* o = object;
+ ADD_CLASS_LABEL(@"NSTextAttachmentCell Info");
+ ADD_OBJECT(o, attachment)
+ ADD_POINT(o, cellBaselineOffset)
+ ADD_SIZE(o, cellSize)
+ ADD_BOOL(o, wantsToTrackMouse)
+ }
-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];
- }
+ NSCell* o = object;
+ ADD_CLASS_LABEL(@"NSCell Info");
+ ADD_BOOL(o, acceptsFirstResponder)
+ ADD_SEL_NOT_NULL([o action], @"Action")
+ ADD_ENUM(o, alignment, TextAlignment)
+ ADD_BOOL(o, allowsEditingTextAttributes)
+ ADD_BOOL(o, allowsMixedState)
+ ADD_BOOL(o, allowsUndo)
+ //ADD_OBJECT( [o attributedStringValue] ,@"Attributed string value")
+ ADD_ENUM(o, backgroundStyle, BackgroundStyle)
+ ADD_ENUM(o, baseWritingDirection, WritingDirection)
+ ADD_SIZE(o, cellSize)
+ ADD_ENUM(o, controlSize, ControlSize)
+ ADD_ENUM(o, controlTint, ControlTint)
+ ADD_OBJECT_NOT_NIL(o, controlView)
+ ADD_ENUM(o, focusRingType, FocusRingType)
+ ADD_OBJECT(o, font)
+ ADD_OBJECT_NOT_NIL(o, formatter)
+ ADD_OBJECT_NOT_NIL(o, image)
+ if ([(NSCell*)o type] == NSTextCellType)
+ ADD_BOOL(o, importsGraphics)
+ ADD_ENUM(o, interiorBackgroundStyle, BackgroundStyle)
+ ADD_BOOL(o, isBezeled)
+ ADD_BOOL(o, isBordered)
+ ADD_BOOL(o, isContinuous)
+ ADD_BOOL(o, isEditable)
+ ADD_BOOL(o, isEnabled)
+ ADD_BOOL(o, isHighlighted)
+ ADD_BOOL(o, isOpaque)
+ ADD_BOOL(o, isScrollable)
+ ADD_BOOL(o, isSelectable)
+ if ([[o keyEquivalent] length] != 0)
+ ADD_STRING(o, keyEquivalent)
+ ADD_ENUM(o, lineBreakMode, LineBreakMode)
+ ADD_OBJECT_NOT_NIL(o, menu)
+ if ([[o mnemonic] length] != 0)
+ ADD_STRING(o, mnemonic)
+ if ([o mnemonicLocation] != NSNotFound)
+ ADD_NUMBER(o, mnemonicLocation)
+ ADD_ENUM(o, nextState, CellStateValue)
+ //ADD_OBJECT( [o objectValue] ,@"Object value")
+ ADD_BOOL(o, refusesFirstResponder)
+ ADD_OBJECT_NOT_NIL(o, representedObject)
+ ADD_BOOL(o, sendsActionOnEndEditing)
+ ADD_BOOL(o, showsFirstResponder)
+ ADD_ENUM(o, state, CellStateValue)
+ ADD_NUMBER(o, tag)
+ ADD_OBJECT_NOT_NIL(o, target)
+ ADD_OPTIONS(o, type, CellType)
+ ADD_BOOL(o, wantsNotificationForMarkedText)
+ ADD_BOOL(o, wraps)
}
-static id objectFromToolbarSizeMode(NSToolbarSizeMode toolbarSizeMode)
+- (void)addNSCollectionViewItem:(id)object
{
- 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];
- }
+ NSCollectionViewItem* o = object;
+ ADD_CLASS_LABEL(@"NSCollectionViewItem Info");
+ ADD_OBJECT(o, collectionView)
+ ADD_BOOL(o, isSelected)
+ ADD_OBJECT(o, representedObject)
+ ADD_OBJECT_NOT_NIL(o, view)
}
-static id objectFromTrackingAreaOptions(NSTrackingAreaOptions mask)
+- (void)addNSComparisonPredicate:(id)object
{
- 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]);
- }
+ NSComparisonPredicate* o = object;
+ ADD_CLASS_LABEL(@"NSComparisonPredicate Info");
+ ADD_ENUM(o, comparisonPredicateModifier, ComparisonPredicateModifier)
+ ADD_SEL_NOT_NULL([o customSelector], @"Custom selector")
+ ADD_OBJECT(o, leftExpression)
+ ADD_ENUM(o, predicateOperatorType, PredicateOperatorType)
+ ADD_OBJECT(o, rightExpression)
}
-static id objectFromTypesetterBehavior(NSTypesetterBehavior typesetterBehavior)
+- (void)addNSCompoundPredicate:(id)object
{
- 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];
- }
+ NSCompoundPredicate* o = object;
+ ADD_CLASS_LABEL(@"NSCompoundPredicate Info")
+ ADD_ENUM(o, compoundPredicateType, CompoundPredicateType)
+ ADD_OBJECTS(o, subpredicates)
}
-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)
+- (void)addNSController:(id)object
{
- switch (windingRule)
- {
- case NSNonZeroWindingRule: return [FSNamedNumber namedNumberWithDouble:windingRule name:@"NSNonZeroWindingRule"];
- case NSEvenOddWindingRule: return [FSNamedNumber namedNumberWithDouble:windingRule name:@"NSEvenOddWindingRule"];
- default: return [FSNumber numberWithDouble:windingRule];
- }
-}
+ 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)
+ ADD_OBJECTS(o, includedKeys)
+ ADD_OBJECT(o, initialKey)
+ ADD_OBJECT(o, initialValue)
+ ADD_DICTIONARY(o, localizedKeyDictionary)
+ ADD_OBJECT_NOT_NIL(o, localizedKeyTable)
+ }
+
+ NSArrayController* o = object;
+ ADD_CLASS_LABEL(@"NSArrayController Info");
+ ADD_BOOL(o, alwaysUsesMultipleValuesMarker)
+ ADD_BOOL(o, automaticallyRearrangesObjects)
+ ADD_OBJECTS(o, automaticRearrangementKeyPaths)
+ ADD_BOOL(o, avoidsEmptySelection)
+ ADD_BOOL(o, clearsFilterPredicateOnInsertion)
+ ADD_BOOL(o, canInsert)
+ ADD_BOOL(o, canSelectNext)
+ ADD_BOOL(o, canSelectPrevious)
+ ADD_OBJECT_NOT_NIL(o, filterPredicate)
+ ADD_BOOL(o, preservesSelection)
+ if ([o selectionIndex] != NSNotFound)
+ ADD_NUMBER(o, selectionIndex)
+ ADD_OBJECT(o, selectionIndexes)
+ ADD_BOOL(o, selectsInsertedObjects)
+ ADD_OBJECTS(o, sortDescriptors)
+ }
+ else if ([object isKindOfClass:[NSTreeController class]]) {
+ NSTreeController* o = object;
+ ADD_CLASS_LABEL(@"NSTreeController Info");
+ ADD_BOOL(o, alwaysUsesMultipleValuesMarker)
+ ADD_BOOL(o, avoidsEmptySelection)
+ ADD_BOOL(o, canAddChild)
+ ADD_BOOL(o, canInsert)
+ ADD_BOOL(o, canInsertChild)
+ ADD_OBJECT(o, childrenKeyPath)
+ ADD_OBJECT(o, countKeyPath)
+ ADD_OBJECT(o, leafKeyPath)
+ ADD_BOOL(o, preservesSelection)
+ ADD_OBJECTS(o, selectedNodes)
+ ADD_OBJECTS(o, selectedObjects)
+ ADD_OBJECTS(o, selectionIndexPaths)
+ ADD_BOOL(o, selectsInsertedObjects)
+ ADD_OBJECTS(o, sortDescriptors)
+ }
+
+ NSObjectController* o = object;
+ ADD_CLASS_LABEL(@"NSObjectController Info");
+ ADD_BOOL(o, automaticallyPreparesContent)
+ ADD_BOOL(o, canAdd)
+ ADD_BOOL(o, canRemove)
+ ADD_OBJECT(o, content)
+ if ([o managedObjectContext] != nil) // Do not work when there is no managedObjectContext associated with the object
+ ADD_OBJECT_NOT_NIL(o, defaultFetchRequest)
+ ADD_OBJECT_NOT_NIL(o, entityName)
+ ADD_OBJECT_NOT_NIL(o, fetchPredicate)
+ ADD_BOOL(o, isEditable)
+ ADD_OBJECT_NOT_NIL(o, managedObjectContext)
+ ADD_OBJECT(o, objectClass)
+ ADD_OBJECTS(o, selectedObjects)
+ ADD_OBJECT(o, selection)
+ ADD_BOOL(o, usesLazyFetching)
+ }
+ else if ([object isKindOfClass:[NSUserDefaultsController class]]) {
+ NSUserDefaultsController* o = object;
+ ADD_CLASS_LABEL(@"NSUserDefaultsController Info");
+ ADD_BOOL(o, appliesImmediately)
+ ADD_OBJECT(o, defaults)
+ ADD_BOOL(o, hasUnappliedChanges)
+ ADD_OBJECT(o, initialValues)
+ ADD_OBJECT(o, values)
+ }
-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];
+ NSController* o = object;
+ ADD_CLASS_LABEL(@"NSController Info");
+ ADD_BOOL(o, isEditing)
}
-static id objectFromWindowMask(NSUInteger mask)
+- (void)addNSCursor:(id)object
{
- 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];
- }
+ NSCursor* o = object;
+ ADD_CLASS_LABEL(@"NSCursor Info");
+ ADD_POINT(o, hotSpot)
+ ADD_OBJECT(o, image)
+ ADD_BOOL(o, isSetOnMouseEntered)
+ ADD_BOOL(o, isSetOnMouseExited)
}
-static id objectFromWindowBackingLocation(NSWindowBackingLocation windowBackingLocation)
+- (void)addNSDockTile:(id)object
{
- 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];
- }
+ NSDockTile* o = object;
+ ADD_CLASS_LABEL(@"NSDockTile Info");
+ ADD_OBJECT(o, badgeLabel)
+ ADD_OBJECT(o, contentView)
+ ADD_OBJECT(o, owner)
+ ADD_BOOL(o, showsApplicationBadge)
+ ADD_SIZE(o, size)
}
-static id objectFromWindowCollectionBehavior(NSWindowCollectionBehavior windowCollectionBehavior)
+- (void)addNSDocument:(id)object
{
- 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];
- }
+ NSDocument* o = object;
+ ADD_CLASS_LABEL(@"NSDocument Info");
+ ADD_OBJECT_NOT_NIL(o, autosavedContentsFileURL)
+ ADD_OBJECT(o, autosavingFileType)
+ ADD_OBJECT(o, displayName)
+ ADD_OBJECT(o, fileModificationDate)
+ ADD_BOOL(o, fileNameExtensionWasHiddenInLastRunSavePanel)
+ ADD_OBJECT(o, fileType)
+ ADD_OBJECT(o, fileTypeFromLastRunSavePanel)
+ ADD_OBJECT_NOT_NIL(o, fileURL)
+ ADD_BOOL(o, hasUnautosavedChanges)
+ ADD_BOOL(o, hasUndoManager)
+ ADD_BOOL(o, isDocumentEdited)
+ ADD_BOOL(o, keepBackupFile)
+ ADD_OBJECT(o, fileTypeFromLastRunSavePanel)
+ ADD_OBJECT(o, printInfo)
+ ADD_BOOL(o, shouldRunSavePanelWithAccessoryView)
+ ADD_OBJECTS(o, windowControllers)
+ ADD_OBJECT(o, windowForSheet)
+ ADD_OBJECT(o, windowNibName)
}
-static id objectFromWindowSharingType(NSWindowSharingType windowSharingType)
+- (void)addNSDocumentController:(id)object
{
- 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];
- }
+ NSDocumentController* o = object;
+ ADD_CLASS_LABEL(@"NSDocumentController Info");
+ ADD_NUMBER(o, autosavingDelay)
+ ADD_OBJECT(o, currentDirectory)
+ ADD_OBJECT(o, currentDocument)
+ ADD_OBJECT(o, defaultType)
+ ADD_OBJECTS(o, documentClassNames)
+ ADD_OBJECTS(o, documents)
+ ADD_BOOL(o, hasEditedDocuments)
+ ADD_NUMBER(o, maximumRecentDocumentCount)
+ ADD_OBJECT(o, recentDocumentURLs)
}
-/*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];
- }
-}*/
-
-static id objectFromWritingDirection(NSWritingDirection writingDirection)
+- (void)addNSEntityDescription:(id)object
{
- 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];
- }
+ NSEntityDescription* o = object;
+ ADD_CLASS_LABEL(@"NSEntityDescription Info");
+ ADD_DICTIONARY(o, attributesByName)
+ ADD_BOOL(o, isAbstract)
+ ADD_OBJECT(o, managedObjectClassName)
+ ADD_OBJECT(o, managedObjectModel)
+ ADD_OBJECT(o, name)
+ ADD_DICTIONARY(o, relationshipsByName)
+ if ([[o subentities] count] != 0) {
+ ADD_DICTIONARY(o, subentitiesByName)
+ }
+ ADD_OBJECT(o, superentity)
+ ADD_DICTIONARY(o, userInfo)
}
-@implementation FSObjectBrowserView (FSObjectBrowserViewObjectInfo)
-
-
-- (void)fillMatrix:(NSMatrix *)m withObject:(id)object
+- (void)addNSEvent:(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
+ 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)
+ ADD_NUMBER(o, absoluteY)
+ ADD_NUMBER(o, absoluteZ)
+ ADD_OPTIONS(o, buttonMask, EventButtonMask)
+ }
+ if (type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp)
+ ADD_NUMBER(o, buttonNumber)
-@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_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];}
-
-@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];
- }
-
- return self;
-}
+ 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)
-- (void)dealloc
-{
- [baseClasses release];
- [super dealloc];
-}
+ if (type == NSKeyDown || type == NSKeyUp) {
+ ADD_OBJECT(o, characters)
+ ADD_OBJECT(o, charactersIgnoringModifiers)
+ }
+ if (type == NSLeftMouseDown || type == NSLeftMouseUp || type == NSRightMouseDown || type == NSRightMouseUp || type == NSOtherMouseDown || type == NSOtherMouseUp)
+ ADD_NUMBER(o, clickCount)
+ if (type == NSAppKitDefined || type == NSSystemDefined || type == NSApplicationDefined) {
+ ADD_NUMBER(o, data1)
+ ADD_NUMBER(o, data2)
+ }
+ if (type == NSMouseMoved || type == NSLeftMouseDragged || type == NSRightMouseDragged || type == NSOtherMouseDragged || type == NSScrollWheel) {
+ ADD_NUMBER(o, deltaX)
+ ADD_NUMBER(o, deltaY)
+ ADD_NUMBER(o, deltaZ)
+ }
-- (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++)
- {
-#ifdef __LP64__
- if (class_getSuperclass(classes[i]) == object) [classNames addObject:NSStringFromClass(classes[i])];
-#else
- if (classes[i]->super_class == object) [classNames addObject:NSStringFromClass(classes[i])];
-#endif
- }
- }
- @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];
-#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];
-#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])];
- 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];
- }
- @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")
- }
-}
-
-- (void)addFSObjectPointer:(id)object
-{
- 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")
-}
-
-- (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")
-}
-
-- (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")
-}
-
-- (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]])
- {
- 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(objectFromTextStorageEditedMask([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];
-}
-
-- (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")
-}
-
-- (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")
+ 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)
+ 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)
+ if (type == NSKeyDown)
+ ADD_BOOL(o, isARepeat)
+ 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)
+ if (type == NSKeyDown || type == NSKeyUp)
+ ADD_NUMBER(o, keyCode)
+ 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)
+ ADD_OPTIONS(o, modifierFlags, EventModifierFlags)
+ 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)
+ ADD_NUMBER(o, pointingDeviceSerialNumber)
+ ADD_ENUM(o, pointingDeviceType, PointingDeviceType)
}
-
- 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(objectFromCellMask([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_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")
-}
-
-- (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")
-}
-
-- (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")
-}
-
-- (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")
+ 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)
+ 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)
+ 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(o, subtype, EventSubtype)
+ 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)
+ ADD_NUMBER(o, tabletID)
}
- 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")
-}
-
-- (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")
-}
-
-- (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")
-}
-
-- (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")
-}
-
-- (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")
-}
-
-- (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(objectFromButtonMask([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)
+ ADD_POINT(o, tilt)
+ }
+ ADD_NUMBER(o, timestamp)
+ if (type == NSMouseEntered || type == NSMouseExited || type == NSCursorUpdate) {
+ ADD_OBJECT(o, trackingArea)
+ ADD_NUMBER(o, trackingNumber)
}
- 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")
+ ADD_ENUM(o, type, EventType)
+ 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)
+ 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")
- }
-
+ 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)
+ 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)
+ ADD_NUMBER(o, vendorPointingDeviceType)
+ }
+ if (type != NSPeriodic)
+ ADD_OBJECT(o, 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");
+ ADD_CLASS_LABEL(@"NSExpression Info");
+ NSExpression *o = object;
+
+ @try { ADD_OBJECTS(o, arguments); } @catch (id exception) {}
+ @try { ADD_OBJECT(o, collection); } @catch (id exception) {}
+ @try { ADD_OBJECT(o, constantValue); } @catch (id exception) {}
+ @try { ADD_ENUM(o, expressionType, ExpressionType); } @catch (id exception) {}
+ @try { ADD_STRING(o, function); } @catch (id exception) {}
+ @try { ADD_STRING(o, keyPath); } @catch (id exception) {}
+ @try { ADD_OBJECT(o, leftExpression); } @catch (id exception) {}
+ @try { ADD_OBJECT(o, operand); } @catch (id exception) {}
+ @try { ADD_OBJECT(o, predicate); } @catch (id exception) {}
+ @try { ADD_OBJECT(o, rightExpression); } @catch (id exception) {}
+ @try { ADD_STRING(o, variable); } @catch (id exception) {}
+
}
-
+
- (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)
+ ADD_OBJECT(o, entity)
+ ADD_NUMBER(o, fetchLimit)
+ ADD_BOOL(o, includesPropertyValues)
+ ADD_BOOL(o, includesSubentities)
+ ADD_OBJECT(o, predicate)
+ ADD_OBJECTS(o, relationshipKeyPathsForPrefetching)
+ ADD_ENUM(o, resultType, FetchRequestResultType)
+ ADD_BOOL(o, returnsObjectsAsFaults)
+ ADD_OBJECTS(o, sortDescriptors)
}
- (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)
+ ADD_OBJECT(o, filename)
+ ADD_OBJECT_NOT_NIL(o, icon)
+ ADD_BOOL(o, isDirectory)
+ ADD_BOOL(o, isRegularFile)
+ ADD_BOOL(o, isSymbolicLink)
+ ADD_OBJECT_NOT_NIL(o, preferredFilename)
+ if ([o isSymbolicLink])
+ ADD_OBJECT_NOT_NIL(o, symbolicLinkDestination)
}
-
+
- (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)
+ ADD_RECT(o, boundingRectForFont)
+ ADD_NUMBER(o, capHeight)
+ ADD_OBJECT(o, coveredCharacterSet)
+ ADD_NUMBER(o, descender)
+ ADD_OBJECT(o, displayName)
+ ADD_OBJECT(o, familyName)
+ ADD_OBJECT(o, fontDescriptor)
+ ADD_OBJECT(o, fontName)
+ ADD_BOOL(o, isFixedPitch)
+ ADD_NUMBER(o, italicAngle)
+ ADD_NUMBER(o, 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)
+ ADD_ENUM(o, mostCompatibleStringEncoding, StringEncoding)
+ ADD_NUMBER(o, numberOfGlyphs)
+ ADD_NUMBER(o, pointSize)
+ ADD_OBJECT(o, printerFont)
+ ADD_ENUM(o, renderingMode, FontRenderingMode)
+ ADD_OBJECT_NOT_NIL(o, screenFont)
+ ADD_NUMBER(o, underlinePosition)
+ ADD_NUMBER(o, underlineThickness)
+ ADD_NUMBER(o, 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)
+ ADD_OBJECT(o, matrix)
+ ADD_NUMBER(o, pointSize)
+ ADD_OBJECT(o, postscriptName)
+ ADD_NUMBER(o, symbolicTraits)
}
-
+
- (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)
+ ADD_OBJECTS(o, availableFontFamilies)
+ ADD_OBJECTS(o, availableFonts)
+ ADD_OBJECTS(o, collectionNames)
+ ADD_OBJECT(o, delegate, NSObject.class, YES)
+ ADD_BOOL(o, isEnabled)
+ ADD_BOOL(o, isMultiple)
+ ADD_OBJECT(o, selectedFont)
+ ADD_OBJECT(o, target)
}
-
+
- (void)addNSGlyphInfo:(id)object
- {
- NSGlyphInfo *o = 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")
- }
-
+ ADD_ENUM(o, characterCollection, CharacterCollection)
+ if ([o characterIdentifier])
+ ADD_NUMBER(o, characterIdentifier);
+ ADD_OBJECT_NOT_NIL(o, glyphName)
+}
+
- (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)
+ ADD_NUMBER(o, numberOfColorStops)
}
-
-
+
+
- (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)
+ ADD_ENUM(o, colorRenderingIntent, ColorRenderingIntent)
+ ADD_ENUM(o, compositingOperation, CompositingOperation)
+ ADD_POINTER([o graphicsPort], @"Graphics port")
+ ADD_ENUM(o, imageInterpolation, ImageInterpolation)
+ ADD_BOOL(o, isDrawingToScreen)
+ ADD_BOOL(o, isFlipped)
+ ADD_POINT(o, patternPhase)
+ ADD_BOOL(o, shouldAntialias)
}
-
+
- (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)
+ ADD_COLOR(o, backgroundColor)
+ ADD_BOOL(o, cacheDepthMatchesImageDepth)
+ ADD_ENUM(o, cacheMode, ImageCacheMode)
+ ADD_OBJECT(o, delegate, NSObject.class, YES)
+ ADD_BOOL(o, isCachedSeparately)
+ ADD_BOOL(o, isDataRetained)
+ ADD_BOOL(o, isFlipped)
+ ADD_BOOL(o, isTemplate)
+ ADD_BOOL(o, isValid)
+ ADD_BOOL(o, matchesOnMultipleResolution)
+ ADD_OBJECT_NOT_NIL(o, name)
+ ADD_BOOL(o, prefersColorMatch)
+ ADD_OBJECTS(o, representations)
+ ADD_BOOL(o, scalesWhenResized)
+ ADD_SIZE(o, size)
+ ADD_BOOL(o, usesEPSOnResolutionMismatch)
+}
+
- (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")
+ if ([object isKindOfClass:[NSBitmapImageRep class]]) {
+ NSBitmapImageRep* o = object;
+ ADD_CLASS_LABEL(@"NSBitmapImageRep Info");
+ ADD_OPTIONS(o, bitmapFormat, BitmapFormat)
+ ADD_NUMBER(o, bitsPerPixel)
+ ADD_NUMBER(o, bytesPerPlane)
+ ADD_NUMBER(o, bytesPerRow)
+ ADD_OBJECT_GETSET(o,
+ { return [obj valueForProperty:NSImageColorSyncProfileData]; },
+ { [obj setProperty:NSImageColorSyncProfileData withValue:val ];},
+ nil, @"ColorSync profile data", YES)
+ ADD_OBJECT_GETSET(o,
+ { return [obj valueForProperty:NSImageCompressionFactor]; },
+ { [obj setProperty:NSImageCompressionFactor withValue:val ];},
+ nil, @"Compression factor", YES)
+ {
+ //TODO
+ //id compressionMethod = [o valueForProperty:NSImageCompressionMethod];
+ // if ([compressionMethod isKindOfClass:[NSNumber class]])
+ // ADD_ENUM(TIFFCompression, [[o valueForProperty:NSImageCompressionMethod] longValue], imageCompressionMethod, setImageCompressionMethod, @"Compression method")
+ }
+ ADD_OBJECT_GETSET(o,
+ { return [obj valueForProperty:NSImageCurrentFrame]; },
+ { [obj setProperty:NSImageCurrentFrame withValue:val ];},
+ nil, @"Current frame", YES)
+ ADD_OBJECT_GETSET(o,
+ { return [obj valueForProperty:NSImageCurrentFrameDuration]; },
+ { [obj setProperty:NSImageCurrentFrameDuration withValue:val ];},
+ nil, @"Current frame duration", YES)
+ ADD_OBJECT_GETSET(o,
+ { return [obj valueForProperty:NSImageDitherTransparency]; },
+ { [obj setProperty:NSImageDitherTransparency withValue:val ];},
+ nil, @"Dither transparency", YES)
+ ADD_OBJECT_GETSET(o,
+ { return [obj valueForProperty:NSImageEXIFData]; },
+ { [obj setProperty:NSImageEXIFData withValue:val ];},
+ nil, @"EXIF data", YES)
+ ADD_OBJECT_GETSET(o,
+ { return [obj valueForProperty:NSImageFallbackBackgroundColor]; },
+ { [obj setProperty:NSImageFallbackBackgroundColor withValue:val ];},
+ nil, @"Fallback background color", YES)
+ ADD_OBJECT_GETSET(o,
+ { return [obj valueForProperty:NSImageFrameCount]; },
+ { [obj setProperty:NSImageFrameCount withValue:val ];},
+ nil, @"Frame count", YES)
+ ADD_OBJECT_GETSET(o,
+ { return [obj valueForProperty:NSImageGamma]; },
+ { [obj setProperty:NSImageGamma withValue:val ];},
+ nil, @"Gamma", YES)
+ ADD_OBJECT_GETSET(o,
+ { return [obj valueForProperty:NSImageInterlaced]; },
+ { [obj setProperty:NSImageInterlaced withValue:val ];},
+ nil, @"Interlaced", YES)
+ ADD_BOOL(o, isPlanar)
+ ADD_OBJECT_GETSET(o,
+ { return [obj valueForProperty:NSImageLoopCount]; },
+ { [obj setProperty:NSImageLoopCount withValue:val ];},
+ nil, @"Loop count", YES)
+ ADD_NUMBER(o, numberOfPlanes)
+ ADD_OBJECT_GETSET(o,
+ { return [obj valueForProperty:NSImageProgressive]; },
+ { [obj setProperty:NSImageProgressive withValue:val ];},
+ nil, @"Progressive", YES)
+ ADD_OBJECT_GETSET(o,
+ { return [obj valueForProperty:NSImageRGBColorTable]; },
+ { [obj setProperty:NSImageRGBColorTable withValue:val ];},
+ nil, @"RGB color table", YES)
+ ADD_NUMBER(o, samplesPerPixel)
+ }
+ else if ([object isKindOfClass:[NSCIImageRep class]]) {
+ NSCIImageRep* o = object;
+ ADD_CLASS_LABEL(@"NSCIImageRep Info");
+ ADD_OBJECT(o, CIImage)
+ }
+ else if ([object isKindOfClass:[NSCustomImageRep class]]) {
+ NSCustomImageRep* o = object;
+ ADD_CLASS_LABEL(@"NSCustomImageRep Info");
+ ADD_OBJECT(o, delegate)
+ ADD_SEL(o, drawSelector)
+ }
+ else if ([object isKindOfClass:[NSEPSImageRep class]]) {
+ NSEPSImageRep* o = object;
+ ADD_CLASS_LABEL(@"NSEPSImageRep Info");
+ ADD_RECT(o, boundingBox)
+ }
+ else if ([object isKindOfClass:[NSPDFImageRep class]]) {
+ NSPDFImageRep* o = object;
+ ADD_CLASS_LABEL(@"NSPDFImageRep Info");
+ ADD_RECT(o, bounds)
+ ADD_NUMBER(o, currentPage)
+ ADD_NUMBER(o, pageCount)
}
- 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")
-}
-
+ else if ([object isKindOfClass:[NSPICTImageRep class]]) {
+ NSPICTImageRep* o = object;
+ ADD_CLASS_LABEL(@"NSPICTImageRep Info");
+ ADD_RECT(o, boundingBox)
+ }
+
+ NSImageRep* o = object;
+ ADD_CLASS_LABEL(@"NSImageRep Info");
+ ADD_NUMBER(o, bitsPerSample)
+ ADD_OBJECT(o, colorSpaceName)
+ ADD_BOOL(o, hasAlpha)
+ ADD_BOOL(o, isOpaque)
+ ADD_NUMBER(o, pixelsHigh)
+ ADD_NUMBER(o, pixelsWide)
+ ADD_SIZE(o, 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(objectFromLayoutOptions([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)
+ ADD_BOOL(o, backgroundLayoutEnabled)
+ ADD_ENUM(o, defaultAttachmentScaling, ImageScaling)
+ ADD_OBJECT_NOT_NIL(o, delegate)
+ ADD_RECT(o, extraLineFragmentRect)
+ ADD_OBJECT_NOT_NIL(o, extraLineFragmentTextContainer)
+ ADD_RECT(o, extraLineFragmentUsedRect)
+ ADD_OBJECT(o, firstTextView)
+ ADD_NUMBER(o, firstUnlaidCharacterIndex)
+ ADD_NUMBER(o, firstUnlaidGlyphIndex)
+ ADD_OBJECT(o, glyphGenerator)
+ ADD_BOOL(o, hasNonContiguousLayout)
+ ADD_NUMBER(o, hyphenationFactor)
+ ADD_OPTIONS(o, layoutOptions, GlyphStorageLayoutOptions)
+ ADD_BOOL(o, showsControlCharacters)
+ ADD_BOOL(o, showsInvisibleCharacters)
+ ADD_OBJECTS(o, textContainers)
+ ADD_OBJECT(o, textStorage)
+ ADD_OBJECT(o, textViewForBeginningOfSelection)
+ ADD_OBJECT(o, typesetter)
+ ADD_ENUM(o, typesetterBehavior, TypesetterBehavior)
+ ADD_BOOL(o, usesFontLeading)
+ ADD_BOOL(o, usesScreenFonts)
}
-
+
- (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" )
-}
-
-- (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" )
-}
-
-- (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")
+ NSManagedObjectContext* o = object;
+ ADD_CLASS_LABEL(@"NSManagedObjectContext Info");
+ ADD_OBJECT(o, deletedObjects)
+ ADD_BOOL(o, hasChanges)
+ ADD_OBJECT(o, insertedObjects)
+ ADD_OPTIONS(o, mergePolicy, MergePolicyMarker)
+ ADD_OBJECT(o, persistentStoreCoordinator)
+ ADD_BOOL(o, propagatesDeletesAtEndOfEvent)
+ ADD_OBJECT(o, registeredObjects)
+ ADD_BOOL(o, retainsRegisteredObjects)
+ ADD_NUMBER(o, stalenessInterval)
+ ADD_BOOL(o, tryLock)
+ ADD_OBJECT(o, undoManager)
+ ADD_OBJECT(o, updatedObjects)
+}
+
+- (void)addNSManagedObjectID:(id)object
+{
+ NSManagedObjectID* o = object;
+ ADD_CLASS_LABEL(@"NSManagedObjectID Info");
+ ADD_OBJECT(o, entity)
+ ADD_BOOL(o, isTemporaryID)
+ ADD_OBJECT(o, persistentStore)
+ ADD_OBJECT(o, URIRepresentation)
+}
+
+- (void)addNSManagedObjectModel:(id)object
+{
+ NSManagedObjectModel* o = object;
+ ADD_CLASS_LABEL(@"NSManagedObjectModel Info");
+ ADD_OBJECTS(o, configurations)
+ ADD_DICTIONARY(o, entitiesByName)
+ ADD_DICTIONARY(o, fetchRequestTemplatesByName)
+ //TODO: ADD_OBJECTS([[o versionIdentifiers] allObjects], @"Version identifiers")
+}
+
+- (void)addNSMenu:(id)object
+{
+ NSMenu* o = object;
+ ADD_CLASS_LABEL(@"NSMenu Info");
+ ADD_BOOL(o, autoenablesItems)
+ ADD_OBJECT(o, delegate, NSObject.class, YES)
+ ADD_OBJECT_NOT_NIL(o, highlightedItem)
+ ADD_BOOL(o, isTornOff)
+ ADD_OBJECTS(o, itemArray)
+ ADD_BOOL(o, menuChangedMessagesEnabled)
+ ADD_BOOL(o, showsStateColumn)
+ ADD_OBJECT_NOT_NIL(o, supermenu)
+ ADD_STRING(o, title)
+}
+
+- (void)addNSMenuItem:(id)object
+{
+ NSMenuItem* o = object;
+ ADD_CLASS_LABEL(@"NSMenuItem Info")
+ ADD_SEL(o, action)
+ ADD_OBJECT_NOT_NIL(o, attributedTitle)
+ ADD_BOOL(o, hasSubmenu)
+ ADD_OBJECT_NOT_NIL(o, image)
+ ADD_NUMBER(o, indentationLevel)
+ ADD_BOOL(o, isAlternate)
+ ADD_BOOL(o, isEnabled)
+ ADD_BOOL(o, isHidden)
+ ADD_BOOL(o, isHiddenOrHasHiddenAncestor)
+ ADD_BOOL(o, isHighlighted)
+ ADD_BOOL(o, isSeparatorItem)
+ ADD_OBJECT(o, keyEquivalent)
+ ADD_OPTIONS(o, keyEquivalentModifierMask, EventModifierFlags)
+ ADD_OBJECT(o, menu)
+ ADD_OBJECT_NOT_NIL(o, mixedStateImage)
+ ADD_OBJECT_NOT_NIL(o, offStateImage)
+ ADD_OBJECT_NOT_NIL(o, onStateImage)
+ ADD_OBJECT_NOT_NIL(o, representedObject)
+ ADD_ENUM(o, state, CellStateValue)
+ ADD_OBJECT_NOT_NIL(o, submenu)
+ ADD_NUMBER(o, tag)
+ ADD_OBJECT_NOT_NIL(o, target)
+ ADD_STRING(o, title)
+ ADD_OBJECT_NOT_NIL(o, toolTip)
+ ADD_OBJECT(o, userKeyEquivalent)
+ ADD_OBJECT_NOT_NIL(o, view)
+}
+
+- (void)addNSOpenGLContext:(id)object
+{
+ NSOpenGLContext* o = object;
+ ADD_CLASS_LABEL(@"NSOpenGLContext Info");
+ ADD_POINTER([o CGLContextObj], @"CGL context obj")
+ ADD_NUMBER(o, currentVirtualScreen)
+ ADD_OBJECT_NOT_NIL(o, pixelBuffer)
+ ADD_NUMBER(o, pixelBufferCubeMapFace)
+ ADD_NUMBER(o, pixelBufferMipMapLevel)
+ ADD_OBJECT_NOT_NIL(o, view)
+}
+
+- (void)addNSOpenGLPixelBuffer:(id)object
+{
+ NSOpenGLPixelBuffer* o = object;
+ ADD_CLASS_LABEL(@"NSOpenGLPixelBuffer Info");
+ ADD_NUMBER(o, pixelsHigh)
+ ADD_NUMBER(o, pixelsWide)
+ ADD_NUMBER(o, textureInternalFormat)
+ ADD_NUMBER(o, textureMaxMipMapLevel)
+ ADD_NUMBER(o, textureTarget)
+}
+
+- (void)addNSOpenGLPixelFormat:(id)object
+{
+ NSOpenGLPixelFormat* o = object;
+ ADD_CLASS_LABEL(@"NSOpenGLPixelFormat Info");
+ ADD_POINTER([o CGLPixelFormatObj], @"CGL pixel format obj")
+ ADD_NUMBER(o, numberOfVirtualScreens)
}
-
-- (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")
-}
-
-- (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")
-}
-
-- (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")
-}
-
-- (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")
-}
-
-- (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;
-
- 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)
+ ADD_OBJECT_NOT_NIL(o, printInfo)
+ }
+}
+
- (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_ENUM(o, alignment, TextAlignment)
+ ADD_ENUM(o, baseWritingDirection, WritingDirection)
+ ADD_NUMBER(o, defaultTabInterval)
+ ADD_NUMBER(o, firstLineHeadIndent)
+ ADD_NUMBER(o, headerLevel)
+ ADD_NUMBER(o, headIndent)
+ ADD_NUMBER(o, hyphenationFactor)
+ ADD_ENUM(o, lineBreakMode, LineBreakMode)
+ ADD_NUMBER(o, lineHeightMultiple)
+ ADD_NUMBER(o, lineSpacing)
+ ADD_NUMBER(o, maximumLineHeight)
+ ADD_NUMBER(o, minimumLineHeight)
+ ADD_NUMBER(o, paragraphSpacing)
+ ADD_NUMBER(o, paragraphSpacingBefore)
+ ADD_OBJECTS(o, tabStops)
+ ADD_NUMBER(o, tailIndent)
+ ADD_OBJECTS(o, textBlocks)
+ ADD_OBJECTS(o, textLists)
+ ADD_NUMBER(o, tighteningFactorForTruncation)
}
-
+
- (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)
+ ADD_OBJECTS(o, persistentStores)
+}
+
- (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)
+ ADD_OBJECTS(o, leftExpressions)
+ ADD_ENUM(o, modifier, ComparisonPredicateModifier)
+ ADD_OBJECTS(o, operators)
+ ADD_OPTIONS(o, options, ComparisonPredicateOptions)
+ ADD_ENUM(o, rightExpressionAttributeType, AttributeType)
+ ADD_OBJECTS(o, rightExpressions)
+ ADD_OBJECTS(o, templateViews)
+}
+
- (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_ENUM(o, attributeType, AttributeType)
+ ADD_OBJECT(o, attributeValueClassName)
+ ADD_OBJECT(o, defaultValue)
+
+ if ([o attributeType] == NSTransformableAttributeType)
+ ADD_OBJECT(o, valueTransformerName)
+ }
+ else if ([object isKindOfClass:[NSFetchedPropertyDescription class]]) {
+ NSFetchedPropertyDescription* o = object;
+ ADD_CLASS_LABEL(@"NSFetchedPropertyDescription Info")
+ ADD_OBJECT(o, fetchRequest)
+ }
+ else if ([object isKindOfClass:[NSRelationshipDescription class]]) {
+ NSRelationshipDescription* o = object;
+ ADD_CLASS_LABEL(@"NSRelationshipDescription Info")
+ ADD_ENUM(o, deleteRule, DeleteRule)
+ ADD_OBJECT(o, destinationEntity)
+ ADD_OBJECT(o, inverseRelationship)
+ ADD_BOOL(o, isToMany)
+ ADD_NUMBER(o, maxCount)
+ ADD_NUMBER(o, minCount)
+ }
+
+ NSPropertyDescription* o = object;
+ ADD_CLASS_LABEL(@"NSPropertyDescription Info")
+ ADD_OBJECT(o, entity)
+ ADD_BOOL(o, isIndexed)
+ ADD_BOOL(o, isOptional)
+ ADD_BOOL(o, isTransient)
+ ADD_OBJECT(o, name)
+ ADD_DICTIONARY(o, userInfo)
+ ADD_OBJECTS(o, validationPredicates)
+ ADD_OBJECTS(o, validationWarnings)
}
-
+
- (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]]) {
+
+ #pragma mark ► NSApplication
+ //--------------------------------------------------------------------------------
+
+ NSApplication* o = object;
+ ADD_CLASS_LABEL(@"NSApplication Info")
+ ADD_OBJECT_NOT_NIL(o, applicationIconImage)
+ ADD_OBJECT_NOT_NIL(o, context)
+ ADD_OBJECT_NOT_NIL(o, currentEvent)
+ ADD_OBJECT(o, delegate, NSObject.class, YES)
+ ADD_OBJECT_NOT_NIL(o, dockTile)
+ ADD_BOOL(o, isActive)
+ ADD_BOOL(o, isHidden)
+ ADD_BOOL(o, isRunning)
+ ADD_OBJECT_NOT_NIL(o, keyWindow)
+ ADD_OBJECT_NOT_NIL(o, mainMenu)
+ ADD_OBJECT_NOT_NIL(o, mainWindow)
+ ADD_OBJECT_NOT_NIL(o, modalWindow)
+ ADD_OBJECTS(o, orderedDocuments)
+ ADD_OBJECTS(o, orderedWindows)
+ ADD_OBJECT_NOT_NIL(o, servicesMenu)
+ ADD_OBJECT_NOT_NIL(o, servicesProvider)
+ ADD_OBJECTS(o, windows)
+ ADD_OBJECT_NOT_NIL(o, windowsMenu)
+ }
+ else if ([object isKindOfClass:[NSDrawer class]]) {
+
+
+ #pragma mark ► NSDrawer
+ //--------------------------------------------------------------------------------
+
+ NSDrawer* o = object;
+ ADD_CLASS_LABEL(@"NSDrawer Info");
+ ADD_SIZE(o, contentSize)
+ ADD_OBJECT(o, contentView)
+ ADD_OBJECT(o, delegate, NSObject.class, YES)
+ ADD_ENUM(o, edge, RectEdge)
+ ADD_NUMBER(o, leadingOffset)
+ ADD_SIZE(o, maxContentSize)
+ ADD_SIZE(o, minContentSize)
+ ADD_OBJECT(o, parentWindow)
+ ADD_ENUM(o, preferredEdge, RectEdge)
+ ADD_ENUM(o, state, DrawerState)
+ ADD_NUMBER(o, trailingOffset)
+ }
+ else if ([object isKindOfClass:[NSView class]]) {
+ [self processNSView:object];
+ }
+
+ if ([object isKindOfClass:[NSViewController class]]) {
+
+
+ #pragma mark ► NSViewController
+ //--------------------------------------------------------------------------------
+
+ NSViewController* o = object;
+ ADD_CLASS_LABEL(@"NSViewController Info")
+ ADD_OBJECT_NOT_NIL(o, nibBundle)
+ ADD_OBJECT_NOT_NIL(o, nibName)
+ ADD_OBJECT_NOT_NIL(o, representedObject)
+ ADD_STRING_NOT_NIL(o, title)
+ ADD_OBJECT_NOT_NIL(o, view)
+ }
+ else if ([object isKindOfClass:[NSWindow class]]) {
+ [self processNSWindow:object];
+ }
+ else if ([object isKindOfClass:[NSWindowController class]]) {
+
+
+ #pragma mark ► NSWindowController
+ //--------------------------------------------------------------------------------
+
+ NSWindowController* o = object;
+ ADD_CLASS_LABEL(@"NSWindowController Info");
+ ADD_OBJECT(o, document)
+ ADD_BOOL(o, isWindowLoaded)
+ ADD_OBJECT(o, owner)
+ ADD_BOOL(o, shouldCascadeWindows)
+ ADD_BOOL(o, shouldCloseDocument)
+ if ([o isWindowLoaded])
+ ADD_OBJECT(o, window)
+ ADD_OBJECT(o, windowFrameAutosaveName)
+ ADD_OBJECT(o, windowNibName)
+ ADD_OBJECT(o, windowNibPath)
+ }
+
+ NSResponder* o = object;
+ ADD_CLASS_LABEL(@"NSResponder Info")
+ ADD_BOOL(o, acceptsFirstResponder)
+
+ @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)
}
-
+
- (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)
+ ADD_POINT(o, imageOrigin)
+ ADD_RECT(o, imageRectInRuler)
+ ADD_BOOL(o, isDragging)
+ ADD_BOOL(o, isMovable)
+ ADD_BOOL(o, isRemovable)
+ ADD_NUMBER(o, markerLocation)
+ ADD_OBJECT(o, representedObject)
+ ADD_OBJECT(o, ruler)
+ ADD_NUMBER(o, thicknessRequiredInRuler)
}
-
+
- (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)
+ ADD_DICTIONARY(o, deviceDescription)
+ ADD_RECT(o, frame)
+ ADD_NUMBER(o, userSpaceScaleFactor)
+ ADD_RECT(o, visibleFrame)
}
-
+
- (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)
+ ADD_COLOR(o, shadowColor)
+ ADD_SIZE(o, shadowOffset)
}
-
+
- (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)
+ ADD_NUMBER(o, 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)
+ ADD_OBJECT_NOT_NIL(o, alternateImage)
+ ADD_OBJECT_NOT_NIL(o, attributedTitle)
+ ADD_SEL(o, doubleAction)
+ ADD_BOOL(o, highlightMode)
+ ADD_OBJECT_NOT_NIL(o, image)
+ ADD_BOOL(o, isEnabled)
+ ADD_ENUM(o, length, StatusItemLength)
+ ADD_OBJECT_NOT_NIL(o, menu)
+ ADD_OBJECT(o, statusBar)
+ ADD_OBJECT(o, target)
+ ADD_STRING_NOT_NIL(o, title)
+ ADD_STRING_NOT_NIL(o, toolTip)
+ ADD_OBJECT_NOT_NIL(o, 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_COLOR(o, color)
+ ADD_OBJECT(o, identifier)
+ ADD_OBJECT(o, initialFirstResponder)
+ ADD_OBJECT(o, label)
+ ADD_ENUM(o, tabState, TabState)
+ ADD_OBJECT(o, tabView)
+ ADD_OBJECT(o, 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(objectFromTableColumnResizingMask([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)
+ ADD_OBJECT(o, headerCell)
+ ADD_OBJECT_NOT_NIL(o, headerToolTip)
+ ADD_OBJECT(o, identifier)
+ ADD_BOOL(o, isEditable)
+ ADD_BOOL(o, isHidden)
+ ADD_NUMBER(o, maxWidth)
+ ADD_NUMBER(o, minWidth)
+ ADD_OPTIONS(o, resizingMask, TableColumnResizingOptions)
+ ADD_OBJECT_NOT_NIL(o, sortDescriptorPrototype)
+ ADD_OBJECT(o, tableView)
+ ADD_NUMBER(o, 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)
+ ADD_OBJECT(o, fileWrapper)
}
-
+
- (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)
+ ADD_NUMBER(o, rowSpan)
+ ADD_NUMBER(o, startingColumn)
+ ADD_NUMBER(o, startingRow)
+ ADD_OBJECT(o, table)
+ }
+ else if ([object isKindOfClass:[NSTextTable class]]) {
+ NSTextTable* o = object;
+ ADD_CLASS_LABEL(@"NSTextTable Info");
+ ADD_BOOL(o, collapsesBorders)
+ ADD_BOOL(o, hidesEmptyCells)
+ ADD_ENUM(o, layoutAlgorithm, TextTableLayoutAlgorithm)
+ ADD_NUMBER(o, numberOfColumns)
+ }
+
+ NSTextBlock* o = object;
+ ADD_CLASS_LABEL(@"NSTextBlock Info");
+ ADD_COLOR(o, backgroundColor)
+ ADD_NUMBER(o, contentWidth)
+ ADD_ENUM(o, contentWidthValueType, TextBlockValueType)
+ ADD_ENUM(o, verticalAlignment, TextBlockVerticalAlignment)
}
-
+
- (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)
+ ADD_BOOL(o, heightTracksTextView)
+ ADD_BOOL(o, isSimpleRectangularTextContainer)
+ ADD_OBJECT_NOT_NIL(o, layoutManager)
+ ADD_NUMBER(o, lineFragmentPadding)
+ ADD_OBJECT_NOT_NIL(o, textView)
+ ADD_BOOL(o, widthTracksTextView)
}
-
+
- (void)addNSTextList:(id)object
{
- NSTextList *o = object;
- ADD_CLASS_LABEL(@"NSTextList Info");
- ADD_OBJECT(objectFromTextListOptionsMask([o listOptions]) ,@"List options")
- ADD_OBJECT( [o markerFormat] ,@"Marker format")
-
+ NSTextList* o = object;
+ ADD_CLASS_LABEL(@"NSTextList Info");
+ ADD_OPTIONS(o, listOptions, TextListOptions)
+ ADD_OBJECT(o, markerFormat)
}
-
+
- (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_ENUM(o, alignment, TextAlignment)
+ ADD_NUMBER(o, location)
+ ADD_OBJECT(o, options)
+ ADD_ENUM(o, tabStopType, TextTabType)
}
-
+
- (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)
+ ADD_BOOL(o, autosavesConfiguration)
+ ADD_DICTIONARY(o, configurationDictionary)
+ ADD_BOOL(o, customizationPaletteIsRunning)
+ ADD_OBJECT(o, delegate, NSObject.class, YES)
+ ADD_ENUM(o, displayMode, ToolbarDisplayMode)
+ ADD_OBJECT(o, identifier)
+ ADD_BOOL(o, isVisible)
+ ADD_OBJECTS(o, items)
+ ADD_OBJECT_NOT_NIL(o, selectedItemIdentifier)
+ ADD_BOOL(o, showsBaselineSeparator)
+ ADD_ENUM(o, sizeMode, ToolbarSizeMode)
+ ADD_OBJECTS(o, visibleItems)
}
-
+
- (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)
+ }
+
+ NSToolbarItem* o = object;
+ ADD_CLASS_LABEL(@"NSToolbarItem Info");
+ ADD_SEL(o, action)
+ ADD_BOOL(o, allowsDuplicatesInToolbar)
+ ADD_BOOL(o, autovalidates)
+ ADD_OBJECT(o, image)
+ ADD_BOOL(o, isEnabled)
+ ADD_OBJECT(o, itemIdentifier)
+ ADD_OBJECT(o, label)
+ ADD_SIZE(o, maxSize)
+ ADD_OBJECT_NOT_NIL(o, menuFormRepresentation)
+ ADD_SIZE(o, minSize)
+ ADD_OBJECT(o, paletteLabel)
+ ADD_NUMBER(o, tag)
+ ADD_OBJECT(o, target)
+ ADD_OBJECT(o, toolbar)
+ ADD_OBJECT_NOT_NIL(o, toolTip)
+ ADD_OBJECT(o, view)
+ ADD_ENUM(o, visibilityPriority, ToolbarItemVisibilityPriority)
}
-
+
- (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_OPTIONS(o, options, TrackingAreaOptions)
+ ADD_OBJECT(o, owner)
+ ADD_RECT(o, rect)
+ ADD_DICTIONARY(o, userInfo)
}
- (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)
+ ADD_BOOL(o, groupsByEvent)
+ ADD_BOOL(o, isUndoRegistrationEnabled)
+ ADD_NUMBER(o, levelsOfUndo)
+ ADD_STRING_NOT_NIL(o, redoActionName)
+ ADD_STRING_NOT_NIL(o, redoMenuItemTitle)
+ ADD_OBJECTS(o, runLoopModes)
+ ADD_STRING_NOT_NIL(o, undoActionName)
+ ADD_STRING_NOT_NIL(o, undoMenuItemTitle)
}
--(void)addNSATSTypesetter:(id)object
+- (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)
+ ADD_BOOL(o, bidiProcessingEnabled)
+ ADD_OBJECT_NOT_NIL(o, currentTextContainer)
+ ADD_NUMBER(o, hyphenationFactor)
+ ADD_OBJECT_NOT_NIL(o, layoutManager)
+ ADD_NUMBER(o, lineFragmentPadding)
+ ADD_ENUM(o, typesetterBehavior, TypesetterBehavior)
+ ADD_BOOL(o, usesFontLeading)
}
- (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")
+ if ([object isKindOfClass:[NSBox class]]) {
+
+
+ #pragma mark ► NSBox
+ //--------------------------------------------------------------------------------
+
+ NSBox* o = object;
+ ADD_CLASS_LABEL(@"NSBox Info");
+ ADD_COLOR(o, borderColor)
+ ADD_RECT(o, borderRect)
+ ADD_ENUM(o, borderType, BorderType)
+ ADD_NUMBER(o, borderWidth)
+ ADD_ENUM(o, boxType, BoxType)
+ ADD_OBJECT(o, contentView)
+ ADD_SIZE(o, contentViewMargins)
+ ADD_NUMBER(o, cornerRadius)
+ ADD_COLOR(o, fillColor)
+ ADD_BOOL(o, isTransparent)
+ ADD_STRING(o, title)
+ ADD_OBJECT(o, titleCell)
+ ADD_OBJECT(o, titleFont)
+ ADD_ENUM(o, titlePosition, TitlePosition)
+ ADD_RECT(o, titleRect)
+ }
+ if ([object isKindOfClass:[NSCollectionView class]]) {
+
+
+ #pragma mark ► NSCollectionView
+ //--------------------------------------------------------------------------------
+
+ NSCollectionView* o = object;
+ ADD_CLASS_LABEL(@"NSCollectionView Info");
+ ADD_BOOL(o, allowsMultipleSelection)
+ ADD_OBJECTS(o, backgroundColors)
+ ADD_OBJECT(o, content)
+ ADD_BOOL(o, isFirstResponder)
+ ADD_BOOL(o, isSelectable)
+ ADD_OBJECT_NOT_NIL(o, itemPrototype)
+ ADD_SIZE(o, maxItemSize)
+ ADD_NUMBER(o, maxNumberOfColumns)
+ ADD_NUMBER(o, maxNumberOfRows)
+ ADD_SIZE(o, minItemSize)
+ ADD_OBJECT_NOT_NIL(o, selectionIndexes)
+ }
+ else if ([object isKindOfClass:[NSControl class]]) {
+ [self processNSControl:object];
+ }
+ else if ([object isKindOfClass:[NSClipView class]]) {
+
+
+ #pragma mark ► NSClipView
+ //--------------------------------------------------------------------------------
+
+ NSClipView* o = object;
+ ADD_CLASS_LABEL(@"NSClipView Info");
+ ADD_COLOR(o, backgroundColor)
+ ADD_BOOL(o, copiesOnScroll)
+ ADD_OBJECT(o, documentCursor)
+ ADD_RECT(o, documentRect)
+ ADD_OBJECT(o, documentView)
+ ADD_RECT(o, documentVisibleRect)
+ ADD_BOOL(o, drawsBackground)
+ }
+ else if ([object isKindOfClass:[NSOpenGLView class]]) {
+
+
+ #pragma mark ► NSOpenGLView
+ //--------------------------------------------------------------------------------
+
+ NSOpenGLView* o = object;
+ ADD_CLASS_LABEL(@"NSOpenGLView Info");
+ ADD_OBJECT(o, openGLContext)
+ ADD_OBJECT(o, pixelFormat)
+ }
+ else if ([object isKindOfClass:[NSProgressIndicator class]]) {
+
+
+ #pragma mark ► NSProgressIndicator
+ //--------------------------------------------------------------------------------
+
+ NSProgressIndicator* o = object;
+ ADD_CLASS_LABEL(@"NSProgressIndicator Info");
+ ADD_ENUM(o, controlSize, ControlSize)
+ ADD_ENUM(o, controlTint, ControlTint)
+ if ([o style] == NSProgressIndicatorBarStyle && ![o isIndeterminate])
+ ADD_NUMBER(o, doubleValue)
+ ADD_BOOL(o, isBezeled)
+ ADD_BOOL(o, isDisplayedWhenStopped)
+ if ([o style] == NSProgressIndicatorBarStyle && ![o isIndeterminate]) {
+ ADD_NUMBER(o, maxValue)
+ ADD_NUMBER(o, minValue)
+ }
+ ADD_ENUM(o, style, ProgressIndicatorStyle)
+ ADD_BOOL(o, usesThreadedAnimation)
+ }
+ else if ([object isKindOfClass:[NSRulerView class]]) {
+
+
+ #pragma mark ► NSRulerView
+ //--------------------------------------------------------------------------------
+
+ NSRulerView* o = object;
+ ADD_CLASS_LABEL(@"NSRulerView Info");
+ ADD_OBJECT_NOT_NIL(o, accessoryView)
+ ADD_NUMBER(o, baselineLocation)
+ ADD_OBJECT(o, clientView)
+ ADD_BOOL(o, isFlipped)
+ ADD_OBJECTS(o, markers)
+ ADD_OBJECT(o, measurementUnits)
+ ADD_ENUM(o, orientation, RulerOrientation)
+ ADD_NUMBER(o, originOffset)
+ ADD_NUMBER(o, requiredThickness)
+ ADD_NUMBER(o, reservedThicknessForAccessoryView)
+ ADD_NUMBER(o, reservedThicknessForMarkers)
+ ADD_NUMBER(o, ruleThickness)
+ ADD_OBJECT(o, scrollView)
+ }
+ else if ([object isKindOfClass:[NSScrollView class]]) {
+
+
+ #pragma mark ► NSScrollView
+ //--------------------------------------------------------------------------------
+
+ NSScrollView* o = object;
+ ADD_CLASS_LABEL(@"NSScrollView Info");
+ ADD_BOOL(o, autohidesScrollers)
+ ADD_COLOR(o, backgroundColor)
+ ADD_ENUM(o, borderType, BorderType)
+ ADD_SIZE(o, contentSize)
+ ADD_OBJECT(o, contentView)
+ ADD_OBJECT(o, documentCursor)
+ ADD_OBJECT(o, documentView)
+ ADD_RECT(o, documentVisibleRect)
+ ADD_BOOL(o, drawsBackground)
+ ADD_BOOL(o, hasHorizontalRuler)
+ ADD_BOOL(o, hasHorizontalScroller)
+ ADD_BOOL(o, hasVerticalRuler)
+ ADD_BOOL(o, hasVerticalScroller)
+ ADD_NUMBER(o, horizontalLineScroll)
+ ADD_NUMBER(o, horizontalPageScroll)
+ ADD_OBJECT(o, horizontalRulerView)
+ ADD_OBJECT(o, horizontalScroller)
+ ADD_NUMBER(o, lineScroll)
+ ADD_NUMBER(o, pageScroll)
+ ADD_BOOL(o, rulersVisible)
+ ADD_BOOL(o, scrollsDynamically)
+ ADD_NUMBER(o, verticalLineScroll)
+ ADD_NUMBER(o, verticalPageScroll)
+ ADD_OBJECT(o, verticalRulerView)
+ ADD_OBJECT(o, verticalScroller)
+ }
+ else if ([object isKindOfClass:[NSSplitView class]]) {
+
+
+ #pragma mark ► NSSplitView
+ //--------------------------------------------------------------------------------
+
+ NSSplitView* o = object;
+ ADD_CLASS_LABEL(@"NSSplitView Info");
+ ADD_OBJECT(o, delegate, NSObject.class, YES)
+ ADD_NUMBER(o, dividerThickness)
+ 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]]) {
+
+
+ #pragma mark ► NSTabView
+ //--------------------------------------------------------------------------------
+
+ NSTabView* o = object;
+ ADD_CLASS_LABEL(@"NSTabView Info");
+ ADD_BOOL(o, allowsTruncatedLabels)
+ ADD_RECT(o, contentRect)
+ ADD_ENUM(o, controlSize, ControlSize)
+ ADD_ENUM(o, controlTint, ControlTint)
+ ADD_OBJECT(o, delegate, NSObject.class, YES)
+ ADD_BOOL(o, drawsBackground)
+ ADD_OBJECT(o, font)
+ ADD_SIZE(o, minimumSize)
+ ADD_OBJECT(o, selectedTabViewItem)
+ ADD_OBJECTS(o, tabViewItems)
+ ADD_ENUM(o, tabViewType, TabViewType)
+ }
+ else if ([object isKindOfClass:[NSTableHeaderView class]]) {
+
+
+ #pragma mark ► NSTableHeaderView
+ //--------------------------------------------------------------------------------
+
+ NSTableHeaderView* o = object;
+ ADD_CLASS_LABEL(@"NSTableHeaderView Info");
+ ADD_OBJECT(o, tableView)
+ }
+ else if ([object isKindOfClass:[NSText class]]) {
+
+
+ #pragma mark ► NSTextView
+ //--------------------------------------------------------------------------------
+
+ if ([object isKindOfClass:[NSTextView class]]) {
+ NSTextView* o = object;
+ ADD_CLASS_LABEL(@"NSTextView Info");
+ ADD_OBJECTS(o, acceptableDragTypes)
+ ADD_BOOL(o, acceptsGlyphInfo)
+ ADD_OBJECTS(o, allowedInputSourceLocales)
+ ADD_BOOL(o, allowsImageEditing)
+ ADD_BOOL(o, allowsDocumentBackgroundColorChange)
+ ADD_BOOL(o, allowsUndo)
+ ADD_OBJECT_NOT_NIL(o, defaultParagraphStyle)
+ ADD_BOOL(o, displaysLinkToolTips)
+ ADD_COLOR(o, insertionPointColor)
+ ADD_BOOL(o, isAutomaticLinkDetectionEnabled)
+ ADD_BOOL(o, isAutomaticQuoteSubstitutionEnabled)
+ ADD_BOOL(o, isContinuousSpellCheckingEnabled)
+ ADD_BOOL(o, isGrammarCheckingEnabled)
+ ADD_OBJECT_NOT_NIL(o, layoutManager)
+ ADD_DICTIONARY(o, linkTextAttributes)
+ ADD_DICTIONARY(o, markedTextAttributes)
+ ADD_RANGE(o, rangeForUserCompletion)
+ ADD_OBJECTS(o, rangesForUserCharacterAttributeChange)
+ ADD_OBJECTS(o, rangesForUserParagraphAttributeChange)
+ ADD_OBJECTS(o, rangesForUserTextChange)
+ ADD_OBJECTS(o, readablePasteboardTypes)
+ ADD_OBJECTS(o, selectedRanges)
+ ADD_DICTIONARY(o, selectedTextAttributes)
+ ADD_ENUM(o, selectionAffinity, SelectionAffinity)
+ ADD_ENUM(o, selectionGranularity, SelectionGranularity)
+ ADD_BOOL(o, shouldDrawInsertionPoint)
+ ADD_BOOL(o, smartInsertDeleteEnabled)
+ ADD_NUMBER(o, spellCheckerDocumentTag)
+ ADD_OBJECT(o, textContainer)
+ ADD_SIZE(o, textContainerInset)
+ ADD_POINT(o, textContainerOrigin)
+ ADD_OBJECT(o, textStorage)
+ ADD_DICTIONARY(o, typingAttributes)
+ ADD_BOOL(o, usesFindPanel)
+ ADD_BOOL(o, usesFontPanel)
+ ADD_BOOL(o, usesRuler)
+ ADD_OBJECT(o, writablePasteboardTypes)
+ }
+
+
+
+ #pragma mark ► NSText
+ //--------------------------------------------------------------------------------
+
+ NSText* o = object;
+ ADD_CLASS_LABEL(@"NSText Info");
+ ADD_ENUM(o, alignment, TextAlignment)
+ ADD_COLOR(o, backgroundColor)
+ ADD_ENUM(o, baseWritingDirection, WritingDirection)
+ ADD_OBJECT(o, delegate, NSObject.class, YES)
+ ADD_BOOL(o, drawsBackground)
+ ADD_OBJECT(o, font)
+ ADD_BOOL(o, importsGraphics)
+ ADD_BOOL(o, isEditable)
+ ADD_BOOL(o, isFieldEditor)
+ ADD_BOOL(o, isHorizontallyResizable)
+ ADD_BOOL(o, isRichText)
+ ADD_BOOL(o, isRulerVisible)
+ ADD_BOOL(o, isSelectable)
+ ADD_BOOL(o, isVerticallyResizable)
+ ADD_SIZE(o, maxSize)
+ ADD_SIZE(o, minSize)
+ ADD_RANGE(o, selectedRange)
+ ADD_OBJECT(o, string)
+ ADD_COLOR_NOT_NIL(o, textColor)
+ ADD_BOOL(o, usesFontPanel)
+ }
+
+
+
+ #pragma mark ► NSView
+ //--------------------------------------------------------------------------------
+
+ NSView* o = object;
+ ADD_CLASS_LABEL(@"NSView Info");
+#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_6
+ ADD_BOOL(o, acceptsTouchEvents)
+#endif
+#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10
+ ADD_BOOL(o, allowsVibrancy)
+#endif
+ ADD_OPTIONS(o, autoresizingMask, AutoresizingMaskOptions)
+ ADD_BOOL(o, autoresizesSubviews)
+ ADD_RECT(o, bounds)
+ ADD_NUMBER(o, boundsRotation)
+ ADD_BOOL(o, canBecomeKeyView)
+ ADD_BOOL(o, canDraw)
+#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_6
+ ADD_BOOL(o, canDrawConcurrently)
+#endif
+ ADD_OBJECT_NOT_NIL(o, enclosingMenuItem)
+ ADD_OBJECT_NOT_NIL(o, enclosingScrollView)
+#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_7
+ ADD_RECT(o, focusRingMaskBounds)
+#endif
+ ADD_RECT(o, frame)
+ ADD_NUMBER(o, frameRotation)
+ ADD_ENUM(o, focusRingType, FocusRingType)
+ ADD_NUMBER(o, gState)
+ ADD_NUMBER(o, heightAdjustLimit)
+ ADD_BOOL(o, isFlipped)
+ ADD_BOOL(o, isHidden)
+ ADD_BOOL(o, isHiddenOrHasHiddenAncestor)
+ ADD_BOOL(o, isInFullScreenMode)
+ ADD_BOOL(o, isOpaque)
+ ADD_BOOL(o, isRotatedFromBase)
+ ADD_BOOL(o, isRotatedOrScaledFromBase)
+ ADD_OBJECT(o, layer)
+ ADD_BOOL(o, mouseDownCanMoveWindow)
+ ADD_BOOL(o, needsDisplay)
+ ADD_BOOL(o, needsPanelToBecomeKey)
+ ADD_OBJECT(o, nextKeyView)
+ ADD_OBJECT(o, nextValidKeyView)
+ ADD_OBJECT(o, opaqueAncestor)
+ ADD_BOOL(o, preservesContentDuringLiveResize)
+ ADD_BOOL(o, postsBoundsChangedNotifications)
+ ADD_BOOL(o, postsFrameChangedNotifications)
+ ADD_OBJECT(o, previousKeyView)
+ ADD_OBJECT(o, previousValidKeyView)
+ ADD_STRING(o, printJobTitle)
+ ADD_OBJECTS(o, registeredDraggedTypes)
+ ADD_BOOL(o, shouldDrawColor)
+ ADD_NUMBER(o, tag)
+ ADD_OBJECTS(o, trackingAreas)
+#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_7
+ ADD_BOOL(o, translatesAutoresizingMaskIntoConstraints)
+#endif
+ ADD_RECT(o, visibleRect)
+ ADD_BOOL(o, wantsDefaultClipping)
+ ADD_BOOL(o, wantsLayer)
+ ADD_NUMBER(o, widthAdjustLimit)
+ ADD_OBJECT(o, window, NSWindow.class)
+}
+
+// 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]];
+ ADD_OBJECT_GETSET(o, { return [(NSSegmentedControl*)obj imageForSegment:i]; }
+ , { [(NSSegmentedControl*)obj setImage:val forSegment:i]; }
+ ,nil, ([NSString stringWithFormat:@"Image for segment %ld", (long)i]), 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]
+ enumBiDict:FSObjectEnumInfo.optionsForImageScaling
+ mask:0
+ valueClass:nil
+ notNil:NO];
+ }
+ ADD_BOOL_GETSET(o,
+ { return [(NSSegmentedControl*)obj isEnabledForSegment:i]; },
+ { [(NSSegmentedControl*)obj setEnabled:val forSegment:i]; },
+ ([NSString stringWithFormat:@"Is enabled for segment %ld", (long)i]));
+ ADD_BOOL_GETSET(o,
+ { return [(NSSegmentedControl*)obj isSelectedForSegment:i]; },
+ { [(NSSegmentedControl*)obj setSelected:val forSegment:i]; },
+ ([NSString stringWithFormat:@"Is selected for segment %ld", (long)i]));
+ ADD_OBJECT_GETSET(o, { return [(NSSegmentedControl*)obj labelForSegment:i]; }
+ , { [(NSSegmentedControl*)obj setLabel:val forSegment:i]; }
+ , NSString.class, ([NSString stringWithFormat:@"Label for segment %ld", (long)i]), YES );
+ ADD_OBJECT_GETSET(o, { return [(NSSegmentedControl*)obj menuForSegment:i]; }
+ , { [(NSSegmentedControl*)obj setMenu:val forSegment:i]; }
+ , nil, ([NSString stringWithFormat:@"Menu for segment %ld", (long)i]), YES );
+ if ([o respondsToSelector:@selector(tagForSegment:)]) {
+ ADD_NUMBER_GETSET(o
+ , { return [(NSSegmentedCell*)obj tagForSegment:i]; }
+ , { [(NSSegmentedCell*)obj setTag:val forSegment:i]; }
+ , ([NSString stringWithFormat:@"Tag for segment %ld", (long)i]))
+ }
+ if ([o respondsToSelector:@selector(toolTipForSegment:)]) {
+ ADD_OBJECT_GETSET(o, { return [(NSSegmentedCell*)obj toolTipForSegment:i]; }
+ , { [(NSSegmentedCell*)obj setToolTip:val forSegment:i]; }
+ , NSString.class, ([NSString stringWithFormat:@"ToolTip for segment %ld", (long)i]), YES );
+ }
+ ADD_NUMBER_GETSET(o
+ , { return [(NSSegmentedCell*)obj widthForSegment:i]; }
+ , { [(NSSegmentedCell*)obj setWidth:val forSegment:i]; }
+ , ([NSString stringWithFormat:@"Width for segment %ld", (long)i]))
+ [self endGroup];
}
- 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(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")
}
- (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]))
+ if ([object isKindOfClass:[NSBrowser class]]) {
+
+
+ #pragma mark ► NSBrowser
+ //--------------------------------------------------------------------------------
+
+ NSBrowser* o = object;
+ ADD_CLASS_LABEL(@"NSBrowser Info");
+ ADD_BOOL(o, allowsBranchSelection)
+ ADD_BOOL(o, allowsEmptySelection)
+ ADD_BOOL(o, allowsMultipleSelection)
+ ADD_BOOL(o, allowsTypeSelect)
+ ADD_COLOR(o, backgroundColor)
+ ADD_OBJECT(o, cellPrototype)
+ ADD_ENUM(o, columnResizingType, BrowserColumnResizingType)
+ ADD_OBJECT(o, columnsAutosaveName)
+ ADD_OBJECT(o, delegate, NSObject.class, YES)
+ ADD_SEL(o, doubleAction)
+ ADD_NUMBER(o, firstVisibleColumn)
+ ADD_BOOL(o, hasHorizontalScroller)
+ ADD_BOOL(o, isLoaded)
+ ADD_BOOL(o, isTitled)
+ ADD_NUMBER(o, lastColumn)
+ ADD_NUMBER(o, lastVisibleColumn)
+ ADD_OBJECT(o, matrixClass)
+ ADD_NUMBER(o, maxVisibleColumns)
+ ADD_NUMBER(o, minColumnWidth)
+ ADD_NUMBER(o, numberOfVisibleColumns)
+ ADD_OBJECT(o, path)
+ ADD_OBJECT(o, pathSeparator)
+ ADD_BOOL(o, prefersAllColumnUserResizing)
+ ADD_BOOL(o, reusesColumns)
+ ADD_OBJECTS(o, selectedCells)
+ ADD_NUMBER(o, selectedColumn)
+ ADD_BOOL(o, sendsActionOnArrowKeys)
+ ADD_BOOL(o, separatesColumns)
+ ADD_BOOL(o, takesTitleFromPreviousColumn)
+ ADD_NUMBER(o, titleHeight)
+ }
+ else if ([object isKindOfClass:[NSButton class]]) {
+ if ([object isKindOfClass:[NSPopUpButton class]]) {
+
+
+ #pragma mark ► NSPopUpButton
+ //--------------------------------------------------------------------------------
+
+ NSPopUpButton* o = object;
+ ADD_CLASS_LABEL(@"NSPopUpButton Info");
+ ADD_BOOL(o, autoenablesItems)
+ ADD_NUMBER(o, indexOfSelectedItem)
+ ADD_OBJECTS(o, itemArray)
+ ADD_NUMBER(o, numberOfItems)
+ ADD_OBJECT(o, objectValue)
+ ADD_ENUM(o, preferredEdge, RectEdge)
+ ADD_BOOL(o, pullsDown)
+ ADD_OBJECT(o, selectedItem)
+ }
+
+
+
+ #pragma mark ► NSButton
+ //--------------------------------------------------------------------------------
+
+ NSButton* o = object;
+ ADD_CLASS_LABEL(@"NSButton Info");
+ ADD_BOOL(o, allowsMixedState)
+ ADD_OBJECT_NOT_NIL(o, alternateImage)
+ ADD_STRING(o, alternateTitle)
+ ADD_OBJECT(o, attributedAlternateTitle)
+ ADD_OBJECT(o, attributedTitle)
+ ADD_ENUM(o, bezelStyle, BezelStyle)
+ ADD_OBJECT(o, image)
+ ADD_ENUM(o, imagePosition, CellImagePosition)
+ ADD_BOOL(o, isBordered)
+ ADD_BOOL(o, isTransparent)
+ ADD_OBJECT(o, keyEquivalent)
+ ADD_OPTIONS(o, keyEquivalentModifierMask, EventModifierFlags)
+ ADD_BOOL(o, showsBorderOnlyWhileMouseInside)
+ ADD_OBJECT_NOT_NIL(o, sound)
+ ADD_ENUM(o, state, CellStateValue)
+ ADD_STRING(o, title)
+ }
+ else if ([object isKindOfClass:[NSColorWell class]]) {
+
+
+ #pragma mark ► NSColorWell
+ //--------------------------------------------------------------------------------
+
+ NSColorWell* o = object;
+ ADD_CLASS_LABEL(@"NSColorWell Info");
+ ADD_COLOR(o, color)
+ ADD_BOOL(o, isActive)
+ ADD_BOOL(o, isBordered)
+ }
+ else if ([object isKindOfClass:[NSDatePicker class]]) {
+
+
+ #pragma mark ► NSDatePicker
+ //--------------------------------------------------------------------------------
+
+ NSDatePicker* o = object;
+ ADD_CLASS_LABEL(@"NSDatePicker Info");
+ ADD_COLOR(o, backgroundColor)
+ ADD_OBJECT(o, calendar)
+ ADD_OPTIONS(o, datePickerElements, DatePickerElementFlags)
+ ADD_ENUM(o, datePickerMode, DatePickerMode)
+ ADD_ENUM(o, datePickerStyle, DatePickerStyle)
+ ADD_OBJECT(o, dateValue)
+ ADD_OBJECT(o, delegate, NSObject.class, YES)
+ ADD_BOOL(o, drawsBackground)
+ ADD_BOOL(o, isBezeled)
+ ADD_BOOL(o, isBordered)
+ ADD_OBJECT_NOT_NIL(o, locale)
+ ADD_OBJECT(o, maxDate)
+ ADD_OBJECT(o, minDate)
+ ADD_COLOR(o, textColor)
+ ADD_NUMBER(o, timeInterval)
+ ADD_OBJECT(o, timeZone)
+ }
+ else if ([object isKindOfClass:[NSImageView class]]) {
+
+
+ #pragma mark ► NSImageView
+ //--------------------------------------------------------------------------------
+
+ NSImageView* o = object;
+ ADD_CLASS_LABEL(@"NSImageView Info");
+ ADD_BOOL(o, allowsCutCopyPaste)
+ ADD_BOOL(o, animates)
+ ADD_OBJECT(o, image)
+ ADD_ENUM(o, imageAlignment, ImageAlignment)
+ ADD_ENUM(o, imageFrameStyle, ImageFrameStyle)
+ ADD_ENUM(o, imageScaling, ImageScaling)
+ ADD_BOOL(o, isEditable)
+ }
+ else if ([object isKindOfClass:[NSLevelIndicator class]]) {
+
+
+ #pragma mark ► NSLevelIndicator
+ //--------------------------------------------------------------------------------
+
+ NSLevelIndicator* o = object;
+ ADD_CLASS_LABEL(@"NSLevelIndicator Info");
+ ADD_NUMBER(o, criticalValue)
+ ADD_NUMBER(o, maxValue)
+ ADD_NUMBER(o, minValue)
+ ADD_NUMBER(o, numberOfMajorTickMarks)
+ ADD_NUMBER(o, numberOfTickMarks)
+ ADD_OBJECT_RO(objectFromTickMarkPosition([o tickMarkPosition], NO), @"Tick mark position")
+ ADD_NUMBER(o, warningValue)
+ }
+ else if ([object isKindOfClass:[NSMatrix class]]) {
+
+
+ #pragma mark ► NSMatrix
+ //--------------------------------------------------------------------------------
+
+ NSMatrix* o = object;
+ ADD_CLASS_LABEL(@"NSMatrix Info");
+ ADD_BOOL(o, allowsEmptySelection)
+ ADD_BOOL(o, autosizesCells)
+ ADD_COLOR(o, backgroundColor)
+ ADD_COLOR(o, cellBackgroundColor)
+ ADD_OBJECT(o, cellClass)
+ ADD_SIZE(o, cellSize);
+
+ 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_RO([NSArray arrayWithArray:columnArray], ([NSString stringWithFormat:@"Column %ld", (long)column]))
+ }
+ }
+
+ ADD_OBJECT(o, delegate, NSObject.class, YES)
+ ADD_SEL(o, doubleAction)
+ ADD_BOOL(o, drawsBackground)
+ ADD_BOOL(o, drawsCellBackground)
+ ADD_SIZE(o, intercellSpacing)
+ ADD_BOOL(o, isAutoscroll)
+ ADD_BOOL(o, isSelectionByRect)
+ ADD_OBJECT(o, keyCell)
+ ADD_ENUM(o, mode, MatrixMode)
+ ADD_NUMBER(o, numberOfColumns)
+ ADD_NUMBER(o, numberOfRows)
+ ADD_OBJECT(o, prototype)
+ ADD_OBJECTS(o, selectedCells)
+ ADD_NUMBER(o, selectedColumn)
+ ADD_NUMBER(o, selectedRow)
+ ADD_BOOL(o, tabKeyTraversesCells)
+ }
+ else if ([object isKindOfClass:[NSPathControl class]]) {
+
+
+ #pragma mark ► NSPathControl
+ //--------------------------------------------------------------------------------
+
+ NSPathControl* o = object;
+ ADD_CLASS_LABEL(@"NSPathControl Info");
+ ADD_COLOR_NOT_NIL(o, backgroundColor)
+ ADD_OBJECT(o, delegate, NSObject.class, YES)
+ ADD_SEL(o, doubleAction)
+ ADD_OBJECTS(o, pathComponentCells)
+ ADD_ENUM(o, pathStyle, PathStyle)
+ ADD_OBJECT(o, URL)
+ }
+ else if ([object isKindOfClass:[NSRuleEditor class]]) {
+ if ([object isKindOfClass:[NSPredicateEditor class]]) {
+
+
+ #pragma mark ► NSPredicateEditor
+ //--------------------------------------------------------------------------------
+
+ NSPredicateEditor* o = object;
+ ADD_CLASS_LABEL(@"NSPredicateEditor Info");
+ ADD_OBJECTS(o, rowTemplates)
+ }
+
+
+
+ #pragma mark ► NSRuleEditor
+ //--------------------------------------------------------------------------------
+
+ NSRuleEditor* o = object;
+ ADD_CLASS_LABEL(@"NSRuleEditor Info");
+ ADD_BOOL(o, canRemoveAllRows)
+ ADD_OBJECT_NOT_NIL(o, criteriaKeyPath)
+ ADD_OBJECT(o, delegate, NSObject.class, YES)
+ ADD_OBJECT_NOT_NIL(o, displayValuesKeyPath)
+ ADD_DICTIONARY(o, formattingDictionary)
+ ADD_OBJECT_NOT_NIL(o, formattingStringsFilename)
+ ADD_BOOL(o, isEditable)
+ ADD_ENUM(o, nestingMode, RuleEditorNestingMode)
+ ADD_NUMBER(o, numberOfRows)
+ ADD_OBJECT(o, predicate)
+ ADD_OBJECT(o, rowClass)
+ ADD_NUMBER(o, rowHeight)
+ ADD_OBJECT_NOT_NIL(o, rowTypeKeyPath)
+ ADD_OBJECT_NOT_NIL(o, selectedRowIndexes)
+ ADD_OBJECT_NOT_NIL(o, subrowsKeyPath)
+ }
+ else if ([object isKindOfClass:[NSScroller class]]) {
+
+
+ #pragma mark ► NSScroller
+ //--------------------------------------------------------------------------------
+
+ NSScroller* o = object;
+ ADD_CLASS_LABEL(@"NSScroller Info");
+ ADD_ENUM(o, arrowsPosition, ScrollArrowPosition)
+ ADD_ENUM(o, controlSize, ControlSize)
+ ADD_ENUM(o, controlTint, ControlTint)
+ ADD_NUMBER(o, doubleValue)
+ ADD_ENUM(o, hitPart, ScrollerPart)
+ ADD_NUMBER(o, knobProportion)
+ ADD_ENUM(o, usableParts, UsableScrollerParts)
+ }
+ else if ([object isKindOfClass:[NSSegmentedControl class]]) {
+
+
+ #pragma mark ► NSSegmentedControl
+ //--------------------------------------------------------------------------------
+
+ NSSegmentedControl* o = object;
+ ADD_CLASS_LABEL(@"NSSegmentedControl Info");
+
+ ADD_NUMBER(o, segmentCount)
+ ADD_NUMBER(o, selectedSegment)
+ [self processSegmentedItem:o];
+ }
+ else if ([object isKindOfClass:[NSSlider class]]) {
+
+
+ #pragma mark ► NSSlider
+ //--------------------------------------------------------------------------------
+
+ NSSlider* o = object;
+ ADD_CLASS_LABEL(@"NSSlider Info");
+ ADD_BOOL(o, allowsTickMarkValuesOnly)
+ ADD_NUMBER(o, altIncrementValue)
+#if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_10
+ ADD_BOOL(o, isVertical)
+ ADD_NUMBER(o, knobThickness)
+#endif
+ ADD_NUMBER(o, maxValue)
+ ADD_NUMBER(o, minValue)
+ ADD_NUMBER(o, numberOfTickMarks)
+ ADD_OBJECT_RO(objectFromTickMarkPosition([o tickMarkPosition], [(NSSlider*)o isVertical] == 1), @"Tick mark position")
+ ADD_STRING(o, title)
+ }
+ else if ([object isKindOfClass:[NSTableView class]]) {
+ if ([object isKindOfClass:[NSOutlineView class]]) {
+
+
+ #pragma mark ► NSOutlineView
+ //--------------------------------------------------------------------------------
+
+ NSOutlineView* o = object;
+ ADD_CLASS_LABEL(@"NSOutlineView Info");
+ ADD_BOOL(o, autoresizesOutlineColumn)
+ ADD_BOOL(o, autosaveExpandedItems)
+ ADD_BOOL(o, indentationMarkerFollowsCell)
+ ADD_NUMBER(o, indentationPerLevel)
+ ADD_OBJECT(o, outlineTableColumn)
+ }
+
+
+
+ #pragma mark ► NSTableView
+ //--------------------------------------------------------------------------------
+
+ NSTableView* o = object;
+ ADD_CLASS_LABEL(@"NSTableView Info");
+ ADD_BOOL(o, allowsColumnReordering)
+ ADD_BOOL(o, allowsColumnResizing)
+ ADD_BOOL(o, allowsColumnSelection)
+ ADD_BOOL(o, allowsEmptySelection)
+ ADD_BOOL(o, allowsMultipleSelection)
+ ADD_BOOL(o, allowsTypeSelect)
+ ADD_OBJECT_NOT_NIL(o, autosaveName)
+ ADD_BOOL(o, autosaveTableColumns)
+ ADD_COLOR(o, backgroundColor)
+ ADD_ENUM(o, columnAutoresizingStyle, TableViewColumnAutoresizingStyle)
+ ADD_OBJECT(o, cornerView)
+ ADD_OBJECT(o, dataSource)
+ ADD_OBJECT(o, delegate, NSObject.class, YES)
+ ADD_SEL(o, doubleAction)
+ ADD_COLOR(o, gridColor)
+ ADD_OPTIONS(o, gridStyleMask, TableViewGridLineStyle)
+ ADD_OBJECT(o, headerView)
+ ADD_OBJECT_NOT_NIL(o, highlightedTableColumn)
+ ADD_SIZE(o, intercellSpacing)
+ ADD_NUMBER(o, numberOfColumns)
+ ADD_NUMBER(o, numberOfRows)
+ ADD_NUMBER(o, numberOfSelectedColumns)
+ ADD_NUMBER(o, numberOfSelectedRows)
+ ADD_NUMBER(o, rowHeight)
+ ADD_NUMBER(o, selectedColumn)
+ ADD_OBJECT(o, selectedColumnIndexes)
+ ADD_NUMBER(o, selectedRow)
+ ADD_OBJECT(o, selectedRowIndexes)
+ ADD_ENUM(o, selectionHighlightStyle, TableViewSelectionHighlightStyle)
+ ADD_OBJECTS(o, sortDescriptors)
+ ADD_OBJECTS(o, tableColumns)
+ ADD_BOOL(o, usesAlternatingRowBackgroundColors)
+ ADD_BOOL(o, verticalMotionCanBeginDrag)
+ }
+ else if ([object isKindOfClass:[NSStepper class]]) {
+
+
+ #pragma mark ► NSStepper
+ //--------------------------------------------------------------------------------
+
+ NSStepper* o = object;
+ ADD_CLASS_LABEL(@"NSStepper Info");
+ ADD_BOOL(o, autorepeat)
+ ADD_NUMBER(o, increment)
+ ADD_NUMBER(o, maxValue)
+ ADD_NUMBER(o, minValue)
+ ADD_BOOL(o, valueWraps)
+ }
+ else if ([object isKindOfClass:[NSTextField class]]) {
+ if ([object isKindOfClass:[NSComboBox class]]) {
+
+
+ #pragma mark ► NSComboBox
+ //--------------------------------------------------------------------------------
+
+ NSComboBox* o = object;
+ ADD_CLASS_LABEL(@"NSComboBox Info");
+ if ([o usesDataSource])
+ ADD_OBJECT(o, dataSource)
+ ADD_BOOL(o, hasVerticalScroller)
+ ADD_NUMBER(o, indexOfSelectedItem)
+ ADD_SIZE(o, intercellSpacing)
+ ADD_BOOL(o, isButtonBordered)
+ ADD_NUMBER(o, itemHeight)
+ ADD_NUMBER(o, numberOfItems)
+ ADD_NUMBER(o, numberOfVisibleItems)
+ if (![o usesDataSource] && [o indexOfSelectedItem] != -1)
+ ADD_OBJECT(o, objectValueOfSelectedItem)
+ if (![o usesDataSource])
+ ADD_OBJECTS(o, objectValues)
+ ADD_BOOL(o, usesDataSource)
+ }
+ else if ([object isKindOfClass:[NSSearchField class]]) {
+
+
+ #pragma mark ► NSSearchField
+ //--------------------------------------------------------------------------------
+
+ NSSearchField* o = object;
+ if ([[o recentSearches] count] != 0 || [o recentsAutosaveName] != nil)
+ ADD_CLASS_LABEL(@"NSSearchField Info");
+ ADD_OBJECTS(o, recentSearches)
+ ADD_OBJECT_NOT_NIL(o, recentsAutosaveName)
+ }
+ else if ([object isKindOfClass:[NSTokenField class]]) {
+
+
+ #pragma mark ► NSTokenField
+ //--------------------------------------------------------------------------------
+
+ NSTokenField* o = object;
+ ADD_CLASS_LABEL(@"NSTokenField Info");
+ ADD_NUMBER(o, completionDelay)
+ ADD_OBJECT(o, tokenizingCharacterSet)
+ ADD_ENUM(o, tokenStyle, TokenStyle)
+ }
+
+
+
+ #pragma mark ► NSTextField
+ //--------------------------------------------------------------------------------
+
+ NSTextField* o = object;
+ ADD_CLASS_LABEL(@"NSTextField Info");
+ ADD_BOOL(o, allowsEditingTextAttributes)
+ ADD_COLOR(o, backgroundColor)
+ ADD_ENUM(o, bezelStyle, TextFieldBezelStyle)
+ ADD_OBJECT(o, delegate, NSObject.class, YES)
+ ADD_BOOL(o, drawsBackground)
+ ADD_BOOL(o, importsGraphics)
+ ADD_BOOL(o, isBezeled)
+ ADD_BOOL(o, isBordered)
+ ADD_BOOL(o, isEditable)
+ ADD_BOOL(o, isSelectable)
+ ADD_COLOR(o, textColor)
+ }
+
+
+
+ #pragma mark ► NSControl
+ //--------------------------------------------------------------------------------
+
+ NSControl* o = object;
+ ADD_CLASS_LABEL(@"NSControl Info");
+ ADD_SEL(o, action)
+ ADD_ENUM(o, alignment, TextAlignment)
+ ADD_ENUM(o, baseWritingDirection, WritingDirection)
+ ADD_OBJECT(o, cell)
+ ADD_ENUM(o, controlSize, ControlSize)
+ ADD_OBJECT_NOT_NIL(o, currentEditor)
+ ADD_OBJECT(o, font)
+ ADD_OBJECT(o, formatter)
+ ADD_BOOL(o, ignoresMultiClick)
+ ADD_BOOL(o, isContinuous)
+ ADD_BOOL(o, isEnabled)
+ if ([o currentEditor] == nil)
+ ADD_OBJECT(o, objectValue) // 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)
+ ADD_OBJECT(o, selectedCell)
+ ADD_NUMBER(o, selectedTag)
+ ADD_OBJECT(o, target)
}
- }
-
- 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(objectFromNestingMode([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( objectFromGridStyleMask([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_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")
+ {
+ if ([object isKindOfClass:[NSPanel class]]) {
+ if ([object isKindOfClass:[NSColorPanel class]]) {
+ NSColorPanel* o = object;
+ ADD_CLASS_LABEL(@"NSColorPanel Info");
+ ADD_OBJECT_NOT_NIL(o, accessoryView)
+ ADD_NUMBER(o, alpha)
+ ADD_COLOR(o, color)
+ ADD_BOOL(o, isContinuous)
+ ADD_ENUM(o, mode, ColorPanelMode)
+ ADD_BOOL(o, showsAlpha)
+ }
+ else if ([object isKindOfClass:[NSFontPanel class]]) {
+ NSFontPanel* o = object;
+ ADD_CLASS_LABEL(@"NSFontPanel Info");
+ ADD_OBJECT_NOT_NIL(o, accessoryView)
+ ADD_BOOL(o, isEnabled)
+ }
+ else if ([object isKindOfClass:[NSSavePanel class]]) {
+ if ([object isKindOfClass:[NSOpenPanel class]]) {
+ NSOpenPanel* o = object;
+ ADD_CLASS_LABEL(@"NSOpenPanel Info");
+ ADD_BOOL(o, allowsMultipleSelection)
+ ADD_BOOL(o, canChooseDirectories)
+ ADD_BOOL(o, canChooseFiles)
+ ADD_OBJECTS(o, filenames)
+ ADD_BOOL(o, resolvesAliases)
+ ADD_OBJECTS(o, URLs)
+ }
+
+ NSSavePanel* o = object;
+ ADD_CLASS_LABEL(@"NSSavePanel Info");
+ ADD_OBJECT_NOT_NIL(o, accessoryView)
+ ADD_OBJECTS(o, allowedFileTypes)
+ ADD_BOOL(o, allowsOtherFileTypes)
+ ADD_BOOL(o, canCreateDirectories)
+ ADD_BOOL(o, canSelectHiddenExtension)
+ ADD_OBJECT(o, delegate, NSObject.class, YES)
+ ADD_OBJECT(o, directory)
+ ADD_OBJECT(o, filename)
+ ADD_BOOL(o, isExpanded)
+ ADD_BOOL(o, isExtensionHidden)
+ ADD_STRING(o, message)
+ ADD_STRING(o, nameFieldLabel)
+ ADD_OBJECT(o, prompt)
+ ADD_BOOL(o, treatsFilePackagesAsDirectories)
+ ADD_OBJECT(o, URL)
+ }
+
+
+ NSPanel* o = object;
+ ADD_CLASS_LABEL(@"NSPanel Info");
+ ADD_BOOL(o, becomesKeyOnlyIfNeeded)
+ ADD_BOOL(o, isFloatingPanel)
+ }
+
+ NSWindow* o = object;
+ ADD_CLASS_LABEL(@"NSWindow Info");
+ ADD_BOOL(o, acceptsMouseMovedEvents)
+ ADD_BOOL(o, allowsToolTipsWhenApplicationIsInactive)
+ ADD_NUMBER(o, alphaValue)
+ ADD_BOOL(o, areCursorRectsEnabled)
+ ADD_SIZE(o, aspectRatio)
+ ADD_OBJECT_NOT_NIL(o, attachedSheet)
+ ADD_BOOL(o, autorecalculatesKeyViewLoop)
+ ADD_ENUM(o, backingLocation, WindowBackingLocation)
+ ADD_COLOR(o, backgroundColor)
+ ADD_ENUM(o, backingType, BackingStoreType)
+ ADD_BOOL(o, canBecomeKeyWindow)
+ ADD_BOOL(o, canBecomeMainWindow)
+ ADD_BOOL(o, canBecomeVisibleWithoutLogin)
+ ADD_BOOL(o, canHide)
+ ADD_BOOL(o, canStoreColor)
+ ADD_ENUM(o, collectionBehavior, WindowCollectionBehavior)
+ ADD_OBJECTS(o, childWindows)
+ ADD_SIZE(o, contentAspectRatio)
+ ADD_SIZE(o, contentMaxSize)
+ ADD_SIZE(o, contentMinSize)
+ ADD_SIZE(o, contentResizeIncrements)
+ ADD_OBJECT(o, contentView)
+ ADD_OBJECT_NOT_NIL(o, deepestScreen)
+ ADD_OBJECT(o, defaultButtonCell)
+ ADD_OBJECT(o, delegate, NSObject.class, YES)
+ ADD_NUMBER(o, depthLimit)
+ ADD_DICTIONARY(o, deviceDescription)
+ ADD_BOOL(o, displaysWhenScreenProfileChanges)
+ ADD_OBJECTS(o, drawers)
+ ADD_OBJECT(o, firstResponder)
+ ADD_RECT(o, frame)
+ ADD_OBJECT_NOT_NIL(o, frameAutosaveName)
+ ADD_OBJECT(o, graphicsContext)
+ // Call to gState fails when the window in miniaturized
+ //ADD_NUMBER( [o gState] ,@"gState")
+ ADD_BOOL(o, hasDynamicDepthLimit)
+ ADD_BOOL(o, hasShadow)
+ ADD_BOOL(o, hidesOnDeactivate)
+ ADD_BOOL(o, ignoresMouseEvents)
+ ADD_OBJECT(o, initialFirstResponder)
+ ADD_BOOL(o, isAutodisplay)
+ ADD_BOOL(o, isDocumentEdited)
+ ADD_BOOL(o, isExcludedFromWindowsMenu)
+ ADD_BOOL(o, isFlushWindowDisabled)
+ ADD_BOOL(o, isMiniaturized)
+ ADD_BOOL(o, isMovableByWindowBackground)
+ ADD_BOOL(o, isOneShot)
+ ADD_BOOL(o, isOpaque)
+ ADD_BOOL(o, isReleasedWhenClosed)
+ ADD_BOOL(o, isSheet)
+ ADD_BOOL(o, isVisible)
+ ADD_BOOL(o, isZoomed)
+ ADD_ENUM(o, keyViewSelectionDirection, SelectionDirection)
+ ADD_ENUM(o, level, WindowLevel)
+ ADD_SIZE(o, maxSize)
+ ADD_SIZE(o, minSize)
+ ADD_OBJECT_NOT_NIL(o, miniwindowImage)
+ ADD_STRING(o, miniwindowTitle)
+ ADD_OBJECT_NOT_NIL(o, parentWindow)
+ ADD_ENUM(o, preferredBackingLocation, WindowBackingLocation)
+ ADD_BOOL(o, preservesContentDuringLiveResize)
+ ADD_OBJECT_NOT_NIL(o, representedFilename)
+ ADD_OBJECT_NOT_NIL(o, representedURL)
+ ADD_SIZE(o, resizeIncrements)
+ ADD_OBJECT(o, screen)
+ ADD_ENUM(o, sharingType, WindowSharingType)
+ ADD_BOOL(o, showsResizeIndicator)
+ ADD_BOOL(o, showsToolbarButton)
+ ADD_OPTIONS(o, styleMask, WindowMask)
+ ADD_STRING(o, title)
+ ADD_OBJECT_NOT_NIL(o, toolbar)
+ ADD_NUMBER(o, userSpaceScaleFactor)
+ ADD_BOOL(o, viewsNeedDisplay)
+ ADD_OBJECT_NOT_NIL(o, windowController)
+ ADD_NUMBER(o, windowNumber)
+ ADD_BOOL(o, worksWhenModal)
}
-
- 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
\ No newline at end of file
+@end
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/FScriptFramework/FSObjectEnumInfo.h b/FScriptFramework/FSObjectEnumInfo.h
new file mode 100644
index 0000000..a482b33
--- /dev/null
+++ b/FScriptFramework/FSObjectEnumInfo.h
@@ -0,0 +1,144 @@
+//
+// 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;
+typedef id NSMergePolicyMarker;
+@class NSMutableDictionary;
+
+#define BIMAP_CLASS_METHODS_DECL(_name) \
+ +(id)objectFor##_name : (NS##_name)mask; \
+ +(NSMutableDictionary*)optionsFor##_name; \
+ 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);
+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);
+#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);
+BIMAP_CLASS_METHODS_DECL(LineJoinStyle);
+BIMAP_CLASS_METHODS_DECL(MatrixMode);
+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);
+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);
+#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);
+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);
+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);
+#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);
+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
+
+id objectFromOptions(NSUInteger opts, NSMutableDictionary *dict, NSUInteger mask);
\ No newline at end of file
diff --git a/FScriptFramework/FSObjectEnumInfo.m b/FScriptFramework/FSObjectEnumInfo.m
new file mode 100644
index 0000000..2f94566
--- /dev/null
+++ b/FScriptFramework/FSObjectEnumInfo.m
@@ -0,0 +1,916 @@
+//
+// FSObjectEnumInfo.m
+// FScript
+//
+// Created by Anthony Dervish on 16/11/2014.
+//
+//
+
+#import "FSObjectEnumInfo.h"
+#import "FSNamedNumber.h"
+#import "FSNumber.h"
+#import "FSObjectBrowserNamedObjectWrapper.h"
+
+#import "metamacros.h"
+
+const NSUInteger CellTypeMask = NSUIntegerMax;
+const NSUInteger MergePolicyMarkerMask = NSUIntegerMax;
+
+#define _ENUMDICT(_idx, _enum) \
+ @{ @(_enum) : @metamacro_stringify(_enum) },
+
+#define _BIDICT(_idx, _enum) \
+ @(_enum) \
+ : @metamacro_stringify(_enum) \
+ ,
+
+#define _BIDICT_LEADER(_name) \
+ static inline NSMutableDictionary* _name##Bimap() \
+ { \
+ static NSMutableDictionary* dict = nil; \
+ if (!dict) { \
+ dict = [NSMutableDictionary new]; \
+
+
+#define BIDICT(_name, ...) \
+ _BIDICT_LEADER(_name) \
+ 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 addEntriesFromDictionary:_dict ]; \
+ } \
+ return dict; \
+ }
+
+#define _IDENTITY(_idx, _val) _val
+
+#define OPTSMASK(...) \
+ metamacro_foreach(_IDENTITY, |, __VA_ARGS__)
+
+
+#define BIMAP_CLASS_METHODS_DEFN(_name) \
+ +(id)objectFor##_name : (NS##_name)mask { return objectFrom##_name(mask); } \
+ +(NSMutableDictionary*)optionsFor##_name { return (_name##Bimap()); }
+
+#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) \
+ { \
+ NSMutableDictionary* 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, _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, _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 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 opts) \
+ { \
+ return objectFromOptions(opts, _name##Bimap(), _name##Mask); \
+ } \
+ BIMAP_CLASS_METHODS_DEFN(_name)
+
+id objectFromOptions(NSUInteger opts, NSMutableDictionary *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,
+ 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);
+
+
+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);
+
+OPTSTOOBJ(GlyphStorageLayoutOptions,
+ NSShowControlGlyphs,
+ 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,
+ 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);
+
+
+OBJTOOBJ_LIT(MergePolicyMarker, (@{
+ NSErrorMergePolicy : @"NSErrorMergePolicy",
+ NSMergeByPropertyStoreTrumpMergePolicy : @"NSMergeByPropertyStoreTrumpMergePolicy",
+ NSMergeByPropertyObjectTrumpMergePolicy : @"NSMergeByPropertyObjectTrumpMergePolicy",
+ NSOverwriteMergePolicy : @"NSOverwriteMergePolicy",
+ NSRollbackMergePolicy : @"NSRollbackMergePolicy"
+ }));
+
+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);
+
+#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_9
+ENUMTOOBJ(StackViewGravity,
+ NSStackViewGravityTop,
+ NSStackViewGravityLeading,
+ NSStackViewGravityCenter,
+ NSStackViewGravityBottom,
+ NSStackViewGravityTrailing
+ );
+
+#endif
+
+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);
+
+
+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);
+
+#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_9
+ENUMTOOBJ(UserInterfaceLayoutOrientation,
+ NSUserInterfaceLayoutOrientationHorizontal,
+ NSUserInterfaceLayoutOrientationVertical
+ );
+#endif
+
+
+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);
+
+
+ENUMTOOBJ(WritingDirection,
+ NSWritingDirectionNatural,
+ NSWritingDirectionLeftToRight,
+ 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/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..b318e2a
--- /dev/null
+++ b/FScriptFramework/FSObjectInspectorBackgroundView.m
@@ -0,0 +1,14 @@
+//
+// FSObjectInspectorBackgroundView.m
+// FScript
+//
+// Created by Anthony Dervish on 17/11/2014.
+//
+//
+
+#import "FSObjectInspectorBackgroundView.h"
+
+@implementation FSObjectInspectorBackgroundView
+
+-(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..c662ae4
--- /dev/null
+++ b/FScriptFramework/FSObjectInspectorOptionsViewController.m
@@ -0,0 +1,27 @@
+//
+// FSObjectInspectorOptionsViewController.m
+// FScript
+//
+// Created by Anthony Dervish on 21/11/2014.
+//
+//
+
+#import "FSObjectInspectorOptionsViewController.h"
+
+@interface FSObjectInspectorOptionsViewController ()
+
+@end
+
+@implementation FSObjectInspectorOptionsViewController
+
+-(NSString *)nibName
+{
+ return @"FSObjectInspectorOptionsViewController";
+}
+
+-(NSBundle *)nibBundle
+{
+ return [NSBundle bundleForClass:self.class];
+}
+
+@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..dcbfe88
--- /dev/null
+++ b/FScriptFramework/FSObjectInspectorOutlineView.m
@@ -0,0 +1,24 @@
+//
+// 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+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
new file mode 100644
index 0000000..78cf59f
--- /dev/null
+++ b/FScriptFramework/FSObjectInspectorViewController.h
@@ -0,0 +1,29 @@
+//
+// FSObjectInspectorViewController.h
+// FScript
+//
+// Created by Anthony Dervish on 17/11/2014.
+//
+//
+
+#import
+
+@class FSObjectInspectorViewModelItem;
+@class FSInterpreter;
+@class FSDetailedObjectInspector;
+
+@interface FSObjectInspectorViewController : NSViewController
+@property (assign) IBOutlet NSPathControl *viewPathControl;
+@property (assign) IBOutlet NSOutlineView *outlineView;
+@property (weak,nonatomic) FSDetailedObjectInspector *inspector;
+@property (strong,nonatomic) FSObjectInspectorViewModelItem *rootViewModelItem;
+@property (weak,nonatomic) FSObjectInspectorViewModelItem *selectedViewModelItem;
+@property (readonly,nonatomic) NSSize desiredSize;
+@property (strong,nonatomic) FSInterpreter *interpreter;
+@property (strong,nonatomic) NSMenu *viewPathMenu;
+@property (strong,nonatomic) NSArray *pathControlItems;
+-(IBAction)showColorPanel:(id)sender;
+-(IBAction)showOptionsPopover:(id)sender;
+-(IBAction)inspectAction:(id)sender;
+-(IBAction)viewPathClicked:(id)sender;
+@end
diff --git a/FScriptFramework/FSObjectInspectorViewController.m b/FScriptFramework/FSObjectInspectorViewController.m
new file mode 100644
index 0000000..9b1097b
--- /dev/null
+++ b/FScriptFramework/FSObjectInspectorViewController.m
@@ -0,0 +1,494 @@
+//
+// FSObjectInspectorViewController.m
+// FScript
+//
+// Created by Anthony Dervish on 17/11/2014.
+//
+//
+
+#import "FSObjectInspectorViewController.h"
+#import "FSObjectInspectorViewController+NonArc.h"
+#import "FSObjectInspectorViewModelItem.h"
+#import "FSObjectInspectorOptionsViewController.h"
+#import "FSDetailedObjectInspector.h"
+#import "FSNamedNumber.h"
+#import "FSMiscTools.h"
+#import "FSObjectEnumInfo.h"
+#import
+#import
+
+#define AppearanceName NSAppearanceNameVibrantDark
+
+@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:(NSMutableDictionary *)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:(NSMutableDictionary *)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
+{
+ CGFloat _scrollViewOffsetY;
+}
+static NSImage * sViewImage = nil;
+static NSImage * sWindowImage = nil;
+
++ (void)initialize
+{
+ if (self == [FSObjectInspectorViewController class]) {
+ sViewImage = [NSImage imageWithSize:NSMakeSize(33.0, 27.0) flipped:NO drawingHandler:^BOOL(NSRect dstRect) {
+ //// Color Declarations
+ NSColor* color = [NSColor colorWithCalibratedRed: 0.49 green: 0.827 blue: 0.976 alpha: 1];
+ NSColor* color2 = [NSColor colorWithCalibratedRed: 0.49 green: 0.827 blue: 0.976 alpha: 0.296];
+ NSColor* color3 = [NSColor colorWithCalibratedRed: 1 green: 1 blue: 1 alpha: 1];
+
+ //// Group
+ {
+ //// Rectangle Drawing
+ NSBezierPath* rectanglePath = [NSBezierPath bezierPathWithRect: NSMakeRect(0, 0, 33, 27)];
+ [color setFill];
+ [rectanglePath fill];
+
+
+ //// Rectangle 2 Drawing
+ NSBezierPath* rectangle2Path = [NSBezierPath bezierPathWithRect: NSMakeRect(1, 1, 31, 22)];
+ [NSColor.whiteColor setFill];
+ [rectangle2Path fill];
+
+
+ //// Rectangle 3 Drawing
+ NSBezierPath* rectangle3Path = [NSBezierPath bezierPathWithRect: NSMakeRect(3, 3, 27, 18)];
+ [color2 setFill];
+ [rectangle3Path fill];
+
+
+ //// Oval Drawing
+ NSBezierPath* ovalPath = [NSBezierPath bezierPathWithOvalInRect: NSMakeRect(2, 24, 2, 2)];
+ [color3 setFill];
+ [ovalPath fill];
+
+
+ //// Oval 2 Drawing
+ NSBezierPath* oval2Path = [NSBezierPath bezierPathWithOvalInRect: NSMakeRect(5, 24, 2, 2)];
+ [color3 setFill];
+ [oval2Path fill];
+
+
+ //// Oval 3 Drawing
+ NSBezierPath* oval3Path = [NSBezierPath bezierPathWithOvalInRect: NSMakeRect(8, 24, 2, 2)];
+ [color3 setFill];
+ [oval3Path fill];
+ }
+ return YES;
+ }];
+ sWindowImage = sViewImage;
+
+ }
+}
+
+-(instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
+{
+ self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
+ if (self) {
+ _pathControlItems = @[];
+ }
+ return self;
+}
+
+- (void)viewDidLoad
+{
+ [super viewDidLoad];
+#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10
+ self.view.appearance = [NSAppearance appearanceNamed:AppearanceName];
+ self.viewPathControl.appearance = [NSAppearance appearanceNamed:AppearanceName];
+#endif
+}
+
+- (void)awakeFromNib
+{
+ if (!self.hasAwoken) {
+ self.hasAwoken = YES;
+ [self expandAll:self];
+ NSScrollView* scrollView = self.outlineView.enclosingScrollView;
+ _scrollViewOffsetY = NSHeight(scrollView.superview.bounds) - NSHeight(scrollView.frame);
+ self.outlineView.doubleAction = @selector(inspectAction:);
+ self.outlineView.target = self;
+#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10
+ self.outlineView.appearance = [NSAppearance appearanceNamed:AppearanceName];
+ if (self.rootViewModelItem.valueClass == NSView.class) {
+ self.viewPathMenu = [self _menuForView:self.rootViewModelItem.value];
+ }
+
+#endif
+ }
+}
+
+- (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];
+ if (self.outlineView.headerView) {
+ scrollViewSize.height += NSHeight(self.outlineView.headerView.bounds);
+ }
+ scrollViewSize.height += _scrollViewOffsetY;
+ return scrollViewSize;
+}
+
+-(void)dealloc
+{
+ //NSLog(@"Dealloc %@",self);
+ [NSObject cancelPreviousPerformRequestsWithTarget:self ];
+}
+-(IBAction)expandAll:(id)sender
+{
+ [self.outlineView expandItem:nil expandChildren:YES];
+}
+/*
+ *
+ *
+ *================================================================================================*/
+#pragma mark - Properties
+/*==================================================================================================
+ */
+
+-(void)setRootViewModelItem:(FSObjectInspectorViewModelItem *)rootViewModelItem
+{
+ if (self.hasAwoken && rootViewModelItem.valueClass == NSView.class) {
+ self.viewPathMenu = [self _menuForView:rootViewModelItem.value];
+ }
+ _rootViewModelItem = rootViewModelItem;
+ [self performSelector:@selector(expandAll:) withObject:self afterDelay:0.0];
+}
+
+-(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;
+}
+/*
+ *
+ *
+ *================================================================================================*/
+#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:@"Header" owner:self];
+ break;
+ case FS_ITEM_ENUM:
+ view = [self.outlineView makeViewWithIdentifier:@"ObjectInspectorEnumView" owner:self];
+ break;
+ case FS_ITEM_OPTIONS:
+ view = [self.outlineView makeViewWithIdentifier:@"ObjectInspectorOptionsView" owner:self];
+ break;
+ case FS_ITEM_NUMBER:
+ view = [self.outlineView makeViewWithIdentifier:@"ObjectInspectorNumberView" owner:self];
+ break;
+ case FS_ITEM_SIZE:
+ view = [self.outlineView makeViewWithIdentifier:@"ObjectInspectorSizeView" owner:self];
+ break;
+ case FS_ITEM_RECT:
+ view = [self.outlineView makeViewWithIdentifier:@"ObjectInspectorRectView" 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 {
+ view = [self.outlineView makeViewWithIdentifier:@"ObjectInspectorReadOnlyView" owner:self];
+ }
+ 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 - Actions
+/*==================================================================================================
+ */
+
+
+-(IBAction)setColor:(id)sender
+{
+ NSColor *color = [(NSColorPanel*)sender color];
+ self.selectedViewModelItem.value = color;
+}
+
+-(IBAction)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];
+
+ }
+
+}
+-(IBAction)inspectAction:(id)sender
+{
+ NSInteger row = [self.outlineView selectedRow];
+ if (row >= 0) {
+ FSObjectInspectorViewModelItem *item = [[self.outlineView itemAtRow:row] representedObject];
+ if (item.valueType == FS_ITEM_OBJECT && item.valueClass != nil) {
+ inspect(item.value, self.interpreter, nil);
+ }
+ }
+}
+
+
+-(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];
+ }
+}
+
+-(IBAction)viewPathClicked:(id)sender
+{
+ if ([NSApp currentEvent].modifierFlags & NSAlternateKeyMask) {
+ self.inspector.inspectedObject = [[(NSPathControl*)sender clickedPathComponentCell] representedObject];
+ [self.inspector refreshModel:self];
+ }
+ else {
+ id clickedObject = [[(NSPathControl*)sender clickedPathComponentCell] representedObject];
+ inspect(clickedObject, self.interpreter, nil);
+ }
+}
+/*
+ *
+ *
+ *================================================================================================*/
+#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);
+}
+
+/*
+ *
+ *
+ *================================================================================================*/
+#pragma mark - NSResponder
+/*==================================================================================================
+ */
+-(BOOL)acceptsFirstResponder
+{
+ return YES;
+}
+-(id)supplementalTargetForAction:(SEL)action sender:(id)sender
+{
+ if (action == @selector(refreshModel:)
+ || action == @selector(browseAction:))
+ {
+ return self.inspector;
+ }
+ return [super supplementalTargetForAction:action sender:sender];
+}
+
+/*
+ *
+ *
+ *================================================================================================*/
+#pragma mark - Utilities
+/*==================================================================================================
+ */
+
+
+-(NSString*)_viewIdentifierForValueClass:(Class)class
+{
+ if (class == NSColor.class) {
+ return @"ObjectInspectorColorView";
+ }
+ else if (class == NSString.class) {
+ return @"ObjectInspectorStringView";
+ }
+ return @"ObjectInspectorReadOnlyView";
+}
+
+-(NSString*)_titleForView:(NSView*)view
+{
+ return view.description;
+}
+
+-(NSImage*)_imageForView:(NSView*)view
+{
+ return sViewImage;
+}
+
+-(NSPathComponentCell*)_pathComponentCellForView:(NSView*)view withURL:(NSURL*)url
+{
+ NSPathComponentCell *item = [[NSPathComponentCell alloc] initTextCell:[self _titleForView:view]];
+ item.controlSize = self.viewPathControl.controlSize;
+ item.font = self.viewPathControl.font;
+ item.image = [self _imageForView:view];
+ item.representedObject = view;
+ return item;
+}
+-(IBAction)viewWasSelectedFromMenu:(id)sender
+{
+
+}
+-(NSMenu*)_menuForSiblingViewsOfView:(NSView*)view select:(BOOL)select
+{
+ NSAssert([view isKindOfClass:NSView.class], @"Cannot get view hierarchy for a non-view class %@",view);
+ NSView *superview = view.superview;
+ NSMenu *menu = [[NSMenu alloc] initWithTitle:view.description];
+ NSArray *views = superview ? superview.subviews : @[view];
+ for (NSView *v in views) {
+ NSMenuItem *item = [[NSMenuItem alloc] initWithTitle:[self _titleForView:v] action:@selector(viewWasSelectedFromMenu:) keyEquivalent:@""];
+ item.representedObject = v;
+ [menu addItem:item];
+ if (select && v == view) {
+ [(NSMenuItem*)menu.itemArray.lastObject setState:NSOnState];
+ [(NSMenuItem*)menu.itemArray.lastObject setTag:1];
+
+ }
+ }
+ return menu;
+}
+
+-(NSMenu*)_menuForView:(NSView*)view
+{
+
+ NSAssert([view isKindOfClass:NSView.class], @"Cannot get view hierarchy for a non-view class %@",view);
+ if (!view.superview) { return nil; }
+ NSMutableArray * pathControlItems = [NSMutableArray new];
+ NSMutableArray *submenus = [NSMutableArray new];
+ NSView *v = view;
+ NSUInteger submenuCount = 0;
+ while (v.superview) {
+ NSMenu *submenu = [self _menuForSiblingViewsOfView:v select:YES];
+ [submenus addObject:submenu];
+ ++submenuCount;
+ v = v.superview;
+ }
+ NSURL *url = [NSURL URLWithString:@"views://"];
+ NSMenu *rootMenu = submenus.lastObject;
+ NSMenuItem *selectedItem = [rootMenu itemWithTag:1];
+ [pathControlItems addObject:[self _pathComponentCellForView:selectedItem.representedObject withURL:url]];
+ NSMenu *currentMenu = rootMenu;
+ [submenus removeLastObject];
+ for (NSMenu *submenu in submenus.reverseObjectEnumerator) {
+ selectedItem = [currentMenu itemWithTag:1];
+ url = [url URLByAppendingPathComponent:@"view"];
+ [pathControlItems addObject:[self _pathComponentCellForView:selectedItem.representedObject withURL:url]];
+ [selectedItem setSubmenu:submenu];
+ currentMenu = submenu;
+ }
+ self.viewPathControl.pathComponentCells = pathControlItems.count ? pathControlItems : @[];
+ return rootMenu;
+}
+
+@end
diff --git a/FScriptFramework/FSObjectInspectorViewController.xib b/FScriptFramework/FSObjectInspectorViewController.xib
new file mode 100644
index 0000000..e4e5704
--- /dev/null
+++ b/FScriptFramework/FSObjectInspectorViewController.xib
@@ -0,0 +1,599 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ NSIsNil
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/FScriptFramework/FSObjectInspectorViewModelItem.h b/FScriptFramework/FSObjectInspectorViewModelItem.h
new file mode 100644
index 0000000..5979659
--- /dev/null
+++ b/FScriptFramework/FSObjectInspectorViewModelItem.h
@@ -0,0 +1,51 @@
+//
+// FSObjectInspectorViewModelItem.h
+// FScript
+//
+// Created by Anthony Dervish on 16/11/2014.
+//
+//
+
+#import
+
+typedef NS_ENUM(NSUInteger, FSInspectorVMValueType) {
+ FS_ITEM_HEADER,
+ FS_ITEM_ENUM,
+ FS_ITEM_OPTIONS,
+ FS_ITEM_NUMBER,
+ FS_ITEM_SIZE,
+ FS_ITEM_RECT,
+ FS_ITEM_OBJECT,
+ FS_ITEM_POINT,
+ FS_ITEM_RANGE,
+ FS_ITEM_BOOL,
+ FS_ITEM_GROUP,
+};
+
+@class FSObjectInspectorViewModelItem;
+@class NSMutableDictionary;
+
+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;
+@property (assign,nonatomic) FSInspectorVMValueType valueType;
+@property (readonly,nonatomic) NSString *displayValue;
+@property (assign,nonatomic) NSMutableDictionary *enumBiDict;
+@property (readonly,nonatomic) NSArray *enumNames;
+@property (readonly,nonatomic) NSArray *enumValues;
+@property (nonatomic) double numValue;
+@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;
+@property (nonatomic) CGFloat float1;
+@property (nonatomic) CGFloat float2;
+@property (nonatomic) CGFloat float3;
+@property (nonatomic) CGFloat float4;
+@end
diff --git a/FScriptFramework/FSObjectInspectorViewModelItem.m b/FScriptFramework/FSObjectInspectorViewModelItem.m
new file mode 100644
index 0000000..10c81b7
--- /dev/null
+++ b/FScriptFramework/FSObjectInspectorViewModelItem.m
@@ -0,0 +1,242 @@
+//
+// FSObjectInspectorViewModelItem.m
+// FScript
+//
+// Created by Anthony Dervish on 16/11/2014.
+//
+//
+
+#import "FSObjectInspectorViewModelItem.h"
+#import "FSBoolean.h"
+#import "FSNamedNumber.h"
+#import "FSNumber.h"
+#import "FSObjectEnumInfo.h"
+
+static void *FLOAT_CHANGED_CTX = &FLOAT_CHANGED_CTX;
+
+@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
+
+static NSArray *sBOOLEnum = nil;
+@implementation FSObjectInspectorViewModelItem
+
++(void)initialize
+{
+ if (self == FSObjectInspectorViewModelItem.class) {
+ sBOOLEnum = @[[FSNamedInteger integer:NO withName:@"NO"],
+ [FSNamedInteger integer:YES withName:@"YES"]];
+ }
+}
+
+-(id)representedObject
+{
+ return [super representedObject] ?: self.value;
+}
+
+- (instancetype)initWithRepresentedObject:(id)modelObject
+{
+ self = [super initWithRepresentedObject:modelObject];
+ if (self) {
+ self.minValue = NSIntegerMin;
+ self.maxValue = NSIntegerMax;
+ [self addObserver:self
+ forKeyPath:@"float1"
+ options:nil
+ context:&FLOAT_CHANGED_CTX
+ ];
+ [self addObserver:self
+ forKeyPath:@"float2"
+ options:nil
+ context:&FLOAT_CHANGED_CTX
+ ];
+ [self addObserver:self
+ forKeyPath:@"float3"
+ options:nil
+ context:&FLOAT_CHANGED_CTX
+ ];
+ [self addObserver:self
+ forKeyPath:@"float4"
+ options:nil
+ context:&FLOAT_CHANGED_CTX
+ ];
+ }
+ return self;
+}
+
+
+- (void)dealloc
+{
+ [self removeObserver:self forKeyPath:@"float1"];
+ [self removeObserver:self forKeyPath:@"float2"];
+ [self removeObserver:self forKeyPath:@"float3"];
+ [self removeObserver:self forKeyPath:@"float4"];
+}
+
+-(void)setValue:(id)value
+{
+ _value = value;
+ NSValue *val = value;
+ switch (self.valueType) {
+ case FS_ITEM_SIZE: {
+ NSSize sz = val.sizeValue;
+ _float1 = sz.width;
+ _float2 = sz.height;
+ }
+ break;
+ case FS_ITEM_RECT: {
+ NSRect rect = val.rectValue;
+ _float1 = rect.origin.x;
+ _float2 = rect.origin.y;
+ _float3 = rect.size.width;
+ _float4 = rect.size.height;
+ }
+ break;
+ case FS_ITEM_POINT: {
+ NSPoint point = val.pointValue;
+ _float1 = point.x;
+ _float2 = point.y;
+ }
+ break;
+ case FS_ITEM_RANGE: {
+ NSRange rng = val.rangeValue;
+ _float1 = rng.location;
+ _float2 = rng.length;
+
+ }
+ break;
+ default:
+ break;
+ }
+
+}
+
+- (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] stringByReplacingOccurrencesOfString:@"\n" withString:@""];
+ 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;
+ }
+ return @"";
+}
+
+- (NSArray*)enumObjects
+{
+ 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;
+}
+
+
+- (double)numValue
+{
+ return [self.value doubleValue];
+}
+
+- (void)setNumValue:(double)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;
+ default:
+ break;
+ }
+}
+
+-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
+{
+ if (context == FLOAT_CHANGED_CTX) {
+ [self refreshValue];
+ }
+}
+
+// A 'floatX' has changed: update our aggregate value
+-(void)refreshValue
+{
+ [self willChangeValueForKey:@"value"];
+ switch (self.valueType) {
+ case FS_ITEM_SIZE:
+ _value = [NSValue valueWithSize:NSMakeSize(self.float1, self.float2)];
+ break;
+ case FS_ITEM_RECT:
+ _value = [NSValue valueWithRect:NSMakeRect(self.float1, self.float2, self.float3, self.float4)];
+ break;
+ case FS_ITEM_POINT:
+ _value = [NSValue valueWithPoint:NSMakePoint(self.float1, self.float2)];
+ break;
+ case FS_ITEM_RANGE:
+ _value = [NSValue valueWithRange:NSMakeRange(self.float1, self.float2)];
+ break;
+ default:
+ break;
+ }
+ [self didChangeValueForKey:@"value"];
+
+}
+
++ (NSSet*)keyPathsForValuesAffectingDisplayValue
+{
+ return [NSSet setWithObject:@"value"];
+}
+
+@end
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;
diff --git a/FScriptFramework/FSUtils.h b/FScriptFramework/FSUtils.h
new file mode 100644
index 0000000..46dd65f
--- /dev/null
+++ b/FScriptFramework/FSUtils.h
@@ -0,0 +1,30 @@
+//
+// 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);
+}
+@class FSInterpreterResult;
+BOOL checkInterpreterResult(FSInterpreterResult *result);
\ No newline at end of file
diff --git a/FScriptFramework/FSUtils.m b/FScriptFramework/FSUtils.m
new file mode 100644
index 0000000..9646780
--- /dev/null
+++ b/FScriptFramework/FSUtils.m
@@ -0,0 +1,24 @@
+//
+// FSUtils.m
+// FScript
+//
+// Created by Anthony Dervish on 18/11/2014.
+//
+//
+
+#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;
+}
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/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:");
diff --git a/FScriptFramework/Resources/view.png b/FScriptFramework/Resources/view.png
new file mode 100755
index 0000000..8a75318
Binary files /dev/null and b/FScriptFramework/Resources/view.png differ
diff --git a/FScriptFramework/Resources/window.png b/FScriptFramework/Resources/window.png
new file mode 100755
index 0000000..06eb113
Binary files /dev/null and b/FScriptFramework/Resources/window.png differ
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)];
+ }
}
}
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
+
-
- NSToolbarFlexibleSpaceItem
-
- Flexible Space
-
-
-
-
-
- {1, 5}
- {20000, 32}
- YES
- YES
- -1
- YES
- 0
-
-
- NSToolbarSpaceItem
-
- Space
-
-
-
-
-
- {32, 5}
- {32, 32}
- YES
- YES
- -1
- YES
- 0
-
+
+
+ NSToolbarSpaceItem
+
+ Space
+
+
+
+
+
+ {32, 5}
+ {32, 10000}
+ YES
+ YES
+ -1
+ YES
+ 0
+
-
-
- 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 605f322..b89a20b 100644
Binary files a/FScriptFramework/blockInspector.nib/keyedobjects.nib and b/FScriptFramework/blockInspector.nib/keyedobjects.nib differ
diff --git a/FScriptFramework/blockInspector.xib b/FScriptFramework/blockInspector.xib
new file mode 100644
index 0000000..5410161
--- /dev/null
+++ b/FScriptFramework/blockInspector.xib
@@ -0,0 +1,846 @@
+
+
+
+ 1060
+ 14B23
+ 6254
+ 1343.16
+ 755.00
+
+ com.apple.InterfaceBuilder.CocoaPlugin
+ 6254
+
+
+ NSBox
+ NSCustomObject
+ NSCustomView
+ NSScrollView
+ NSScroller
+ NSSplitView
+ NSTextView
+ NSToolbar
+ NSToolbarFlexibleSpaceItem
+ NSToolbarItem
+ NSToolbarSpaceItem
+ NSView
+ NSWindowTemplate
+
+
+ com.apple.InterfaceBuilder.CocoaPlugin
+
+
+ PluginDependencyRecalculationVersion
+
+
+
+
+ BlockInspector
+
+
+ FirstResponder
+
+
+ NSApplication
+
+
+ 4111
+ 2
+ {{516, 482}, {356, 286}}
+ 544735232
+ Block Inspector
+ NSWindow
+
+
+ 99025BCD-28BD-4E10-A236-49C3770B7CF0
+
+
+ YES
+ NO
+ YES
+ YES
+ 2
+ 1
+
+
+
+ 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
+
+
+
+ NSToolbarSpaceItem
+
+ Space
+
+
+
+
+
+ {32, 5}
+ {32, 10000}
+ YES
+ YES
+ -1
+ YES
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {290, 158}
+
+
+ 256
+
+
+
+ 266
+
+
+
+ 274
+ {{2, 2}, {429, 2}}
+
+
+
+
+
+ {{-7, 243}, {433, 6}}
+
+
+
+ {0, 0}
+
+ 67108864
+ 0
+
+
+ Helvetica
+ 12
+ 16
+
+
+ 6
+ System
+ textBackgroundColor
+
+ 3
+ MQA
+
+
+
+ 6
+ System
+ labelColor
+
+ 3
+ MAA
+
+
+
+
+ 3
+ 0
+ 0
+ NO
+
+
+
+ 274
+
+
+
+ 256
+
+
+
+ 2322
+
+
+
+ 274
+ {354, 197}
+
+
+
+ FScriptTextView
+ NSTextView
+
+
+ {{1, 1}, {354, 222}}
+
+
+
+
+
+ 6
+ System
+ controlColor
+
+ 3
+ MC42NjY2NjY2NjY3AA
+
+
+ 4
+ YES
+
+
+
+ 256
+ {{339, 1}, {16, 222}}
+
+
+
+ NO
+ _doScroller:
+
+
+ _doScroller:
+ 1
+ 0.98327759999999997
+
+
+
+ -2147483392
+ {{-100, -100}, {356, 15}}
+
+
+
+ NO
+ _doScroller:
+
+ 1
+
+ _doScroller:
+ 0.22752810000000001
+
+
+ {356, 224}
+
+
+
+ YES
+ 133138
+
+
+
+ 0.25
+ 4
+ 1
+
+
+
+ 256
+
+
+
+ 2322
+
+
+
+ 2322
+
+ 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}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 38
+
+
+
+ 353
+ 1
+
+
+ 67111781
+ 0
+
+
+ 2
+ MC45NDUwOTgxIDAuOTQ1MDk4MSAwLjk0NTA5ODEAA
+
+
+
+ 6
+ System
+ selectedTextBackgroundColor
+
+
+
+ 6
+ System
+ selectedTextColor
+
+
+
+
+ 6
+ System
+ controlTextColor
+
+
+
+
+ 1
+ MCAwIDEAA
+
+
+ {8, -8}
+ 13
+
+
+
+
+
+
+
+ 0
+
+ 6
+ {694, 10000000}
+ {354, 51}
+
+
+
+ {{1, 1}, {354, 51}}
+
+
+
+
+
+ 2
+ MC45NDUwOTgxIDAuOTQ1MDk4MSAwLjk0NTA5ODEAA
+
+
+ {4, 5}
+
+ 12582912
+
+
+
+
+
+ TU0AKgAAAHCAFUqgBVKsAAAAwdVQUqwaEQeIRGJRGFlYqwWLQ+JxuOQpVRmEx2RROKwOQyOUQSPyaUym
+SxqWyKXyeYxyZzWbSuJTScRCbz2Nz+gRKhUOfTqeUai0OSxiWTiBQSHSGFquGwekxyAgAAAOAQAAAwAA
+AAEAEAAAAQEAAwAAAAEAEAAAAQIAAwAAAAIACAAIAQMAAwAAAAEABQAAAQYAAwAAAAEAAQAAAREABAAA
+AAEAAAAIARIAAwAAAAEAAQAAARUAAwAAAAEAAgAAARYAAwAAAAEAEAAAARcABAAAAAEAAABnARwAAwAA
+AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA
+
+
+
+
+
+ 3
+ MCAwAA
+
+
+
+ 4
+ YES
+
+
+
+ 256
+ {{339, 1}, {16, 51}}
+
+
+
+ NO
+ _doScroller:
+
+
+ _doScroller:
+ 1
+
+
+
+ -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}}
+ {290, 219}
+ {10000000000000, 10000000000000}
+ YES
+
+
+
+
+
+
+ sourceView
+
+
+
+ 55
+
+
+
+ messageView
+
+
+
+ 56
+
+
+
+ splitView
+
+
+
+ 58
+
+
+
+ compil:
+
+
+
+ 100
+
+
+
+ run:
+
+
+
+ 101
+
+
+
+ delegate
+
+
+
+ 17
+
+
+
+ initialFirstResponder
+
+
+
+ 59
+
+
+
+
+
+ 0
+
+
+
+
+
+ -2
+
+
+ File's Owner
+
+
+ -1
+
+
+ First Responder
+
+
+ -3
+
+
+ Application
+
+
+ 8
+
+
+
+
+
+
+ Window1
+
+
+ 6
+
+
+
+
+
+
+
+
+ 4
+
+
+
+
+
+ 57
+
+
+
+
+
+
+
+
+ 51
+
+
+
+
+
+
+
+
+
+ 50
+
+
+
+
+ 52
+
+
+
+
+
+
+
+
+
+ 53
+
+
+
+
+ 76
+
+
+
+
+ 77
+
+
+
+
+ 78
+
+
+
+
+ 79
+
+
+
+
+ 90
+
+
+
+
+
+
+
+
+
+
+ 99
+
+
+
+
+ 98
+
+
+
+
+ 112
+
+
+
+
+ 113
+
+
+
+
+
+
+ com.apple.InterfaceBuilder.CocoaPlugin
+ com.apple.InterfaceBuilder.CocoaPlugin
+ com.apple.InterfaceBuilder.CocoaPlugin
+ com.apple.InterfaceBuilder.CocoaPlugin
+ com.apple.InterfaceBuilder.CocoaPlugin
+ com.apple.InterfaceBuilder.CocoaPlugin
+ com.apple.InterfaceBuilder.CocoaPlugin
+ com.apple.InterfaceBuilder.CocoaPlugin
+ com.apple.InterfaceBuilder.CocoaPlugin
+ com.apple.InterfaceBuilder.CocoaPlugin
+ com.apple.InterfaceBuilder.CocoaPlugin
+ 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
+
+
+
+
+
+ 113
+
+
+ 0
+ IBCocoaFramework
+ NO
+
+ com.apple.InterfaceBuilder.CocoaPlugin.macosx
+
+
+
+ com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3
+
+
+ YES
+ 3
+
+ {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/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
diff --git a/FScriptFramework/metamacrosorig.h b/FScriptFramework/metamacrosorig.h
new file mode 100644
index 0000000..77a77b5
--- /dev/null
+++ b/FScriptFramework/metamacrosorig.h
@@ -0,0 +1,666 @@
+/**
+ * Macros for metaprogramming
+ * ExtendedC
+ *
+ * Copyright (C) 2012 Justin Spahr-Summers
+ * Released under the MIT license
+ */
+
+#ifndef EXTC_METAMACROS_H
+#define EXTC_METAMACROS_H
+
+/**
+ * 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(20, __VA_ARGS__, 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)
+
+/**
+ * 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)
+
+/**
+ * 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)
+
+/**
+ * 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__)
+
+// 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)
+
+// 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)
+
+// 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)
+
+// 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_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))
+
+// 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_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))
+
+// 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__))
+
+// 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__))
+
+#endif
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
+ {{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
+
+
+
+
+
+ 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}
+
+
+
+
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