From 5b05f3f15aa0676f91bc1d127d31f4fd95ef9f40 Mon Sep 17 00:00:00 2001 From: avenjamin Date: Wed, 24 Jun 2009 15:46:27 +0000 Subject: - Changed the way the BWToolkit framework was included to allow modifications to be made easily. - Fixed show/hide info pane toggle button image states to now show correctly --- .../BWAddMiniBottomBar.classdescription | 12 + .../BWAddMiniBottomBar.h | 16 + .../BWAddMiniBottomBar.m | 51 + .../BWAddMiniBottomBarIntegration.m | 58 + .../BWAddRegularBottomBar.classdescription | 12 + .../BWAddRegularBottomBar.h | 16 + .../BWAddRegularBottomBar.m | 43 + .../BWAddRegularBottomBarIntegration.m | 58 + .../BWAddSheetBottomBar.classdescription | 12 + .../BWAddSheetBottomBar.h | 16 + .../BWAddSheetBottomBar.m | 51 + .../BWAddSheetBottomBarIntegration.m | 58 + .../BWAddSmallBottomBar.classdescription | 12 + .../BWAddSmallBottomBar.h | 16 + .../BWAddSmallBottomBar.m | 43 + .../BWAddSmallBottomBarIntegration.m | 59 + .../BWAnchoredButton.classdescription | 12 + .../BWAnchoredButton.h | 21 + .../BWAnchoredButton.m | 43 + .../BWAnchoredButtonBar.classdescription | 12 + .../BWAnchoredButtonBar.h | 27 + .../BWAnchoredButtonBar.m | 350 +++ .../BWAnchoredButtonBarInspector.h | 22 + .../BWAnchoredButtonBarInspector.m | 74 + .../BWAnchoredButtonBarInspector.xib | 1066 +++++++ .../BWAnchoredButtonBarIntegration.m | 64 + .../BWAnchoredButtonCell.h | 16 + .../BWAnchoredButtonCell.m | 226 ++ .../BWAnchoredButtonIntegration.m | 45 + .../BWAnchoredPopUpButton.classdescription | 12 + .../BWAnchoredPopUpButton.h | 21 + .../BWAnchoredPopUpButton.m | 43 + .../BWAnchoredPopUpButtonCell.h | 16 + .../BWAnchoredPopUpButtonCell.m | 271 ++ .../BWAnchoredPopUpButtonIntegration.m | 45 + .../BWBottomBarLibrary.nib/designable.nib | 895 ++++++ .../BWBottomBarLibrary.nib/keyedobjects.nib | Bin 0 -> 10433 bytes .../BWButtonBarLibrary.nib/designable.nib | 1303 +++++++++ .../BWButtonBarLibrary.nib/keyedobjects.nib | Bin 0 -> 15030 bytes .../BWControllersLibrary.nib/designable.nib | 510 ++++ .../BWControllersLibrary.nib/keyedobjects.nib | Bin 0 -> 6366 bytes .../BWCustomView.classdescription | 12 + .../BWToolkitFramework.framework/BWCustomView.h | 17 + .../BWToolkitFramework.framework/BWCustomView.m | 186 ++ .../BWCustomViewIntegration.m | 45 + .../BWGradientBox.classdescription | 12 + .../BWToolkitFramework.framework/BWGradientBox.h | 24 + .../BWToolkitFramework.framework/BWGradientBox.m | 179 ++ .../BWGradientBoxInspector.h | 21 + .../BWGradientBoxInspector.m | 48 + .../BWGradientBoxInspector.xib | 2148 ++++++++++++++ .../BWGradientBoxIntegration.m | 34 + .../BWToolkitFramework.framework/BWGradientWell.h | 18 + .../BWToolkitFramework.framework/BWGradientWell.m | 40 + .../BWGradientWellColorWell.h | 19 + .../BWGradientWellColorWell.m | 42 + .../BWHyperlinkButton.classdescription | 12 + .../BWHyperlinkButton.h | 18 + .../BWHyperlinkButton.m | 55 + .../BWHyperlinkButtonCell.classdescription | 12 + .../BWHyperlinkButtonCell.h | 16 + .../BWHyperlinkButtonCell.m | 42 + .../BWHyperlinkButtonInspector.h | 16 + .../BWHyperlinkButtonInspector.m | 23 + .../BWHyperlinkButtonInspector.xib | 337 +++ .../BWHyperlinkButtonIntegration.m | 29 + .../BWInsetTextField.classdescription | 12 + .../BWInsetTextField.h | 16 + .../BWInsetTextField.m | 25 + .../BWRemoveBottomBar.classdescription | 12 + .../BWRemoveBottomBar.h | 16 + .../BWRemoveBottomBar.m | 18 + .../BWRemoveBottomBarIntegration.m | 69 + .../BWSelectableToolbar.classdescription | 12 + .../BWSelectableToolbar.h | 36 + .../BWSelectableToolbar.m | 650 +++++ .../BWSelectableToolbarHelper.h | 26 + .../BWSelectableToolbarHelper.m | 84 + .../BWSelectableToolbarInspector.h | 14 + .../BWSelectableToolbarInspector.m | 22 + .../designable.nib | 485 ++++ .../keyedobjects.nib | Bin 0 -> 6184 bytes .../BWSelectableToolbarIntegration.m | 104 + .../BWSheetController.classdescription | 14 + .../BWSheetController.h | 31 + .../BWSheetController.m | 75 + .../BWSheetControllerIntegration.m | 23 + .../BWSplitView.classdescription | 11 + .../BWToolkitFramework.framework/BWSplitView.h | 44 + .../BWToolkitFramework.framework/BWSplitView.m | 1433 ++++++++++ .../BWSplitViewInspector.h | 31 + .../BWSplitViewInspector.m | 269 ++ .../BWSplitViewInspector.xib | 2080 ++++++++++++++ .../BWSplitViewInspectorAutosizingButtonCell.h | 16 + .../BWSplitViewInspectorAutosizingButtonCell.m | 158 ++ .../BWSplitViewInspectorAutosizingView.h | 23 + .../BWSplitViewInspectorAutosizingView.m | 171 ++ .../BWSplitViewIntegration.m | 32 + .../BWSplitViewLibrary.nib/designable.nib | 733 +++++ .../BWSplitViewLibrary.nib/keyedobjects.nib | Bin 0 -> 9250 bytes .../BWStyledTextField.classdescription | 12 + .../BWStyledTextField.h | 33 + .../BWStyledTextField.m | 101 + .../BWStyledTextFieldCell.classdescription | 12 + .../BWStyledTextFieldCell.h | 22 + .../BWStyledTextFieldCell.m | 205 ++ .../BWStyledTextFieldInspector.h | 20 + .../BWStyledTextFieldInspector.m | 80 + .../BWStyledTextFieldInspector.xib | 944 +++++++ .../BWStyledTextFieldIntegration.m | 29 + .../BWTexturedSlider.classdescription | 12 + .../BWTexturedSlider.h | 25 + .../BWTexturedSlider.m | 217 ++ .../BWTexturedSliderCell.classdescription | 12 + .../BWTexturedSliderCell.h | 19 + .../BWTexturedSliderCell.m | 125 + .../BWTexturedSliderInspector.h | 14 + .../BWTexturedSliderInspector.m | 22 + .../BWTexturedSliderInspector.nib/designable.nib | 611 ++++ .../BWTexturedSliderInspector.nib/keyedobjects.nib | Bin 0 -> 6705 bytes .../BWTexturedSliderIntegration.m | 66 + .../BWTokenAttachmentCell.h | 17 + .../BWTokenAttachmentCell.m | 226 ++ .../BWTokenField.classdescription | 12 + .../BWToolkitFramework.framework/BWTokenField.h | 16 + .../BWToolkitFramework.framework/BWTokenField.m | 13 + .../BWTokenFieldCell.classdescription | 12 + .../BWTokenFieldCell.h | 16 + .../BWTokenFieldCell.m | 27 + .../BWToolbarItem.classdescription | 12 + .../BWToolkitFramework.framework/BWToolbarItem.h | 16 + .../BWToolkitFramework.framework/BWToolbarItem.m | 62 + .../BWToolbarItemInspector.h | 16 + .../BWToolbarItemInspector.m | 22 + .../BWToolbarItemInspector.xib | 341 +++ .../BWToolbarItemIntegration.m | 27 + .../BWToolbarItemsLibrary.nib/designable.nib | 680 +++++ .../BWToolbarItemsLibrary.nib/keyedobjects.nib | Bin 0 -> 8905 bytes .../BWToolbarShowColorsItem.classdescription | 12 + .../BWToolbarShowColorsItem.h | 16 + .../BWToolbarShowColorsItem.m | 51 + .../BWToolbarShowFontsItem.classdescription | 12 + .../BWToolbarShowFontsItem.h | 16 + .../BWToolbarShowFontsItem.m | 51 + .../BWToolkitFramework.framework/BWToolkit.h | 15 + .../BWToolkitFramework.framework/BWToolkit.m | 25 + .../BWToolkit.xcodeproj/TemplateIcon.icns | Bin 0 -> 284330 bytes .../BWToolkit.xcodeproj/project.pbxproj | 2053 ++++++++++++++ .../BWToolkitFramework | 1 - .../BWToolkitFramework-Info.plist | 22 + .../BWToolkitFramework.h | 47 + .../BWToolkit_Prefix.pch | 8 + .../BWTransparentButton.classdescription | 12 + .../BWTransparentButton.h | 16 + .../BWTransparentButton.m | 13 + .../BWTransparentButtonCell.classdescription | 12 + .../BWTransparentButtonCell.h | 17 + .../BWTransparentButtonCell.m | 104 + .../BWTransparentButtonIntegration.m | 35 + .../BWTransparentCheckbox.classdescription | 12 + .../BWTransparentCheckbox.h | 16 + .../BWTransparentCheckbox.m | 13 + .../BWTransparentCheckboxCell.classdescription | 12 + .../BWTransparentCheckboxCell.h | 17 + .../BWTransparentCheckboxCell.m | 124 + .../BWTransparentCheckboxIntegration.m | 35 + .../designable.nib | 1995 +++++++++++++ .../keyedobjects.nib | Bin 0 -> 24895 bytes .../BWTransparentPopUpButton.classdescription | 12 + .../BWTransparentPopUpButton.h | 16 + .../BWTransparentPopUpButton.m | 13 + .../BWTransparentPopUpButtonCell.classdescription | 12 + .../BWTransparentPopUpButtonCell.h | 16 + .../BWTransparentPopUpButtonCell.m | 174 ++ .../BWTransparentPopUpButtonIntegration.m | 35 + .../BWTransparentScrollView.classdescription | 12 + .../BWTransparentScrollView.h | 16 + .../BWTransparentScrollView.m | 29 + .../BWTransparentScrollViewIntegration.m | 29 + .../BWTransparentScroller.classdescription | 12 + .../BWTransparentScroller.h | 16 + .../BWTransparentScroller.m | 251 ++ .../BWTransparentSlider.classdescription | 12 + .../BWTransparentSlider.h | 16 + .../BWTransparentSlider.m | 13 + .../BWTransparentSliderCell.classdescription | 12 + .../BWTransparentSliderCell.h | 16 + .../BWTransparentSliderCell.m | 152 + .../BWTransparentSliderIntegration.m | 35 + .../BWTransparentTableView.classdescription | 12 + .../BWTransparentTableView.h | 16 + .../BWTransparentTableView.m | 103 + .../BWTransparentTableViewCell.classdescription | 12 + .../BWTransparentTableViewCell.h | 16 + .../BWTransparentTableViewCell.m | 85 + .../BWTransparentTableViewIntegration.m | 32 + .../BWTransparentTextFieldCell.classdescription | 12 + .../BWTransparentTextFieldCell.h | 16 + .../BWTransparentTextFieldCell.m | 42 + .../BWUnanchoredButton.h | 16 + .../BWUnanchoredButton.m | 40 + .../BWUnanchoredButtonCell.h | 17 + .../BWUnanchoredButtonCell.m | 77 + .../BWUnanchoredButtonContainer.h | 16 + .../BWUnanchoredButtonContainer.m | 15 + .../BWUnanchoredButtonContainerIntegration.m | 52 + .../BWUnanchoredButtonIntegration.m | 45 + .../ButtonBarPullDownArrow.pdf | Bin 0 -> 10702 bytes .../BWToolkitLibrary.nib/designable.nib | 2965 ++++++++++++++++++++ .../BWToolkitLibrary.nib/keyedobjects.nib | Bin 0 -> 39624 bytes .../English.lproj/InfoPlist.strings | Bin 0 -> 198 bytes .../GradientSplitViewDimpleBitmap.tif | Bin 0 -> 3558 bytes .../GradientSplitViewDimpleVector.pdf | Bin 0 -> 11667 bytes .../GradientWellPattern.tif | Bin 0 -> 5082 bytes Frameworks/BWToolkitFramework.framework/Headers | 1 - Frameworks/BWToolkitFramework.framework/IBColor.h | 102 + Frameworks/BWToolkitFramework.framework/Info.plist | 28 + .../Inspector-ButtonBarMode1.tif | Bin 0 -> 4856 bytes .../Inspector-ButtonBarMode1Pressed.tif | Bin 0 -> 4920 bytes .../Inspector-ButtonBarMode2.tif | Bin 0 -> 4956 bytes .../Inspector-ButtonBarMode2Pressed.tif | Bin 0 -> 5022 bytes .../Inspector-ButtonBarMode3.tif | Bin 0 -> 5018 bytes .../Inspector-ButtonBarMode3Pressed.tif | Bin 0 -> 5098 bytes .../Inspector-ButtonBarModeSelection.tif | Bin 0 -> 4796 bytes .../Inspector-SplitViewArrowBlueLeft.tif | Bin 0 -> 3682 bytes .../Inspector-SplitViewArrowBlueRight.tif | Bin 0 -> 3690 bytes .../Inspector-SplitViewArrowRedFill.tif | Bin 0 -> 3552 bytes .../Inspector-SplitViewArrowRedLeft.tif | Bin 0 -> 3678 bytes .../Inspector-SplitViewArrowRedRight.tif | Bin 0 -> 3676 bytes .../Inspector-SplitViewBackground.tiff | Bin 0 -> 13204 bytes .../Library-AddMiniBottomBar.tif | Bin 0 -> 6694 bytes .../Library-AddRegularBottomBar.tif | Bin 0 -> 6794 bytes .../Library-AddSheetBottomBar.tif | Bin 0 -> 6764 bytes .../Library-AddSmallBottomBar.tif | Bin 0 -> 6778 bytes .../Library-AnchoredButton.tif | Bin 0 -> 4018 bytes .../Library-AnchoredButtonBar.tif | Bin 0 -> 4342 bytes .../Library-AnchoredPopUpButton.tif | Bin 0 -> 4204 bytes .../Library-CustomView.tif | Bin 0 -> 5232 bytes .../Library-GradientBox.tif | Bin 0 -> 12738 bytes .../Library-GradientSplitView.tif | Bin 0 -> 5692 bytes .../Library-HorizontalSplitView.tif | Bin 0 -> 5758 bytes .../Library-InsetTextField.tif | Bin 0 -> 5174 bytes .../Library-RemoveBottomBar.tif | Bin 0 -> 6272 bytes .../Library-SelectableToolbar.tif | Bin 0 -> 5316 bytes .../Library-SheetController.tif | Bin 0 -> 7210 bytes .../Library-ShowColors.tif | Bin 0 -> 5886 bytes .../Library-ShowFonts.tif | Bin 0 -> 4336 bytes .../Library-StyledTextField.tif | Bin 0 -> 5030 bytes .../Library-TexturedAddButton.tif | Bin 0 -> 4004 bytes .../Library-TexturedRemoveButton.tif | Bin 0 -> 3898 bytes .../Library-TexturedSlider.tif | Bin 0 -> 4900 bytes .../Library-TokenField.tif | Bin 0 -> 6674 bytes .../Library-ToolbarItem.tiff | Bin 0 -> 4532 bytes .../Library-TransparentButton.tif | Bin 0 -> 4594 bytes .../Library-TransparentCheckbox.tif | Bin 0 -> 4408 bytes .../Library-TransparentCheckboxCell.tif | Bin 0 -> 4738 bytes .../Library-TransparentLabel.tif | Bin 0 -> 4452 bytes .../Library-TransparentPopUpButton.tif | Bin 0 -> 4706 bytes .../Library-TransparentSlider.tif | Bin 0 -> 4334 bytes .../Library-TransparentTableView.tif | Bin 0 -> 4478 bytes .../Library-TransparentTextView.tif | Bin 0 -> 4914 bytes .../Library-VerticalSplitView.tif | Bin 0 -> 6450 bytes .../BWToolkitFramework.framework/License.rtf | 16 + .../NSApplication+BWAdditions.h | 15 + .../NSApplication+BWAdditions.m | 21 + .../NSColor+BWAdditions.h | 16 + .../NSColor+BWAdditions.m | 79 + .../BWToolkitFramework.framework/NSCustomView.h | 27 + .../NSEvent+BWAdditions.h | 19 + .../NSEvent+BWAdditions.m | 53 + .../NSImage+BWAdditions.h | 19 + .../NSImage+BWAdditions.m | 83 + .../NSString+BWAdditions.h | 15 + .../NSString+BWAdditions.m | 22 + .../NSTokenAttachment.h | 22 + .../NSTokenAttachmentCell.h | 52 + .../NSView+BWAdditions.h | 15 + .../NSView+BWAdditions.m | 31 + .../NSWindow+BWAdditions.h | 16 + .../NSWindow+BWAdditions.m | 41 + .../NSWindow-NSTimeMachineSupport.h | 15 + .../BWToolkitFramework.framework/Release Notes.rtf | 311 ++ Frameworks/BWToolkitFramework.framework/Resources | 1 - .../TexturedSliderPhotoLarge.tif | Bin 0 -> 634 bytes .../TexturedSliderPhotoSmall.tif | Bin 0 -> 468 bytes .../TexturedSliderSpeakerLoud.png | Bin 0 -> 491 bytes .../TexturedSliderSpeakerQuiet.png | Bin 0 -> 290 bytes .../TexturedSliderThumbN.tiff | Bin 0 -> 856 bytes .../TexturedSliderThumbP.tiff | Bin 0 -> 788 bytes .../TexturedSliderTrackFill.tiff | Bin 0 -> 316 bytes .../TexturedSliderTrackLeft.tiff | Bin 0 -> 386 bytes .../TexturedSliderTrackRight.tiff | Bin 0 -> 388 bytes .../TokenFieldArrow.tif | Bin 0 -> 3668 bytes .../TokenFieldHighlightedArrow.tif | Bin 0 -> 3648 bytes .../ToolbarItemColors.tiff | Bin 0 -> 5402 bytes .../ToolbarItemFonts.tiff | Bin 0 -> 2956 bytes .../TransparentButtonFillN.tiff | Bin 0 -> 376 bytes .../TransparentButtonFillP.tiff | Bin 0 -> 380 bytes .../TransparentButtonLeftN.tiff | Bin 0 -> 708 bytes .../TransparentButtonLeftP.tiff | Bin 0 -> 684 bytes .../TransparentButtonRightN.tiff | Bin 0 -> 774 bytes .../TransparentButtonRightP.tiff | Bin 0 -> 766 bytes .../TransparentCheckboxOffN.tiff | Bin 0 -> 578 bytes .../TransparentCheckboxOffP.tiff | Bin 0 -> 574 bytes .../TransparentCheckboxOnN.tiff | Bin 0 -> 782 bytes .../TransparentCheckboxOnP.tiff | Bin 0 -> 806 bytes .../TransparentPopUpFillN.tiff | Bin 0 -> 376 bytes .../TransparentPopUpFillP.tiff | Bin 0 -> 380 bytes .../TransparentPopUpLeftN.tiff | Bin 0 -> 556 bytes .../TransparentPopUpLeftP.tiff | Bin 0 -> 556 bytes .../TransparentPopUpPullDownRightN.tif | Bin 0 -> 810 bytes .../TransparentPopUpPullDownRightP.tif | Bin 0 -> 824 bytes .../TransparentPopUpRightN.tiff | Bin 0 -> 794 bytes .../TransparentPopUpRightP.tiff | Bin 0 -> 814 bytes .../TransparentScrollerKnobBottom.tif | Bin 0 -> 3732 bytes .../TransparentScrollerKnobHorizontalFill.tif | Bin 0 -> 3574 bytes .../TransparentScrollerKnobLeft.tif | Bin 0 -> 3712 bytes .../TransparentScrollerKnobRight.tif | Bin 0 -> 3724 bytes .../TransparentScrollerKnobTop.tif | Bin 0 -> 3730 bytes .../TransparentScrollerKnobVerticalFill.tif | Bin 0 -> 3572 bytes .../TransparentScrollerSlotBottom.tif | Bin 0 -> 3708 bytes .../TransparentScrollerSlotHorizontalFill.tif | Bin 0 -> 3574 bytes .../TransparentScrollerSlotLeft.tif | Bin 0 -> 3686 bytes .../TransparentScrollerSlotRight.tif | Bin 0 -> 3710 bytes .../TransparentScrollerSlotTop.tif | Bin 0 -> 3704 bytes .../TransparentScrollerSlotVerticalFill.tif | Bin 0 -> 3570 bytes .../TransparentSliderThumbN.tiff | Bin 0 -> 686 bytes .../TransparentSliderThumbP.tiff | Bin 0 -> 688 bytes .../TransparentSliderTrackFill.tiff | Bin 0 -> 306 bytes .../TransparentSliderTrackLeft.tiff | Bin 0 -> 316 bytes .../TransparentSliderTrackRight.tiff | Bin 0 -> 316 bytes .../TransparentSliderTriangleThumbN.tiff | Bin 0 -> 1272 bytes .../TransparentSliderTriangleThumbP.tiff | Bin 0 -> 1282 bytes 333 files changed, 30140 insertions(+), 3 deletions(-) create mode 100644 Frameworks/BWToolkitFramework.framework/BWAddMiniBottomBar.classdescription create mode 100644 Frameworks/BWToolkitFramework.framework/BWAddMiniBottomBar.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWAddMiniBottomBar.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWAddMiniBottomBarIntegration.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWAddRegularBottomBar.classdescription create mode 100644 Frameworks/BWToolkitFramework.framework/BWAddRegularBottomBar.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWAddRegularBottomBar.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWAddRegularBottomBarIntegration.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWAddSheetBottomBar.classdescription create mode 100644 Frameworks/BWToolkitFramework.framework/BWAddSheetBottomBar.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWAddSheetBottomBar.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWAddSheetBottomBarIntegration.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWAddSmallBottomBar.classdescription create mode 100644 Frameworks/BWToolkitFramework.framework/BWAddSmallBottomBar.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWAddSmallBottomBar.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWAddSmallBottomBarIntegration.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWAnchoredButton.classdescription create mode 100644 Frameworks/BWToolkitFramework.framework/BWAnchoredButton.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWAnchoredButton.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWAnchoredButtonBar.classdescription create mode 100644 Frameworks/BWToolkitFramework.framework/BWAnchoredButtonBar.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWAnchoredButtonBar.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWAnchoredButtonBarInspector.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWAnchoredButtonBarInspector.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWAnchoredButtonBarInspector.xib create mode 100644 Frameworks/BWToolkitFramework.framework/BWAnchoredButtonBarIntegration.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWAnchoredButtonCell.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWAnchoredButtonCell.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWAnchoredButtonIntegration.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWAnchoredPopUpButton.classdescription create mode 100644 Frameworks/BWToolkitFramework.framework/BWAnchoredPopUpButton.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWAnchoredPopUpButton.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWAnchoredPopUpButtonCell.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWAnchoredPopUpButtonCell.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWAnchoredPopUpButtonIntegration.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWBottomBarLibrary.nib/designable.nib create mode 100644 Frameworks/BWToolkitFramework.framework/BWBottomBarLibrary.nib/keyedobjects.nib create mode 100644 Frameworks/BWToolkitFramework.framework/BWButtonBarLibrary.nib/designable.nib create mode 100644 Frameworks/BWToolkitFramework.framework/BWButtonBarLibrary.nib/keyedobjects.nib create mode 100644 Frameworks/BWToolkitFramework.framework/BWControllersLibrary.nib/designable.nib create mode 100644 Frameworks/BWToolkitFramework.framework/BWControllersLibrary.nib/keyedobjects.nib create mode 100644 Frameworks/BWToolkitFramework.framework/BWCustomView.classdescription create mode 100644 Frameworks/BWToolkitFramework.framework/BWCustomView.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWCustomView.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWCustomViewIntegration.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWGradientBox.classdescription create mode 100644 Frameworks/BWToolkitFramework.framework/BWGradientBox.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWGradientBox.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWGradientBoxInspector.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWGradientBoxInspector.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWGradientBoxInspector.xib create mode 100644 Frameworks/BWToolkitFramework.framework/BWGradientBoxIntegration.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWGradientWell.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWGradientWell.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWGradientWellColorWell.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWGradientWellColorWell.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWHyperlinkButton.classdescription create mode 100644 Frameworks/BWToolkitFramework.framework/BWHyperlinkButton.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWHyperlinkButton.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWHyperlinkButtonCell.classdescription create mode 100644 Frameworks/BWToolkitFramework.framework/BWHyperlinkButtonCell.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWHyperlinkButtonCell.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWHyperlinkButtonInspector.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWHyperlinkButtonInspector.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWHyperlinkButtonInspector.xib create mode 100644 Frameworks/BWToolkitFramework.framework/BWHyperlinkButtonIntegration.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWInsetTextField.classdescription create mode 100644 Frameworks/BWToolkitFramework.framework/BWInsetTextField.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWInsetTextField.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWRemoveBottomBar.classdescription create mode 100644 Frameworks/BWToolkitFramework.framework/BWRemoveBottomBar.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWRemoveBottomBar.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWRemoveBottomBarIntegration.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWSelectableToolbar.classdescription create mode 100644 Frameworks/BWToolkitFramework.framework/BWSelectableToolbar.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWSelectableToolbar.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWSelectableToolbarHelper.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWSelectableToolbarHelper.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWSelectableToolbarInspector.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWSelectableToolbarInspector.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWSelectableToolbarInspector.nib/designable.nib create mode 100644 Frameworks/BWToolkitFramework.framework/BWSelectableToolbarInspector.nib/keyedobjects.nib create mode 100644 Frameworks/BWToolkitFramework.framework/BWSelectableToolbarIntegration.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWSheetController.classdescription create mode 100644 Frameworks/BWToolkitFramework.framework/BWSheetController.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWSheetController.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWSheetControllerIntegration.m create mode 100755 Frameworks/BWToolkitFramework.framework/BWSplitView.classdescription create mode 100644 Frameworks/BWToolkitFramework.framework/BWSplitView.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWSplitView.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWSplitViewInspector.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWSplitViewInspector.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWSplitViewInspector.xib create mode 100644 Frameworks/BWToolkitFramework.framework/BWSplitViewInspectorAutosizingButtonCell.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWSplitViewInspectorAutosizingButtonCell.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWSplitViewInspectorAutosizingView.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWSplitViewInspectorAutosizingView.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWSplitViewIntegration.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWSplitViewLibrary.nib/designable.nib create mode 100644 Frameworks/BWToolkitFramework.framework/BWSplitViewLibrary.nib/keyedobjects.nib create mode 100644 Frameworks/BWToolkitFramework.framework/BWStyledTextField.classdescription create mode 100644 Frameworks/BWToolkitFramework.framework/BWStyledTextField.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWStyledTextField.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWStyledTextFieldCell.classdescription create mode 100644 Frameworks/BWToolkitFramework.framework/BWStyledTextFieldCell.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWStyledTextFieldCell.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWStyledTextFieldInspector.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWStyledTextFieldInspector.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWStyledTextFieldInspector.xib create mode 100644 Frameworks/BWToolkitFramework.framework/BWStyledTextFieldIntegration.m create mode 100755 Frameworks/BWToolkitFramework.framework/BWTexturedSlider.classdescription create mode 100755 Frameworks/BWToolkitFramework.framework/BWTexturedSlider.h create mode 100755 Frameworks/BWToolkitFramework.framework/BWTexturedSlider.m create mode 100755 Frameworks/BWToolkitFramework.framework/BWTexturedSliderCell.classdescription create mode 100755 Frameworks/BWToolkitFramework.framework/BWTexturedSliderCell.h create mode 100755 Frameworks/BWToolkitFramework.framework/BWTexturedSliderCell.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWTexturedSliderInspector.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWTexturedSliderInspector.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWTexturedSliderInspector.nib/designable.nib create mode 100644 Frameworks/BWToolkitFramework.framework/BWTexturedSliderInspector.nib/keyedobjects.nib create mode 100644 Frameworks/BWToolkitFramework.framework/BWTexturedSliderIntegration.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWTokenAttachmentCell.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWTokenAttachmentCell.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWTokenField.classdescription create mode 100644 Frameworks/BWToolkitFramework.framework/BWTokenField.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWTokenField.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWTokenFieldCell.classdescription create mode 100644 Frameworks/BWToolkitFramework.framework/BWTokenFieldCell.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWTokenFieldCell.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWToolbarItem.classdescription create mode 100644 Frameworks/BWToolkitFramework.framework/BWToolbarItem.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWToolbarItem.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWToolbarItemInspector.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWToolbarItemInspector.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWToolbarItemInspector.xib create mode 100644 Frameworks/BWToolkitFramework.framework/BWToolbarItemIntegration.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWToolbarItemsLibrary.nib/designable.nib create mode 100644 Frameworks/BWToolkitFramework.framework/BWToolbarItemsLibrary.nib/keyedobjects.nib create mode 100644 Frameworks/BWToolkitFramework.framework/BWToolbarShowColorsItem.classdescription create mode 100644 Frameworks/BWToolkitFramework.framework/BWToolbarShowColorsItem.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWToolbarShowColorsItem.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWToolbarShowFontsItem.classdescription create mode 100644 Frameworks/BWToolkitFramework.framework/BWToolbarShowFontsItem.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWToolbarShowFontsItem.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWToolkit.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWToolkit.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWToolkit.xcodeproj/TemplateIcon.icns create mode 100644 Frameworks/BWToolkitFramework.framework/BWToolkit.xcodeproj/project.pbxproj delete mode 120000 Frameworks/BWToolkitFramework.framework/BWToolkitFramework create mode 100644 Frameworks/BWToolkitFramework.framework/BWToolkitFramework-Info.plist create mode 100644 Frameworks/BWToolkitFramework.framework/BWToolkitFramework.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWToolkit_Prefix.pch create mode 100644 Frameworks/BWToolkitFramework.framework/BWTransparentButton.classdescription create mode 100644 Frameworks/BWToolkitFramework.framework/BWTransparentButton.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWTransparentButton.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWTransparentButtonCell.classdescription create mode 100644 Frameworks/BWToolkitFramework.framework/BWTransparentButtonCell.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWTransparentButtonCell.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWTransparentButtonIntegration.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWTransparentCheckbox.classdescription create mode 100644 Frameworks/BWToolkitFramework.framework/BWTransparentCheckbox.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWTransparentCheckbox.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWTransparentCheckboxCell.classdescription create mode 100644 Frameworks/BWToolkitFramework.framework/BWTransparentCheckboxCell.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWTransparentCheckboxCell.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWTransparentCheckboxIntegration.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWTransparentControlsLibrary.nib/designable.nib create mode 100644 Frameworks/BWToolkitFramework.framework/BWTransparentControlsLibrary.nib/keyedobjects.nib create mode 100644 Frameworks/BWToolkitFramework.framework/BWTransparentPopUpButton.classdescription create mode 100644 Frameworks/BWToolkitFramework.framework/BWTransparentPopUpButton.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWTransparentPopUpButton.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWTransparentPopUpButtonCell.classdescription create mode 100644 Frameworks/BWToolkitFramework.framework/BWTransparentPopUpButtonCell.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWTransparentPopUpButtonCell.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWTransparentPopUpButtonIntegration.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWTransparentScrollView.classdescription create mode 100644 Frameworks/BWToolkitFramework.framework/BWTransparentScrollView.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWTransparentScrollView.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWTransparentScrollViewIntegration.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWTransparentScroller.classdescription create mode 100644 Frameworks/BWToolkitFramework.framework/BWTransparentScroller.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWTransparentScroller.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWTransparentSlider.classdescription create mode 100644 Frameworks/BWToolkitFramework.framework/BWTransparentSlider.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWTransparentSlider.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWTransparentSliderCell.classdescription create mode 100644 Frameworks/BWToolkitFramework.framework/BWTransparentSliderCell.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWTransparentSliderCell.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWTransparentSliderIntegration.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWTransparentTableView.classdescription create mode 100644 Frameworks/BWToolkitFramework.framework/BWTransparentTableView.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWTransparentTableView.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWTransparentTableViewCell.classdescription create mode 100644 Frameworks/BWToolkitFramework.framework/BWTransparentTableViewCell.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWTransparentTableViewCell.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWTransparentTableViewIntegration.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWTransparentTextFieldCell.classdescription create mode 100644 Frameworks/BWToolkitFramework.framework/BWTransparentTextFieldCell.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWTransparentTextFieldCell.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWUnanchoredButton.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWUnanchoredButton.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWUnanchoredButtonCell.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWUnanchoredButtonCell.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWUnanchoredButtonContainer.h create mode 100644 Frameworks/BWToolkitFramework.framework/BWUnanchoredButtonContainer.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWUnanchoredButtonContainerIntegration.m create mode 100644 Frameworks/BWToolkitFramework.framework/BWUnanchoredButtonIntegration.m create mode 100644 Frameworks/BWToolkitFramework.framework/ButtonBarPullDownArrow.pdf create mode 100644 Frameworks/BWToolkitFramework.framework/English.lproj/BWToolkitLibrary.nib/designable.nib create mode 100644 Frameworks/BWToolkitFramework.framework/English.lproj/BWToolkitLibrary.nib/keyedobjects.nib create mode 100644 Frameworks/BWToolkitFramework.framework/English.lproj/InfoPlist.strings create mode 100644 Frameworks/BWToolkitFramework.framework/GradientSplitViewDimpleBitmap.tif create mode 100644 Frameworks/BWToolkitFramework.framework/GradientSplitViewDimpleVector.pdf create mode 100644 Frameworks/BWToolkitFramework.framework/GradientWellPattern.tif delete mode 120000 Frameworks/BWToolkitFramework.framework/Headers create mode 100644 Frameworks/BWToolkitFramework.framework/IBColor.h create mode 100644 Frameworks/BWToolkitFramework.framework/Info.plist create mode 100644 Frameworks/BWToolkitFramework.framework/Inspector-ButtonBarMode1.tif create mode 100644 Frameworks/BWToolkitFramework.framework/Inspector-ButtonBarMode1Pressed.tif create mode 100644 Frameworks/BWToolkitFramework.framework/Inspector-ButtonBarMode2.tif create mode 100644 Frameworks/BWToolkitFramework.framework/Inspector-ButtonBarMode2Pressed.tif create mode 100644 Frameworks/BWToolkitFramework.framework/Inspector-ButtonBarMode3.tif create mode 100644 Frameworks/BWToolkitFramework.framework/Inspector-ButtonBarMode3Pressed.tif create mode 100644 Frameworks/BWToolkitFramework.framework/Inspector-ButtonBarModeSelection.tif create mode 100644 Frameworks/BWToolkitFramework.framework/Inspector-SplitViewArrowBlueLeft.tif create mode 100644 Frameworks/BWToolkitFramework.framework/Inspector-SplitViewArrowBlueRight.tif create mode 100644 Frameworks/BWToolkitFramework.framework/Inspector-SplitViewArrowRedFill.tif create mode 100644 Frameworks/BWToolkitFramework.framework/Inspector-SplitViewArrowRedLeft.tif create mode 100644 Frameworks/BWToolkitFramework.framework/Inspector-SplitViewArrowRedRight.tif create mode 100644 Frameworks/BWToolkitFramework.framework/Inspector-SplitViewBackground.tiff create mode 100644 Frameworks/BWToolkitFramework.framework/Library-AddMiniBottomBar.tif create mode 100644 Frameworks/BWToolkitFramework.framework/Library-AddRegularBottomBar.tif create mode 100644 Frameworks/BWToolkitFramework.framework/Library-AddSheetBottomBar.tif create mode 100644 Frameworks/BWToolkitFramework.framework/Library-AddSmallBottomBar.tif create mode 100644 Frameworks/BWToolkitFramework.framework/Library-AnchoredButton.tif create mode 100644 Frameworks/BWToolkitFramework.framework/Library-AnchoredButtonBar.tif create mode 100644 Frameworks/BWToolkitFramework.framework/Library-AnchoredPopUpButton.tif create mode 100644 Frameworks/BWToolkitFramework.framework/Library-CustomView.tif create mode 100644 Frameworks/BWToolkitFramework.framework/Library-GradientBox.tif create mode 100644 Frameworks/BWToolkitFramework.framework/Library-GradientSplitView.tif create mode 100644 Frameworks/BWToolkitFramework.framework/Library-HorizontalSplitView.tif create mode 100644 Frameworks/BWToolkitFramework.framework/Library-InsetTextField.tif create mode 100644 Frameworks/BWToolkitFramework.framework/Library-RemoveBottomBar.tif create mode 100644 Frameworks/BWToolkitFramework.framework/Library-SelectableToolbar.tif create mode 100644 Frameworks/BWToolkitFramework.framework/Library-SheetController.tif create mode 100644 Frameworks/BWToolkitFramework.framework/Library-ShowColors.tif create mode 100644 Frameworks/BWToolkitFramework.framework/Library-ShowFonts.tif create mode 100644 Frameworks/BWToolkitFramework.framework/Library-StyledTextField.tif create mode 100644 Frameworks/BWToolkitFramework.framework/Library-TexturedAddButton.tif create mode 100644 Frameworks/BWToolkitFramework.framework/Library-TexturedRemoveButton.tif create mode 100644 Frameworks/BWToolkitFramework.framework/Library-TexturedSlider.tif create mode 100644 Frameworks/BWToolkitFramework.framework/Library-TokenField.tif create mode 100644 Frameworks/BWToolkitFramework.framework/Library-ToolbarItem.tiff create mode 100644 Frameworks/BWToolkitFramework.framework/Library-TransparentButton.tif create mode 100644 Frameworks/BWToolkitFramework.framework/Library-TransparentCheckbox.tif create mode 100644 Frameworks/BWToolkitFramework.framework/Library-TransparentCheckboxCell.tif create mode 100644 Frameworks/BWToolkitFramework.framework/Library-TransparentLabel.tif create mode 100644 Frameworks/BWToolkitFramework.framework/Library-TransparentPopUpButton.tif create mode 100644 Frameworks/BWToolkitFramework.framework/Library-TransparentSlider.tif create mode 100644 Frameworks/BWToolkitFramework.framework/Library-TransparentTableView.tif create mode 100644 Frameworks/BWToolkitFramework.framework/Library-TransparentTextView.tif create mode 100644 Frameworks/BWToolkitFramework.framework/Library-VerticalSplitView.tif create mode 100644 Frameworks/BWToolkitFramework.framework/License.rtf create mode 100644 Frameworks/BWToolkitFramework.framework/NSApplication+BWAdditions.h create mode 100644 Frameworks/BWToolkitFramework.framework/NSApplication+BWAdditions.m create mode 100644 Frameworks/BWToolkitFramework.framework/NSColor+BWAdditions.h create mode 100644 Frameworks/BWToolkitFramework.framework/NSColor+BWAdditions.m create mode 100644 Frameworks/BWToolkitFramework.framework/NSCustomView.h create mode 100644 Frameworks/BWToolkitFramework.framework/NSEvent+BWAdditions.h create mode 100644 Frameworks/BWToolkitFramework.framework/NSEvent+BWAdditions.m create mode 100644 Frameworks/BWToolkitFramework.framework/NSImage+BWAdditions.h create mode 100644 Frameworks/BWToolkitFramework.framework/NSImage+BWAdditions.m create mode 100644 Frameworks/BWToolkitFramework.framework/NSString+BWAdditions.h create mode 100644 Frameworks/BWToolkitFramework.framework/NSString+BWAdditions.m create mode 100644 Frameworks/BWToolkitFramework.framework/NSTokenAttachment.h create mode 100644 Frameworks/BWToolkitFramework.framework/NSTokenAttachmentCell.h create mode 100644 Frameworks/BWToolkitFramework.framework/NSView+BWAdditions.h create mode 100644 Frameworks/BWToolkitFramework.framework/NSView+BWAdditions.m create mode 100644 Frameworks/BWToolkitFramework.framework/NSWindow+BWAdditions.h create mode 100644 Frameworks/BWToolkitFramework.framework/NSWindow+BWAdditions.m create mode 100644 Frameworks/BWToolkitFramework.framework/NSWindow-NSTimeMachineSupport.h create mode 100644 Frameworks/BWToolkitFramework.framework/Release Notes.rtf delete mode 120000 Frameworks/BWToolkitFramework.framework/Resources create mode 100644 Frameworks/BWToolkitFramework.framework/TexturedSliderPhotoLarge.tif create mode 100644 Frameworks/BWToolkitFramework.framework/TexturedSliderPhotoSmall.tif create mode 100644 Frameworks/BWToolkitFramework.framework/TexturedSliderSpeakerLoud.png create mode 100644 Frameworks/BWToolkitFramework.framework/TexturedSliderSpeakerQuiet.png create mode 100644 Frameworks/BWToolkitFramework.framework/TexturedSliderThumbN.tiff create mode 100644 Frameworks/BWToolkitFramework.framework/TexturedSliderThumbP.tiff create mode 100644 Frameworks/BWToolkitFramework.framework/TexturedSliderTrackFill.tiff create mode 100644 Frameworks/BWToolkitFramework.framework/TexturedSliderTrackLeft.tiff create mode 100644 Frameworks/BWToolkitFramework.framework/TexturedSliderTrackRight.tiff create mode 100644 Frameworks/BWToolkitFramework.framework/TokenFieldArrow.tif create mode 100644 Frameworks/BWToolkitFramework.framework/TokenFieldHighlightedArrow.tif create mode 100644 Frameworks/BWToolkitFramework.framework/ToolbarItemColors.tiff create mode 100644 Frameworks/BWToolkitFramework.framework/ToolbarItemFonts.tiff create mode 100644 Frameworks/BWToolkitFramework.framework/TransparentButtonFillN.tiff create mode 100644 Frameworks/BWToolkitFramework.framework/TransparentButtonFillP.tiff create mode 100644 Frameworks/BWToolkitFramework.framework/TransparentButtonLeftN.tiff create mode 100644 Frameworks/BWToolkitFramework.framework/TransparentButtonLeftP.tiff create mode 100644 Frameworks/BWToolkitFramework.framework/TransparentButtonRightN.tiff create mode 100644 Frameworks/BWToolkitFramework.framework/TransparentButtonRightP.tiff create mode 100644 Frameworks/BWToolkitFramework.framework/TransparentCheckboxOffN.tiff create mode 100644 Frameworks/BWToolkitFramework.framework/TransparentCheckboxOffP.tiff create mode 100644 Frameworks/BWToolkitFramework.framework/TransparentCheckboxOnN.tiff create mode 100644 Frameworks/BWToolkitFramework.framework/TransparentCheckboxOnP.tiff create mode 100644 Frameworks/BWToolkitFramework.framework/TransparentPopUpFillN.tiff create mode 100644 Frameworks/BWToolkitFramework.framework/TransparentPopUpFillP.tiff create mode 100644 Frameworks/BWToolkitFramework.framework/TransparentPopUpLeftN.tiff create mode 100644 Frameworks/BWToolkitFramework.framework/TransparentPopUpLeftP.tiff create mode 100644 Frameworks/BWToolkitFramework.framework/TransparentPopUpPullDownRightN.tif create mode 100644 Frameworks/BWToolkitFramework.framework/TransparentPopUpPullDownRightP.tif create mode 100644 Frameworks/BWToolkitFramework.framework/TransparentPopUpRightN.tiff create mode 100644 Frameworks/BWToolkitFramework.framework/TransparentPopUpRightP.tiff create mode 100644 Frameworks/BWToolkitFramework.framework/TransparentScrollerKnobBottom.tif create mode 100644 Frameworks/BWToolkitFramework.framework/TransparentScrollerKnobHorizontalFill.tif create mode 100644 Frameworks/BWToolkitFramework.framework/TransparentScrollerKnobLeft.tif create mode 100644 Frameworks/BWToolkitFramework.framework/TransparentScrollerKnobRight.tif create mode 100644 Frameworks/BWToolkitFramework.framework/TransparentScrollerKnobTop.tif create mode 100644 Frameworks/BWToolkitFramework.framework/TransparentScrollerKnobVerticalFill.tif create mode 100644 Frameworks/BWToolkitFramework.framework/TransparentScrollerSlotBottom.tif create mode 100644 Frameworks/BWToolkitFramework.framework/TransparentScrollerSlotHorizontalFill.tif create mode 100644 Frameworks/BWToolkitFramework.framework/TransparentScrollerSlotLeft.tif create mode 100644 Frameworks/BWToolkitFramework.framework/TransparentScrollerSlotRight.tif create mode 100644 Frameworks/BWToolkitFramework.framework/TransparentScrollerSlotTop.tif create mode 100644 Frameworks/BWToolkitFramework.framework/TransparentScrollerSlotVerticalFill.tif create mode 100644 Frameworks/BWToolkitFramework.framework/TransparentSliderThumbN.tiff create mode 100644 Frameworks/BWToolkitFramework.framework/TransparentSliderThumbP.tiff create mode 100644 Frameworks/BWToolkitFramework.framework/TransparentSliderTrackFill.tiff create mode 100644 Frameworks/BWToolkitFramework.framework/TransparentSliderTrackLeft.tiff create mode 100644 Frameworks/BWToolkitFramework.framework/TransparentSliderTrackRight.tiff create mode 100644 Frameworks/BWToolkitFramework.framework/TransparentSliderTriangleThumbN.tiff create mode 100644 Frameworks/BWToolkitFramework.framework/TransparentSliderTriangleThumbP.tiff (limited to 'Frameworks/BWToolkitFramework.framework') diff --git a/Frameworks/BWToolkitFramework.framework/BWAddMiniBottomBar.classdescription b/Frameworks/BWToolkitFramework.framework/BWAddMiniBottomBar.classdescription new file mode 100644 index 00000000..50e4adcb --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWAddMiniBottomBar.classdescription @@ -0,0 +1,12 @@ +{ + Actions = { + // Define action descriptions here, for example + // "myAction:" = id; + }; + Outlets = { + // Define outlet descriptions here, for example + // myOutlet = NSView; + }; + ClassName = BWAddMiniBottomBar; + SuperClass = NSView; +} diff --git a/Frameworks/BWToolkitFramework.framework/BWAddMiniBottomBar.h b/Frameworks/BWToolkitFramework.framework/BWAddMiniBottomBar.h new file mode 100644 index 00000000..0e1683ec --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWAddMiniBottomBar.h @@ -0,0 +1,16 @@ +// +// BWAddMiniBottomBar.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface BWAddMiniBottomBar : NSView +{ + +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWAddMiniBottomBar.m b/Frameworks/BWToolkitFramework.framework/BWAddMiniBottomBar.m new file mode 100644 index 00000000..6cf162fe --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWAddMiniBottomBar.m @@ -0,0 +1,51 @@ +// +// BWAddMiniBottomBar.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWAddMiniBottomBar.h" +#import "NSWindow-NSTimeMachineSupport.h" + +@interface NSWindow (BWBBPrivate) +- (void)setBottomCornerRounded:(BOOL)flag; +@end + +@implementation BWAddMiniBottomBar + +- (id)initWithCoder:(NSCoder *)decoder; +{ + if ((self = [super initWithCoder:decoder]) != nil) + { + if ([self respondsToSelector:@selector(ibDidAddToDesignableDocument:)]) + [self performSelector:@selector(addBottomBar) withObject:nil afterDelay:0]; + } + return self; +} + +- (void)awakeFromNib +{ + [[self window] setContentBorderThickness:16 forEdge:NSMinYEdge]; + + // Private method + if ([[self window] respondsToSelector:@selector(setBottomCornerRounded:)]) + [[self window] setBottomCornerRounded:NO]; +} + +- (void)drawRect:(NSRect)aRect +{ + if ([self respondsToSelector:@selector(ibDidAddToDesignableDocument:)] && [[self window] contentBorderThicknessForEdge:NSMinYEdge] == 0) + [self performSelector:@selector(addBottomBar) withObject:nil afterDelay:0]; + + if ([[self window] isSheet] && [[self window] respondsToSelector:@selector(setMovable:)]) + [[self window] setMovable:NO]; +} + +- (NSRect)bounds +{ + return NSMakeRect(-10000,-10000,0,0); +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWAddMiniBottomBarIntegration.m b/Frameworks/BWToolkitFramework.framework/BWAddMiniBottomBarIntegration.m new file mode 100644 index 00000000..7c6b9c14 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWAddMiniBottomBarIntegration.m @@ -0,0 +1,58 @@ +// +// BWAddMiniBottomBarIntegration.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import +#import "BWAddSmallBottomBar.h" +#import "BWAddRegularBottomBar.h" +#import "BWAddMiniBottomBar.h" +#import "BWAddSheetBottomBar.h" +#import "NSWindow+BWAdditions.h" + +@interface NSWindow (BWBBPrivate) +- (void)setBottomCornerRounded:(BOOL)flag; +@end + +@implementation BWAddMiniBottomBar ( BWAddMiniBottomBarIntegration ) + +- (void)ibDidAddToDesignableDocument:(IBDocument *)document +{ + [super ibDidAddToDesignableDocument:document]; + + [self performSelector:@selector(addBottomBar) withObject:nil afterDelay:0]; + [self performSelector:@selector(removeOtherBottomBarViewsInDocument:) withObject:document afterDelay:0]; +} + +- (void)addBottomBar +{ + if ([[self window] isTextured] == NO) + { + [[self window] setContentBorderThickness:16 forEdge:NSMinYEdge]; + + // Private method + if ([[self window] respondsToSelector:@selector(setBottomCornerRounded:)]) + [[self window] setBottomCornerRounded:NO]; + } +} + +- (void)removeOtherBottomBarViewsInDocument:(IBDocument *)document +{ + NSArray *subviews = [[[self window] contentView] subviews]; + + int i; + for (i = 0; i < [subviews count]; i++) + { + NSView *view = [subviews objectAtIndex:i]; + if (view != self && ([view isKindOfClass:[BWAddRegularBottomBar class]] || [view isKindOfClass:[BWAddSmallBottomBar class]] || [view isKindOfClass:[BWAddMiniBottomBar class]] || [view isKindOfClass:[BWAddSheetBottomBar class]])) + { + [document removeObject:view]; + [view removeFromSuperview]; + } + } +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWAddRegularBottomBar.classdescription b/Frameworks/BWToolkitFramework.framework/BWAddRegularBottomBar.classdescription new file mode 100644 index 00000000..dd613eb4 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWAddRegularBottomBar.classdescription @@ -0,0 +1,12 @@ +{ + Actions = { + // Define action descriptions here, for example + // "myAction:" = id; + }; + Outlets = { + // Define outlet descriptions here, for example + // myOutlet = NSView; + }; + ClassName = BWAddRegularBottomBar; + SuperClass = NSView; +} diff --git a/Frameworks/BWToolkitFramework.framework/BWAddRegularBottomBar.h b/Frameworks/BWToolkitFramework.framework/BWAddRegularBottomBar.h new file mode 100644 index 00000000..e042df9c --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWAddRegularBottomBar.h @@ -0,0 +1,16 @@ +// +// BWAddRegularBottomBar.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface BWAddRegularBottomBar : NSView +{ + +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWAddRegularBottomBar.m b/Frameworks/BWToolkitFramework.framework/BWAddRegularBottomBar.m new file mode 100644 index 00000000..229403b1 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWAddRegularBottomBar.m @@ -0,0 +1,43 @@ +// +// BWAddRegularBottomBar.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWAddRegularBottomBar.h" +#import "NSWindow-NSTimeMachineSupport.h" + +@implementation BWAddRegularBottomBar + +- (id)initWithCoder:(NSCoder *)decoder; +{ + if ((self = [super initWithCoder:decoder]) != nil) + { + if ([self respondsToSelector:@selector(ibDidAddToDesignableDocument:)]) + [self performSelector:@selector(addBottomBar) withObject:nil afterDelay:0]; + } + return self; +} + +- (void)awakeFromNib +{ + [[self window] setContentBorderThickness:34 forEdge:NSMinYEdge]; +} + +- (void)drawRect:(NSRect)aRect +{ + if ([self respondsToSelector:@selector(ibDidAddToDesignableDocument:)] && [[self window] contentBorderThicknessForEdge:NSMinYEdge] == 0) + [self performSelector:@selector(addBottomBar) withObject:nil afterDelay:0]; + + if ([[self window] isSheet] && [[self window] respondsToSelector:@selector(setMovable:)]) + [[self window] setMovable:NO]; +} + +- (NSRect)bounds +{ + return NSMakeRect(-10000,-10000,0,0); +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWAddRegularBottomBarIntegration.m b/Frameworks/BWToolkitFramework.framework/BWAddRegularBottomBarIntegration.m new file mode 100644 index 00000000..ef5a06b1 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWAddRegularBottomBarIntegration.m @@ -0,0 +1,58 @@ +// +// BWAddRegularBottomBarIntegration.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import +#import "BWAddSmallBottomBar.h" +#import "BWAddRegularBottomBar.h" +#import "BWAddMiniBottomBar.h" +#import "BWAddSheetBottomBar.h" +#import "NSWindow+BWAdditions.h" + +@interface NSWindow (BWBBPrivate) +- (void)setBottomCornerRounded:(BOOL)flag; +@end + +@implementation BWAddRegularBottomBar ( BWAddRegularBottomBarIntegration ) + +- (void)ibDidAddToDesignableDocument:(IBDocument *)document +{ + [super ibDidAddToDesignableDocument:document]; + + [self performSelector:@selector(addBottomBar) withObject:nil afterDelay:0]; + [self performSelector:@selector(removeOtherBottomBarViewsInDocument:) withObject:document afterDelay:0]; +} + +- (void)addBottomBar +{ + if ([[self window] isTextured] == NO) + { + [[self window] setContentBorderThickness:34 forEdge:NSMinYEdge]; + + // Private method + if ([[self window] respondsToSelector:@selector(setBottomCornerRounded:)]) + [[self window] setBottomCornerRounded:YES]; + } +} + +- (void)removeOtherBottomBarViewsInDocument:(IBDocument *)document +{ + NSArray *subviews = [[[self window] contentView] subviews]; + + int i; + for (i = 0; i < [subviews count]; i++) + { + NSView *view = [subviews objectAtIndex:i]; + if (view != self && ([view isKindOfClass:[BWAddRegularBottomBar class]] || [view isKindOfClass:[BWAddSmallBottomBar class]] || [view isKindOfClass:[BWAddMiniBottomBar class]] || [view isKindOfClass:[BWAddSheetBottomBar class]])) + { + [document removeObject:view]; + [view removeFromSuperview]; + } + } +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWAddSheetBottomBar.classdescription b/Frameworks/BWToolkitFramework.framework/BWAddSheetBottomBar.classdescription new file mode 100644 index 00000000..101ec15f --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWAddSheetBottomBar.classdescription @@ -0,0 +1,12 @@ +{ + Actions = { + // Define action descriptions here, for example + // "myAction:" = id; + }; + Outlets = { + // Define outlet descriptions here, for example + // myOutlet = NSView; + }; + ClassName = BWAddSheetBottomBar; + SuperClass = NSView; +} diff --git a/Frameworks/BWToolkitFramework.framework/BWAddSheetBottomBar.h b/Frameworks/BWToolkitFramework.framework/BWAddSheetBottomBar.h new file mode 100644 index 00000000..9ef90ea0 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWAddSheetBottomBar.h @@ -0,0 +1,16 @@ +// +// BWAddSheetBottomBar.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface BWAddSheetBottomBar : NSView +{ + +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWAddSheetBottomBar.m b/Frameworks/BWToolkitFramework.framework/BWAddSheetBottomBar.m new file mode 100644 index 00000000..d84c4bec --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWAddSheetBottomBar.m @@ -0,0 +1,51 @@ +// +// BWAddSheetBottomBar.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWAddSheetBottomBar.h" +#import "NSWindow-NSTimeMachineSupport.h" + +@interface NSWindow (BWPrivate) +- (void)setBottomCornerRounded:(BOOL)flag; +@end + +@implementation BWAddSheetBottomBar + +- (id)initWithCoder:(NSCoder *)decoder; +{ + if ((self = [super initWithCoder:decoder]) != nil) + { + if ([self respondsToSelector:@selector(ibDidAddToDesignableDocument:)]) + [self performSelector:@selector(addBottomBar) withObject:nil afterDelay:0]; + } + return self; +} + +- (void)awakeFromNib +{ + [[self window] setContentBorderThickness:40 forEdge:NSMinYEdge]; + + // Private method + if ([[self window] respondsToSelector:@selector(setBottomCornerRounded:)]) + [[self window] setBottomCornerRounded:NO]; +} + +- (void)drawRect:(NSRect)aRect +{ + if ([self respondsToSelector:@selector(ibDidAddToDesignableDocument:)] && [[self window] contentBorderThicknessForEdge:NSMinYEdge] == 0) + [self performSelector:@selector(addBottomBar) withObject:nil afterDelay:0]; + + if ([[self window] isSheet] && [[self window] respondsToSelector:@selector(setMovable:)]) + [[self window] setMovable:NO]; +} + +- (NSRect)bounds +{ + return NSMakeRect(-10000,-10000,0,0); +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWAddSheetBottomBarIntegration.m b/Frameworks/BWToolkitFramework.framework/BWAddSheetBottomBarIntegration.m new file mode 100644 index 00000000..b155886b --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWAddSheetBottomBarIntegration.m @@ -0,0 +1,58 @@ +// +// BWAddSheetBottomBarIntegration.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import +#import "BWAddSmallBottomBar.h" +#import "BWAddRegularBottomBar.h" +#import "BWAddMiniBottomBar.h" +#import "BWAddSheetBottomBar.h" +#import "NSWindow+BWAdditions.h" + +@interface NSWindow (BWBBPrivate) +- (void)setBottomCornerRounded:(BOOL)flag; +@end + +@implementation BWAddSheetBottomBar ( BWAddSheetBottomBarIntegration ) + +- (void)ibDidAddToDesignableDocument:(IBDocument *)document +{ + [super ibDidAddToDesignableDocument:document]; + + [self performSelector:@selector(addBottomBar) withObject:nil afterDelay:0]; + [self performSelector:@selector(removeOtherBottomBarViewsInDocument:) withObject:document afterDelay:0]; +} + +- (void)addBottomBar +{ + if ([[self window] isTextured] == NO) + { + [[self window] setContentBorderThickness:40 forEdge:NSMinYEdge]; + + // Private method + if ([[self window] respondsToSelector:@selector(setBottomCornerRounded:)]) + [[self window] setBottomCornerRounded:NO]; + } +} + +- (void)removeOtherBottomBarViewsInDocument:(IBDocument *)document +{ + NSArray *subviews = [[[self window] contentView] subviews]; + + int i; + for (i = 0; i < [subviews count]; i++) + { + NSView *view = [subviews objectAtIndex:i]; + if (view != self && ([view isKindOfClass:[BWAddRegularBottomBar class]] || [view isKindOfClass:[BWAddSmallBottomBar class]] || [view isKindOfClass:[BWAddMiniBottomBar class]] || [view isKindOfClass:[BWAddSheetBottomBar class]])) + { + [document removeObject:view]; + [view removeFromSuperview]; + } + } +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWAddSmallBottomBar.classdescription b/Frameworks/BWToolkitFramework.framework/BWAddSmallBottomBar.classdescription new file mode 100644 index 00000000..24192d4f --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWAddSmallBottomBar.classdescription @@ -0,0 +1,12 @@ +{ + Actions = { + // Define action descriptions here, for example + // "myAction:" = id; + }; + Outlets = { + // Define outlet descriptions here, for example + // myOutlet = NSView; + }; + ClassName = BWAddSmallBottomBar; + SuperClass = NSView; +} diff --git a/Frameworks/BWToolkitFramework.framework/BWAddSmallBottomBar.h b/Frameworks/BWToolkitFramework.framework/BWAddSmallBottomBar.h new file mode 100644 index 00000000..70e0b617 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWAddSmallBottomBar.h @@ -0,0 +1,16 @@ +// +// BWAddSmallBottomBar.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface BWAddSmallBottomBar : NSView +{ + +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWAddSmallBottomBar.m b/Frameworks/BWToolkitFramework.framework/BWAddSmallBottomBar.m new file mode 100644 index 00000000..9ba76b4b --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWAddSmallBottomBar.m @@ -0,0 +1,43 @@ +// +// BWAddSmallBottomBar.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWAddSmallBottomBar.h" +#import "NSWindow-NSTimeMachineSupport.h" + +@implementation BWAddSmallBottomBar + +- (id)initWithCoder:(NSCoder *)decoder; +{ + if ((self = [super initWithCoder:decoder]) != nil) + { + if ([self respondsToSelector:@selector(ibDidAddToDesignableDocument:)]) + [self performSelector:@selector(addBottomBar) withObject:nil afterDelay:0]; + } + return self; +} + +- (void)awakeFromNib +{ + [[self window] setContentBorderThickness:24 forEdge:NSMinYEdge]; +} + +- (void)drawRect:(NSRect)aRect +{ + if ([self respondsToSelector:@selector(ibDidAddToDesignableDocument:)] && [[self window] contentBorderThicknessForEdge:NSMinYEdge] == 0) + [self performSelector:@selector(addBottomBar) withObject:nil afterDelay:0]; + + if ([[self window] isSheet] && [[self window] respondsToSelector:@selector(setMovable:)]) + [[self window] setMovable:NO]; +} + +- (NSRect)bounds +{ + return NSMakeRect(-10000,-10000,0,0); +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWAddSmallBottomBarIntegration.m b/Frameworks/BWToolkitFramework.framework/BWAddSmallBottomBarIntegration.m new file mode 100644 index 00000000..b2e79b02 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWAddSmallBottomBarIntegration.m @@ -0,0 +1,59 @@ +// +// BWAddSmallBottomBarIntegration.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import +#import "BWAddSmallBottomBar.h" +#import "BWAddRegularBottomBar.h" +#import "BWAddMiniBottomBar.h" +#import "BWAddSheetBottomBar.h" +#import "NSWindow+BWAdditions.h" + +@interface NSWindow (BWBBPrivate) +- (void)setBottomCornerRounded:(BOOL)flag; +@end + +@implementation BWAddSmallBottomBar ( BWAddSmallBottomBarIntegration ) + +- (void)ibDidAddToDesignableDocument:(IBDocument *)document +{ + [super ibDidAddToDesignableDocument:document]; + + [self performSelector:@selector(addBottomBar) withObject:nil afterDelay:0]; + [self performSelector:@selector(removeOtherBottomBarViewsInDocument:) withObject:document afterDelay:0]; +} + +- (void)addBottomBar +{ + if ([[self window] isTextured] == NO) + { + [[self window] setContentBorderThickness:24 forEdge:NSMinYEdge]; + + // Private method + if ([[self window] respondsToSelector:@selector(setBottomCornerRounded:)]) + [[self window] setBottomCornerRounded:YES]; + } +} + +- (void)removeOtherBottomBarViewsInDocument:(IBDocument *)document +{ + NSArray *subviews = [[[self window] contentView] subviews]; + + int i; + for (i = 0; i < [subviews count]; i++) + { + NSView *view = [subviews objectAtIndex:i]; + if (view != self && ([view isKindOfClass:[BWAddRegularBottomBar class]] || [view isKindOfClass:[BWAddSmallBottomBar class]] || [view isKindOfClass:[BWAddMiniBottomBar class]] || [view isKindOfClass:[BWAddSheetBottomBar class]])) + { + [document removeObject:view]; + [view removeFromSuperview]; + } + } +} + + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWAnchoredButton.classdescription b/Frameworks/BWToolkitFramework.framework/BWAnchoredButton.classdescription new file mode 100644 index 00000000..2b4003c2 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWAnchoredButton.classdescription @@ -0,0 +1,12 @@ +{ + Actions = { + // Define action descriptions here, for example + // "myAction:" = id; + }; + Outlets = { + // Define outlet descriptions here, for example + // myOutlet = NSView; + }; + ClassName = BWAnchoredButton; + SuperClass = NSButton; +} diff --git a/Frameworks/BWToolkitFramework.framework/BWAnchoredButton.h b/Frameworks/BWToolkitFramework.framework/BWAnchoredButton.h new file mode 100644 index 00000000..29edb975 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWAnchoredButton.h @@ -0,0 +1,21 @@ +// +// BWAnchoredButton.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface BWAnchoredButton : NSButton +{ + BOOL isAtLeftEdgeOfBar; + BOOL isAtRightEdgeOfBar; + NSPoint topAndLeftInset; +} + +@property BOOL isAtLeftEdgeOfBar; +@property BOOL isAtRightEdgeOfBar; + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWAnchoredButton.m b/Frameworks/BWToolkitFramework.framework/BWAnchoredButton.m new file mode 100644 index 00000000..4fca331a --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWAnchoredButton.m @@ -0,0 +1,43 @@ +// +// BWAnchoredButton.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWAnchoredButton.h" +#import "BWAnchoredButtonBar.h" +#import "NSView+BWAdditions.h" + +@implementation BWAnchoredButton + +@synthesize isAtLeftEdgeOfBar; +@synthesize isAtRightEdgeOfBar; + +- (id)initWithCoder:(NSCoder *)decoder; +{ + if ((self = [super initWithCoder:decoder]) != nil) + { + if ([BWAnchoredButtonBar wasBorderedBar]) + topAndLeftInset = NSMakePoint(0, 0); + else + topAndLeftInset = NSMakePoint(1, 1); + } + return self; +} + +- (void)mouseDown:(NSEvent *)theEvent +{ + [self bringToFront]; + [super mouseDown:theEvent]; +} + +- (NSRect)frame +{ + NSRect frame = [super frame]; + frame.size.height = 24; + return frame; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWAnchoredButtonBar.classdescription b/Frameworks/BWToolkitFramework.framework/BWAnchoredButtonBar.classdescription new file mode 100644 index 00000000..c677071b --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWAnchoredButtonBar.classdescription @@ -0,0 +1,12 @@ +{ + Actions = { + // Define action descriptions here, for example + // "myAction:" = id; + }; + Outlets = { + // Define outlet descriptions here, for example + // myOutlet = NSView; + }; + ClassName = BWAnchoredButtonBar; + SuperClass = NSView; +} diff --git a/Frameworks/BWToolkitFramework.framework/BWAnchoredButtonBar.h b/Frameworks/BWToolkitFramework.framework/BWAnchoredButtonBar.h new file mode 100644 index 00000000..4ff4a737 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWAnchoredButtonBar.h @@ -0,0 +1,27 @@ +// +// BWAnchoredButtonBar.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface BWAnchoredButtonBar : NSView +{ + BOOL isResizable, isAtBottom, handleIsRightAligned; + int selectedIndex; + id splitViewDelegate; +} + +@property BOOL isResizable, isAtBottom, handleIsRightAligned; +@property int selectedIndex; + +// The mode of this bar with a resize handle makes use of some NSSplitView delegate methods. Use the splitViewDelegate for any custom delegate implementations +// you'd like to provide. +@property (assign) id splitViewDelegate; + ++ (BOOL)wasBorderedBar; + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWAnchoredButtonBar.m b/Frameworks/BWToolkitFramework.framework/BWAnchoredButtonBar.m new file mode 100644 index 00000000..48f20cdb --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWAnchoredButtonBar.m @@ -0,0 +1,350 @@ +// +// BWAnchoredButtonBar.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWAnchoredButtonBar.h" +#import "NSColor+BWAdditions.h" +#import "NSView+BWAdditions.h" +#import "BWAnchoredButton.h" + +static NSColor *topLineColor, *bottomLineColor; +static NSColor *topColor, *middleTopColor, *middleBottomColor, *bottomColor; +static NSColor *sideInsetColor, *borderedTopLineColor; +static NSColor *resizeHandleColor, *resizeInsetColor; +static NSGradient *gradient; +static BOOL wasBorderedBar; +static float scaleFactor = 0.0f; + +@interface BWAnchoredButtonBar (BWABBPrivate) +- (void)drawResizeHandleInRect:(NSRect)handleRect withColor:(NSColor *)color; +- (void)drawLastButtonInsetInRect:(NSRect)rect; +- (BOOL)isInLastSubview; +- (NSSplitView *)splitView; +@end + +@implementation BWAnchoredButtonBar + +@synthesize selectedIndex, isAtBottom, isResizable, handleIsRightAligned, splitViewDelegate; + ++ (void)initialize; +{ + topLineColor = [[NSColor colorWithCalibratedWhite:(202.0f / 255.0f) alpha:1] retain]; + bottomLineColor = [[NSColor colorWithCalibratedWhite:(170.0f / 255.0f) alpha:1] retain]; + topColor = [[NSColor colorWithCalibratedWhite:(253.0f / 255.0f) alpha:1] retain]; + middleTopColor = [[NSColor colorWithCalibratedWhite:(242.0f / 255.0f) alpha:1] retain]; + middleBottomColor = [[NSColor colorWithCalibratedWhite:(230.0f / 255.0f) alpha:1] retain]; + bottomColor = [[NSColor colorWithCalibratedWhite:(230.0f / 255.0f) alpha:1] retain]; + sideInsetColor = [[NSColor colorWithCalibratedWhite:(255.0f / 255.0f) alpha:0.5] retain]; + borderedTopLineColor = [[NSColor colorWithCalibratedWhite:(190.0f / 255.0f) alpha:1] retain]; + + gradient = [[NSGradient alloc] initWithColorsAndLocations: + topColor, (CGFloat)0.0, + middleTopColor, (CGFloat)0.45454, + middleBottomColor, (CGFloat)0.45454, + bottomColor, (CGFloat)1.0, + nil]; + + resizeHandleColor = [[NSColor colorWithCalibratedWhite:(0.0f / 255.0f) alpha:0.598] retain]; + resizeInsetColor = [[NSColor colorWithCalibratedWhite:(255.0f / 255.0f) alpha:0.55] retain]; +} + +- (id)initWithFrame:(NSRect)frame +{ + self = [super initWithFrame:frame]; + if (self) + { + scaleFactor = [[NSScreen mainScreen] userSpaceScaleFactor]; + [self setIsResizable:YES]; + [self setIsAtBottom:YES]; + } + return self; +} + +- (id)initWithCoder:(NSCoder *)decoder; +{ + if ((self = [super initWithCoder:decoder]) != nil) + { + [self setIsResizable:[decoder decodeBoolForKey:@"BWABBIsResizable"]]; + [self setIsAtBottom:[decoder decodeBoolForKey:@"BWABBIsAtBottom"]]; + [self setHandleIsRightAligned:[decoder decodeBoolForKey:@"BWABBHandleIsRightAligned"]]; + [self setSelectedIndex:[decoder decodeIntForKey:@"BWABBSelectedIndex"]]; + } + return self; +} + +- (void)encodeWithCoder:(NSCoder*)coder +{ + [super encodeWithCoder:coder]; + + [coder encodeBool:[self isResizable] forKey:@"BWABBIsResizable"]; + [coder encodeBool:[self isAtBottom] forKey:@"BWABBIsAtBottom"]; + [coder encodeBool:[self handleIsRightAligned] forKey:@"BWABBHandleIsRightAligned"]; + [coder encodeInt:[self selectedIndex] forKey:@"BWABBSelectedIndex"]; +} + +- (void)awakeFromNib +{ + scaleFactor = [[NSScreen mainScreen] userSpaceScaleFactor]; + + // See if we're in a split view, and set its delegate + NSSplitView *splitView = [self splitView]; + + if (splitView != nil && [splitView isVertical] && [self isResizable]) + [splitView setDelegate:self]; + + [self bringToFront]; +} + +- (void)drawRect:(NSRect)rect +{ + rect = self.bounds; + + // Draw gradient + NSRect gradientRect; + if (isAtBottom) + gradientRect = NSMakeRect(rect.origin.x,rect.origin.y,rect.size.width,rect.size.height - 1); + else + gradientRect = NSInsetRect(rect, 0, 1); + [gradient drawInRect:gradientRect angle:270]; + + // Draw top line + if (isAtBottom) + [topLineColor drawPixelThickLineAtPosition:0 withInset:0 inRect:rect inView:self horizontal:YES flip:YES]; + else + [borderedTopLineColor drawPixelThickLineAtPosition:0 withInset:0 inRect:rect inView:self horizontal:YES flip:YES]; + + // Draw resize handle + if (isResizable) + { + NSRect handleRect = NSMakeRect(NSMaxX(rect)-11,6,6,10); + + if ([self handleIsRightAligned]) + handleRect.origin.x = 4; + + [self drawResizeHandleInRect:handleRect withColor:resizeHandleColor]; + + NSRect insetRect = NSOffsetRect(handleRect,1,-1); + [self drawResizeHandleInRect:insetRect withColor:resizeInsetColor]; + } + + [self drawLastButtonInsetInRect:rect]; + + // Draw bottom line and sides if it's in non-bottom mode + if (!isAtBottom) + { + [bottomLineColor drawPixelThickLineAtPosition:0 withInset:0 inRect:rect inView:self horizontal:YES flip:NO]; + [bottomLineColor drawPixelThickLineAtPosition:0 withInset:1 inRect:rect inView:self horizontal:NO flip:NO]; + [bottomLineColor drawPixelThickLineAtPosition:0 withInset:1 inRect:rect inView:self horizontal:NO flip:YES]; + } +} + +- (void)drawResizeHandleInRect:(NSRect)handleRect withColor:(NSColor *)color +{ + [color drawPixelThickLineAtPosition:0 withInset:0 inRect:handleRect inView:self horizontal:NO flip:NO]; + [color drawPixelThickLineAtPosition:3 withInset:0 inRect:handleRect inView:self horizontal:NO flip:NO]; + [color drawPixelThickLineAtPosition:6 withInset:0 inRect:handleRect inView:self horizontal:NO flip:NO]; +} + +- (void)drawLastButtonInsetInRect:(NSRect)rect +{ + NSView *rightMostView = nil; + + if ([[self subviews] count] > 0) + { + rightMostView = [[self subviews] objectAtIndex:0]; + + NSView *currentSubview = nil; + for (currentSubview in [self subviews]) + { + if ([[currentSubview className] isEqualToString:@"BWAnchoredButton"] || [[currentSubview className] isEqualToString:@"BWAnchoredPopUpButton"]) + { + if (NSMaxX([currentSubview frame]) > NSMaxX([rightMostView frame])) + rightMostView = currentSubview; + + if ([currentSubview frame].origin.x == 0) + [(BWAnchoredButton *)currentSubview setIsAtLeftEdgeOfBar:YES]; + else + [(BWAnchoredButton *)currentSubview setIsAtLeftEdgeOfBar:NO]; + + if (NSMaxX([currentSubview frame]) == NSMaxX([self bounds])) + [(BWAnchoredButton *)currentSubview setIsAtRightEdgeOfBar:YES]; + else + [(BWAnchoredButton *)currentSubview setIsAtRightEdgeOfBar:NO]; + } + } + } + + if (rightMostView != nil && ([[rightMostView className] isEqualToString:@"BWAnchoredButton"] || [[rightMostView className] isEqualToString:@"BWAnchoredPopUpButton"])) + { + NSRect newRect = NSOffsetRect(rect,0,-1); + [sideInsetColor drawPixelThickLineAtPosition:NSMaxX([rightMostView frame]) withInset:0 inRect:newRect inView:self horizontal:NO flip:NO]; + } +} + +- (void)viewDidMoveToSuperview +{ + if ([self splitView] != nil) + self.handleIsRightAligned = [self isInLastSubview]; +} + +- (BOOL)isInLastSubview +{ + // This method could be made more robust. Right now it assumes that the button bar's direct parent is the split view. + if ([self splitView] != nil && [self superview] == [[[self splitView] subviews] lastObject]) + return YES; + + return NO; +} + +- (NSSplitView *)splitView +{ + NSSplitView *splitView = nil; + id currentView = self; + + while (![currentView isKindOfClass:[NSSplitView class]] && currentView != nil) + { + currentView = [currentView superview]; + if ([currentView isKindOfClass:[NSSplitView class]]) + splitView = currentView; + } + + return splitView; +} + +- (void)setIsAtBottom:(BOOL)flag +{ + isAtBottom = flag; + + if (flag) + { + [self setFrameSize:NSMakeSize(self.frame.size.width,23)]; + wasBorderedBar = NO; + } + else + { + [self setFrameSize:NSMakeSize(self.frame.size.width,24)]; + wasBorderedBar = YES; + } + + [self setNeedsDisplay:YES]; +} + +- (void)setSelectedIndex:(int)anIndex +{ + if (anIndex == 0) + { + [self setIsAtBottom:YES]; + [self setIsResizable:YES]; + } + else if (anIndex == 1) + { + [self setIsAtBottom:YES]; + [self setIsResizable:NO]; + } + else if (anIndex == 2) + { + [self setIsAtBottom:NO]; + [self setIsResizable:NO]; + } + selectedIndex = anIndex; + + [self setNeedsDisplay:YES]; +} + ++ (BOOL)wasBorderedBar +{ + return wasBorderedBar; +} + +#pragma mark NSSplitView Delegate Methods + +// Add the resize handle rect to the split view hot zone +- (NSRect)splitView:(NSSplitView *)aSplitView additionalEffectiveRectOfDividerAtIndex:(NSInteger)dividerIndex +{ + if ([splitViewDelegate respondsToSelector:@selector(splitView:additionalEffectiveRectOfDividerAtIndex:)]) + return [splitViewDelegate splitView:aSplitView additionalEffectiveRectOfDividerAtIndex:dividerIndex]; + + NSRect paddedHandleRect; + paddedHandleRect.origin.y = [aSplitView frame].size.height - [self frame].origin.y - [self bounds].size.height; + paddedHandleRect.origin.x = NSMaxX([self bounds]) - 15; + + if (self.handleIsRightAligned) + paddedHandleRect.origin.x = [aSplitView frame].size.width - [self bounds].size.width; + + paddedHandleRect.size.width = 15; + paddedHandleRect.size.height = [self bounds].size.height; + + return paddedHandleRect; +} + +// Remaining delegate methods. They test for an implementation by the splitViewDelegate (otherwise perform default behavior) + +- (CGFloat)splitView:(NSSplitView *)sender constrainMinCoordinate:(CGFloat)proposedMin ofSubviewAt:(NSInteger)offset +{ + if ([splitViewDelegate respondsToSelector:@selector(splitView:constrainMinCoordinate:ofSubviewAt:)]) + return [splitViewDelegate splitView:sender constrainMinCoordinate:proposedMin ofSubviewAt:offset]; + + return proposedMin; +} + +- (CGFloat)splitView:(NSSplitView *)sender constrainMaxCoordinate:(CGFloat)proposedMax ofSubviewAt:(NSInteger)offset +{ + if ([splitViewDelegate respondsToSelector:@selector(splitView:constrainMaxCoordinate:ofSubviewAt:)]) + return [splitViewDelegate splitView:sender constrainMaxCoordinate:proposedMax ofSubviewAt:offset]; + + return proposedMax; +} + +- (void)splitView:(NSSplitView*)sender resizeSubviewsWithOldSize:(NSSize)oldSize +{ + if ([splitViewDelegate respondsToSelector:@selector(splitView:resizeSubviewsWithOldSize:)]) + return [splitViewDelegate splitView:sender resizeSubviewsWithOldSize:oldSize]; + + [sender adjustSubviews]; +} + +- (BOOL)splitView:(NSSplitView *)sender canCollapseSubview:(NSView *)subview +{ + if ([splitViewDelegate respondsToSelector:@selector(splitView:canCollapseSubview:)]) + return [splitViewDelegate splitView:sender canCollapseSubview:subview]; + + return NO; +} + +- (CGFloat)splitView:(NSSplitView *)sender constrainSplitPosition:(CGFloat)proposedPosition ofSubviewAt:(NSInteger)offset +{ + if ([splitViewDelegate respondsToSelector:@selector(splitView:constrainSplitPosition:ofSubviewAt:)]) + return [splitViewDelegate splitView:sender constrainSplitPosition:proposedPosition ofSubviewAt:offset]; + + return proposedPosition; +} + +- (NSRect)splitView:(NSSplitView *)splitView effectiveRect:(NSRect)proposedEffectiveRect forDrawnRect:(NSRect)drawnRect ofDividerAtIndex:(NSInteger)dividerIndex +{ + if ([splitViewDelegate respondsToSelector:@selector(splitView:effectiveRect:forDrawnRect:ofDividerAtIndex:)]) + return [splitViewDelegate splitView:splitView effectiveRect:proposedEffectiveRect forDrawnRect:drawnRect ofDividerAtIndex:dividerIndex]; + + return proposedEffectiveRect; +} + +- (BOOL)splitView:(NSSplitView *)splitView shouldCollapseSubview:(NSView *)subview forDoubleClickOnDividerAtIndex:(NSInteger)dividerIndex +{ + if ([splitViewDelegate respondsToSelector:@selector(splitView:shouldCollapseSubview:forDoubleClickOnDividerAtIndex:)]) + return [splitViewDelegate splitView:splitView shouldCollapseSubview:subview forDoubleClickOnDividerAtIndex:dividerIndex]; + + return NO; +} + +- (BOOL)splitView:(NSSplitView *)splitView shouldHideDividerAtIndex:(NSInteger)dividerIndex +{ + if ([splitViewDelegate respondsToSelector:@selector(splitView:shouldHideDividerAtIndex:)]) + return [splitViewDelegate splitView:splitView shouldHideDividerAtIndex:dividerIndex]; + + return NO; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWAnchoredButtonBarInspector.h b/Frameworks/BWToolkitFramework.framework/BWAnchoredButtonBarInspector.h new file mode 100644 index 00000000..f6cacc7e --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWAnchoredButtonBarInspector.h @@ -0,0 +1,22 @@ +// +// BWAnchoredButtonBarViewInspector.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface BWAnchoredButtonBarInspector : IBInspector +{ + IBOutlet NSMatrix *matrix; + IBOutlet NSImageView *selectionView; + IBOutlet NSView *contentView; +} + +- (IBAction)selectMode1:(id)sender; +- (IBAction)selectMode2:(id)sender; +- (IBAction)selectMode3:(id)sender; + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWAnchoredButtonBarInspector.m b/Frameworks/BWToolkitFramework.framework/BWAnchoredButtonBarInspector.m new file mode 100644 index 00000000..e96a5f06 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWAnchoredButtonBarInspector.m @@ -0,0 +1,74 @@ +// +// BWAnchoredButtonBarViewInspector.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWAnchoredButtonBarInspector.h" + +@implementation BWAnchoredButtonBarInspector + +- (NSString *)viewNibName +{ + return @"BWAnchoredButtonBarInspector"; +} + +- (void)refresh +{ + [super refresh]; +} + +- (IBAction)selectMode1:(id)sender +{ + float xOrigin = matrix.frame.origin.x-1; + float deltaX = fabsf(xOrigin - selectionView.frame.origin.x); + float doubleSpaceMultiplier = 1; + + if (deltaX > 65) + doubleSpaceMultiplier = 1.5; + + float duration = 0.1*doubleSpaceMultiplier; + + [NSAnimationContext beginGrouping]; + [[NSAnimationContext currentContext] setDuration:(duration)]; + [[selectionView animator] setFrameOrigin:NSMakePoint(xOrigin,selectionView.frame.origin.y)]; + [NSAnimationContext endGrouping]; +} + +- (IBAction)selectMode2:(id)sender +{ + float xOrigin = matrix.frame.origin.x + NSWidth(matrix.frame) / matrix.numberOfColumns; + float deltaX = fabsf(xOrigin - selectionView.frame.origin.x); + float doubleSpaceMultiplier = 1; + + if (deltaX > 65) + doubleSpaceMultiplier = 1.5; + + float duration = 0.1*doubleSpaceMultiplier; + + [NSAnimationContext beginGrouping]; + [[NSAnimationContext currentContext] setDuration:(duration)]; + [[selectionView animator] setFrameOrigin:NSMakePoint(xOrigin,selectionView.frame.origin.y)]; + [NSAnimationContext endGrouping]; +} + +- (IBAction)selectMode3:(id)sender +{ + float xOrigin = NSMaxX(matrix.frame) - NSWidth(matrix.frame) / matrix.numberOfColumns + matrix.numberOfColumns - 1; + float deltaX = fabsf(xOrigin - selectionView.frame.origin.x); + float doubleSpaceMultiplier = 1; + + if (deltaX > 65) + doubleSpaceMultiplier = 1.5; + + float duration = 0.1*doubleSpaceMultiplier; + + [NSAnimationContext beginGrouping]; + [[NSAnimationContext currentContext] setDuration:(duration)]; + [[selectionView animator] setFrameOrigin:NSMakePoint(xOrigin,selectionView.frame.origin.y)]; + [NSAnimationContext endGrouping]; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWAnchoredButtonBarInspector.xib b/Frameworks/BWToolkitFramework.framework/BWAnchoredButtonBarInspector.xib new file mode 100644 index 00000000..a19ea8cc --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWAnchoredButtonBarInspector.xib @@ -0,0 +1,1066 @@ + + + + 1050 + 10A380 + 731 + 1025.2 + 427.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 731 + + + YES + + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + YES + + YES + + + YES + + + + YES + + BWAnchoredButtonBarInspector + + + FirstResponder + + + NSApplication + + + + 268 + + YES + + + 268 + {{8, 56}, {70, 14}} + + YES + + 67239488 + 4326400 + Mode + + LucidaGrande-Bold + 11 + 16 + + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2NjY3AA + + + + 6 + System + controlTextColor + + 3 + MAA + + + + + + + 268 + {{82, 3}, {185, 72}} + + YES + 1 + 3 + + YES + + -2080244224 + 0 + + + LucidaGrande + 13 + 1044 + + + 1 + 142360831 + 128 + + NSImage + Inspector-ButtonBarMode2 + + + NSImage + Inspector-ButtonBarMode2Pressed + + + + 200 + 25 + + + 67239424 + 0 + + + + 142360831 + 128 + + NSImage + Inspector-ButtonBarMode1 + + + NSImage + Inspector-ButtonBarMode1Pressed + + 400 + 75 + + + 67239424 + 0 + + + + 142360831 + 128 + + NSImage + Inspector-ButtonBarMode3 + + + NSImage + Inspector-ButtonBarMode3Pressed + + 400 + 75 + + + {59, 72} + {4, 2} + 1151868928 + NSActionCell + + 67239424 + 0 + Radio + + 1211912703 + 0 + + 549453824 + {18, 18} + + YES + + YES + + + + TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw +IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ +29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 +dXV198PDw//8/Pz////////////////////////////U1NT/fHx89yUlJXkAAAAFAAAAAAAAAAAAAAAA +AAAAAxEREUZqamrmtbW1/+3t7f/+/v7//v7+//7+/v/9/f3//f39//39/f/39/f/xMTE/3d3d+YZGRlG +AAAAAwAAAAAAAAAAAAAACkJCQqGtra3/xsbG/+vr6//y8vL/9fX1//X19f/z8/P/9fX1//Ly8v/u7u7/ +0tLS/6+vr/9KSkqhAAAACgAAAAAAAAAAAAAAF3h4eN2/v7//z8/P/93d3f/q6ur/7+/v/+/v7//w8PD/ +7e3t/+3t7f/i4uL/zs7O/8XFxf98fHzdAAAAFwAAAAAAAAADAAAAJKSkpPjOzs7/2dnZ/+Dg4P/i4uL/ +5eXl/+bm5v/n5+f/5eXl/+Li4v/e3t7/2tra/9DQ0P+srKz4AAAAJAAAAAMAAAADAAAALrCwsPrW1tb/ +3t7e/+Tk5P/p6en/6+vr/+zs7P/p6en/6+vr/+fn5//k5OT/4ODg/9nZ2f+zs7P6AAAALgAAAAMAAAAD +AAAALp2dnezg4OD/5eXl/+rq6v/u7u7/8PDw//Dw8P/x8fH/8PDw/+7u7v/q6ur/5ubm/+Hh4f+ZmZns +AAAALgAAAAMAAAADAAAAJG5ubs/l5eX/6enp/+/v7//y8vL/9vb2//r6+v/5+fn/9/f3//b29v/x8fH/ +6+vr/+Tk5P9ra2vPAAAAJAAAAAMAAAAAAAAAFy4uLpPCwsL67Ozs//Pz8//5+fn//v7+//7+/v/+/v7/ +/v7+//v7+//19fX/8PDw/8LCwvosLCyTAAAAFwAAAAAAAAAAAAAACgAAAENfX1/S5OTk/vn5+f/+/v7/ +///////////////////////////8/Pz/5ubm/l9fX9IAAABDAAAACgAAAAAAAAAAAAAAAwAAABcAAABl +YmJi3NLS0v3////////////////////////////////V1dX9ZGRk3AAAAGUAAAAXAAAAAwAAAAAAAAAA +AAAAAAAAAAUAAAAfAAAAZTMzM8KAgIDwv7+//O3t7f/t7e3/v7+//ICAgPAzMzPCAAAAZQAAAB8AAAAF +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAFwAAAEMAAAB3AAAAnwAAALMAAACzAAAAnwAAAHcAAABD +AAAAFwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAoAAAAXAAAAJAAAAC4AAAAu +AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABABIAAAEB +AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES +AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS +AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA + + + + + + 3 + MCAwAA + + + + NSRadioButton + + 400 + 75 + + + + + 3 + MQA + + + + + + 268 + + 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 + + + {{81, 6}, {61, 66}} + + YES + + 130560 + 33554432 + + NSImage + Inspector-ButtonBarModeSelection + + 0 + 0 + 0 + YES + + YES + + + {272, 77} + + NSView + + + + + YES + + + inspectorView + + + + 16 + + + + selectedIndex: inspectedObjectsController.selection.selectedIndex + + + + + + selectedIndex: inspectedObjectsController.selection.selectedIndex + selectedIndex + inspectedObjectsController.selection.selectedIndex + 2 + + + 142 + + + + selectionView + + + + 154 + + + + selectMode1: + + + + 155 + + + + selectMode2: + + + + 156 + + + + selectMode3: + + + + 157 + + + + matrix + + + + 161 + + + + contentView + + + + 200 + + + + + YES + + 0 + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 1 + + + YES + + + + + + Inspector View + + + 89 + + + YES + + + + + + 93 + + + + + 132 + + + YES + + + + + + + + + 133 + + + + + 134 + + + + + 135 + + + + + 136 + + + + + 150 + + + YES + + + + + + 151 + + + + + + + YES + + YES + -3.IBPluginDependency + -3.ImportedFromIB2 + 1.IBEditorWindowLastContentRect + 1.IBPluginDependency + 1.IBUserGuides + 1.ImportedFromIB2 + 1.WindowOrigin + 1.editorWindowContentRectSynchronizationRect + 132.IBPluginDependency + 133.IBPluginDependency + 134.IBPluginDependency + 135.IBPluginDependency + 136.IBPluginDependency + 150.IBPluginDependency + 151.IBPluginDependency + 89.IBPluginDependency + 93.IBPluginDependency + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + {{798, 368}, {272, 77}} + com.apple.InterfaceBuilder.CocoaPlugin + + YES + + + 11 + 0 + + + + 8 + 2 + + + + 84 + 0 + + + + 170 + 0 + + + + 178 + 0 + + + + 4 + 3 + + + + 4 + 1 + + + + {84, 761} + {{767, 669}, {272, 296}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + 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 + + + + 207 + + + + YES + + BWAnchoredButtonBarInspector + IBInspector + + YES + + YES + selectMode1: + selectMode2: + selectMode3: + + + YES + id + id + id + + + + YES + + YES + contentView + matrix + selectionView + + + YES + NSView + NSMatrix + NSImageView + + + + IBProjectSource + BWAnchoredButtonBarInspector.h + + + + BWAnchoredButtonBarInspector + IBInspector + + IBUserSource + + + + + NSApplication + + IBProjectSource + NSApplication+BWAdditions.h + + + + NSView + + IBProjectSource + NSView+BWAdditions.h + + + + + YES + + IBInspector + NSObject + + inspectorView + NSView + + + IBFrameworkSource + InterfaceBuilderKit.framework/Headers/IBInspector.h + + + + NSActionCell + NSCell + + IBFrameworkSource + AppKit.framework/Headers/NSActionCell.h + + + + NSApplication + NSResponder + + IBFrameworkSource + AppKit.framework/Headers/NSApplication.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSApplicationScripting.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSColorPanel.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSHelpManager.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSPageLayout.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSUserInterfaceItemSearching.h + + + + NSButtonCell + NSActionCell + + IBFrameworkSource + AppKit.framework/Headers/NSButtonCell.h + + + + NSCell + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSCell.h + + + + NSControl + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSControl.h + + + + NSFormatter + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSFormatter.h + + + + NSImageCell + NSCell + + IBFrameworkSource + AppKit.framework/Headers/NSImageCell.h + + + + NSImageView + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSImageView.h + + + + NSMatrix + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSMatrix.h + + + + NSMenu + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSMenu.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSAccessibility.h + + + + NSObject + + + + NSObject + + + + NSObject + + + + NSObject + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSDictionaryController.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSDragging.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSFontManager.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSFontPanel.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSKeyValueBinding.h + + + + NSObject + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSNibLoading.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSOutlineView.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSPasteboard.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSSavePanel.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSTableView.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSToolbarItem.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSView.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSArchiver.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSClassDescription.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSError.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSFileManager.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueCoding.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueObserving.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyedArchiver.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSObject.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSObjectScripting.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSPortCoder.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSRunLoop.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptClassDescription.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptKeyValueCoding.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptObjectSpecifiers.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptWhoseTests.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSThread.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURL.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURLConnection.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURLDownload.h + + + + NSObject + + IBFrameworkSource + InterfaceBuilderKit.framework/Headers/IBObjectIntegration.h + + + + NSResponder + + IBFrameworkSource + AppKit.framework/Headers/NSInterfaceStyle.h + + + + NSResponder + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSResponder.h + + + + NSTextField + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSTextField.h + + + + NSTextFieldCell + NSActionCell + + IBFrameworkSource + AppKit.framework/Headers/NSTextFieldCell.h + + + + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSClipView.h + + + + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSMenuItem.h + + + + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSRulerView.h + + + + NSView + NSResponder + + + + NSView + + IBFrameworkSource + InterfaceBuilderKit.framework/Headers/IBViewIntegration.h + + + + + 0 + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + BWToolkit.xcodeproj + 3 + + diff --git a/Frameworks/BWToolkitFramework.framework/BWAnchoredButtonBarIntegration.m b/Frameworks/BWToolkitFramework.framework/BWAnchoredButtonBarIntegration.m new file mode 100644 index 00000000..ec26a747 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWAnchoredButtonBarIntegration.m @@ -0,0 +1,64 @@ +// +// BWAnchoredButtonBarViewIntegration.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import +#import "BWAnchoredButtonBar.h" +#import "BWAnchoredButtonBarInspector.h" + + +@implementation BWAnchoredButtonBar ( BWAnchoredButtonBarIntegration ) + +- (void)ibPopulateKeyPaths:(NSMutableDictionary *)keyPaths { + [super ibPopulateKeyPaths:keyPaths]; + + [[keyPaths objectForKey:IBAttributeKeyPaths] addObjectsFromArray:[NSArray arrayWithObjects:@"selectedIndex", nil]]; +} + +- (void)ibPopulateAttributeInspectorClasses:(NSMutableArray *)classes { + [super ibPopulateAttributeInspectorClasses:classes]; + + [classes addObject:[BWAnchoredButtonBarInspector class]]; +} + +- (NSArray *)ibDefaultChildren +{ + return [self subviews]; +} + +- (NSView *)ibDesignableContentView +{ + return self; +} + +- (NSSize)ibMinimumSize +{ + NSSize minSize = NSZeroSize; + + if (isAtBottom) + minSize.height = 23; + else + minSize.height = 24; + + return minSize; +} + +- (NSSize)ibMaximumSize +{ + NSSize maxSize; + maxSize.width = 100000; + + if (isAtBottom) + maxSize.height = 23; + else + maxSize.height = 24; + + return maxSize; +} + + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWAnchoredButtonCell.h b/Frameworks/BWToolkitFramework.framework/BWAnchoredButtonCell.h new file mode 100644 index 00000000..3a157e8c --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWAnchoredButtonCell.h @@ -0,0 +1,16 @@ +// +// BWAnchoredButtonCell.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface BWAnchoredButtonCell : NSButtonCell +{ + +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWAnchoredButtonCell.m b/Frameworks/BWToolkitFramework.framework/BWAnchoredButtonCell.m new file mode 100644 index 00000000..b8bae016 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWAnchoredButtonCell.m @@ -0,0 +1,226 @@ +// +// BWAnchoredButtonCell.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWAnchoredButtonCell.h" +#import "BWAnchoredButtonBar.h" +#import "BWAnchoredButton.h" +#import "NSColor+BWAdditions.h" +#import "NSImage+BWAdditions.h" + +static NSColor *fillStop1, *fillStop2, *fillStop3, *fillStop4; +static NSColor *topBorderColor, *bottomBorderColor, *sideBorderColor, *sideInsetColor, *pressedColor; +static NSColor *textColor, *textShadowColor, *imageColor, *imageShadowColor; +static NSColor *borderedSideBorderColor, *borderedTopBorderColor; +static NSGradient *fillGradient; +static float scaleFactor = 1.0f; + +@interface BWAnchoredButtonCell (BWABCPrivate) +- (void)drawTitleInFrame:(NSRect)cellFrame; +- (void)drawImageInFrame:(NSRect)cellFrame; +@end + +@implementation BWAnchoredButtonCell + ++ (void)initialize; +{ + fillStop1 = [[NSColor colorWithCalibratedWhite:(253.0f / 255.0f) alpha:1] retain]; + fillStop2 = [[NSColor colorWithCalibratedWhite:(242.0f / 255.0f) alpha:1] retain]; + fillStop3 = [[NSColor colorWithCalibratedWhite:(230.0f / 255.0f) alpha:1] retain]; + fillStop4 = [[NSColor colorWithCalibratedWhite:(230.0f / 255.0f) alpha:1] retain]; + + fillGradient = [[NSGradient alloc] initWithColorsAndLocations: + fillStop1, (CGFloat)0.0, + fillStop2, (CGFloat)0.45454, + fillStop3, (CGFloat)0.45454, + fillStop4, (CGFloat)1.0, + nil]; + + topBorderColor = [[NSColor colorWithCalibratedWhite:(202.0f / 255.0f) alpha:1] retain]; + bottomBorderColor = [[NSColor colorWithCalibratedWhite:(170.0f / 255.0f) alpha:1] retain]; + sideBorderColor = [[NSColor colorWithCalibratedWhite:(0.0f / 255.0f) alpha:0.2] retain]; + sideInsetColor = [[NSColor colorWithCalibratedWhite:(255.0f / 255.0f) alpha:0.5] retain]; + + pressedColor = [[NSColor colorWithCalibratedWhite:(0.0f / 255.0f) alpha:0.35] retain]; + + textColor = [[NSColor colorWithCalibratedWhite:(10.0f / 255.0f) alpha:1] retain]; + textShadowColor = [[NSColor colorWithCalibratedWhite:(255.0f / 255.0f) alpha:0.75] retain]; + + imageColor = [[NSColor colorWithCalibratedWhite:(72.0f / 255.0f) alpha:1] retain]; + imageShadowColor = [[NSColor colorWithCalibratedWhite:(240.0f / 255.0f) alpha:1] retain]; + + borderedSideBorderColor = [[NSColor colorWithCalibratedWhite:(0.0f / 255.0f) alpha:0.25] retain]; + borderedTopBorderColor = [[NSColor colorWithCalibratedWhite:(190.0f / 255.0f) alpha:1] retain]; + +} + +- (void)awakeFromNib +{ + scaleFactor = [[NSScreen mainScreen] userSpaceScaleFactor]; +} + +- (void)drawWithFrame:(NSRect)cellFrame inView:(NSView *)controlView +{ + BOOL inBorderedBar = YES; + + if ([[[self controlView] superview] respondsToSelector:@selector(isAtBottom)]) + { + if ([(BWAnchoredButtonBar *)[[self controlView] superview] isAtBottom]) + inBorderedBar = NO; + } + + [fillGradient drawInRect:cellFrame angle:90]; + + [bottomBorderColor drawPixelThickLineAtPosition:0 withInset:0 inRect:cellFrame inView:[self controlView] horizontal:YES flip:YES]; + [sideInsetColor drawPixelThickLineAtPosition:1 withInset:1 inRect:cellFrame inView:[self controlView] horizontal:NO flip:NO]; + [sideInsetColor drawPixelThickLineAtPosition:1 withInset:1 inRect:cellFrame inView:[self controlView] horizontal:NO flip:YES]; + + if (inBorderedBar) + { + [borderedTopBorderColor drawPixelThickLineAtPosition:0 withInset:0 inRect:cellFrame inView:[self controlView] horizontal:YES flip:NO]; + [borderedSideBorderColor drawPixelThickLineAtPosition:0 withInset:1 inRect:cellFrame inView:[self controlView] horizontal:NO flip:NO]; + [borderedSideBorderColor drawPixelThickLineAtPosition:0 withInset:1 inRect:cellFrame inView:[self controlView] horizontal:NO flip:YES]; + } + else + { + [topBorderColor drawPixelThickLineAtPosition:0 withInset:0 inRect:cellFrame inView:[self controlView] horizontal:YES flip:NO]; + [sideBorderColor drawPixelThickLineAtPosition:0 withInset:1 inRect:cellFrame inView:[self controlView] horizontal:NO flip:NO]; + [sideBorderColor drawPixelThickLineAtPosition:0 withInset:1 inRect:cellFrame inView:[self controlView] horizontal:NO flip:YES]; + } + + if (inBorderedBar && [[self controlView] respondsToSelector:@selector(isAtLeftEdgeOfBar)]) + { + if ([(BWAnchoredButton *)[self controlView] isAtLeftEdgeOfBar]) + [bottomBorderColor drawPixelThickLineAtPosition:0 withInset:1 inRect:cellFrame inView:[self controlView] horizontal:NO flip:NO]; + if ([(BWAnchoredButton *)[self controlView] isAtRightEdgeOfBar]) + [bottomBorderColor drawPixelThickLineAtPosition:0 withInset:1 inRect:cellFrame inView:[self controlView] horizontal:NO flip:YES]; + } + + if ([self image] == nil && [self alternateImage] == nil) + [self drawTitleInFrame:cellFrame]; + else + [self drawImageInFrame:cellFrame]; + + if ([self isHighlighted]) + { + [pressedColor set]; + NSRectFillUsingOperation(cellFrame, NSCompositeSourceOver); + } +} + +- (void)drawTitleInFrame:(NSRect)cellFrame +{ + if (![[self title] isEqualToString:@""]) + { + NSColor *localTextColor = textColor; + + if (![self isEnabled]) + { + localTextColor = [textColor colorWithAlphaComponent:0.6]; + } + + NSMutableDictionary *attributes = [[[NSMutableDictionary alloc] init] autorelease]; + [attributes addEntriesFromDictionary:[[self attributedTitle] attributesAtIndex:0 effectiveRange:NULL]]; + [attributes setObject:localTextColor forKey:NSForegroundColorAttributeName]; + [attributes setObject:[NSFont systemFontOfSize:11] forKey:NSFontAttributeName]; + + NSShadow *shadow = [[[NSShadow alloc] init] autorelease]; + [shadow setShadowOffset:NSMakeSize(0,-1)]; + [shadow setShadowColor:textShadowColor]; + [attributes setObject:shadow forKey:NSShadowAttributeName]; + + NSMutableAttributedString *string = [[[NSMutableAttributedString alloc] initWithString:[self title] attributes:attributes] autorelease]; + [self setAttributedTitle:string]; + + // Draw title + NSRect boundingRect = [[self attributedTitle] boundingRectWithSize:cellFrame.size options:0]; + + NSPoint cellCenter; + cellCenter.x = cellFrame.size.width / 2; + cellCenter.y = cellFrame.size.height / 2; + + NSPoint drawPoint = cellCenter; + drawPoint.x -= boundingRect.size.width / 2; + drawPoint.y -= boundingRect.size.height / 2; + + drawPoint.x = roundf(drawPoint.x); + drawPoint.y = roundf(drawPoint.y); + + if (drawPoint.x < 4) + drawPoint.x = 4; + + [[self attributedTitle] drawAtPoint:drawPoint]; + } +} + +- (void)drawImageInFrame:(NSRect)cellFrame +{ + NSImage *image; + + image = ([self state] == NSOffState ? [self image] : [self alternateImage]); + + if (image != nil) + { + [image setScalesWhenResized:NO]; + NSRect sourceRect = NSZeroRect; + + if ([[image name] isEqualToString:@"NSActionTemplate"]) + [image setSize:NSMakeSize(10,10)]; + + sourceRect.size = [image size]; + + NSPoint backgroundCenter; + backgroundCenter.x = cellFrame.size.width / 2; + backgroundCenter.y = cellFrame.size.height / 2; + + NSPoint drawPoint = backgroundCenter; + drawPoint.x -= sourceRect.size.width / 2; + drawPoint.y -= sourceRect.size.height / 2 ; + + drawPoint.x = roundf(drawPoint.x); + drawPoint.y = roundf(drawPoint.y); + + NSAffineTransform* xform = [NSAffineTransform transform]; + [xform translateXBy:0.0 yBy:cellFrame.size.height]; + [xform scaleXBy:1.0 yBy:-1.0]; + [xform concat]; + + if ([image isTemplate]) + { + NSImage *glyphImage = [image tintedImageWithColor:imageColor]; + NSImage *shadowImage = [image tintedImageWithColor:imageShadowColor]; + NSPoint shadowPoint = drawPoint; + shadowPoint.y--; + + [shadowImage drawAtPoint:shadowPoint fromRect:sourceRect operation:NSCompositeSourceOver fraction:1]; + + if ([self isEnabled]) + [glyphImage drawAtPoint:drawPoint fromRect:sourceRect operation:NSCompositeSourceOver fraction:1]; + else + [glyphImage drawAtPoint:drawPoint fromRect:sourceRect operation:NSCompositeSourceOver fraction:0.5]; + } + else + { + if ([self isEnabled]) + [image drawAtPoint:drawPoint fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1]; + else + [image drawAtPoint:drawPoint fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:0.5]; + } + } +} + +- (NSControlSize)controlSize +{ + return [super controlSize]; +} + +- (void)setControlSize:(NSControlSize)size +{ + +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWAnchoredButtonIntegration.m b/Frameworks/BWToolkitFramework.framework/BWAnchoredButtonIntegration.m new file mode 100644 index 00000000..9510a79f --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWAnchoredButtonIntegration.m @@ -0,0 +1,45 @@ +// +// BWAnchoredButtonIntegration.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import +#import "BWAnchoredButton.h" + +@implementation BWAnchoredButton ( BWAnchoredButtonIntegration ) + +- (NSSize)ibMinimumSize +{ + return NSMakeSize(0,24); +} + +- (NSSize)ibMaximumSize +{ + return NSMakeSize(100000,24); +} + +- (IBInset)ibLayoutInset +{ + IBInset inset; + inset.bottom = 0; + inset.right = 0; + inset.top = topAndLeftInset.x; + inset.left = topAndLeftInset.y; + + return inset; +} + +- (NSInteger)ibBaselineCount +{ + return 1; +} + +- (CGFloat)ibBaselineAtIndex:(NSInteger)index +{ + return 16; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWAnchoredPopUpButton.classdescription b/Frameworks/BWToolkitFramework.framework/BWAnchoredPopUpButton.classdescription new file mode 100644 index 00000000..5ea9bf34 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWAnchoredPopUpButton.classdescription @@ -0,0 +1,12 @@ +{ + Actions = { + // Define action descriptions here, for example + // "myAction:" = id; + }; + Outlets = { + // Define outlet descriptions here, for example + // myOutlet = NSView; + }; + ClassName = BWAnchoredPopUpButton; + SuperClass = NSPopUpButton; +} diff --git a/Frameworks/BWToolkitFramework.framework/BWAnchoredPopUpButton.h b/Frameworks/BWToolkitFramework.framework/BWAnchoredPopUpButton.h new file mode 100644 index 00000000..150db433 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWAnchoredPopUpButton.h @@ -0,0 +1,21 @@ +// +// BWAnchoredPopUpButton.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface BWAnchoredPopUpButton : NSPopUpButton +{ + BOOL isAtLeftEdgeOfBar; + BOOL isAtRightEdgeOfBar; + NSPoint topAndLeftInset; +} + +@property BOOL isAtLeftEdgeOfBar; +@property BOOL isAtRightEdgeOfBar; + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWAnchoredPopUpButton.m b/Frameworks/BWToolkitFramework.framework/BWAnchoredPopUpButton.m new file mode 100644 index 00000000..87401d21 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWAnchoredPopUpButton.m @@ -0,0 +1,43 @@ +// +// BWAnchoredPopUpButton.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWAnchoredPopUpButton.h" +#import "BWAnchoredButtonBar.h" +#import "NSView+BWAdditions.h" + +@implementation BWAnchoredPopUpButton + +@synthesize isAtLeftEdgeOfBar; +@synthesize isAtRightEdgeOfBar; + +- (id)initWithCoder:(NSCoder *)decoder; +{ + if ((self = [super initWithCoder:decoder]) != nil) + { + if ([BWAnchoredButtonBar wasBorderedBar]) + topAndLeftInset = NSMakePoint(0, 0); + else + topAndLeftInset = NSMakePoint(1, 1); + } + return self; +} + +- (void)mouseDown:(NSEvent *)theEvent +{ + [self bringToFront]; + [super mouseDown:theEvent]; +} + +- (NSRect)frame +{ + NSRect frame = [super frame]; + frame.size.height = 24; + return frame; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWAnchoredPopUpButtonCell.h b/Frameworks/BWToolkitFramework.framework/BWAnchoredPopUpButtonCell.h new file mode 100644 index 00000000..8de4fe89 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWAnchoredPopUpButtonCell.h @@ -0,0 +1,16 @@ +// +// BWAnchoredPopUpButtonCell.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface BWAnchoredPopUpButtonCell : NSPopUpButtonCell +{ + +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWAnchoredPopUpButtonCell.m b/Frameworks/BWToolkitFramework.framework/BWAnchoredPopUpButtonCell.m new file mode 100644 index 00000000..dc9a31d4 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWAnchoredPopUpButtonCell.m @@ -0,0 +1,271 @@ +// +// BWAnchoredPopUpButtonCell.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWAnchoredPopUpButtonCell.h" +#import "BWAnchoredPopUpButton.h" +#import "BWAnchoredButtonBar.h" +#import "NSColor+BWAdditions.h" +#import "NSImage+BWAdditions.h" + +#define IMAGE_INSET 8; +#define ARROW_INSET 11; + +static NSColor *fillStop1, *fillStop2, *fillStop3, *fillStop4; +static NSColor *topBorderColor, *bottomBorderColor, *sideBorderColor, *sideInsetColor, *pressedColor; +static NSColor *textColor, *textShadowColor, *imageColor, *imageShadowColor; +static NSColor *borderedSideBorderColor, *borderedTopBorderColor; +static NSGradient *fillGradient; +static NSImage *pullDownArrow; +static float scaleFactor = 1.0f; + +@interface BWAnchoredPopUpButtonCell (BWAPUBCPrivate) +- (void)drawTitleInFrame:(NSRect)cellFrame; +- (void)drawImageInFrame:(NSRect)cellFrame; +- (void)drawArrowInFrame:(NSRect)cellFrame; +@end + +@implementation BWAnchoredPopUpButtonCell + ++ (void)initialize; +{ + fillStop1 = [[NSColor colorWithCalibratedWhite:(253.0f / 255.0f) alpha:1] retain]; + fillStop2 = [[NSColor colorWithCalibratedWhite:(242.0f / 255.0f) alpha:1] retain]; + fillStop3 = [[NSColor colorWithCalibratedWhite:(230.0f / 255.0f) alpha:1] retain]; + fillStop4 = [[NSColor colorWithCalibratedWhite:(230.0f / 255.0f) alpha:1] retain]; + + fillGradient = [[NSGradient alloc] initWithColorsAndLocations: + fillStop1, (CGFloat)0.0, + fillStop2, (CGFloat)0.45454, + fillStop3, (CGFloat)0.45454, + fillStop4, (CGFloat)1.0, + nil]; + + topBorderColor = [[NSColor colorWithCalibratedWhite:(202.0f / 255.0f) alpha:1] retain]; + bottomBorderColor = [[NSColor colorWithCalibratedWhite:(170.0f / 255.0f) alpha:1] retain]; + sideBorderColor = [[NSColor colorWithCalibratedWhite:(0.0f / 255.0f) alpha:0.2] retain]; + sideInsetColor = [[NSColor colorWithCalibratedWhite:(255.0f / 255.0f) alpha:0.5] retain]; + + pressedColor = [[NSColor colorWithCalibratedWhite:(0.0f / 255.0f) alpha:0.35] retain]; + + textColor = [[NSColor colorWithCalibratedWhite:(10.0f / 255.0f) alpha:1] retain]; + textShadowColor = [[NSColor colorWithCalibratedWhite:(255.0f / 255.0f) alpha:0.75] retain]; + + imageColor = [[NSColor colorWithCalibratedWhite:(70.0f / 255.0f) alpha:1] retain]; + imageShadowColor = [[NSColor colorWithCalibratedWhite:(240.0f / 255.0f) alpha:1] retain]; + + borderedSideBorderColor = [[NSColor colorWithCalibratedWhite:(0.0f / 255.0f) alpha:0.25] retain]; + borderedTopBorderColor = [[NSColor colorWithCalibratedWhite:(190.0f / 255.0f) alpha:1] retain]; + + if([BWAnchoredPopUpButtonCell class] == [self class]) + { + NSBundle *bundle = [NSBundle bundleForClass:[BWAnchoredPopUpButtonCell class]]; + + pullDownArrow = [[[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"ButtonBarPullDownArrow.pdf"]] retain]; + } +} + +- (void)awakeFromNib +{ + scaleFactor = [[NSScreen mainScreen] userSpaceScaleFactor]; +} + +- (void)drawWithFrame:(NSRect)cellFrame inView:(NSView *)controlView +{ + BOOL inBorderedBar = YES; + + if ([[[self controlView] superview] respondsToSelector:@selector(isAtBottom)]) + { + if ([(BWAnchoredButtonBar *)[[self controlView] superview] isAtBottom]) + inBorderedBar = NO; + } + + [fillGradient drawInRect:cellFrame angle:90]; + + [bottomBorderColor drawPixelThickLineAtPosition:0 withInset:0 inRect:cellFrame inView:[self controlView] horizontal:YES flip:YES]; + [sideInsetColor drawPixelThickLineAtPosition:1 withInset:1 inRect:cellFrame inView:[self controlView] horizontal:NO flip:NO]; + [sideInsetColor drawPixelThickLineAtPosition:1 withInset:1 inRect:cellFrame inView:[self controlView] horizontal:NO flip:YES]; + + if (inBorderedBar) + { + [borderedTopBorderColor drawPixelThickLineAtPosition:0 withInset:0 inRect:cellFrame inView:[self controlView] horizontal:YES flip:NO]; + [borderedSideBorderColor drawPixelThickLineAtPosition:0 withInset:1 inRect:cellFrame inView:[self controlView] horizontal:NO flip:NO]; + [borderedSideBorderColor drawPixelThickLineAtPosition:0 withInset:1 inRect:cellFrame inView:[self controlView] horizontal:NO flip:YES]; + } + else + { + [topBorderColor drawPixelThickLineAtPosition:0 withInset:0 inRect:cellFrame inView:[self controlView] horizontal:YES flip:NO]; + [sideBorderColor drawPixelThickLineAtPosition:0 withInset:1 inRect:cellFrame inView:[self controlView] horizontal:NO flip:NO]; + [sideBorderColor drawPixelThickLineAtPosition:0 withInset:1 inRect:cellFrame inView:[self controlView] horizontal:NO flip:YES]; + } + + if (inBorderedBar && [[self controlView] respondsToSelector:@selector(isAtLeftEdgeOfBar)]) + { + if ([(BWAnchoredPopUpButton *)[self controlView] isAtLeftEdgeOfBar]) + [bottomBorderColor drawPixelThickLineAtPosition:0 withInset:1 inRect:cellFrame inView:[self controlView] horizontal:NO flip:NO]; + if ([(BWAnchoredPopUpButton *)[self controlView] isAtRightEdgeOfBar]) + [bottomBorderColor drawPixelThickLineAtPosition:0 withInset:1 inRect:cellFrame inView:[self controlView] horizontal:NO flip:YES]; + } + + if ([self image] == nil) + [self drawTitleInFrame:cellFrame]; + else + [self drawImageInFrame:cellFrame]; + + [self drawArrowInFrame:cellFrame]; + + if ([self isHighlighted]) + { + [pressedColor set]; + NSRectFillUsingOperation(cellFrame, NSCompositeSourceOver); + } +} + +- (void)drawTitleInFrame:(NSRect)cellFrame +{ + if (![[self title] isEqualToString:@""]) + { + NSColor *localTextColor = textColor; + + if (![self isEnabled]) + { + localTextColor = [textColor colorWithAlphaComponent:0.6]; + } + + NSMutableDictionary *attributes = [[[NSMutableDictionary alloc] init] autorelease]; + [attributes addEntriesFromDictionary:[[self attributedTitle] attributesAtIndex:0 effectiveRange:NULL]]; + [attributes setObject:localTextColor forKey:NSForegroundColorAttributeName]; + [attributes setObject:[NSFont systemFontOfSize:11] forKey:NSFontAttributeName]; + + NSShadow *shadow = [[[NSShadow alloc] init] autorelease]; + [shadow setShadowOffset:NSMakeSize(0,-1)]; + [shadow setShadowColor:textShadowColor]; + [attributes setObject:shadow forKey:NSShadowAttributeName]; + + NSMutableAttributedString *string = [[[NSMutableAttributedString alloc] initWithString:[self title] attributes:attributes] autorelease]; + + // Draw title + NSRect boundingRect = [string boundingRectWithSize:cellFrame.size options:0]; + + NSPoint cellCenter; + cellCenter.y = cellFrame.size.height / 2; + + NSPoint drawPoint = cellCenter; + drawPoint.y -= boundingRect.size.height / 2; + drawPoint.y = roundf(drawPoint.y); + + drawPoint.x = IMAGE_INSET; + + [string drawAtPoint:drawPoint]; + } +} + +- (void)drawImageInFrame:(NSRect)cellFrame +{ + NSImage *image = [self image]; + + if (image != nil) + { + [image setScalesWhenResized:NO]; + NSRect sourceRect = NSZeroRect; + + if ([[image name] isEqualToString:@"NSActionTemplate"]) + [image setSize:NSMakeSize(10,10)]; + + sourceRect.size = [image size]; + + NSPoint backgroundCenter; + backgroundCenter.y = cellFrame.size.height / 2; + + NSPoint drawPoint = backgroundCenter; + drawPoint.y -= sourceRect.size.height / 2 ;//+ 0.5; + drawPoint.y = roundf(drawPoint.y); + + drawPoint.x = IMAGE_INSET; + + NSAffineTransform* transform = [NSAffineTransform transform]; + [transform translateXBy:0.0 yBy:cellFrame.size.height]; + [transform scaleXBy:1.0 yBy:-1.0]; + [transform concat]; + + if ([image isTemplate]) + { + NSImage *glyphImage = [image tintedImageWithColor:imageColor]; + NSImage *shadowImage = [image tintedImageWithColor:imageShadowColor]; + NSPoint shadowPoint = drawPoint; + shadowPoint.y--; + + [shadowImage drawAtPoint:shadowPoint fromRect:sourceRect operation:NSCompositeSourceOver fraction:1]; + + if ([self isEnabled]) + [glyphImage drawAtPoint:drawPoint fromRect:sourceRect operation:NSCompositeSourceOver fraction:1]; + else + [glyphImage drawAtPoint:drawPoint fromRect:sourceRect operation:NSCompositeSourceOver fraction:0.5]; + + [transform invert]; + [transform concat]; + } + else + { + if ([self isEnabled]) + [image drawAtPoint:drawPoint fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1]; + else + [image drawAtPoint:drawPoint fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:0.5]; + + // Run the flip transform again so the arrow doesn't draw upside-down + NSAffineTransform* transform = [NSAffineTransform transform]; + [transform translateXBy:0.0 yBy:cellFrame.size.height]; + [transform scaleXBy:1.0 yBy:-1.0]; + [transform concat]; + } + } +} +- (void)drawArrowInFrame:(NSRect)cellFrame +{ + if ([self pullsDown]) + { + NSPoint drawPoint; + drawPoint.x = NSMaxX(cellFrame) - ARROW_INSET; + drawPoint.y = roundf(cellFrame.size.height / 2) - 2; + + NSImage *glyphImage = [pullDownArrow tintedImageWithColor:imageColor]; + NSImage *shadowImage = [pullDownArrow tintedImageWithColor:imageShadowColor]; + NSPoint shadowPoint = drawPoint; + shadowPoint.y--; + + NSAffineTransform* transform = [NSAffineTransform transform]; + [transform translateXBy:0.0 yBy:cellFrame.size.height]; + [transform scaleXBy:1.0 yBy:-1.0]; + [transform concat]; + + [shadowImage drawAtPoint:shadowPoint fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1]; + + if ([self isEnabled]) + [glyphImage drawAtPoint:drawPoint fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1]; + else + [glyphImage drawAtPoint:drawPoint fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:0.5]; + + [transform invert]; + [transform concat]; + } + else + { + // Doesn't support pop-up style yet + } +} + +- (NSControlSize)controlSize +{ + return NSSmallControlSize; +} + +- (void)setControlSize:(NSControlSize)size +{ + +} + +@end \ No newline at end of file diff --git a/Frameworks/BWToolkitFramework.framework/BWAnchoredPopUpButtonIntegration.m b/Frameworks/BWToolkitFramework.framework/BWAnchoredPopUpButtonIntegration.m new file mode 100644 index 00000000..66388d42 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWAnchoredPopUpButtonIntegration.m @@ -0,0 +1,45 @@ +// +// BWAnchoredPopUpButtonIntegration.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import +#import "BWAnchoredPopUpButton.h" + +@implementation BWAnchoredPopUpButton ( BWAnchoredPopUpButtonIntegration ) + +- (NSSize)ibMinimumSize +{ + return NSMakeSize(0,24); +} + +- (NSSize)ibMaximumSize +{ + return NSMakeSize(100000,24); +} + +- (IBInset)ibLayoutInset +{ + IBInset inset; + inset.bottom = 0; + inset.right = 0; + inset.top = topAndLeftInset.x; + inset.left = topAndLeftInset.y; + + return inset; +} + +- (NSInteger)ibBaselineCount +{ + return 1; +} + +- (CGFloat)ibBaselineAtIndex:(NSInteger)index +{ + return 16; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWBottomBarLibrary.nib/designable.nib b/Frameworks/BWToolkitFramework.framework/BWBottomBarLibrary.nib/designable.nib new file mode 100644 index 00000000..df599008 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWBottomBarLibrary.nib/designable.nib @@ -0,0 +1,895 @@ + + + + 1050 + 9E17 + 677 + 949.33 + 352.00 + + YES + + + + YES + com.apple.InterfaceBuilderKit + com.apple.InterfaceBuilder.IBSDKPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + YES + + YES + + + YES + + + + YES + + NSObject + + + FirstResponder + + + NSApplication + + + + 268 + + YES + + + 268 + {{20, 341}, {117, 17}} + + YES + + 67239488 + 272630784 + Bottom Bar Views + + LucidaGrande + 1.300000e+01 + 1044 + + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2OQA + + + + 6 + System + controlTextColor + + 3 + MAA + + + + + + + 12 + {{20, 339}, {224, 5}} + + {0, 0} + + 67239424 + 0 + Box + + + 6 + System + textBackgroundColor + + 3 + MQA + + + + 3 + MCAwLjgwMDAwMDAxAA + + + 3 + 2 + 0 + NO + + + + 268 + + YES + + + 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 + + + {{17, 17}, {46, 46}} + + YES + + 130560 + 33554432 + + NSImage + Library-AddMiniBottomBar + + 0 + 0 + 0 + YES + + YES + + + {{20, 253}, {80, 80}} + + Add Mini-Size Bottom Bar + B9E1A9B6-64E0-4283-93A4-92E198E82690 + Adds a mini-size bottom bar to a non-textured window. + + Adds a mini-size bottom bar to a non-textured window. If you want to put text on it, use 10 pt system font. + + YES + + YES + NSFont + NSParagraphStyle + + + YES + + Helvetica + 1.200000e+01 + 16 + + + 4 + + + + + + Window Frame Elements + + + + + + 0 + + + + 268 + {{108, 270}, {46, 46}} + + BWAddMiniBottomBar + + + + 268 + {{109, 182}, {46, 46}} + + BWAddSmallBottomBar + + + + 268 + + YES + + + 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 + + + {{17, 17}, {46, 46}} + + YES + + 130560 + 33554432 + + NSImage + Library-AddSmallBottomBar + + 0 + 0 + 0 + YES + + YES + + + {{20, 165}, {80, 80}} + + Add Small-Size Bottom Bar + 33725B03-2202-4ACF-B99A-E66DE702D009 + Adds a small-size bottom bar to a non-textured window. + + Adds a small-size bottom bar to a non-textured window. + + + Window Frame Elements + + + + + + 0 + + + + 268 + {{108, 94}, {46, 46}} + + BWAddRegularBottomBar + + + + 268 + + YES + + + 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 + + + {{17, 17}, {46, 46}} + + YES + + 130560 + 33554432 + + NSImage + Library-AddRegularBottomBar + + 0 + 0 + 0 + YES + + YES + + + {{20, 77}, {80, 80}} + + Add Regular-Size Bottom Bar + 2DBAA44B-C425-49F3-A1EA-F046EB60FF51 + Adds a regular-size bottom bar to a non-textured window. + + Adds a regular-size bottom bar to a non-textured window. + + + Window Frame Elements + + + + + + 0 + + + + 268 + + YES + + + 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 + + + {{17, 17}, {46, 46}} + + YES + + 130560 + 33554432 + + NSImage + Library-AddSheetBottomBar + + 0 + 0 + 0 + YES + + YES + + + {{177, 253}, {80, 80}} + + Add Sheet Bottom Bar + CDD912D5-A7D5-48E9-BFE4-D49E9C7EE333 + Adds a bottom bar to a non-textured sheet. + + Adds a bottom bar to a non-textured sheet. + + + Window Frame Elements + + + + + + 0 + + + + 268 + {{265, 270}, {46, 46}} + + BWAddSheetBottomBar + + + + 268 + {{265, 182}, {46, 46}} + + BWRemoveBottomBar + + + + 268 + + YES + + + 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 + + + {{17, 17}, {46, 46}} + + YES + + 130560 + 33554432 + + NSImage + Library-RemoveBottomBar + + 0 + 0 + 0 + YES + + YES + + + {{177, 165}, {80, 80}} + + Remove Bottom Bar + DAD61DC2-341F-46F3-9A14-FC48D4FCDFD7 + When dragged on a window with a bottom bar, its bottom bar will be removed. + + When dragged on a window with a bottom bar, its bottom bar will be removed. + + + Window Frame Elements + + + + + + 0 + + + {334, 378} + + NSView + + + + + YES + + + representedObject + + + + 158 + + + + draggedView + + + + 159 + + + + draggedView + + + + 164 + + + + representedObject + + + + 165 + + + + representedObject + + + + 170 + + + + draggedView + + + + 171 + + + + draggedView + + + + 176 + + + + representedObject + + + + 177 + + + + representedObject + + + + 182 + + + + draggedView + + + + 183 + + + + + YES + + 0 + + YES + + + + + + -2 + + + RmlsZSdzIE93bmVyA + + + -1 + + + First Responder + + + -3 + + + Application + + + 7 + + + YES + + + + + + + + + + + + + + + Library Objects + + + 98 + + + YES + + + + + + 99 + + + + + 109 + + + + + 154 + + + YES + + + + + + 155 + + + + + 156 + + + YES + + + + + + 157 + + + + + 160 + + + + + 161 + + + YES + + + + + + 162 + + + YES + + + + + + 163 + + + + + 166 + + + + + 167 + + + YES + + + + + + 168 + + + YES + + + + + + 169 + + + + + 172 + + + YES + + + + + + 173 + + + + + 174 + + + YES + + + + + + 175 + + + + + 178 + + + + + 179 + + + YES + + + + + + 180 + + + YES + + + + + + 181 + + + + + + + YES + + YES + -1.IBPluginDependency + -2.IBPluginDependency + -3.IBPluginDependency + 109.IBPluginDependency + 154.IBPluginDependency + 155.IBPluginDependency + 160.IBPluginDependency + 161.IBPluginDependency + 166.IBPluginDependency + 167.IBPluginDependency + 172.IBPluginDependency + 173.IBPluginDependency + 178.IBPluginDependency + 179.IBPluginDependency + 7.IBEditorWindowLastContentRect + 7.IBPluginDependency + 7.IBUserGuides + 7.WindowOrigin + 7.editorWindowContentRectSynchronizationRect + 98.IBPluginDependency + 99.IBPluginDependency + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilderKit + com.apple.InterfaceBuilderKit + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.IBSDKPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.IBSDKPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.IBSDKPlugin + com.apple.InterfaceBuilder.IBSDKPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.IBSDKPlugin + {{692, 204}, {334, 378}} + com.apple.InterfaceBuilder.CocoaPlugin + + YES + + {332, 343} + {{403, 401}, {264, 327}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + YES + + YES + + + YES + + + + + YES + + YES + + + YES + + + + 183 + + + + YES + + BWAddMiniBottomBar + NSView + + IBProjectSource + BWAddMiniBottomBar.h + + + + BWAddRegularBottomBar + NSView + + IBProjectSource + BWAddRegularBottomBar.h + + + + BWAddRegularBottomBar + NSView + + IBUserSource + + + + + BWAddSheetBottomBar + NSView + + IBProjectSource + BWAddSheetBottomBar.h + + + + BWAddSmallBottomBar + NSView + + IBProjectSource + BWAddSmallBottomBar.h + + + + BWAddSmallBottomBar + NSView + + IBUserSource + + + + + BWRemoveBottomBar + NSView + + IBProjectSource + BWRemoveBottomBar.h + + + + BWRemoveBottomBar + NSView + + IBUserSource + + + + + NSView + + IBProjectSource + NSView+BWAdditions.h + + + + + 0 + BWToolkit.xcodeproj + 3 + + diff --git a/Frameworks/BWToolkitFramework.framework/BWBottomBarLibrary.nib/keyedobjects.nib b/Frameworks/BWToolkitFramework.framework/BWBottomBarLibrary.nib/keyedobjects.nib new file mode 100644 index 00000000..053c4b1c Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/BWBottomBarLibrary.nib/keyedobjects.nib differ diff --git a/Frameworks/BWToolkitFramework.framework/BWButtonBarLibrary.nib/designable.nib b/Frameworks/BWToolkitFramework.framework/BWButtonBarLibrary.nib/designable.nib new file mode 100644 index 00000000..7ad637b5 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWButtonBarLibrary.nib/designable.nib @@ -0,0 +1,1303 @@ + + + + 1050 + 9J61 + 677 + 949.46 + 353.00 + + YES + + + + YES + com.apple.InterfaceBuilderKit + com.apple.InterfaceBuilder.IBSDKPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + YES + + YES + + + YES + + + + YES + + NSObject + + + FirstResponder + + + NSApplication + + + + 268 + + YES + + + 268 + {{20, 556}, {135, 17}} + + YES + + 67239488 + 272630784 + Anchored Button Bar + + LucidaGrande + 1.300000e+01 + 1044 + + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2OQA + + + + 6 + System + controlTextColor + + 3 + MAA + + + + + + + 12 + {{20, 554}, {224, 5}} + + {0, 0} + + 67239424 + 0 + Box + + + 6 + System + textBackgroundColor + + 3 + MQA + + + + 3 + MCAwLjgwMDAwMDAxAA + + + 3 + 2 + 0 + NO + + + + 268 + + YES + + + 268 + {{-1, -2}, {32, 25}} + + YES + + 67239424 + 134348800 + + + LucidaGrande + 1.100000e+01 + 3100 + + + -2033958657 + 163 + + NSImage + NSAddTemplate + + + + 200 + 25 + + + + + 268 + {{30, -2}, {32, 25}} + + YES + + -2076049856 + 134350848 + + + -2038284033 + 163 + + + 400 + 75 + + + YES + + + 1048576 + 2147483647 + 1 + + NSImage + NSActionTemplate + + + NSImage + NSMenuCheckmark + + + NSImage + NSMenuMixedState + + _popUpItemAction: + + + YES + + OtherViews + + YES + + + + Item 2 + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + Item 3 + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + YES + 1 + YES + YES + 2 + + + + {{108, 335}, {136, 23}} + + BWAnchoredButtonBar + + + + 268 + {{108, 496}, {32, 25}} + + YES + + 67239424 + 134348800 + + + + -2033958657 + 163 + + + + 200 + 25 + + + + + 268 + {{108, 407}, {32, 25}} + + YES + + -2076049856 + 134350848 + + LucidaGrande + 1.300000e+01 + 16 + + + -2038284033 + 163 + + + 400 + 75 + + + YES + + + 1048576 + 2147483647 + 1 + + + + _popUpItemAction: + + + YES + + OtherViews + + YES + + + + Item 2 + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + Item 3 + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + YES + 1 + YES + YES + 2 + + + + + 268 + {{20, 255}, {150, 17}} + + YES + + 67239488 + 272630784 + Unanchored Button Bar + + + + + + + + + 12 + {{20, 253}, {224, 5}} + + {0, 0} + + 67239424 + 0 + Box + + + + 3 + MCAwLjgwMDAwMDAxAA + + + 3 + 2 + 0 + NO + + + + 268 + + YES + + + 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 + + + {{24, 28}, {32, 24}} + + YES + + 130560 + 33554432 + + NSImage + Library-AnchoredButton + + 0 + 0 + 0 + YES + + YES + + + {{20, 468}, {80, 80}} + + Anchored Button + 37227434-883F-440E-9F93-9FC8C104A9A6 + Button for placing inside an anchored button bar. + + Button for placing inside an anchored button bar. For a button on its own, use an unanchored button. + + YES + + YES + NSFont + NSParagraphStyle + + + YES + + Helvetica + 1.200000e+01 + 16 + + + 4 + + + + + + Button Bar + + + + + + 0 + + + + 268 + + YES + + + 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 + + + {{24, 28}, {32, 24}} + + YES + + 130560 + 33554432 + + NSImage + Library-AnchoredPopUpButton + + 0 + 0 + 0 + YES + + YES + + + {{20, 380}, {80, 80}} + + Anchored Pop Up Button + 0A142520-3019-4440-8F92-FAF9F921204F + Pop up button for placing inside an anchored button bar. + + Pop up button for placing inside an anchored button bar. + + + Button Bar + + + + + + 0 + + + + 268 + + YES + + + 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 + + + {{16, 28}, {48, 24}} + + YES + + 130560 + 33554432 + + NSImage + Library-AnchoredButtonBar + + 0 + 0 + 0 + YES + + YES + + + {{20, 291}, {80, 80}} + + Anchored Button Bar + 3843EB0E-BBA8-4F32-B056-31BCD9B773FB + Bar for placement directly below a view. + + Bar for placement directly below a view. It should contain anchored buttons and other UI elements pertaining to the view it is anchored to. + + + Button Bar + + + + + + 0 + + + + 268 + + YES + + + 268 + {{28, 29}, {23, 22}} + + YES + + 67239424 + 134217728 + + + + -2033958657 + 134 + + + 200 + 25 + + + + {{20, 167}, {80, 80}} + + Unanchored Button + FAE31A26-A5A4-4331-B0CD-31AFE5320FBA + Unanchored button for use below a table view. + + Unanchored button for use below a table view. + + + Button Bar + + + + + + 0 + + + + 268 + {{108, 304}, {128, 23}} + + BWAnchoredButtonBar + + + + 268 + + YES + + + 268 + + YES + + + 268 + {23, 22} + + YES + + 67239424 + 134217728 + + + + -2033958657 + 134 + + + + 200 + 25 + + + + + 268 + {{22, 0}, {23, 22}} + + YES + + 67239424 + 134217728 + + + + -2033958657 + 134 + + NSImage + NSRemoveTemplate + + + + 200 + 25 + + + + {{18, 29}, {45, 22}} + + BWUnanchoredButtonContainer + + + {{20, 79}, {80, 80}} + + Unanchored Button Set + 4CFDC982-FAFC-443C-BCDC-3CBA22EA49B2 + Convenience for adding a set of plus and minus unanchored buttons. + + Convenience for adding a set of plus and minus unanchored buttons to be placed below a table view. + + + Button Bar + + + + + + 0 + + + {310, 593} + + NSView + + + + + YES + + + draggedView + + + + 110 + + + + draggedView + + + + 112 + + + + draggedView + + + + 125 + + + + + YES + + 0 + + YES + + + + + + -2 + + + RmlsZSdzIE93bmVyA + + + -1 + + + First Responder + + + -3 + + + Application + + + 7 + + + YES + + + + + + + + + + + + + + + + Library Objects + + + 32 + + + + + 33 + + + YES + + + + + + 34 + + + + + 44 + + + YES + + + + + + 46 + + + YES + + + + + + 47 + + + YES + + + + + + 48 + + + YES + + + + + + + + 49 + + + + + 50 + + + + + 51 + + + + + 54 + + + + + 43 + + + YES + + + + + + + 64 + + + YES + + + + + + 65 + + + + + 66 + + + + + 101 + + + YES + + + + + + 102 + + + + + 103 + + + YES + + + + + + 104 + + + YES + + + + + + 105 + + + YES + + + + + + + + 106 + + + + + 107 + + + + + 108 + + + + + 109 + + + YES + + + + + + 57 + + + YES + + + + + + 58 + + + + + 111 + + + YES + + + + + + 52 + + + YES + + + + + + 53 + + + + + 113 + + + YES + + + + + + 55 + + + YES + + + + + + 56 + + + + + 115 + + + YES + + + + + + 82 + + + YES + + + + + + 83 + + + + + 116 + + + YES + + + + + 126 + + + YES + + + + + + 127 + + + YES + + + + + + + 128 + + + YES + + + + + + 129 + + + YES + + + + + + 130 + + + + + 131 + + + + + + + YES + + YES + -1.IBPluginDependency + -2.IBPluginDependency + -3.IBPluginDependency + 101.CustomClassName + 101.IBPluginDependency + 102.CustomClassName + 102.IBPluginDependency + 103.CustomClassName + 103.IBPluginDependency + 104.CustomClassName + 104.IBPluginDependency + 105.IBEditorWindowLastContentRect + 105.IBPluginDependency + 106.IBPluginDependency + 107.IBPluginDependency + 108.IBPluginDependency + 109.IBPluginDependency + 111.IBPluginDependency + 113.IBPluginDependency + 115.IBPluginDependency + 116.IBPluginDependency + 126.IBPluginDependency + 127.IBPluginDependency + 128.CustomClassName + 128.IBPluginDependency + 129.CustomClassName + 129.IBPluginDependency + 130.CustomClassName + 130.IBPluginDependency + 131.CustomClassName + 131.IBPluginDependency + 32.IBPluginDependency + 33.IBPluginDependency + 34.IBPluginDependency + 43.IBPluginDependency + 44.CustomClassName + 44.IBPluginDependency + 46.CustomClassName + 46.IBPluginDependency + 47.CustomClassName + 47.IBPluginDependency + 48.IBEditorWindowLastContentRect + 48.IBPluginDependency + 49.IBPluginDependency + 50.IBPluginDependency + 51.IBPluginDependency + 54.CustomClassName + 54.IBPluginDependency + 64.IBPluginDependency + 65.IBPluginDependency + 66.IBPluginDependency + 7.IBEditorWindowLastContentRect + 7.IBPluginDependency + 7.IBUserGuides + 7.WindowOrigin + 7.editorWindowContentRectSynchronizationRect + 82.CustomClassName + 82.IBPluginDependency + 83.CustomClassName + 83.IBPluginDependency + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilderKit + com.apple.InterfaceBuilderKit + BWAnchoredButton + com.apple.InterfaceBuilder.CocoaPlugin + BWAnchoredButtonCell + com.apple.InterfaceBuilder.CocoaPlugin + BWAnchoredPopUpButton + com.apple.InterfaceBuilder.CocoaPlugin + BWAnchoredPopUpButtonCell + com.apple.InterfaceBuilder.CocoaPlugin + {{967, 542}, {100, 54}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.IBSDKPlugin + com.apple.InterfaceBuilder.IBSDKPlugin + com.apple.InterfaceBuilder.IBSDKPlugin + com.apple.InterfaceBuilder.IBSDKPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.IBSDKPlugin + com.apple.InterfaceBuilder.CocoaPlugin + BWUnanchoredButton + com.apple.InterfaceBuilder.CocoaPlugin + BWUnanchoredButton + com.apple.InterfaceBuilder.CocoaPlugin + BWUnanchoredButtonCell + com.apple.InterfaceBuilder.CocoaPlugin + BWUnanchoredButtonCell + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + BWAnchoredButton + com.apple.InterfaceBuilder.CocoaPlugin + BWAnchoredPopUpButton + com.apple.InterfaceBuilder.CocoaPlugin + BWAnchoredPopUpButtonCell + com.apple.InterfaceBuilder.CocoaPlugin + {{750, 510}, {97, 54}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + BWAnchoredButtonCell + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{902, 88}, {310, 593}} + com.apple.InterfaceBuilder.CocoaPlugin + + YES + + {332, 343} + {{403, 401}, {264, 327}} + BWUnanchoredButton + com.apple.InterfaceBuilder.CocoaPlugin + BWUnanchoredButtonCell + com.apple.InterfaceBuilder.CocoaPlugin + + + + YES + + YES + + + YES + + + + + YES + + YES + + + YES + + + + 133 + + + + YES + + BWAnchoredButton + NSButton + + IBProjectSource + BWAnchoredButton.h + + + + BWAnchoredButtonBar + NSView + + splitViewDelegate + id + + + IBProjectSource + BWAnchoredButtonBar.h + + + + BWAnchoredButtonCell + NSButtonCell + + IBProjectSource + BWAnchoredButtonCell.h + + + + BWAnchoredPopUpButton + NSPopUpButton + + IBProjectSource + BWAnchoredPopUpButton.h + + + + BWAnchoredPopUpButtonCell + NSPopUpButtonCell + + IBProjectSource + BWAnchoredPopUpButtonCell.h + + + + BWUnanchoredButton + NSButton + + IBProjectSource + BWUnanchoredButton.h + + + + BWUnanchoredButtonCell + BWAnchoredButtonCell + + IBProjectSource + BWUnanchoredButtonCell.h + + + + BWUnanchoredButtonContainer + NSView + + IBProjectSource + BWUnanchoredButtonContainer.h + + + + NSView + + IBProjectSource + NSView+BWAdditions.h + + + + + 0 + BWToolkit.xcodeproj + 3 + + diff --git a/Frameworks/BWToolkitFramework.framework/BWButtonBarLibrary.nib/keyedobjects.nib b/Frameworks/BWToolkitFramework.framework/BWButtonBarLibrary.nib/keyedobjects.nib new file mode 100644 index 00000000..6c4a7422 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/BWButtonBarLibrary.nib/keyedobjects.nib differ diff --git a/Frameworks/BWToolkitFramework.framework/BWControllersLibrary.nib/designable.nib b/Frameworks/BWToolkitFramework.framework/BWControllersLibrary.nib/designable.nib new file mode 100644 index 00000000..4dfec029 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWControllersLibrary.nib/designable.nib @@ -0,0 +1,510 @@ + + + + 1050 + 9G55 + 677 + 949.43 + 353.00 + + YES + + + + YES + com.apple.InterfaceBuilder.IBSDKPlugin + com.apple.InterfaceBuilderKit + com.apple.InterfaceBuilder.CocoaPlugin + + + YES + + YES + + + YES + + + + YES + + NSObject + + + FirstResponder + + + NSApplication + + + + 268 + + YES + + + 268 + {{20, 290}, {138, 17}} + + YES + + 67239488 + 272630784 + Controllers + + LucidaGrande + 1.300000e+01 + 1044 + + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2OQA + + + + 6 + System + controlTextColor + + 3 + MAA + + + + + + + 12 + {{20, 288}, {224, 5}} + + {0, 0} + + 67239424 + 0 + Box + + + 6 + System + textBackgroundColor + + 3 + MQA + + + + 3 + MCAwLjgwMDAwMDAxAA + + + 3 + 2 + 0 + NO + + + + 268 + + YES + + + 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 + + + {{16, 16}, {48, 48}} + + YES + + 130560 + 33554432 + + NSImage + Library-SheetController + + 0 + 0 + 0 + YES + + YES + + + {{20, 202}, {80, 80}} + + Sheet Controller + FB2E7CB9-EA98-4C6F-B4EE-7CFA4E1599D2 + Controller object for loading and dismissing sheets. + + Controller object for loading and dismissing sheets. To use, connect its outlets and actions. Optionally, you can connect the delegate outlet if you want to execute code when an action occurs on the sheet. The delegate should implement the method -(BOOL)shouldCloseSheet:(id)sender. + + YES + + YES + + YES + NSFont + NSParagraphStyle + + + YES + + Helvetica + 1.200000e+01 + 16 + + + 4 + + + + + + YES + + YES + NSFont + NSLigature + NSParagraphStyle + + + YES + + Monaco + 1.200000e+01 + 16 + + + + 4 + + + + + + YES + + YES + NSColor + NSFont + NSLigature + NSParagraphStyle + + + YES + + 1 + MC42NjY2NjY2OSAwLjA1MDk4MDM5MyAwLjU2ODYyNzQ4AA + + + + + + + + YES + + YES + NSColor + NSFont + NSLigature + NSParagraphStyle + + + YES + + 1 + MC4zNjA3ODQzMiAwLjE0OTAxOTYxIDAuNjAwMDAwMDIAA + + + + + + + + YES + + YES + NSColor + NSFont + NSLigature + NSParagraphStyle + + + YES + + 1 + MC4yNDcwNTg4MiAwLjQzMTM3MjU1IDAuNDU0OTAxOTYAA + + + + + + + + + 9wEAAgEEAhUBBwMBBA + + + Controllers + + + + + + 0 + + + {264, 327} + + NSView + + + BWSheetController + + + + + YES + + + representedObject + + + + 56 + + + + + YES + + 0 + + YES + + + + + + -2 + + + RmlsZSdzIE93bmVyA + + + -1 + + + First Responder + + + -3 + + + Application + + + 7 + + + YES + + + + + + Library Objects + + + 41 + + + YES + + + + + + 42 + + + + + 46 + + + + + 47 + + + + + 53 + + + YES + + + + + + 54 + + + YES + + + + + + 55 + + + + + + + YES + + YES + -1.IBPluginDependency + -2.IBPluginDependency + -3.IBPluginDependency + 41.IBPluginDependency + 42.IBPluginDependency + 46.IBPluginDependency + 47.IBPluginDependency + 53.IBPluginDependency + 7.IBEditorWindowLastContentRect + 7.IBPluginDependency + 7.IBUserGuides + 7.WindowOrigin + 7.editorWindowContentRectSynchronizationRect + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilderKit + com.apple.InterfaceBuilderKit + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.IBSDKPlugin + {{549, 235}, {264, 327}} + com.apple.InterfaceBuilder.CocoaPlugin + + YES + + {332, 343} + {{403, 401}, {264, 327}} + + + + YES + + YES + + + YES + + + + + YES + + YES + + + YES + + + + 56 + + + + YES + + BWSheetController + NSObject + + YES + + YES + closeSheet: + messageDelegateAndCloseSheet: + openSheet: + + + YES + id + id + id + + + + YES + + YES + delegate + parentWindow + sheet + + + YES + id + NSWindow + NSWindow + + + + IBProjectSource + BWSheetController.h + + + + NSView + + IBProjectSource + NSView+BWAdditions.h + + + + NSWindow + + IBProjectSource + NSWindow+BWAdditions.h + + + + NSWindow + + IBProjectSource + NSWindow-NSTimeMachineSupport.h + + + + + 0 + BWToolkit.xcodeproj + 3 + + diff --git a/Frameworks/BWToolkitFramework.framework/BWControllersLibrary.nib/keyedobjects.nib b/Frameworks/BWToolkitFramework.framework/BWControllersLibrary.nib/keyedobjects.nib new file mode 100644 index 00000000..e6337fee Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/BWControllersLibrary.nib/keyedobjects.nib differ diff --git a/Frameworks/BWToolkitFramework.framework/BWCustomView.classdescription b/Frameworks/BWToolkitFramework.framework/BWCustomView.classdescription new file mode 100644 index 00000000..018b032c --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWCustomView.classdescription @@ -0,0 +1,12 @@ +{ + Actions = { + // Define action descriptions here, for example + // "myAction:" = id; + }; + Outlets = { + // Define outlet descriptions here, for example + // myOutlet = NSView; + }; + ClassName = BWCustomView; + SuperClass = NSView; +} diff --git a/Frameworks/BWToolkitFramework.framework/BWCustomView.h b/Frameworks/BWToolkitFramework.framework/BWCustomView.h new file mode 100644 index 00000000..aef213bd --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWCustomView.h @@ -0,0 +1,17 @@ +// +// BWGradientSplitViewSubview.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import +#import "NSCustomView.h" + +@interface BWCustomView : NSCustomView +{ + BOOL isOnItsOwn; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWCustomView.m b/Frameworks/BWToolkitFramework.framework/BWCustomView.m new file mode 100644 index 00000000..dff80f57 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWCustomView.m @@ -0,0 +1,186 @@ +// +// BWGradientSplitViewSubview.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWCustomView.h" +#import "NSColor+BWAdditions.h" +#import "NSWindow+BWAdditions.h" +#import "NSApplication+BWAdditions.h" +#import "IBColor.h" + +@interface BWCustomView (BWCVPrivate) +- (void)drawTextInRect:(NSRect)rect; +- (NSColor *)containerCustomViewBackgroundColor; +- (NSColor *)childlessCustomViewBackgroundColor; +- (NSColor *)customViewDarkTexturedBorderColor; +- (NSColor *)customViewDarkBorderColor; +- (NSColor *)customViewLightBorderColor; +@end + +@implementation BWCustomView + +- (void)drawRect:(NSRect)rect +{ + rect = self.bounds; + + NSColor *insetColor = [self customViewLightBorderColor]; + NSColor *borderColor; + + if ([[self window] isTextured]) + borderColor = [self customViewDarkTexturedBorderColor]; + else + borderColor = [self customViewDarkBorderColor]; + + // Note: These two colors are reversed in IBColor in 10.5 + if (self.subviews.count == 0) + { + if ([NSApplication isOnLeopard]) + [[self containerCustomViewBackgroundColor] set]; + else + [[self childlessCustomViewBackgroundColor] set]; + NSRectFillUsingOperation(rect,NSCompositeSourceOver); + } + else + { + if ([NSApplication isOnLeopard]) + [[self childlessCustomViewBackgroundColor] set]; + else + [[self containerCustomViewBackgroundColor] set]; + NSRectFillUsingOperation(rect,NSCompositeSourceOver); + } + + if ([[self superview] isKindOfClass:NSClassFromString(@"BWSplitView")] && [[self superview] subviews].count > 1) + { + isOnItsOwn = NO; + NSArray *subviews = [[self superview] subviews]; + + if ([subviews objectAtIndex:0] == self) + { + [insetColor drawPixelThickLineAtPosition:1 withInset:0 inRect:rect inView:self horizontal:NO flip:NO]; + [insetColor drawPixelThickLineAtPosition:1 withInset:0 inRect:rect inView:self horizontal:YES flip:YES]; + + if ([(NSSplitView *)[self superview] isVertical]) + { + [insetColor drawPixelThickLineAtPosition:1 withInset:0 inRect:rect inView:self horizontal:YES flip:NO]; + [insetColor drawPixelThickLineAtPosition:0 withInset:0 inRect:rect inView:self horizontal:NO flip:YES]; + [borderColor drawPixelThickLineAtPosition:0 withInset:0 inRect:rect inView:self horizontal:YES flip:NO]; + } + else + { + [insetColor drawPixelThickLineAtPosition:0 withInset:0 inRect:rect inView:self horizontal:YES flip:NO]; + [insetColor drawPixelThickLineAtPosition:1 withInset:0 inRect:rect inView:self horizontal:NO flip:YES]; + [borderColor drawPixelThickLineAtPosition:0 withInset:0 inRect:rect inView:self horizontal:NO flip:YES]; + } + + [borderColor drawPixelThickLineAtPosition:0 withInset:0 inRect:rect inView:self horizontal:NO flip:NO]; + [borderColor drawPixelThickLineAtPosition:0 withInset:0 inRect:rect inView:self horizontal:YES flip:YES]; + } + else if ([subviews lastObject] == self) + { + [insetColor drawPixelThickLineAtPosition:1 withInset:0 inRect:rect inView:self horizontal:NO flip:YES]; + [insetColor drawPixelThickLineAtPosition:1 withInset:0 inRect:rect inView:self horizontal:YES flip:NO]; + + if ([(NSSplitView *)[self superview] isVertical]) + { + [insetColor drawPixelThickLineAtPosition:0 withInset:0 inRect:rect inView:self horizontal:NO flip:NO]; + [insetColor drawPixelThickLineAtPosition:1 withInset:0 inRect:rect inView:self horizontal:YES flip:YES]; + [borderColor drawPixelThickLineAtPosition:0 withInset:0 inRect:rect inView:self horizontal:YES flip:YES]; + [borderColor drawPixelThickLineAtPosition:0 withInset:0 inRect:rect inView:self horizontal:NO flip:YES]; + } + else + { + [insetColor drawPixelThickLineAtPosition:1 withInset:0 inRect:rect inView:self horizontal:NO flip:NO]; + [insetColor drawPixelThickLineAtPosition:0 withInset:0 inRect:rect inView:self horizontal:YES flip:YES]; + [borderColor drawPixelThickLineAtPosition:0 withInset:0 inRect:rect inView:self horizontal:NO flip:YES]; + [borderColor drawPixelThickLineAtPosition:0 withInset:0 inRect:rect inView:self horizontal:NO flip:NO]; + } + + [borderColor drawPixelThickLineAtPosition:0 withInset:0 inRect:rect inView:self horizontal:YES flip:NO]; + } + else + { + if ([(NSSplitView *)[self superview] isVertical]) + { + [insetColor drawPixelThickLineAtPosition:0 withInset:0 inRect:rect inView:self horizontal:NO flip:NO]; + [insetColor drawPixelThickLineAtPosition:0 withInset:0 inRect:rect inView:self horizontal:NO flip:YES]; + [insetColor drawPixelThickLineAtPosition:1 withInset:0 inRect:rect inView:self horizontal:YES flip:YES]; + [insetColor drawPixelThickLineAtPosition:1 withInset:0 inRect:rect inView:self horizontal:YES flip:NO]; + [borderColor drawPixelThickLineAtPosition:0 withInset:0 inRect:rect inView:self horizontal:YES flip:NO]; + [borderColor drawPixelThickLineAtPosition:0 withInset:0 inRect:rect inView:self horizontal:YES flip:YES]; + } + else + { + [insetColor drawPixelThickLineAtPosition:1 withInset:0 inRect:rect inView:self horizontal:NO flip:NO]; + [insetColor drawPixelThickLineAtPosition:1 withInset:0 inRect:rect inView:self horizontal:NO flip:YES]; + [insetColor drawPixelThickLineAtPosition:0 withInset:0 inRect:rect inView:self horizontal:YES flip:YES]; + [insetColor drawPixelThickLineAtPosition:0 withInset:0 inRect:rect inView:self horizontal:YES flip:NO]; + [borderColor drawPixelThickLineAtPosition:0 withInset:0 inRect:rect inView:self horizontal:NO flip:NO]; + [borderColor drawPixelThickLineAtPosition:0 withInset:0 inRect:rect inView:self horizontal:NO flip:YES]; + } + } + } + else + { + isOnItsOwn = YES; + + [insetColor drawPixelThickLineAtPosition:1 withInset:0 inRect:rect inView:self horizontal:NO flip:NO]; + [insetColor drawPixelThickLineAtPosition:1 withInset:0 inRect:rect inView:self horizontal:NO flip:YES]; + [insetColor drawPixelThickLineAtPosition:1 withInset:0 inRect:rect inView:self horizontal:YES flip:YES]; + [insetColor drawPixelThickLineAtPosition:1 withInset:0 inRect:rect inView:self horizontal:YES flip:NO]; + + [borderColor drawPixelThickLineAtPosition:0 withInset:0 inRect:rect inView:self horizontal:NO flip:NO]; + [borderColor drawPixelThickLineAtPosition:0 withInset:0 inRect:rect inView:self horizontal:NO flip:YES]; + [borderColor drawPixelThickLineAtPosition:0 withInset:0 inRect:rect inView:self horizontal:YES flip:YES]; + [borderColor drawPixelThickLineAtPosition:0 withInset:0 inRect:rect inView:self horizontal:YES flip:NO]; + } + + if (rect.size.height > 16) + [self drawTextInRect:rect]; +} + +- (void)drawTextInRect:(NSRect)rect +{ + NSString *text; + + if (isOnItsOwn) + text = [NSString stringWithFormat:@"%d x %d pt",(int)rect.size.width,(int)rect.size.height]; + else if ([(NSSplitView *)[self superview] isVertical]) + text = [NSString stringWithFormat:@"%d pt",(int)rect.size.width]; + else + text = [NSString stringWithFormat:@"%d pt",(int)rect.size.height]; + + if (![self.className isEqualToString:@"NSView"]) + text = self.className; + + NSMutableDictionary *attributes = [[[NSMutableDictionary alloc] init] autorelease]; + [attributes setObject:[NSColor whiteColor] forKey:NSForegroundColorAttributeName]; + [attributes setObject:[NSFont boldSystemFontOfSize:12] forKey:NSFontAttributeName]; + + NSShadow *shadow = [[[NSShadow alloc] init] autorelease]; + [shadow setShadowOffset:NSMakeSize(0,-1)]; + [shadow setShadowColor:[[NSColor blackColor] colorWithAlphaComponent:0.4]]; + [attributes setObject:shadow forKey:NSShadowAttributeName]; + + NSMutableAttributedString *string = [[[NSMutableAttributedString alloc] initWithString:text attributes:attributes] autorelease]; + + NSRect boundingRect = [string boundingRectWithSize:rect.size options:0]; + + NSPoint rectCenter; + rectCenter.x = rect.size.width / 2; + rectCenter.y = rect.size.height / 2; + + NSPoint drawPoint = rectCenter; + drawPoint.x -= boundingRect.size.width / 2; + drawPoint.y -= boundingRect.size.height / 2; + + drawPoint.x = roundf(drawPoint.x); + drawPoint.y = roundf(drawPoint.y); + + [string drawAtPoint:drawPoint]; +} + +@end \ No newline at end of file diff --git a/Frameworks/BWToolkitFramework.framework/BWCustomViewIntegration.m b/Frameworks/BWToolkitFramework.framework/BWCustomViewIntegration.m new file mode 100644 index 00000000..3e365b34 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWCustomViewIntegration.m @@ -0,0 +1,45 @@ +// +// BWGradientSplitViewSubviewIntegration.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import +#import "BWCustomView.h" +#import "IBColor.h" + +@implementation BWCustomView ( BWCustomViewIntegration ) + +- (NSView *)ibDesignableContentView +{ + return self; +} + +- (NSColor *)containerCustomViewBackgroundColor +{ + return [IBColor containerCustomViewBackgroundColor]; +} + +- (NSColor *)childlessCustomViewBackgroundColor +{ + return [IBColor childlessCustomViewBackgroundColor]; +} + +- (NSColor *)customViewDarkTexturedBorderColor +{ + return [IBColor customViewDarkTexturedBorderColor]; +} + +- (NSColor *)customViewDarkBorderColor +{ + return [IBColor customViewDarkBorderColor]; +} + +- (NSColor *)customViewLightBorderColor +{ + return [IBColor customViewLightBorderColor]; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWGradientBox.classdescription b/Frameworks/BWToolkitFramework.framework/BWGradientBox.classdescription new file mode 100644 index 00000000..8e38169a --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWGradientBox.classdescription @@ -0,0 +1,12 @@ +{ + Actions = { + // Define action descriptions here, for example + // "myAction:" = id; + }; + Outlets = { + // Define outlet descriptions here, for example + // myOutlet = NSView; + }; + ClassName = BWGradientBox; + SuperClass = NSView; +} diff --git a/Frameworks/BWToolkitFramework.framework/BWGradientBox.h b/Frameworks/BWToolkitFramework.framework/BWGradientBox.h new file mode 100644 index 00000000..8c6cc894 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWGradientBox.h @@ -0,0 +1,24 @@ +// +// BWGradientBox.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface BWGradientBox : NSView +{ + NSColor *fillStartingColor, *fillEndingColor, *fillColor; + NSColor *topBorderColor, *bottomBorderColor; + float topInsetAlpha, bottomInsetAlpha; + + BOOL hasTopBorder, hasBottomBorder, hasGradient; +} + +@property (nonatomic, retain) NSColor *fillStartingColor, *fillEndingColor, *fillColor, *topBorderColor, *bottomBorderColor; +@property float topInsetAlpha, bottomInsetAlpha; +@property BOOL hasTopBorder, hasBottomBorder, hasGradient; + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWGradientBox.m b/Frameworks/BWToolkitFramework.framework/BWGradientBox.m new file mode 100644 index 00000000..14aa19eb --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWGradientBox.m @@ -0,0 +1,179 @@ +// +// BWGradientBox.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWGradientBox.h" +#import "NSColor+BWAdditions.h" + +@implementation BWGradientBox + +@synthesize fillStartingColor, fillEndingColor, fillColor, topBorderColor, bottomBorderColor; +@synthesize topInsetAlpha, bottomInsetAlpha; +@synthesize hasTopBorder, hasBottomBorder, hasGradient; + +- (id)initWithCoder:(NSCoder *)decoder +{ + if ((self = [super initWithCoder:decoder]) != nil) + { + [self setFillStartingColor:[decoder decodeObjectForKey:@"BWGBFillStartingColor"]]; + [self setFillEndingColor:[decoder decodeObjectForKey:@"BWGBFillEndingColor"]]; + [self setFillColor:[decoder decodeObjectForKey:@"BWGBFillColor"]]; + [self setTopBorderColor:[decoder decodeObjectForKey:@"BWGBTopBorderColor"]]; + [self setBottomBorderColor:[decoder decodeObjectForKey:@"BWGBBottomBorderColor"]]; + + [self setHasTopBorder:[decoder decodeBoolForKey:@"BWGBHasTopBorder"]]; + [self setHasBottomBorder:[decoder decodeBoolForKey:@"BWGBHasBottomBorder"]]; + [self setHasGradient:[decoder decodeBoolForKey:@"BWGBHasGradient"]]; + + [self setTopInsetAlpha:[decoder decodeFloatForKey:@"BWGBTopInsetAlpha"]]; + [self setBottomInsetAlpha:[decoder decodeFloatForKey:@"BWGBBottomInsetAlpha"]]; + + if (self.fillStartingColor == nil) + self.fillStartingColor = [NSColor whiteColor]; + + if (self.fillEndingColor == nil) + self.fillEndingColor = [NSColor grayColor]; + + if (self.fillColor == nil) + self.fillColor = [NSColor grayColor]; + + if (self.topBorderColor == nil) + self.topBorderColor = [NSColor blackColor]; + + if (self.bottomBorderColor == nil) + self.bottomBorderColor = [NSColor blackColor]; + } + return self; +} + +- (void)encodeWithCoder:(NSCoder *)coder +{ + [super encodeWithCoder:coder]; + + [coder encodeObject:[self fillStartingColor] forKey:@"BWGBFillStartingColor"]; + [coder encodeObject:[self fillEndingColor] forKey:@"BWGBFillEndingColor"]; + [coder encodeObject:[self fillColor] forKey:@"BWGBFillColor"]; + [coder encodeObject:[self topBorderColor] forKey:@"BWGBTopBorderColor"]; + [coder encodeObject:[self bottomBorderColor] forKey:@"BWGBBottomBorderColor"]; + + [coder encodeBool:[self hasTopBorder] forKey:@"BWGBHasTopBorder"]; + [coder encodeBool:[self hasBottomBorder] forKey:@"BWGBHasBottomBorder"]; + [coder encodeBool:[self hasGradient] forKey:@"BWGBHasGradient"]; + + [coder encodeFloat:[self topInsetAlpha] forKey:@"BWGBTopInsetAlpha"]; + [coder encodeFloat:[self bottomInsetAlpha] forKey:@"BWGBBottomInsetAlpha"]; +} + +- (void)drawRect:(NSRect)rect +{ + if (hasGradient) + { + NSGradient *gradient = [[NSGradient alloc] initWithStartingColor:fillStartingColor endingColor:fillEndingColor]; + [gradient drawInRect:self.bounds angle:90]; + [gradient release]; + } + else + { + [fillColor set]; + NSRectFillUsingOperation(self.bounds, NSCompositeSourceOver); + } + + if (hasTopBorder) + { + [topBorderColor drawPixelThickLineAtPosition:0 withInset:0 inRect:self.bounds inView:self horizontal:YES flip:NO]; + [[[NSColor whiteColor] colorWithAlphaComponent:topInsetAlpha] drawPixelThickLineAtPosition:1 withInset:0 inRect:self.bounds inView:self horizontal:YES flip:NO]; + } + else + { + [[[NSColor whiteColor] colorWithAlphaComponent:topInsetAlpha] drawPixelThickLineAtPosition:0 withInset:0 inRect:self.bounds inView:self horizontal:YES flip:NO]; + } + + + if (hasBottomBorder) + { + [bottomBorderColor drawPixelThickLineAtPosition:0 withInset:0 inRect:self.bounds inView:self horizontal:YES flip:YES]; + [[[NSColor whiteColor] colorWithAlphaComponent:bottomInsetAlpha] drawPixelThickLineAtPosition:1 withInset:0 inRect:self.bounds inView:self horizontal:YES flip:YES]; + } + else + { + [[[NSColor whiteColor] colorWithAlphaComponent:bottomInsetAlpha] drawPixelThickLineAtPosition:0 withInset:0 inRect:self.bounds inView:self horizontal:YES flip:YES]; + } + +} + +- (BOOL)isFlipped +{ + return YES; +} + +- (void)setFillColor:(NSColor *)color +{ + if (fillColor != color) + { + [fillColor release]; + fillColor = [color retain]; + + [self setNeedsDisplay:YES]; + } +} + +- (void)setFillStartingColor:(NSColor *)color +{ + if (fillStartingColor != color) + { + [fillStartingColor release]; + fillStartingColor = [color retain]; + + [self setNeedsDisplay:YES]; + } +} + +- (void)setFillEndingColor:(NSColor *)color +{ + if (fillEndingColor != color) + { + [fillEndingColor release]; + fillEndingColor = [color retain]; + + [self setNeedsDisplay:YES]; + } +} + +- (void)setTopBorderColor:(NSColor *)color +{ + if (topBorderColor != color) + { + [topBorderColor release]; + topBorderColor = [color retain]; + + [self setNeedsDisplay:YES]; + } +} + +- (void)setBottomBorderColor:(NSColor *)color +{ + if (bottomBorderColor != color) + { + [bottomBorderColor release]; + bottomBorderColor = [color retain]; + + [self setNeedsDisplay:YES]; + } +} + +- (void)dealloc +{ + [fillColor release]; + [fillStartingColor release]; + [fillEndingColor release]; + [topBorderColor release]; + [bottomBorderColor release]; + + [super dealloc]; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWGradientBoxInspector.h b/Frameworks/BWToolkitFramework.framework/BWGradientBoxInspector.h new file mode 100644 index 00000000..13be57da --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWGradientBoxInspector.h @@ -0,0 +1,21 @@ +// +// BWGradientBoxInspector.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import +#import "BWGradientBox.h" +#import "BWGradientWell.h" + +@interface BWGradientBoxInspector : IBInspector +{ + BWGradientBox *box; + int fillPopupSelection; +} + +@property int fillPopupSelection; + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWGradientBoxInspector.m b/Frameworks/BWToolkitFramework.framework/BWGradientBoxInspector.m new file mode 100644 index 00000000..eacd2581 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWGradientBoxInspector.m @@ -0,0 +1,48 @@ +// +// BWGradientBoxInspector.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWGradientBoxInspector.h" + +@implementation BWGradientBoxInspector + +@synthesize fillPopupSelection; + +- (NSString *)viewNibName +{ + return @"BWGradientBoxInspector"; +} + +- (void)refresh +{ + [super refresh]; + + box = [[self inspectedObjects] objectAtIndex:0]; + + // Update the popup selections in case of an undo operation + if ([box hasGradient]) + [self setFillPopupSelection:1]; + else + [self setFillPopupSelection:0]; +} + ++ (BOOL)supportsMultipleObjectInspection +{ + return NO; +} + +- (void)setFillPopupSelection:(int)anInt +{ + fillPopupSelection = anInt; + + if (fillPopupSelection == 0) + [box setHasGradient:NO]; + else + [box setHasGradient:YES]; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWGradientBoxInspector.xib b/Frameworks/BWToolkitFramework.framework/BWGradientBoxInspector.xib new file mode 100644 index 00000000..4e51de7d --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWGradientBoxInspector.xib @@ -0,0 +1,2148 @@ + + + + 1050 + 10A380 + 731 + 1025.2 + 427.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 731 + + + YES + + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + YES + + YES + + + YES + + + + YES + + IBInspector + + + FirstResponder + + + NSApplication + + + + 268 + + YES + + + 268 + {{81, 133}, {186, 22}} + + YES + + -2076049856 + 133120 + + LucidaGrande + 11 + 3100 + + + 109199615 + 1 + + LucidaGrande + 11 + 16 + + + + 400 + 75 + + + Solid Color + + 1048576 + 2147483647 + 1 + + NSImage + NSMenuCheckmark + + + NSImage + NSMenuMixedState + + _popUpItemAction: + + + YES + + OtherViews + + YES + + + + Gradient + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + 3 + YES + YES + 1 + + + + + 268 + {{8, 25}, {70, 14}} + + YES + + 67239488 + 4326400 + Borders + + LucidaGrande-Bold + 11 + 16 + + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2NjY3AA + + + + 6 + System + controlTextColor + + 3 + MAA + + + + + + + 268 + {{8, 77}, {70, 14}} + + YES + + 67239488 + 4326400 + Inset Lines + + + + + + + + + 268 + {{8, 138}, {70, 14}} + + YES + + 67239488 + 4326400 + Fill + + + + + + + + + 268 + {{152, 21}, {21, 18}} + + YES + + 67239424 + 131072 + Switch + + + 1210864127 + 2 + + NSImage + NSSwitch + + + NSSwitch + + + + 200 + 25 + + + + + 268 + + YES + + YES + NSColor pasteboard type + + + {{84, 18}, {67, 24}} + + YES + YES + + 1 + MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA + + + + + 268 + {{81, -2}, {72, 17}} + + YES + + 67239424 + 138412032 + Top + + + + + + + + + 268 + {{246, 21}, {21, 18}} + + YES + + 67239424 + 131072 + Switch + + + 1210864127 + 2 + + + + + 200 + 25 + + + + + 268 + + YES + + YES + NSColor pasteboard type + + + {{178, 18}, {67, 24}} + + YES + YES + + 1 + MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA + + + + + 268 + {{175, -2}, {72, 17}} + + YES + + 67239424 + 138412032 + Bottom + + + + + + + + + 268 + {{84, 76}, {86, 15}} + + YES + + -2080244224 + 131072 + + + + 1 + 0.0 + 0.5 + 0.0 + 0 + 1 + NO + NO + + + + + 268 + {{178, 75}, {67, 19}} + + YES + + -1804468671 + -2143288320 + + + + + YES + + YES + allowsFloats + attributedStringForZero + decimalSeparator + formatterBehavior + groupingSeparator + locale + maximum + minimum + multiplier + negativeFormat + numberStyle + positiveFormat + textAttributesForZero + usesGroupingSeparator + zeroSymbol + + + YES + + + 0% + + YES + + + YES + + + + . + + , + + + + + + + -0% + + 0% + + YES + + + YES + + + + 0% + + + 0% + -0% + + + + 0% + + + + + NaN + + + + + + 3 + YES + YES + YES + + . + , + NO + NO + YES + + + YES + + 6 + System + textBackgroundColor + + 3 + MQA + + + + 6 + System + textColor + + + + + + + 268 + {{251, 73}, {15, 22}} + + YES + + 68025888 + 131072 + + + 1 + 1 + 0.10000000000000001 + YES + + + + + 268 + {{84, 51}, {86, 15}} + + YES + + -2080244224 + 131072 + + + + 1 + 0.0 + 0.5 + 0.0 + 0 + 1 + NO + NO + + + + + 268 + {{251, 48}, {15, 22}} + + YES + + 68025888 + 131072 + + + 1 + 1 + 0.10000000000000001 + YES + + + + + 268 + + YES + + + 268 + + YES + + YES + NSColor pasteboard type + + + {{2, 2}, {31, 23}} + + YES + YES + + 1 + MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA + + + + + 268 + + YES + + YES + NSColor pasteboard type + + + {{147, 2}, {31, 23}} + + YES + YES + + 1 + MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA + + + + {{84, 102}, {180, 27}} + + BWGradientWell + + + + 268 + + YES + + YES + NSColor pasteboard type + + + {{84, 102}, {86, 27}} + + YES + YES + + 1 + MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA + + + + + 268 + {{178, 50}, {67, 19}} + + YES + + -1804468671 + -2143288320 + + + + + YES + + YES + allowsFloats + attributedStringForZero + decimalSeparator + formatterBehavior + groupingSeparator + locale + maximum + minimum + multiplier + negativeFormat + numberStyle + positiveFormat + textAttributesForZero + usesGroupingSeparator + zeroSymbol + + + YES + + + 0% + + + . + + , + + + + + -0% + + 0% + + + 0% + + + 0% + -0% + + + + 0% + + + + + NaN + + + + + + 3 + YES + YES + YES + + . + , + NO + NO + YES + + + YES + + + + + + {272, 158} + + NSView + + + + YES + fillPopupSelection + + YES + + YES + YES + YES + YES + YES + + + + + YES + + + inspectorView + + + + 16 + + + + gradientWell + + + + 183 + + + + endingColorWell + + + + 184 + + + + gradientWell + + + + 185 + + + + startingColorWell + + + + 186 + + + + content + + + + 190 + + + + selectedIndex: selection.fillPopupSelection + + + + + + selectedIndex: selection.fillPopupSelection + selectedIndex + selection.fillPopupSelection + 2 + + + 191 + + + + hidden: selection.fillPopupSelection + + + + + + hidden: selection.fillPopupSelection + hidden + selection.fillPopupSelection + + NSValueTransformerName + NSNegateBoolean + + 2 + + + 193 + + + + hidden: selection.fillPopupSelection + + + + + + hidden: selection.fillPopupSelection + hidden + selection.fillPopupSelection + 2 + + + 194 + + + + value: inspectedObjectsController.selection.fillEndingColor + + + + + + value: inspectedObjectsController.selection.fillEndingColor + value + inspectedObjectsController.selection.fillEndingColor + 2 + + + 195 + + + + value: inspectedObjectsController.selection.fillStartingColor + + + + + + value: inspectedObjectsController.selection.fillStartingColor + value + inspectedObjectsController.selection.fillStartingColor + 2 + + + 196 + + + + value: inspectedObjectsController.selection.topInsetAlpha + + + + + + value: inspectedObjectsController.selection.topInsetAlpha + value + inspectedObjectsController.selection.topInsetAlpha + 2 + + + 197 + + + + value: inspectedObjectsController.selection.hasTopBorder + + + + + + value: inspectedObjectsController.selection.hasTopBorder + value + inspectedObjectsController.selection.hasTopBorder + 2 + + + 199 + + + + value: inspectedObjectsController.selection.hasBottomBorder + + + + + + value: inspectedObjectsController.selection.hasBottomBorder + value + inspectedObjectsController.selection.hasBottomBorder + 2 + + + 200 + + + + value: inspectedObjectsController.selection.topBorderColor + + + + + + value: inspectedObjectsController.selection.topBorderColor + value + inspectedObjectsController.selection.topBorderColor + 2 + + + 201 + + + + value: inspectedObjectsController.selection.bottomBorderColor + + + + + + value: inspectedObjectsController.selection.bottomBorderColor + value + inspectedObjectsController.selection.bottomBorderColor + 2 + + + 202 + + + + value: inspectedObjectsController.selection.fillColor + + + + + + value: inspectedObjectsController.selection.fillColor + value + inspectedObjectsController.selection.fillColor + 2 + + + 203 + + + + enabled: inspectedObjectsController.selection.hasTopBorder + + + + + + enabled: inspectedObjectsController.selection.hasTopBorder + enabled + inspectedObjectsController.selection.hasTopBorder + 2 + + + 205 + + + + enabled: inspectedObjectsController.selection.hasBottomBorder + + + + + + enabled: inspectedObjectsController.selection.hasBottomBorder + enabled + inspectedObjectsController.selection.hasBottomBorder + 2 + + + 206 + + + + value: inspectedObjectsController.selection.topInsetAlpha + + + + + + value: inspectedObjectsController.selection.topInsetAlpha + value + inspectedObjectsController.selection.topInsetAlpha + 2 + + + 210 + + + + value: inspectedObjectsController.selection.topInsetAlpha + + + + + + value: inspectedObjectsController.selection.topInsetAlpha + value + inspectedObjectsController.selection.topInsetAlpha + 2 + + + 211 + + + + value: inspectedObjectsController.selection.bottomInsetAlpha + + + + + + value: inspectedObjectsController.selection.bottomInsetAlpha + value + inspectedObjectsController.selection.bottomInsetAlpha + 2 + + + 212 + + + + value: inspectedObjectsController.selection.bottomInsetAlpha + + + + + + value: inspectedObjectsController.selection.bottomInsetAlpha + value + inspectedObjectsController.selection.bottomInsetAlpha + 2 + + + 214 + + + + value: inspectedObjectsController.selection.bottomInsetAlpha + + + + + + value: inspectedObjectsController.selection.bottomInsetAlpha + value + inspectedObjectsController.selection.bottomInsetAlpha + 2 + + + 218 + + + + + YES + + 0 + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 1 + + + YES + + + + + + + + + + + + + + + + + + + + + Inspector View + + + 83 + + + YES + + + + + + 84 + + + YES + + + + + + 89 + + + YES + + + + + + 93 + + + + + 100 + + + + + 101 + + + YES + + + + + + 102 + + + YES + + + + + + + 104 + + + + + 105 + + + + + 112 + + + YES + + + + + + 113 + + + + + 114 + + + + + 129 + + + YES + + + + NSTextField1 + + + 130 + + + Text Field Cell-6 + + + 132 + + + YES + + + + + + 133 + + + + + 134 + + + YES + + + + NSTextField1 + + + 135 + + + Text Field Cell-6 + + + 136 + + + + + 139 + + + YES + + + + + + 140 + + + + + 150 + + + YES + + + + + + 151 + + + + + 153 + + + YES + + + + NSTextField2 + + + 154 + + + YES + + + + Stepper-3 + + + 157 + + + Stepper Cell-3 + + + 158 + + + YES + + + + Text Field Cell-5 + + + 159 + + + + + 163 + + + YES + + + + + + 165 + + + YES + + + + Stepper-3 + + + 166 + + + Stepper Cell-3 + + + 169 + + + + + 179 + + + YES + + + + + + + 180 + + + + + 181 + + + + + 182 + + + + + 189 + + + + + 215 + + + YES + + + + NSTextField2 + + + 216 + + + YES + + + + Text Field Cell-5 + + + 217 + + + + + + + YES + + YES + -3.IBPluginDependency + -3.ImportedFromIB2 + 1.IBEditorWindowLastContentRect + 1.IBPluginDependency + 1.IBUserGuides + 1.ImportedFromIB2 + 1.WindowOrigin + 1.editorWindowContentRectSynchronizationRect + 100.IBPluginDependency + 101.IBPluginDependency + 102.IBEditorWindowLastContentRect + 102.IBPluginDependency + 102.editorWindowContentRectSynchronizationRect + 104.IBPluginDependency + 105.IBPluginDependency + 112.IBPluginDependency + 113.IBPluginDependency + 114.IBPluginDependency + 129.IBPluginDependency + 129.ImportedFromIB2 + 130.IBPluginDependency + 132.IBPluginDependency + 133.IBPluginDependency + 134.IBPluginDependency + 134.ImportedFromIB2 + 135.IBPluginDependency + 136.IBPluginDependency + 139.IBPluginDependency + 140.IBPluginDependency + 150.IBPluginDependency + 151.IBPluginDependency + 153.IBPluginDependency + 153.ImportedFromIB2 + 154.IBPluginDependency + 154.Palette + 157.IBPluginDependency + 158.IBPluginDependency + 159.IBNumberFormatterLocalizesFormatMetadataKey + 159.IBPluginDependency + 163.IBPluginDependency + 165.IBPluginDependency + 165.Palette + 166.IBPluginDependency + 169.IBPluginDependency + 179.IBPluginDependency + 180.IBPluginDependency + 181.CustomClassName + 181.IBPluginDependency + 182.CustomClassName + 182.IBPluginDependency + 189.IBPluginDependency + 215.IBPluginDependency + 215.ImportedFromIB2 + 216.IBPluginDependency + 217.IBNumberFormatterLocalizesFormatMetadataKey + 217.IBPluginDependency + 83.IBPluginDependency + 84.IBPluginDependency + 89.IBPluginDependency + 93.IBPluginDependency + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + {{832, 445}, {272, 158}} + com.apple.InterfaceBuilder.CocoaPlugin + + YES + + + 11 + 0 + + + + 8 + 2 + + + + 84 + 0 + + + + 170 + 0 + + + + 178 + 0 + + + + 4 + 3 + + + + 4 + 1 + + + + {84, 761} + {{767, 669}, {272, 296}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{669, 585}, {186, 37}} + 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 + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.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.yourcompany.AppKitPalettes + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + BWGradientWellColorWell + com.apple.InterfaceBuilder.CocoaPlugin + BWGradientWellColorWell + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + 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 + + + + 218 + + + + YES + + BWGradientWell + NSView + + YES + + YES + endingColorWell + startingColorWell + + + YES + NSColorWell + NSColorWell + + + + IBProjectSource + BWGradientWell.h + + + + BWGradientWellColorWell + NSColorWell + + gradientWell + BWGradientWell + + + IBProjectSource + BWGradientWellColorWell.h + + + + NSApplication + + IBProjectSource + NSApplication+BWAdditions.h + + + + NSView + + IBProjectSource + NSView+BWAdditions.h + + + + + YES + + IBInspector + NSObject + + inspectorView + NSView + + + IBFrameworkSource + InterfaceBuilderKit.framework/Headers/IBInspector.h + + + + NSActionCell + NSCell + + IBFrameworkSource + AppKit.framework/Headers/NSActionCell.h + + + + NSApplication + NSResponder + + IBFrameworkSource + AppKit.framework/Headers/NSApplication.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSApplicationScripting.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSColorPanel.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSHelpManager.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSPageLayout.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSUserInterfaceItemSearching.h + + + + NSArrayController + NSObjectController + + IBFrameworkSource + AppKit.framework/Headers/NSArrayController.h + + + + NSButton + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSButton.h + + + + NSButtonCell + NSActionCell + + IBFrameworkSource + AppKit.framework/Headers/NSButtonCell.h + + + + NSCell + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSCell.h + + + + NSColorWell + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSColorWell.h + + + + NSControl + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSControl.h + + + + NSController + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSController.h + + + + NSFormatter + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSFormatter.h + + + + NSManagedObjectContext + NSObject + + IBFrameworkSource + CoreData.framework/Headers/NSManagedObjectContext.h + + + + NSMenu + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSMenu.h + + + + NSMenuItem + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSMenuItem.h + + + + NSMenuItemCell + NSButtonCell + + IBFrameworkSource + AppKit.framework/Headers/NSMenuItemCell.h + + + + NSNumberFormatter + NSFormatter + + IBFrameworkSource + Foundation.framework/Headers/NSNumberFormatter.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSAccessibility.h + + + + NSObject + + + + NSObject + + + + NSObject + + + + NSObject + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSDictionaryController.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSDragging.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSFontManager.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSFontPanel.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSKeyValueBinding.h + + + + NSObject + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSNibLoading.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSOutlineView.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSPasteboard.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSSavePanel.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSTableView.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSToolbarItem.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSView.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSArchiver.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSClassDescription.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSError.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSFileManager.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueCoding.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueObserving.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyedArchiver.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSObject.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSObjectScripting.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSPortCoder.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSRunLoop.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptClassDescription.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptKeyValueCoding.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptObjectSpecifiers.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptWhoseTests.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSThread.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURL.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURLConnection.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURLDownload.h + + + + NSObject + + IBFrameworkSource + InterfaceBuilderKit.framework/Headers/IBObjectIntegration.h + + + + NSObjectController + NSController + + IBFrameworkSource + AppKit.framework/Headers/NSObjectController.h + + + + NSPopUpButton + NSButton + + IBFrameworkSource + AppKit.framework/Headers/NSPopUpButton.h + + + + NSPopUpButtonCell + NSMenuItemCell + + IBFrameworkSource + AppKit.framework/Headers/NSPopUpButtonCell.h + + + + NSResponder + + IBFrameworkSource + AppKit.framework/Headers/NSInterfaceStyle.h + + + + NSResponder + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSResponder.h + + + + NSSlider + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSSlider.h + + + + NSSliderCell + NSActionCell + + IBFrameworkSource + AppKit.framework/Headers/NSSliderCell.h + + + + NSStepper + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSStepper.h + + + + NSStepperCell + NSActionCell + + IBFrameworkSource + AppKit.framework/Headers/NSStepperCell.h + + + + NSTextField + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSTextField.h + + + + NSTextFieldCell + NSActionCell + + IBFrameworkSource + AppKit.framework/Headers/NSTextFieldCell.h + + + + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSClipView.h + + + + NSView + + + + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSRulerView.h + + + + NSView + NSResponder + + + + NSView + + IBFrameworkSource + InterfaceBuilderKit.framework/Headers/IBViewIntegration.h + + + + + 0 + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + BWToolkit.xcodeproj + 3 + + diff --git a/Frameworks/BWToolkitFramework.framework/BWGradientBoxIntegration.m b/Frameworks/BWToolkitFramework.framework/BWGradientBoxIntegration.m new file mode 100644 index 00000000..f039a12d --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWGradientBoxIntegration.m @@ -0,0 +1,34 @@ +// +// BWGradientBoxIntegration.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import +#import "BWGradientBox.h" +#import "BWGradientBoxInspector.h" + +@implementation BWGradientBox (BWGradientBoxIntegration) + +- (void)ibPopulateKeyPaths:(NSMutableDictionary *)keyPaths +{ + [super ibPopulateKeyPaths:keyPaths]; + [[keyPaths objectForKey:IBAttributeKeyPaths] addObjectsFromArray:[NSArray arrayWithObjects:@"topBorderColor", @"bottomBorderColor", @"fillStartingColor", @"fillEndingColor", + @"fillColor", @"topInsetAlpha", @"bottomInsetAlpha", @"hasTopBorder", @"hasBottomBorder", @"hasGradient", nil]]; +} + +- (void)ibPopulateAttributeInspectorClasses:(NSMutableArray *)classes +{ + [super ibPopulateAttributeInspectorClasses:classes]; + + [classes addObject:[BWGradientBoxInspector class]]; +} + +- (NSView *)ibDesignableContentView +{ + return self; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWGradientWell.h b/Frameworks/BWToolkitFramework.framework/BWGradientWell.h new file mode 100644 index 00000000..861e026b --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWGradientWell.h @@ -0,0 +1,18 @@ +// +// BWGradientWell.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface BWGradientWell : NSView +{ + NSColorWell *startingColorWell, *endingColorWell; +} + +@property (nonatomic, retain) IBOutlet NSColorWell *startingColorWell, *endingColorWell; + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWGradientWell.m b/Frameworks/BWToolkitFramework.framework/BWGradientWell.m new file mode 100644 index 00000000..ea8cda78 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWGradientWell.m @@ -0,0 +1,40 @@ +// +// BWGradientWell.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWGradientWell.h" + +static NSColor *borderColor; +static NSImage *pattern; + +@implementation BWGradientWell + +@synthesize startingColorWell, endingColorWell; + ++ (void)initialize +{ + borderColor = [[NSColor colorWithCalibratedWhite:(121.0 / 255.0) alpha:1] retain]; + + NSBundle *bundle = [NSBundle bundleForClass:[BWGradientWell class]]; + pattern = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"GradientWellPattern.tif"]]; +} + +- (void)drawRect:(NSRect)rect +{ + NSRect insetRect = NSInsetRect(self.bounds, 2, 2); + + [pattern drawAtPoint:insetRect.origin fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1]; + + NSGradient *gradient = [[NSGradient alloc] initWithStartingColor:[startingColorWell color] endingColor:[endingColorWell color]]; + [gradient drawInRect:insetRect angle:0]; + [gradient release]; + + [borderColor set]; + NSFrameRect(self.bounds); +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWGradientWellColorWell.h b/Frameworks/BWToolkitFramework.framework/BWGradientWellColorWell.h new file mode 100644 index 00000000..99fe8cca --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWGradientWellColorWell.h @@ -0,0 +1,19 @@ +// +// BWGradientWellColorWell.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import +#import "BWGradientWell.h" + +@interface BWGradientWellColorWell : NSColorWell +{ + BWGradientWell *gradientWell; +} + +@property (nonatomic, retain) IBOutlet BWGradientWell *gradientWell; + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWGradientWellColorWell.m b/Frameworks/BWToolkitFramework.framework/BWGradientWellColorWell.m new file mode 100644 index 00000000..7a9c1f06 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWGradientWellColorWell.m @@ -0,0 +1,42 @@ +// +// BWGradientWellColorWell.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWGradientWellColorWell.h" + +static NSColor *borderColor; +static float bezelThickness = 2; + +@implementation BWGradientWellColorWell + +@synthesize gradientWell; + ++ (void)initialize +{ + borderColor = [[NSColor colorWithCalibratedWhite:(66.0 / 255.0) alpha:1] retain]; +} + +- (void)drawRect:(NSRect)rect +{ + [super drawRect:rect]; + + [borderColor set]; + NSFrameRect(self.bounds); + + [borderColor drawSwatchInRect:NSInsetRect(self.bounds, bezelThickness + 1, bezelThickness + 1)]; + + [[self color] drawSwatchInRect:NSInsetRect(self.bounds, bezelThickness + 2, bezelThickness + 2)]; +} + +- (void)setColor:(NSColor *)color +{ + [gradientWell setNeedsDisplay:YES]; + + [super setColor:color]; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWHyperlinkButton.classdescription b/Frameworks/BWToolkitFramework.framework/BWHyperlinkButton.classdescription new file mode 100644 index 00000000..49fdab85 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWHyperlinkButton.classdescription @@ -0,0 +1,12 @@ +{ + Actions = { + // Define action descriptions here, for example + // "myAction:" = id; + }; + Outlets = { + // Define outlet descriptions here, for example + // myOutlet = NSView; + }; + ClassName = BWHyperlinkButton; + SuperClass = NSButton; +} diff --git a/Frameworks/BWToolkitFramework.framework/BWHyperlinkButton.h b/Frameworks/BWToolkitFramework.framework/BWHyperlinkButton.h new file mode 100644 index 00000000..768a2e72 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWHyperlinkButton.h @@ -0,0 +1,18 @@ +// +// BWHyperlinkButton.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface BWHyperlinkButton : NSButton +{ + NSString *urlString; +} + +@property (copy, nonatomic) NSString *urlString; + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWHyperlinkButton.m b/Frameworks/BWToolkitFramework.framework/BWHyperlinkButton.m new file mode 100644 index 00000000..8ab10e71 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWHyperlinkButton.m @@ -0,0 +1,55 @@ +// +// BWHyperlinkButton.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWHyperlinkButton.h" +#import "BWHyperlinkButtonCell.h" + +@implementation BWHyperlinkButton + +@synthesize urlString; + +-(void)awakeFromNib +{ + [self setTarget:self]; + [self setAction:@selector(openURLInBrowser:)]; +} + +- (id)initWithCoder:(NSCoder *)decoder +{ + if ((self = [super initWithCoder:decoder]) != nil) + { + [self setUrlString:[decoder decodeObjectForKey:@"BWHBUrlString"]]; + } + return self; +} + +- (void)encodeWithCoder:(NSCoder *)coder +{ + [super encodeWithCoder:coder]; + + [coder encodeObject:[self urlString] forKey:@"BWHBUrlString"]; +} + +- (void)openURLInBrowser:(id)sender +{ + if (![self respondsToSelector:@selector(ibDidAddToDesignableDocument:)]) + [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:self.urlString]]; +} + +- (void)resetCursorRects +{ + [self addCursorRect:[self bounds] cursor:[NSCursor pointingHandCursor]]; +} + +- (void)dealloc +{ + [urlString release]; + [super dealloc]; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWHyperlinkButtonCell.classdescription b/Frameworks/BWToolkitFramework.framework/BWHyperlinkButtonCell.classdescription new file mode 100644 index 00000000..3812d03a --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWHyperlinkButtonCell.classdescription @@ -0,0 +1,12 @@ +{ + Actions = { + // Define action descriptions here, for example + // "myAction:" = id; + }; + Outlets = { + // Define outlet descriptions here, for example + // myOutlet = NSView; + }; + ClassName = BWHyperlinkButtonCell; + SuperClass = NSButtonCell; +} diff --git a/Frameworks/BWToolkitFramework.framework/BWHyperlinkButtonCell.h b/Frameworks/BWToolkitFramework.framework/BWHyperlinkButtonCell.h new file mode 100644 index 00000000..c133b08b --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWHyperlinkButtonCell.h @@ -0,0 +1,16 @@ +// +// BWHyperlinkButtonCell.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface BWHyperlinkButtonCell : NSButtonCell +{ + +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWHyperlinkButtonCell.m b/Frameworks/BWToolkitFramework.framework/BWHyperlinkButtonCell.m new file mode 100644 index 00000000..c76c02b6 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWHyperlinkButtonCell.m @@ -0,0 +1,42 @@ +// +// BWHyperlinkButtonCell.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWHyperlinkButtonCell.h" + +@interface NSCell (BWPrivate) +- (NSDictionary *)_textAttributes; +@end + +@implementation BWHyperlinkButtonCell + +- (NSDictionary *)_textAttributes +{ + NSMutableDictionary *attributes = [[[NSMutableDictionary alloc] init] autorelease]; + [attributes addEntriesFromDictionary:[super _textAttributes]]; + [attributes setObject:[NSColor blueColor] forKey:NSForegroundColorAttributeName]; + [attributes setObject:[NSNumber numberWithInt:NSSingleUnderlineStyle] forKey:NSUnderlineStyleAttributeName]; + + return attributes; +} + +- (void)drawBezelWithFrame:(NSRect)frame inView:(NSView *)controlView +{ + +} + +- (void)setBordered:(BOOL)flag +{ + +} + +- (BOOL)isBordered +{ + return YES; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWHyperlinkButtonInspector.h b/Frameworks/BWToolkitFramework.framework/BWHyperlinkButtonInspector.h new file mode 100644 index 00000000..3ffd724c --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWHyperlinkButtonInspector.h @@ -0,0 +1,16 @@ +// +// BWHyperlinkButtonInspector.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface BWHyperlinkButtonInspector : IBInspector +{ + +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWHyperlinkButtonInspector.m b/Frameworks/BWToolkitFramework.framework/BWHyperlinkButtonInspector.m new file mode 100644 index 00000000..a7139891 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWHyperlinkButtonInspector.m @@ -0,0 +1,23 @@ +// +// BWHyperlinkButtonInspector.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWHyperlinkButtonInspector.h" + +@implementation BWHyperlinkButtonInspector + +- (NSString *)viewNibName +{ + return @"BWHyperlinkButtonInspector"; +} + +- (void)refresh +{ + [super refresh]; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWHyperlinkButtonInspector.xib b/Frameworks/BWToolkitFramework.framework/BWHyperlinkButtonInspector.xib new file mode 100644 index 00000000..d69eaa9f --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWHyperlinkButtonInspector.xib @@ -0,0 +1,337 @@ + + + + 1050 + 9J61 + 677 + 949.46 + 353.00 + + YES + + + + YES + com.apple.InterfaceBuilderKit + com.apple.InterfaceBuilder.CocoaPlugin + + + YES + + YES + + + YES + + + + YES + + BWHyperlinkButtonInspector + + + FirstResponder + + + NSApplication + + + + 268 + + YES + + + 268 + {{84, 4}, {180, 19}} + + YES + + -1804468671 + -1874721792 + + + LucidaGrande + 1.100000e+01 + 3100 + + + YES + + 6 + System + textBackgroundColor + + 3 + MQA + + + + 6 + System + textColor + + 3 + MAA + + + + + + + 268 + {{8, 6}, {70, 14}} + + YES + + 67239488 + 4326400 + URL + + LucidaGrande-Bold + 1.100000e+01 + 16 + + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2OQA + + + + 6 + System + controlTextColor + + + + + + {272, 27} + + NSView + + + + + YES + + + inspectorView + + + + 16 + + + + value: inspectedObjectsController.selection.urlString + + + + + + value: inspectedObjectsController.selection.urlString + value + inspectedObjectsController.selection.urlString + 2 + + + 112 + + + + + YES + + 0 + + YES + + + + + + -2 + + + RmlsZSdzIE93bmVyA + + + -1 + + + First Responder + + + -3 + + + Application + + + 1 + + + YES + + + + + Inspector View + + + 79 + + + YES + + + + + + 89 + + + YES + + + + + + 93 + + + + + 109 + + + + + + + YES + + YES + -1.IBPluginDependency + -2.IBPluginDependency + -3.IBPluginDependency + -3.ImportedFromIB2 + 1.IBEditorWindowLastContentRect + 1.IBPluginDependency + 1.IBUserGuides + 1.ImportedFromIB2 + 1.WindowOrigin + 1.editorWindowContentRectSynchronizationRect + 109.IBPluginDependency + 79.IBPluginDependency + 89.IBPluginDependency + 93.IBPluginDependency + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilderKit + com.apple.InterfaceBuilderKit + + {{716, 554}, {272, 27}} + com.apple.InterfaceBuilder.CocoaPlugin + + YES + + + 1.100000e+01 + 0 + + + + 8.000000e+00 + 2 + + + + 8.400000e+01 + 0 + + + + 1.700000e+02 + 0 + + + + 1.780000e+02 + 0 + + + + 4.000000e+00 + 3 + + + + 4.000000e+00 + 1 + + + + {84, 761} + {{767, 669}, {272, 296}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + YES + + YES + + + YES + + + + + YES + + YES + + + YES + + + + 112 + + + + YES + + BWHyperlinkButtonInspector + IBInspector + + IBProjectSource + BWHyperlinkButtonInspector.h + + + + NSView + + IBProjectSource + NSView+BWAdditions.h + + + + + 0 + BWToolkit.xcodeproj + 3 + + diff --git a/Frameworks/BWToolkitFramework.framework/BWHyperlinkButtonIntegration.m b/Frameworks/BWToolkitFramework.framework/BWHyperlinkButtonIntegration.m new file mode 100644 index 00000000..7f18eda9 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWHyperlinkButtonIntegration.m @@ -0,0 +1,29 @@ +// +// BWHyperlinkButtonIntegration.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import +#import "BWHyperlinkButton.h" +#import "BWHyperlinkButtonInspector.h" + +@implementation BWHyperlinkButton (BWHyperlinkButtonIntegration) + +- (void)ibPopulateKeyPaths:(NSMutableDictionary *)keyPaths +{ + [super ibPopulateKeyPaths:keyPaths]; + + [[keyPaths objectForKey:IBAttributeKeyPaths] addObjectsFromArray:[NSArray arrayWithObjects:@"urlString", nil]]; +} + +- (void)ibPopulateAttributeInspectorClasses:(NSMutableArray *)classes +{ + [super ibPopulateAttributeInspectorClasses:classes]; + + [classes addObject:[BWHyperlinkButtonInspector class]]; +} + +@end \ No newline at end of file diff --git a/Frameworks/BWToolkitFramework.framework/BWInsetTextField.classdescription b/Frameworks/BWToolkitFramework.framework/BWInsetTextField.classdescription new file mode 100644 index 00000000..88a41fbd --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWInsetTextField.classdescription @@ -0,0 +1,12 @@ +{ + Actions = { + // Define action descriptions here, for example + // "myAction:" = id; + }; + Outlets = { + // Define outlet descriptions here, for example + // myOutlet = NSView; + }; + ClassName = BWInsetTextField; + SuperClass = NSTextField; +} diff --git a/Frameworks/BWToolkitFramework.framework/BWInsetTextField.h b/Frameworks/BWToolkitFramework.framework/BWInsetTextField.h new file mode 100644 index 00000000..f572e3e5 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWInsetTextField.h @@ -0,0 +1,16 @@ +// +// BWInsetTextField.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface BWInsetTextField : NSTextField +{ + +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWInsetTextField.m b/Frameworks/BWToolkitFramework.framework/BWInsetTextField.m new file mode 100644 index 00000000..b17107af --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWInsetTextField.m @@ -0,0 +1,25 @@ +// +// BWInsetTextField.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWInsetTextField.h" + +@implementation BWInsetTextField + +- (id)initWithCoder:(NSCoder *)decoder; +{ + self = [super initWithCoder:decoder]; + + if (self) + { + [[self cell] setBackgroundStyle:NSBackgroundStyleRaised]; + } + + return self; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWRemoveBottomBar.classdescription b/Frameworks/BWToolkitFramework.framework/BWRemoveBottomBar.classdescription new file mode 100644 index 00000000..a0b9ccf7 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWRemoveBottomBar.classdescription @@ -0,0 +1,12 @@ +{ + Actions = { + // Define action descriptions here, for example + // "myAction:" = id; + }; + Outlets = { + // Define outlet descriptions here, for example + // myOutlet = NSView; + }; + ClassName = BWRemoveBottomBar; + SuperClass = NSView; +} diff --git a/Frameworks/BWToolkitFramework.framework/BWRemoveBottomBar.h b/Frameworks/BWToolkitFramework.framework/BWRemoveBottomBar.h new file mode 100644 index 00000000..7d69c779 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWRemoveBottomBar.h @@ -0,0 +1,16 @@ +// +// BWRemoveBottomBar.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface BWRemoveBottomBar : NSView +{ + +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWRemoveBottomBar.m b/Frameworks/BWToolkitFramework.framework/BWRemoveBottomBar.m new file mode 100644 index 00000000..f806b9d7 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWRemoveBottomBar.m @@ -0,0 +1,18 @@ +// +// BWRemoveBottomBar.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWRemoveBottomBar.h" + +@implementation BWRemoveBottomBar + +- (NSRect)bounds +{ + return NSMakeRect(-10000,-10000,0,0); +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWRemoveBottomBarIntegration.m b/Frameworks/BWToolkitFramework.framework/BWRemoveBottomBarIntegration.m new file mode 100644 index 00000000..6b6b1ee8 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWRemoveBottomBarIntegration.m @@ -0,0 +1,69 @@ +// +// BWRemoveBottomBarIntegration.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import +#import "BWRemoveBottomBar.h" +#import "BWAddSmallBottomBar.h" +#import "BWAddRegularBottomBar.h" +#import "BWAddMiniBottomBar.h" +#import "BWAddSheetBottomBar.h" +#import "NSWindow+BWAdditions.h" + +@interface NSWindow (BWBBPrivate) +- (void)setBottomCornerRounded:(BOOL)flag; +@end + +@implementation BWRemoveBottomBar (BWRemoveBottomBarIntegration) + +- (void)ibDidAddToDesignableDocument:(IBDocument *)document +{ + [super ibDidAddToDesignableDocument:document]; + + // Remove the window's bottom bar + [self performSelector:@selector(removeBottomBar) withObject:nil afterDelay:0]; + + // Clean up + [self performSelector:@selector(removeOtherBottomBarViewsInDocument:) withObject:document afterDelay:0]; + [self performSelector:@selector(removeSelfInDocument:) withObject:document afterDelay:0]; +} + +- (void)removeBottomBar +{ + if ([[self window] isTextured] == NO) + { + [[self window] setContentBorderThickness:0 forEdge:NSMinYEdge]; + + // Private method + if ([[self window] respondsToSelector:@selector(setBottomCornerRounded:)]) + [[self window] setBottomCornerRounded:NO]; + } +} + +- (void)removeOtherBottomBarViewsInDocument:(IBDocument *)document +{ + NSArray *subviews = [[[self window] contentView] subviews]; + + int i; + for (i = 0; i < [subviews count]; i++) + { + NSView *view = [subviews objectAtIndex:i]; + if (view != self && ([view isKindOfClass:[BWAddRegularBottomBar class]] || [view isKindOfClass:[BWAddSmallBottomBar class]] || [view isKindOfClass:[BWAddMiniBottomBar class]] || [view isKindOfClass:[BWAddSheetBottomBar class]])) + { + [document removeObject:view]; + [view removeFromSuperview]; + } + } +} + +- (void)removeSelfInDocument:(IBDocument *)document +{ + [document removeObject:self]; + [self removeFromSuperview]; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWSelectableToolbar.classdescription b/Frameworks/BWToolkitFramework.framework/BWSelectableToolbar.classdescription new file mode 100644 index 00000000..a8f2b9a1 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWSelectableToolbar.classdescription @@ -0,0 +1,12 @@ +{ + Actions = { + // Define action descriptions here, for example + // "myAction:" = id; + }; + Outlets = { + // Define outlet descriptions here, for example + // myOutlet = NSView; + }; + ClassName = BWSelectableToolbar; + SuperClass = NSToolbar; +} diff --git a/Frameworks/BWToolkitFramework.framework/BWSelectableToolbar.h b/Frameworks/BWToolkitFramework.framework/BWSelectableToolbar.h new file mode 100644 index 00000000..318fdc98 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWSelectableToolbar.h @@ -0,0 +1,36 @@ +// +// BWSelectableToolbar.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@class BWSelectableToolbarHelper; + +// Notification that gets sent when a toolbar item has been clicked. You can get the button that was clicked by getting the object +// for the key @"BWClickedItem" in the supplied userInfo dictionary. +extern NSString * const BWSelectableToolbarItemClickedNotification; + +@interface BWSelectableToolbar : NSToolbar +{ + BWSelectableToolbarHelper *helper; + NSMutableArray *itemIdentifiers; + NSMutableDictionary *itemsByIdentifier, *enabledByIdentifier; + BOOL inIB; + + // For the IB inspector + int selectedIndex; + BOOL isPreferencesToolbar; +} + +// Call one of these methods to set the active tab. +- (void)setSelectedItemIdentifier:(NSString *)itemIdentifier; // Use if you want an action in the tabbed window to change the tab. +- (void)setSelectedItemIdentifierWithoutAnimation:(NSString *)itemIdentifier; // Use if you want to show the window with a certain item selected. + +// Programmatically disable or enable a toolbar item. +- (void)setEnabled:(BOOL)flag forIdentifier:(NSString *)itemIdentifier; + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWSelectableToolbar.m b/Frameworks/BWToolkitFramework.framework/BWSelectableToolbar.m new file mode 100644 index 00000000..5066f2c1 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWSelectableToolbar.m @@ -0,0 +1,650 @@ +// +// BWSelectableToolbar.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWSelectableToolbar.h" +#import "BWSelectableToolbarHelper.h" +#import "NSWindow+BWAdditions.h" + +NSString * const BWSelectableToolbarItemClickedNotification = @"BWSelectableToolbarItemClicked"; + +static BWSelectableToolbar *documentToolbar; +static NSToolbar *editableToolbar; + +@interface NSToolbar (BWSTPrivate) +- (id)_defaultItemIdentifiers; +- (id)_window; +- (id)initWithCoder:(NSCoder *)decoder; +- (void)encodeWithCoder:(NSCoder*)coder; +@end + +@interface BWSelectableToolbar (BWSTPrivate) +- (NSArray *)selectableItemIdentifiers; +- (void)setItemSelectors; +- (void)initialSetup; +- (void)toggleActiveView:(id)sender; +- (NSString *)identifierAtIndex:(int)index; +- (void)switchToItemAtIndex:(int)anIndex animate:(BOOL)flag; +- (int)toolbarIndexFromSelectableIndex:(int)selectableIndex; +- (void)selectInitialItem; +- (void)selectItemAtIndex:(int)anIndex; +// IBDocument methods +- (void)addObject:(id)object toParent:(id)parent; +- (void)moveObject:(id)object toParent:(id)parent; +- (void)removeObject:(id)object; +- (id)parentOfObject:(id)anObj; +- (NSArray *)objectsforDocumentObject:(id)anObj; +- (NSArray *)childrenOfObject:(id)object; +@end + +@interface BWSelectableToolbar () +@property (retain) BWSelectableToolbarHelper *helper; +@property (readonly) NSMutableArray *labels; +@property (copy) NSMutableDictionary *enabledByIdentifier; +@property BOOL isPreferencesToolbar; +@end + +@implementation BWSelectableToolbar + +@synthesize helper; +@synthesize isPreferencesToolbar; +@synthesize enabledByIdentifier; + +- (BWSelectableToolbar *)documentToolbar +{ + return [[documentToolbar retain] autorelease]; +} + +- (void)setDocumentToolbar:(BWSelectableToolbar *)obj +{ + [documentToolbar release]; + documentToolbar = [obj retain]; +} + +- (NSToolbar *)editableToolbar +{ + if ([self respondsToSelector:@selector(ibDidAddToDesignableDocument:)] == NO) + return self; + + return [[editableToolbar retain] autorelease]; +} + +- (void)setEditableToolbar:(NSToolbar *)obj +{ + if ([self respondsToSelector:@selector(ibDidAddToDesignableDocument:)]) + { +// NSLog(@"--self: %@",self); +// NSLog(@"--editable toolbar is: %@",editableToolbar); +// NSLog(@"--setting editable toolbar to: %@",obj); + + [editableToolbar release]; + editableToolbar = [obj retain]; + } + +} + +- (id)initWithCoder:(NSCoder *)decoder +{ + if ((self = [super initWithCoder:decoder]) != nil) + { + [self setDocumentToolbar:[decoder decodeObjectForKey:@"BWSTDocumentToolbar"]]; + [self setHelper:[decoder decodeObjectForKey:@"BWSTHelper"]]; + isPreferencesToolbar = [decoder decodeBoolForKey:@"BWSTIsPreferencesToolbar"]; + [self setEnabledByIdentifier:[decoder decodeObjectForKey:@"BWSTEnabledByIdentifier"]]; + +// NSLog(@"init with coder. helper decoded: %@", helper); + } + return self; +} + +- (void)encodeWithCoder:(NSCoder*)coder +{ + [super encodeWithCoder:coder]; + + [coder encodeObject:[self documentToolbar] forKey:@"BWSTDocumentToolbar"]; + [coder encodeObject:[self helper] forKey:@"BWSTHelper"]; + [coder encodeBool:isPreferencesToolbar forKey:@"BWSTIsPreferencesToolbar"]; + [coder encodeObject:[self enabledByIdentifier] forKey:@"BWSTEnabledByIdentifier"]; + +// NSLog(@"encode with coder. helper encoded: %@",helper); +} + +// When the user drags the toolbar on the canvas, we want the default toolbar items to be a specific set that's more appropriate for a selectable toolbar (in particular, +// for a preferences window). Generally, you would supply these items in your -toolbarDefaultItemIdentifiers: delegate method. However, since Interface Builder stores +// its default item identifiers in user defaults, the delegate method never gets called. To force the toolbar to have a different set of default items, we supply the +// identifiers in this private method. +- (id)_defaultItemIdentifiers +{ + NSArray *defaultItemIdentfiers = [super _defaultItemIdentifiers]; + NSArray *defaultIBItemIdentifiers = [NSArray arrayWithObjects:@"NSToolbarSeparatorItem",@"NSToolbarSpaceItem",@"NSToolbarFlexibleSpaceItem",nil]; + + NSArray *idealDefaultItemIdentifiers = [NSArray arrayWithObjects:@"0D5950D1-D4A8-44C6-9DBC-251CFEF852E2",@"BWToolbarShowColorsItem", + @"BWToolbarShowFontsItem",@"7E6A9228-C9F3-4F21-8054-E4BF3F2F6BA8",nil]; + + if ([defaultItemIdentfiers isEqualToArray:defaultIBItemIdentifiers]) + { + return idealDefaultItemIdentifiers; + } + + return defaultItemIdentfiers; +} + +- (id)initWithIdentifier:(NSString *)identifier +{ + if (self = [super initWithIdentifier:identifier]) + { + itemIdentifiers = [[NSMutableArray alloc] init]; + itemsByIdentifier = [[NSMutableDictionary alloc] init]; + + selectedIndex = 0; + inIB = YES; + [self setEditableToolbar:self]; + + [self performSelector:@selector(initialSetup) withObject:nil afterDelay:0]; + } + return self; +} + +- (void)awakeFromNib +{ + if ([self respondsToSelector:@selector(ibDidAddToDesignableDocument:)] == NO) + { + inIB = NO; + + if ([helper isPreferencesToolbar]) + { + [[self _window] setShowsToolbarButton:NO]; + [self setAllowsUserCustomization:NO]; + } + + [self performSelector:@selector(selectInitialItem) withObject:nil afterDelay:0]; + } +} + +- (void)selectFirstItem +{ + int toolbarIndex = [self toolbarIndexFromSelectableIndex:0]; + [self switchToItemAtIndex:toolbarIndex animate:NO]; +} + +- (void)selectInitialItem +{ + // When the window launches, we want to select the toolbar item that was previously selected. + // So we have to find the toolbar index for our saved selected identifier. + int toolbarIndex; + + if ([helper selectedIdentifier] != nil) + toolbarIndex = [itemIdentifiers indexOfObject:[helper selectedIdentifier]]; + else + toolbarIndex = [self toolbarIndexFromSelectableIndex:0]; + + [self switchToItemAtIndex:toolbarIndex animate:NO]; +} + +- (void)initialSetup +{ + // Get a reference to the helper object in the document if we don't have one already + if (helper == nil && inIB) + { + NSArray *windowChildren = [self childrenOfObject:[self parentOfObject:documentToolbar]]; + + for (id anObj in windowChildren) + { + if ([anObj isMemberOfClass:NSClassFromString(@"BWSelectableToolbarHelper")]) + { + helper = anObj; +// NSLog(@"Got a reference to helper: %@",helper); + } + } + } + +// if (helper == nil && inIB) +// NSLog(@"Helper is nil"); + + // Get reference to the editable toolbar in IB + if ([self isMemberOfClass:NSClassFromString(@"IBEditableBWSelectableToolbar")]) + { + [self setEditableToolbar:self]; + + if ([helper contentViewsByIdentifier].count == 0) + [helper setInitialIBWindowSize:[[[self editableToolbar] _window] frame].size]; + + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(windowDidResize:) + name:NSWindowDidResizeNotification + object:[[self editableToolbar] _window]]; + + } + + NSToolbarItem *currentItem; + for (currentItem in [self items]) + { + [itemIdentifiers addObject:[currentItem itemIdentifier]]; + [itemsByIdentifier setObject:currentItem forKey:[currentItem itemIdentifier]]; + } + + [self setDelegate:self]; + [self setItemSelectors]; + + if ([helper selectedIdentifier] != nil && [helper contentViewsByIdentifier].count != 0) + { + // When the actual app is ran or an item is added or removed from the toolbar in IB, we need to select the previously stored identifier + [self selectItemAtIndex:[itemIdentifiers indexOfObject:[helper selectedIdentifier]]]; + } + else + { + // If we don't have a stored identifier, we select the first item in the toolbar + [self selectItemAtIndex:[self toolbarIndexFromSelectableIndex:0]]; + } + + if ([self isMemberOfClass:NSClassFromString(@"IBEditableBWSelectableToolbar")]) + { + // When the toolbar is initially dragged onto the canvas, record the content view and size of the window + NSMutableDictionary *tempCVBI = [[[helper contentViewsByIdentifier] mutableCopy] autorelease]; + [tempCVBI setObject:[[[self editableToolbar] _window] contentView] forKey:[helper selectedIdentifier]]; + [helper setContentViewsByIdentifier:tempCVBI]; + + NSMutableDictionary *tempWSBI = [[[helper windowSizesByIdentifier] mutableCopy] autorelease]; + [tempWSBI setObject:[NSValue valueWithSize:[[[self editableToolbar] _window] frame].size] forKey:[helper selectedIdentifier]]; + [helper setWindowSizesByIdentifier:tempWSBI]; + } +} + +- (int)toolbarIndexFromSelectableIndex:(int)selectableIndex +{ + NSMutableArray *selectableItems = [[[NSMutableArray alloc] init] autorelease]; + + for (NSToolbarItem *currentItem in [[self editableToolbar] items]) + { + if (![[currentItem itemIdentifier] isEqualToString:@"NSToolbarSeparatorItem"] && + ![[currentItem itemIdentifier] isEqualToString:@"NSToolbarSpaceItem"] && + ![[currentItem itemIdentifier] isEqualToString:@"NSToolbarFlexibleSpaceItem"]) + { + [selectableItems addObject:currentItem]; + } + } + + if (selectableItems.count == 0) + return 0; + + NSString *item = [selectableItems objectAtIndex:selectableIndex]; + + int toolbarIndex = [[[self editableToolbar] items] indexOfObject:item]; + + return toolbarIndex; +} + +// Tells the toolbar to draw the selection behind the toolbar item and records the selected item identifier +- (void)selectItemAtIndex:(int)anIndex +{ + NSArray *toolbarItems = self.items; + + if (toolbarItems.count > 1) + { + NSToolbarItem *item = [toolbarItems objectAtIndex:anIndex]; + NSString *identifier = [item itemIdentifier]; + [super setSelectedItemIdentifier:identifier]; + + [helper setSelectedIdentifier:identifier]; + } +} + +// This is called when a selectable item is clicked. This is not called in IB (-setSelectedIndex: is used instead). +- (void)toggleActiveView:(id)sender +{ + NSString *identifier = [sender itemIdentifier]; + + selectedIndex = [itemIdentifiers indexOfObject:identifier]; + + [[NSNotificationCenter defaultCenter] postNotificationName:BWSelectableToolbarItemClickedNotification object:self userInfo:[NSDictionary dictionaryWithObject:sender forKey:@"BWClickedItem"]]; + + [self switchToItemAtIndex:selectedIndex animate:YES]; +} + +- (void)setItemSelectors +{ + NSToolbarItem *currentItem; + + for (currentItem in [self items]) + { + [currentItem setTarget:self]; + [currentItem setAction:@selector(toggleActiveView:)]; + } +} + +- (NSString *)identifierAtIndex:(int)index +{ + NSToolbarItem *item; + NSString *newIdentifier = nil; + if ([[self editableToolbar] items].count > 1) + { + item = [[[self editableToolbar] items] objectAtIndex:index]; + newIdentifier = [item itemIdentifier]; + } + return newIdentifier; +} + +- (void)dealloc +{ + [[NSNotificationCenter defaultCenter] removeObserver:self + name:NSWindowDidResizeNotification + object:[[self editableToolbar] _window]]; + [itemIdentifiers release]; + [itemsByIdentifier release]; + [enabledByIdentifier release]; + [helper release]; + [super dealloc]; +} + +#pragma mark Public Methods + +- (void)setSelectedItemIdentifier:(NSString *)itemIdentifier +{ + BOOL validIdentifier = NO; + + for (NSString *identifier in itemIdentifiers) + { + if ([identifier isEqualToString:itemIdentifier]) + validIdentifier = YES; + } + + if (validIdentifier) + [self switchToItemAtIndex:[itemIdentifiers indexOfObject:itemIdentifier] animate:YES]; +} + +- (void)setSelectedItemIdentifierWithoutAnimation:(NSString *)itemIdentifier +{ + BOOL validIdentifier = NO; + + for (NSString *identifier in itemIdentifiers) + { + if ([identifier isEqualToString:itemIdentifier]) + validIdentifier = YES; + } + + if (validIdentifier) + [self switchToItemAtIndex:[itemIdentifiers indexOfObject:itemIdentifier] animate:NO]; +} + +- (void)setEnabled:(BOOL)flag forIdentifier:(NSString *)itemIdentifier +{ + NSMutableDictionary *enabledDict = [[[self enabledByIdentifier] mutableCopy] autorelease]; + + [enabledDict setObject:[NSNumber numberWithBool:flag] forKey:itemIdentifier]; + + [self setEnabledByIdentifier:enabledDict]; +} + +#pragma mark Public Method Support Methods + +- (BOOL)validateToolbarItem:(NSToolbarItem *)theItem +{ + if ([self respondsToSelector:@selector(ibDidAddToDesignableDocument:)] == NO) + { + NSString *identifier = [theItem itemIdentifier]; + + if ([[self enabledByIdentifier] objectForKey:identifier] != nil) + { + if ([[[self enabledByIdentifier] objectForKey:identifier] boolValue] == NO) + return NO; + } + } + + return YES; +} + +- (NSMutableDictionary *)enabledByIdentifier +{ + if (enabledByIdentifier == nil) + enabledByIdentifier = [NSMutableDictionary new]; + + return [[enabledByIdentifier retain] autorelease]; +} + +#pragma mark NSWindow notifications + +- (void)windowDidResize:(NSNotification *)notification +{ + NSSize size = [[[self editableToolbar] _window] frame].size; + NSValue *sizeValue = [NSValue valueWithSize:size]; + NSString *key = [helper selectedIdentifier]; + + if ([helper selectedIdentifier]) + { + NSMutableDictionary *tempWSBI = [[[helper windowSizesByIdentifier] mutableCopy] autorelease]; + [tempWSBI setObject:sizeValue forKey:key]; + [helper setWindowSizesByIdentifier:tempWSBI]; + } +} + +#pragma mark NSToolbar delegate methods + +- (NSArray *)toolbarDefaultItemIdentifiers:(NSToolbar*)toolbar +{ + return itemIdentifiers; +} + +- (NSArray *)toolbarAllowedItemIdentifiers:(NSToolbar*)toolbar +{ + return itemIdentifiers; +} + +- (NSToolbarItem *)toolbar:(NSToolbar *)toolbar itemForItemIdentifier:(NSString *)identifier willBeInsertedIntoToolbar:(BOOL)willBeInserted +{ + return [itemsByIdentifier objectForKey:identifier]; +} + +- (NSArray *)toolbarSelectableItemIdentifiers:(NSToolbar *)toolbar +{ + return [self selectableItemIdentifiers]; +} + +#pragma mark Support methods for delegate methods + +- (NSArray *)selectableItemIdentifiers +{ + NSMutableArray *selectableItemIdentifiers = [[[NSMutableArray alloc] init] autorelease]; + + if ([self editableToolbar] != nil) + { + for (NSToolbarItem *currentItem in [[self editableToolbar] items]) + { + if (![[currentItem itemIdentifier] isEqualToString:@"NSToolbarSeparatorItem"] && + ![[currentItem itemIdentifier] isEqualToString:@"NSToolbarSpaceItem"] && + ![[currentItem itemIdentifier] isEqualToString:@"NSToolbarFlexibleSpaceItem"]) + { + [selectableItemIdentifiers addObject:[currentItem itemIdentifier]]; + } + } + } + else + { + for (NSToolbarItem *currentItem in [self items]) + { + if (![[currentItem itemIdentifier] isEqualToString:@"NSToolbarSeparatorItem"] && + ![[currentItem itemIdentifier] isEqualToString:@"NSToolbarSpaceItem"] && + ![[currentItem itemIdentifier] isEqualToString:@"NSToolbarFlexibleSpaceItem"]) + { + [selectableItemIdentifiers addObject:[currentItem itemIdentifier]]; + } + } + } + + return selectableItemIdentifiers; +} + +#pragma mark IB Inspector support methods + +- (void)setIsPreferencesToolbar:(BOOL)flag +{ + [helper setIsPreferencesToolbar:flag]; + isPreferencesToolbar = flag; + + if (flag) + { + // Record the current window title + [helper setOldWindowTitle:[[self parentOfObject:self] title]]; + + // Change the window title to the name of the active tab + NSToolbarItem *selectedItem = nil; + for (NSToolbarItem *item in [[self editableToolbar] items]) + { + if ([[item itemIdentifier] isEqualToString:[[self editableToolbar] selectedItemIdentifier]]) + selectedItem = item; + } + [[self parentOfObject:self] setTitle:[selectedItem label]]; + + // Remove the toolbar button + [[self parentOfObject:self] setShowsToolbarButton:NO]; + } + else + { + // Restore the old window title + [[self parentOfObject:self] setTitle:[helper oldWindowTitle]]; + + // Add the toolbar button + [[self parentOfObject:self] setShowsToolbarButton:YES]; + } +} + +- (NSMutableArray *)labels +{ + NSMutableArray *labelArray = [NSMutableArray array]; + + for (NSToolbarItem *currentItem in [[self editableToolbar] items]) + { + if (![[currentItem itemIdentifier] isEqualToString:@"NSToolbarSeparatorItem"] && + ![[currentItem itemIdentifier] isEqualToString:@"NSToolbarSpaceItem"] && + ![[currentItem itemIdentifier] isEqualToString:@"NSToolbarFlexibleSpaceItem"]) + { + [labelArray addObject:[currentItem label]]; + } + } + + return labelArray; +} + +- (int)selectedIndex +{ + // The actual selected index can change on us (for instance, when the user re-orders toolbar items). So we need to figure it out dynamically, based on the selected identifier. + if ([[helper selectedIdentifier] isEqualToString:@""]) + selectedIndex = 0; + else + selectedIndex = [[self selectableItemIdentifiers] indexOfObject:[helper selectedIdentifier]]; + + return selectedIndex; +} + +- (void)setSelectedIndex:(int)anIndex +{ + selectedIndex = anIndex; + [self switchToItemAtIndex:[self toolbarIndexFromSelectableIndex:anIndex] animate:YES]; +} + +#pragma mark Selection Switching + +- (void)switchToItemAtIndex:(int)anIndex animate:(BOOL)shouldAnimate +{ + NSString *oldIdentifier = [helper selectedIdentifier]; + + // Put the selection highlight on the toolbar item + [(BWSelectableToolbar *)[self editableToolbar] selectItemAtIndex:anIndex]; + + // Clear out the window's first responder + [[[self editableToolbar] _window] makeFirstResponder:nil]; + + // Make a new container view and add it to the IB document + NSView *containerView = [[[NSView alloc] initWithFrame:[[[[self editableToolbar] _window] contentView] frame]] autorelease]; + if (inIB) + [self addObject:containerView toParent:[self parentOfObject:self]]; + + // Move the subviews from the content view to the container view + NSArray *oldSubviews = [[[[[[self editableToolbar] _window] contentView] subviews] copy] autorelease]; + for (NSView *view in oldSubviews) + { + if (inIB) + [self moveObject:view toParent:containerView]; + [containerView addSubview:view]; + } + + // Store the container view and window size in the dictionaries + NSMutableDictionary *tempCVBI = [[[helper contentViewsByIdentifier] mutableCopy] autorelease]; + [tempCVBI setObject:containerView forKey:oldIdentifier]; + [helper setContentViewsByIdentifier:tempCVBI]; + + NSSize oldWindowSize = [[[self editableToolbar] _window] frame].size; + NSMutableDictionary *tempWSBI = [[[helper windowSizesByIdentifier] mutableCopy] autorelease]; + [tempWSBI setObject:[NSValue valueWithSize:oldWindowSize] forKey:oldIdentifier]; + [helper setWindowSizesByIdentifier:tempWSBI]; + + + NSString *newIdentifier = [self identifierAtIndex:anIndex]; + + if ([[helper contentViewsByIdentifier] objectForKey:newIdentifier] == nil) // If we haven't stored the content view in our dictionary. i.e. this is a new tab + { + // Resize the window + [[[self editableToolbar] _window] resizeToSize:[helper initialIBWindowSize] animate:shouldAnimate]; + + // Record the new tab content view and window size + if (inIB) + { + NSMutableDictionary *tempCVBI = [[[helper contentViewsByIdentifier] mutableCopy] autorelease]; + [tempCVBI setObject:[[[self editableToolbar] _window] contentView] forKey:newIdentifier]; + [helper setContentViewsByIdentifier:tempCVBI]; + + NSMutableDictionary *tempWSBI = [[[helper windowSizesByIdentifier] mutableCopy] autorelease]; + [tempWSBI setObject:[NSValue valueWithSize:[[[self editableToolbar] _window] frame].size] forKey:newIdentifier]; + [helper setWindowSizesByIdentifier:tempWSBI]; + } + } + else // If we have the content view in our dictionary, set the window's content view to be the saved view + { + // Resize the window + NSSize windowSize = [[[helper windowSizesByIdentifier] objectForKey:newIdentifier] sizeValue]; + [[[self editableToolbar] _window] resizeToSize:windowSize animate:shouldAnimate]; + + NSArray *newSubviews = [[[[[helper contentViewsByIdentifier] objectForKey:newIdentifier] subviews] copy] autorelease]; + + if (newSubviews.count > 0 && newSubviews != nil) + { + for (NSView *view in newSubviews) + { + if (inIB) + { + [self moveObject:view toParent:[[self parentOfObject:self] contentView]]; + } + + [[[[self editableToolbar] _window] contentView] addSubview:view]; + } + } + + // Remove the container view for the selected tab from the document since those items are now in the window's content view. + if (inIB) + [self removeObject:[[helper contentViewsByIdentifier] objectForKey:newIdentifier]]; + + // Tell the window to recalculate the key view loop so the views we added to the content view are keyboard accessible + [[[self editableToolbar] _window] recalculateKeyViewLoop]; + } + + // After the new content view is swapped in, change the window title to be the selected item label + if ([helper isPreferencesToolbar]) + { + for (NSToolbarItem *item in [[self editableToolbar] items]) + { + if ([[item itemIdentifier] isEqualToString:newIdentifier]) + { + [[[self editableToolbar] _window] setTitle:[item label]]; + + if (inIB) + [[self parentOfObject:self] setTitle:[item label]]; + } + } + } + +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWSelectableToolbarHelper.h b/Frameworks/BWToolkitFramework.framework/BWSelectableToolbarHelper.h new file mode 100644 index 00000000..ed3029d2 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWSelectableToolbarHelper.h @@ -0,0 +1,26 @@ +// +// BWSelectableToolbarHelper.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface BWSelectableToolbarHelper : NSObject +{ + NSMutableDictionary *contentViewsByIdentifier, *windowSizesByIdentifier; + NSString *selectedIdentifier, *oldWindowTitle; + NSSize initialIBWindowSize; + BOOL isPreferencesToolbar; +} + +@property (copy) NSMutableDictionary *contentViewsByIdentifier; +@property (copy) NSMutableDictionary *windowSizesByIdentifier; +@property (copy) NSString *selectedIdentifier; +@property (copy) NSString *oldWindowTitle; +@property (assign) NSSize initialIBWindowSize; +@property (assign) BOOL isPreferencesToolbar; + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWSelectableToolbarHelper.m b/Frameworks/BWToolkitFramework.framework/BWSelectableToolbarHelper.m new file mode 100644 index 00000000..acdea38a --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWSelectableToolbarHelper.m @@ -0,0 +1,84 @@ +// +// BWSelectableToolbarHelper.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWSelectableToolbarHelper.h" + +@implementation BWSelectableToolbarHelper + +@synthesize contentViewsByIdentifier; +@synthesize windowSizesByIdentifier; +@synthesize selectedIdentifier; +@synthesize oldWindowTitle; +@synthesize initialIBWindowSize; +@synthesize isPreferencesToolbar; + +- (id)init +{ + if(self = [super init]) + { + if (contentViewsByIdentifier == nil) + contentViewsByIdentifier = [[NSMutableDictionary alloc] init]; + + if (windowSizesByIdentifier == nil) + windowSizesByIdentifier = [[NSMutableDictionary alloc] init]; + + if (selectedIdentifier == nil) + selectedIdentifier = [[NSString alloc] init]; + + if (oldWindowTitle == nil) + oldWindowTitle = [[NSString alloc] init]; + } + return self; +} + +- (id)initWithCoder:(NSCoder *)decoder; +{ + if ((self = [super init]) != nil) + { + [self setContentViewsByIdentifier:[decoder decodeObjectForKey:@"BWSTHContentViewsByIdentifier"]]; + + NSData *data = [decoder decodeObjectForKey:@"BWSTHWindowSizesByIdentifier"]; + [self setWindowSizesByIdentifier:[NSUnarchiver unarchiveObjectWithData:data]]; + + [self setSelectedIdentifier:[decoder decodeObjectForKey:@"BWSTHSelectedIdentifier"]]; + + [self setOldWindowTitle:[decoder decodeObjectForKey:@"BWSTHOldWindowTitle"]]; + + [self setInitialIBWindowSize:[decoder decodeSizeForKey:@"BWSTHInitialIBWindowSize"]]; + + [self setIsPreferencesToolbar:[decoder decodeBoolForKey:@"BWSTHIsPreferencesToolbar"]]; + } + return self; +} + +- (void)encodeWithCoder:(NSCoder*)coder +{ + [coder encodeObject:[self contentViewsByIdentifier] forKey:@"BWSTHContentViewsByIdentifier"]; + + NSData *data = [NSArchiver archivedDataWithRootObject:[self windowSizesByIdentifier]]; + [coder encodeObject:data forKey:@"BWSTHWindowSizesByIdentifier"]; + + [coder encodeObject:[self selectedIdentifier] forKey:@"BWSTHSelectedIdentifier"]; + + [coder encodeObject:[self oldWindowTitle] forKey:@"BWSTHOldWindowTitle"]; + + [coder encodeSize:[self initialIBWindowSize] forKey:@"BWSTHInitialIBWindowSize"]; + + [coder encodeBool:[self isPreferencesToolbar] forKey:@"BWSTHIsPreferencesToolbar"]; +} + +- (void)dealloc +{ + [contentViewsByIdentifier release]; + [windowSizesByIdentifier release]; + [selectedIdentifier release]; + [oldWindowTitle release]; + [super dealloc]; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWSelectableToolbarInspector.h b/Frameworks/BWToolkitFramework.framework/BWSelectableToolbarInspector.h new file mode 100644 index 00000000..27c15a04 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWSelectableToolbarInspector.h @@ -0,0 +1,14 @@ +// +// BWSelectableToolbarInspector.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface BWSelectableToolbarInspector : IBInspector +{ +} +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWSelectableToolbarInspector.m b/Frameworks/BWToolkitFramework.framework/BWSelectableToolbarInspector.m new file mode 100644 index 00000000..4fb065c2 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWSelectableToolbarInspector.m @@ -0,0 +1,22 @@ +// +// BWSelectableToolbarInspector.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWSelectableToolbarInspector.h" + +@implementation BWSelectableToolbarInspector + +- (NSString *)viewNibName { + return @"BWSelectableToolbarInspector"; +} + +- (void)refresh { + // Synchronize your inspector's content view with the currently selected objects + [super refresh]; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWSelectableToolbarInspector.nib/designable.nib b/Frameworks/BWToolkitFramework.framework/BWSelectableToolbarInspector.nib/designable.nib new file mode 100644 index 00000000..d1bb4c65 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWSelectableToolbarInspector.nib/designable.nib @@ -0,0 +1,485 @@ + + + + 1050 + 9E17 + 672 + 949.33 + 352.00 + + YES + + + + YES + com.apple.InterfaceBuilderKit + com.apple.InterfaceBuilder.CocoaPlugin + + + YES + + BWPreferencesToolbarInspector + + + FirstResponder + + + NSApplication + + + + 268 + + YES + + + 268 + {{81, 23}, {186, 22}} + + YES + + -2076049856 + 133120 + + LucidaGrande + 1.100000e+01 + 3100 + + + 109199615 + 1 + + LucidaGrande + 1.100000e+01 + 16 + + + + 400 + 75 + + + Item1 + + 1048576 + 2147483647 + 1 + + NSImage + NSMenuCheckmark + + + NSImage + NSMenuMixedState + + _popUpItemAction: + + + YES + + OtherViews + + YES + + + + Item2 + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + Item3 + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + 3 + YES + YES + 1 + + + + + 268 + {{8, 28}, {70, 14}} + + YES + + 67239488 + 4326400 + Active Tab + + LucidaGrande-Bold + 1.100000e+01 + 16 + + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2OQA + + + + 6 + System + controlTextColor + + 3 + MAA + + + + + + + 268 + {{81, 3}, {161, 18}} + + YES + + 67239424 + 131072 + Preferences Toolbar Mode + + + 1211912703 + 130 + + NSImage + NSSwitch + + + NSSwitch + + + + 200 + 25 + + + + {272, 49} + + NSView + + + + + YES + + + inspectorView + + + + 16 + + + + contentValues: inspectedObjectsController.selection.labels + + + + + + contentValues: inspectedObjectsController.selection.labels + contentValues + inspectedObjectsController.selection.labels + 2 + + + 112 + + + + selectedIndex: inspectedObjectsController.selection.selectedIndex + + + + + + selectedIndex: inspectedObjectsController.selection.selectedIndex + selectedIndex + inspectedObjectsController.selection.selectedIndex + + 2 + + + 122 + + + + value: inspectedObjectsController.selection.isPreferencesToolbar + + + + + + value: inspectedObjectsController.selection.isPreferencesToolbar + value + inspectedObjectsController.selection.isPreferencesToolbar + 2 + + + 128 + + + + + YES + + 0 + + YES + + + + + + -2 + + + RmlsZSdzIE93bmVyA + + + -1 + + + First Responder + + + -3 + + + Application + + + 1 + + + YES + + + + + + Inspector View + + + 83 + + + YES + + + + + + 89 + + + YES + + + + + + 93 + + + + + 101 + + + YES + + + + + + 102 + + + YES + + + + + + + + 103 + + + + + 104 + + + + + 105 + + + + + 123 + + + YES + + + + + + 124 + + + + + + + YES + + YES + -1.IBPluginDependency + -2.IBPluginDependency + -3.IBPluginDependency + -3.ImportedFromIB2 + 1.IBEditorWindowLastContentRect + 1.IBPluginDependency + 1.IBUserGuides + 1.ImportedFromIB2 + 1.WindowOrigin + 1.editorWindowContentRectSynchronizationRect + 101.IBPluginDependency + 102.IBPluginDependency + 102.editorWindowContentRectSynchronizationRect + 103.IBPluginDependency + 104.IBPluginDependency + 105.IBPluginDependency + 123.IBPluginDependency + 124.IBPluginDependency + 83.IBPluginDependency + 89.IBPluginDependency + 93.IBPluginDependency + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilderKit + com.apple.InterfaceBuilderKit + + {{660, 521}, {272, 49}} + com.apple.InterfaceBuilder.CocoaPlugin + + YES + + + 8.000000e+00 + 0 + + + + 8.000000e+00 + 2 + + + + 8.400000e+01 + 0 + + + + 1.700000e+02 + 0 + + + + 1.780000e+02 + 0 + + + + 4.000000e+00 + 3 + + + + 4.000000e+00 + 1 + + + + {84, 761} + {{767, 669}, {272, 296}} + 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 + + YES + + + YES + + + + 128 + + + + YES + + NSView + + IBProjectSource + NSView+BWAdditions.h + + + + + 0 + BWToolkit.xcodeproj + 3 + + diff --git a/Frameworks/BWToolkitFramework.framework/BWSelectableToolbarInspector.nib/keyedobjects.nib b/Frameworks/BWToolkitFramework.framework/BWSelectableToolbarInspector.nib/keyedobjects.nib new file mode 100644 index 00000000..03b4c43a Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/BWSelectableToolbarInspector.nib/keyedobjects.nib differ diff --git a/Frameworks/BWToolkitFramework.framework/BWSelectableToolbarIntegration.m b/Frameworks/BWToolkitFramework.framework/BWSelectableToolbarIntegration.m new file mode 100644 index 00000000..3565e9f7 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWSelectableToolbarIntegration.m @@ -0,0 +1,104 @@ +// +// BWSelectableToolbarIntegration.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import +#import "BWSelectableToolbar.h" +#import "BWSelectableToolbarInspector.h" +#import "BWSelectableToolbarHelper.h" + +@interface NSToolbar (BWSTIntPrivate) +- (void)ibDocument:(id)fp8 willStartSimulatorWithContext:(id)fp12; +@end + +@interface BWSelectableToolbar (BWSTIntPrivate) +- (id)parentOfObject:(id)anObj; +- (void)setDocumentToolbar:(BWSelectableToolbar *)obj; +@end + +@interface IBDocument (BWSTIntPrivate) ++ (id)currentIBFrameworkVersion; +@end + +@implementation BWSelectableToolbar ( BWSelectableToolbarIntegration ) + +- (void)ibPopulateKeyPaths:(NSMutableDictionary *)keyPaths { + [super ibPopulateKeyPaths:keyPaths]; + [[keyPaths objectForKey:IBAttributeKeyPaths] addObjectsFromArray:[NSArray arrayWithObjects:@"isPreferencesToolbar",nil]]; +} + +- (void)ibPopulateAttributeInspectorClasses:(NSMutableArray *)classes { + [super ibPopulateAttributeInspectorClasses:classes]; + [classes addObject:[BWSelectableToolbarInspector class]]; +} + +// Display a modal warning just before the simulator is launched - this incompatibility will hopefully be fixed in a future version of this plugin +- (void)ibDocument:(id)fp8 willStartSimulatorWithContext:(id)fp12 +{ + [super ibDocument:fp8 willStartSimulatorWithContext:fp12]; + + // Simulating seems to work fine in IB 3.1.1 (672) so we won't show the alert if the user is running that version + if ([[IBDocument currentIBFrameworkVersion] intValue] != 672) + { + NSAlert *alert = [NSAlert alertWithMessageText:@"Toolbar not compatible with simulator" defaultButton:@"OK" alternateButton:nil otherButton:nil informativeTextWithFormat:@"The selectable toolbar is not yet compatible with the IB simulator. Quit the simulator and revert to the last saved document. Sorry for the inconvenience."]; + [alert runModal]; + } +} + +- (void)ibDidAddToDesignableDocument:(IBDocument *)document +{ + [super ibDidAddToDesignableDocument:document]; + + [self setDocumentToolbar:self]; + + helper = [[BWSelectableToolbarHelper alloc] init]; + [document addObject:helper toParent:[self parentOfObject:self]]; +} + +- (void)addObject:(id)object toParent:(id)parent +{ + IBDocument *document = [IBDocument documentForObject:parent]; + + [document addObject:object toParent:parent]; +} + +- (void)moveObject:(id)object toParent:(id)parent +{ + IBDocument *document = [IBDocument documentForObject:object]; + + [document moveObject:object toParent:parent]; +} + +- (void)removeObject:(id)object +{ + IBDocument *document = [IBDocument documentForObject:object]; + + [document removeObject:object]; +} + +- (NSArray *)objectsforDocumentObject:(id)anObj +{ + IBDocument *document = [IBDocument documentForObject:anObj]; + + return [[document objects] retain]; +} + +- (id)parentOfObject:(id)anObj +{ + IBDocument *document = [IBDocument documentForObject:anObj]; + + return [[document parentOfObject:anObj] retain]; +} + +- (NSArray *)childrenOfObject:(id)object +{ + IBDocument *document = [IBDocument documentForObject:object]; + + return [document childrenOfObject:object]; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWSheetController.classdescription b/Frameworks/BWToolkitFramework.framework/BWSheetController.classdescription new file mode 100644 index 00000000..ed54c5a2 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWSheetController.classdescription @@ -0,0 +1,14 @@ +{ + Actions = { + "openSheet:" = id; + "closeSheet:" = id; + "messageDelegateAndCloseSheet:" = id; + }; + Outlets = { + sheet = NSWindow; + parentWindow = NSWindow; + delegate = id; + }; + ClassName = BWSheetController; + SuperClass = NSObject; +} diff --git a/Frameworks/BWToolkitFramework.framework/BWSheetController.h b/Frameworks/BWToolkitFramework.framework/BWSheetController.h new file mode 100644 index 00000000..bfa7c57c --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWSheetController.h @@ -0,0 +1,31 @@ +// +// BWSheetController.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface BWSheetController : NSObject +{ + NSWindow *sheet; + NSWindow *parentWindow; + id delegate; +} + +@property (nonatomic, retain) IBOutlet NSWindow *sheet, *parentWindow; +@property (nonatomic, retain) IBOutlet id delegate; + +- (IBAction)openSheet:(id)sender; +- (IBAction)closeSheet:(id)sender; +- (IBAction)messageDelegateAndCloseSheet:(id)sender; + +// The optional delegate should implement the method: +// - (BOOL)shouldCloseSheet:(id)sender +// Return YES if you want the sheet to close after the button click, NO if it shouldn't close. The sender +// object is the button that requested the close. This is helpful because in the event that there are multiple buttons +// hooked up to the messageDelegateAndCloseSheet: method, you can distinguish which button called the method. + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWSheetController.m b/Frameworks/BWToolkitFramework.framework/BWSheetController.m new file mode 100644 index 00000000..ec986280 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWSheetController.m @@ -0,0 +1,75 @@ +// +// BWSheetController.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWSheetController.h" +#import "NSWindow-NSTimeMachineSupport.h" + +@implementation BWSheetController + +@synthesize parentWindow, sheet, delegate; + +- (void)awakeFromNib +{ + // Hack so the sheet doesn't appear at launch in Cocoa Simulator (or in the actual app if "Visible at Launch" is checked) + [sheet setAlphaValue:0]; + [sheet performSelector:@selector(orderOut:) withObject:nil afterDelay:0]; + + // If the sheet has a toolbar or a bottom bar, make sure those elements can't move the window (private API) + if ([sheet respondsToSelector:@selector(setMovable:)]) + [sheet setMovable:NO]; +} + +- (id)initWithCoder:(NSCoder *)decoder; +{ + if ((self = [super init]) != nil) + { + NSWindowController *tempSheetController = [decoder decodeObjectForKey:@"BWSCSheet"]; + NSWindowController *tempParentWindowController = [decoder decodeObjectForKey:@"BWSCParentWindow"]; + + sheet = [tempSheetController window]; + parentWindow = [tempParentWindowController window]; + } + return self; +} + +- (void)encodeWithCoder:(NSCoder*)coder +{ + NSWindowController *tempSheetController = [[[NSWindowController alloc] initWithWindow:sheet] autorelease]; + NSWindowController *tempParentWindowController = [[[NSWindowController alloc] initWithWindow:parentWindow] autorelease]; + + [coder encodeObject:tempSheetController forKey:@"BWSCSheet"]; + [coder encodeObject:tempParentWindowController forKey:@"BWSCParentWindow"]; +} + +- (IBAction)openSheet:(id)sender +{ + [sheet setAlphaValue:1]; + [NSApp beginSheet:sheet modalForWindow:parentWindow modalDelegate:nil didEndSelector:nil contextInfo:nil]; +} + +- (IBAction)closeSheet:(id)sender +{ + [sheet orderOut:nil]; + [NSApp endSheet:sheet]; +} + +- (IBAction)messageDelegateAndCloseSheet:(id)sender +{ + if (delegate != nil && [delegate respondsToSelector:@selector(shouldCloseSheet:)]) + { + if ([delegate performSelector:@selector(shouldCloseSheet:) withObject:sender]) + [self closeSheet:self]; + } + else + { + [self closeSheet:self]; + } +} + + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWSheetControllerIntegration.m b/Frameworks/BWToolkitFramework.framework/BWSheetControllerIntegration.m new file mode 100644 index 00000000..c71d7112 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWSheetControllerIntegration.m @@ -0,0 +1,23 @@ +// +// BWSheetControllerIntegration.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import +#import "BWSheetController.h" + +@implementation BWSheetController ( BWSheetControllerIntegration ) + +- (NSImage *)ibDefaultImage +{ + NSBundle *bundle = [NSBundle bundleForClass:[BWSheetController class]]; + + NSImage *image = [[[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"Library-SheetController.tif"]] autorelease]; + + return image; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWSplitView.classdescription b/Frameworks/BWToolkitFramework.framework/BWSplitView.classdescription new file mode 100755 index 00000000..2b1e847f --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWSplitView.classdescription @@ -0,0 +1,11 @@ +{ + Actions = + { + "toggleCollapse:" = id; + }; + Outlets = + { + }; + ClassName = BWSplitView; + SuperClass = NSSplitView; +} diff --git a/Frameworks/BWToolkitFramework.framework/BWSplitView.h b/Frameworks/BWToolkitFramework.framework/BWSplitView.h new file mode 100644 index 00000000..b717fa1f --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWSplitView.h @@ -0,0 +1,44 @@ +// +// BWSplitView.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) and Fraser Kuyvenhoven. +// All code is provided under the New BSD license. +// + +#import + +@interface BWSplitView : NSSplitView +{ + NSColor *color; + BOOL colorIsEnabled, checkboxIsEnabled, dividerCanCollapse, collapsibleSubviewCollapsed; + id secondaryDelegate; + NSMutableDictionary *minValues, *maxValues, *minUnits, *maxUnits; + NSMutableDictionary *resizableSubviewPreferredProportion, *nonresizableSubviewPreferredSize; + NSArray *stateForLastPreferredCalculations; + int collapsiblePopupSelection; + float uncollapsedSize; + + // Collapse button + NSButton *toggleCollapseButton; + BOOL isAnimating; +} + +@property (retain) NSMutableDictionary *minValues, *maxValues, *minUnits, *maxUnits; +@property (retain) NSMutableDictionary *resizableSubviewPreferredProportion, *nonresizableSubviewPreferredSize; +@property (retain) NSArray *stateForLastPreferredCalculations; +@property (retain) NSButton *toggleCollapseButton; +@property BOOL collapsibleSubviewCollapsed; +@property int collapsiblePopupSelection; +@property BOOL dividerCanCollapse; + +// The split view divider color +@property (copy) NSColor *color; + +// Flag for whether a custom divider color is enabled. If not, the standard divider color is used. +@property BOOL colorIsEnabled; + +// Call this method to collapse or expand a subview configured as collapsible in the IB inspector. +- (IBAction)toggleCollapse:(id)sender; + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWSplitView.m b/Frameworks/BWToolkitFramework.framework/BWSplitView.m new file mode 100644 index 00000000..f5c3d089 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWSplitView.m @@ -0,0 +1,1433 @@ +// +// BWSplitView.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) and Fraser Kuyvenhoven. +// All code is provided under the New BSD license. +// + +#import "BWSplitView.h" +#import "NSColor+BWAdditions.h" +#import "NSEvent+BWAdditions.h" + +static NSGradient *gradient; +static NSImage *dimpleImageBitmap, *dimpleImageVector; +static NSColor *borderColor, *gradientStartColor, *gradientEndColor; +static float scaleFactor = 1.0f; + +#define dimpleDimension 4.0f + +#define RESIZE_DEBUG_LOGS 0 + +@interface BWSplitView (BWSVPrivate) + +- (void)drawDimpleInRect:(NSRect)aRect; +- (void)drawGradientDividerInRect:(NSRect)aRect; +- (int)resizableSubviews; +- (BOOL)subviewIsResizable:(NSView *)subview; + +- (BOOL)subviewIsCollapsible:(NSView *)subview; +- (BOOL)subviewIsCollapsed:(NSView *)subview; +- (int)collapsibleSubviewIndex; +- (NSView *)collapsibleSubview; +- (BOOL)hasCollapsibleSubview; +- (BOOL)collapsibleSubviewIsCollapsed; + +- (CGFloat)subviewMinimumSize:(int)subviewIndex; +- (CGFloat)subviewMaximumSize:(int)subviewIndex; + +- (void)recalculatePreferredProportionsAndSizes; +- (BOOL)validatePreferredProportionsAndSizes; +- (void)validateAndCalculatePreferredProportionsAndSizes; +- (void)clearPreferredProportionsAndSizes; + +- (void)resizeAndAdjustSubviews; + +@end + +@interface BWSplitView () +@property BOOL checkboxIsEnabled; +@end + +@implementation BWSplitView + +@synthesize color, colorIsEnabled, checkboxIsEnabled, minValues, maxValues, minUnits, maxUnits, collapsiblePopupSelection, dividerCanCollapse, collapsibleSubviewCollapsed; +@synthesize resizableSubviewPreferredProportion, nonresizableSubviewPreferredSize, stateForLastPreferredCalculations; +@synthesize toggleCollapseButton; + ++ (void)initialize; +{ + borderColor = [[NSColor colorWithCalibratedWhite:(165.0f / 255.0f) alpha:1] retain]; + gradientStartColor = [[NSColor colorWithCalibratedWhite:(253.0f / 255.0f) alpha:1] retain]; + gradientEndColor = [[NSColor colorWithCalibratedWhite:(222.0f / 255.0f) alpha:1] retain]; + + gradient = [[NSGradient alloc] initWithStartingColor:gradientStartColor endingColor:gradientEndColor]; + + NSBundle *bundle = [NSBundle bundleForClass:[BWSplitView class]]; + dimpleImageBitmap = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"GradientSplitViewDimpleBitmap.tif"]]; + dimpleImageVector = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"GradientSplitViewDimpleVector.pdf"]]; + [dimpleImageBitmap setFlipped:YES]; + [dimpleImageVector setFlipped:YES]; +} + +- (id)initWithCoder:(NSCoder *)decoder; +{ + if ((self = [super initWithCoder:decoder]) != nil) + { + [self setColor:[decoder decodeObjectForKey:@"BWSVColor"]]; + [self setColorIsEnabled:[decoder decodeBoolForKey:@"BWSVColorIsEnabled"]]; + [self setMinValues:[decoder decodeObjectForKey:@"BWSVMinValues"]]; + [self setMaxValues:[decoder decodeObjectForKey:@"BWSVMaxValues"]]; + [self setMinUnits:[decoder decodeObjectForKey:@"BWSVMinUnits"]]; + [self setMaxUnits:[decoder decodeObjectForKey:@"BWSVMaxUnits"]]; + [self setCollapsiblePopupSelection:[decoder decodeIntForKey:@"BWSVCollapsiblePopupSelection"]]; + [self setDividerCanCollapse:[decoder decodeBoolForKey:@"BWSVDividerCanCollapse"]]; + + // Delegate set in nib has been decoded, but we want that to be the secondary delegate + [self setDelegate:[super delegate]]; + [super setDelegate:self]; + } + return self; +} + +- (void)encodeWithCoder:(NSCoder*)coder +{ + // Temporarily change delegate + [super setDelegate:secondaryDelegate]; + + [super encodeWithCoder:coder]; + + [coder encodeObject:[self color] forKey:@"BWSVColor"]; + [coder encodeBool:[self colorIsEnabled] forKey:@"BWSVColorIsEnabled"]; + [coder encodeObject:[self minValues] forKey:@"BWSVMinValues"]; + [coder encodeObject:[self maxValues] forKey:@"BWSVMaxValues"]; + [coder encodeObject:[self minUnits] forKey:@"BWSVMinUnits"]; + [coder encodeObject:[self maxUnits] forKey:@"BWSVMaxUnits"]; + [coder encodeInt:[self collapsiblePopupSelection] forKey:@"BWSVCollapsiblePopupSelection"]; + [coder encodeBool:[self dividerCanCollapse] forKey:@"BWSVDividerCanCollapse"]; + + // Set delegate back + [self setDelegate:[super delegate]]; + [super setDelegate:self]; +} + +- (void)awakeFromNib +{ + scaleFactor = [[NSScreen mainScreen] userSpaceScaleFactor]; +} + +- (void)drawDividerInRect:(NSRect)aRect +{ + if ([self isVertical]) + { + aRect.size.width = [self dividerThickness]; + + if (colorIsEnabled && color != nil) + [color drawSwatchInRect:aRect]; + else + [super drawDividerInRect:aRect]; + } + else + { + aRect.size.height = [self dividerThickness]; + + if ([self dividerThickness] <= 1.01) + { + if (colorIsEnabled && color != nil) + [color drawSwatchInRect:aRect]; + else + [super drawDividerInRect:aRect]; + } + else + { + [self drawGradientDividerInRect:aRect]; + } + } +} + +- (void)drawGradientDividerInRect:(NSRect)aRect +{ + aRect = [self centerScanRect:aRect]; + + // Draw gradient + NSRect gradRect = NSMakeRect(aRect.origin.x,aRect.origin.y + 1 / scaleFactor,aRect.size.width,aRect.size.height - 1 / scaleFactor); + [gradient drawInRect:gradRect angle:90]; + + // Draw top and bottom borders + [borderColor drawPixelThickLineAtPosition:0 withInset:0 inRect:aRect inView:self horizontal:YES flip:NO]; + [borderColor drawPixelThickLineAtPosition:0 withInset:0 inRect:aRect inView:self horizontal:YES flip:YES]; + + [self drawDimpleInRect:aRect]; +} + +- (void)drawDimpleInRect:(NSRect)aRect +{ + float startY = aRect.origin.y + roundf((aRect.size.height / 2) - (dimpleDimension / 2)); + float startX = aRect.origin.x + roundf((aRect.size.width / 2) - (dimpleDimension / 2)); + NSRect destRect = NSMakeRect(startX,startY,dimpleDimension,dimpleDimension); + + // Draw at pixel bounds + destRect = [self convertRectToBase:destRect]; + destRect.origin.x = floor(destRect.origin.x); + + double param, fractPart, intPart; + param = destRect.origin.y; + fractPart = modf(param, &intPart); + if (fractPart < 0.99) + destRect.origin.y = floor(destRect.origin.y); + destRect = [self convertRectFromBase:destRect]; + + if (scaleFactor == 1) + { + NSRect dimpleRect = NSMakeRect(0,0,dimpleDimension,dimpleDimension); + [dimpleImageBitmap drawInRect:destRect fromRect:dimpleRect operation:NSCompositeSourceOver fraction:1]; + } + else + { + NSRect dimpleRect = NSMakeRect(0,0,[dimpleImageVector size].width,[dimpleImageVector size].height); + [dimpleImageVector drawInRect:destRect fromRect:dimpleRect operation:NSCompositeSourceOver fraction:1]; + } +} + +- (CGFloat)dividerThickness +{ + float thickness; + + if ([self isVertical]) + { + thickness = 1; + } + else + { + if ([super dividerThickness] < 1.01) + thickness = 1; + else + thickness = 10; + } + + return thickness; +} + +- (void)setDelegate:(id)anObj +{ + if (secondaryDelegate != self) + secondaryDelegate = anObj; + else + secondaryDelegate = nil; +} + +- (BOOL)subviewIsCollapsible:(NSView *)subview; +{ + // check if this is the collapsible subview + int subviewIndex = [[self subviews] indexOfObject:subview]; + + BOOL isCollapsibleSubview = (([self collapsiblePopupSelection] == 1 && subviewIndex == 0) || ([self collapsiblePopupSelection] == 2 && subviewIndex == [[self subviews] count] - 1)); + + return isCollapsibleSubview; +} + +- (BOOL)subviewIsCollapsed:(NSView *)subview; +{ + BOOL isCollapsibleSubview = [self subviewIsCollapsible:subview]; + + return [super isSubviewCollapsed:subview] || (isCollapsibleSubview && collapsibleSubviewCollapsed); +} + +- (BOOL)collapsibleSubviewIsCollapsed; +{ + return [self subviewIsCollapsed:[self collapsibleSubview]]; +} + +- (int)collapsibleSubviewIndex; +{ + switch ([self collapsiblePopupSelection]) { + case 1: + return 0; + break; + case 2: + return [[self subviews] count] - 1; + break; + default: + return -1; + break; + } +} + +- (NSView *)collapsibleSubview; +{ + int index = [self collapsibleSubviewIndex]; + + if (index >= 0) + return [[self subviews] objectAtIndex:index]; + else + return nil; +} + +- (BOOL)hasCollapsibleSubview; +{ + return [self collapsiblePopupSelection] != 0; +} + +// This is done to support the use of Core Animation to collapse subviews +- (void)adjustSubviews +{ + [super adjustSubviews]; + [[self window] invalidateCursorRectsForView:self]; +} + +- (void)setCollapsibleSubviewCollapsedHelper:(NSNumber *)flag +{ + [self setCollapsibleSubviewCollapsed:[flag boolValue]]; +} + +- (void)animationEnded +{ + isAnimating = NO; +} + +- (float)animationDuration +{ + if ([NSEvent shiftKeyIsDown]) + return 2.0; + + return 0.25; +} + +- (BOOL)hasCollapsibleDivider +{ + if ([self hasCollapsibleSubview] && (dividerCanCollapse || [self dividerThickness] < 1.01)) + return YES; + + return NO; +} + +- (int)collapsibleDividerIndex +{ + if ([self hasCollapsibleDivider]) + { + if ([self collapsiblePopupSelection] == 1) + return 0; + else if ([self collapsiblePopupSelection] == 2) + return [self subviews].count - 2; + } + + return -1; +} + +- (void)setCollapsibleSubviewCollapsed:(BOOL)flag +{ + collapsibleSubviewCollapsed = flag; + + if (flag) + [[self toggleCollapseButton] setState:0]; + else + [[self toggleCollapseButton] setState:1]; +} + +- (void)setMinSizeForCollapsibleSubview:(NSNumber *)minSize +{ + if ([self hasCollapsibleSubview]) + { + NSMutableDictionary *tempMinValues = [[self minValues] mutableCopy]; + [tempMinValues setObject:minSize forKey:[NSNumber numberWithInt:[[self subviews] indexOfObject:[self collapsibleSubview]]]]; + [self setMinValues:tempMinValues]; + } +} + +- (void)removeMinSizeForCollapsibleSubview +{ + if ([self hasCollapsibleSubview]) + { + NSMutableDictionary *tempMinValues = [[self minValues] mutableCopy]; + [tempMinValues removeObjectForKey:[NSNumber numberWithInt:[[self subviews] indexOfObject:[self collapsibleSubview]]]]; + [self setMinValues:tempMinValues]; + } +} + +- (IBAction)toggleCollapse:(id)sender +{ + if ([self respondsToSelector:@selector(ibDidAddToDesignableDocument:)]) + return; + + if ([self hasCollapsibleSubview] == NO || [self collapsibleSubview] == nil) + return; + + if (isAnimating) + return; + + + // Check to see if the collapsible subview has a minimum width/height and record it. + // We'll later remove the min size temporarily while animating and then restore it. + BOOL hasMinSize = NO; + NSNumber *minSize = [minValues objectForKey:[NSNumber numberWithInt:[[self subviews] indexOfObject:[self collapsibleSubview]]]]; + minSize = [[minSize copy] autorelease]; + + if (minSize != nil || [minSize intValue] != 0) + hasMinSize = YES; + + + // Get a reference to the button and modify its behavior + if ([self toggleCollapseButton] == nil) + { + [self setToggleCollapseButton:sender]; + + [[toggleCollapseButton cell] setHighlightsBy:NSPushInCellMask]; + [[toggleCollapseButton cell] setShowsStateBy:NSContentsCellMask]; + } + + + // Temporary: For simplicty, there should only be 1 subview other than the collapsible subview that's resizable for the collapse to happen + NSView *resizableSubview = nil; + + for (NSView *subview in [self subviews]) + { + if ([self subviewIsResizable:subview] && subview != [self collapsibleSubview]) + { + resizableSubview = subview; + } + + } + + if (resizableSubview == nil) + return; + + + // Get the thickness of the collapsible divider. If the divider cannot collapse, we set it to 0 so it doesn't affect our calculations. + float collapsibleDividerThickness = [self dividerThickness]; + + if ([self hasCollapsibleDivider] == NO) + collapsibleDividerThickness = 0; + + + if ([self isVertical]) + { + float constantHeight = [self collapsibleSubview].frame.size.height; + + if ([self collapsibleSubviewCollapsed] == NO) + { + uncollapsedSize = [self collapsibleSubview].frame.size.width; + + if (hasMinSize) + [self removeMinSizeForCollapsibleSubview]; + + [NSAnimationContext beginGrouping]; + [[NSAnimationContext currentContext] setDuration:([self animationDuration])]; + [[[self collapsibleSubview] animator] setFrameSize:NSMakeSize(0.0, constantHeight)]; + [[resizableSubview animator] setFrameSize:NSMakeSize(resizableSubview.frame.size.width + uncollapsedSize + collapsibleDividerThickness, constantHeight)]; + [NSAnimationContext endGrouping]; + + if (hasMinSize) + [self performSelector:@selector(setMinSizeForCollapsibleSubview:) withObject:minSize afterDelay:[self animationDuration]]; + + [self performSelector:@selector(setCollapsibleSubviewCollapsedHelper:) withObject:[NSNumber numberWithBool:YES] afterDelay:[self animationDuration]]; + } + else + { + if (hasMinSize) + [self removeMinSizeForCollapsibleSubview]; + + [NSAnimationContext beginGrouping]; + [[NSAnimationContext currentContext] setDuration:([self animationDuration])]; + [[[self collapsibleSubview] animator] setFrameSize:NSMakeSize(uncollapsedSize, constantHeight)]; + [[resizableSubview animator] setFrameSize:NSMakeSize(resizableSubview.frame.size.width - uncollapsedSize - collapsibleDividerThickness, constantHeight)]; + [NSAnimationContext endGrouping]; + + if (hasMinSize) + [self performSelector:@selector(setMinSizeForCollapsibleSubview:) withObject:minSize afterDelay:[self animationDuration]]; + + [self setCollapsibleSubviewCollapsed:NO]; + } + } + else + { + float constantWidth = [self collapsibleSubview].frame.size.width; + + if ([self collapsibleSubviewCollapsed] == NO) + { + uncollapsedSize = [self collapsibleSubview].frame.size.height; + + if (hasMinSize) + [self removeMinSizeForCollapsibleSubview]; + + [NSAnimationContext beginGrouping]; + [[NSAnimationContext currentContext] setDuration:([self animationDuration])]; + [[[self collapsibleSubview] animator] setFrameSize:NSMakeSize(constantWidth, 0.0)]; + [[resizableSubview animator] setFrameSize:NSMakeSize(constantWidth, resizableSubview.frame.size.height + uncollapsedSize + collapsibleDividerThickness)]; + [NSAnimationContext endGrouping]; + + if (hasMinSize) + [self performSelector:@selector(setMinSizeForCollapsibleSubview:) withObject:minSize afterDelay:[self animationDuration]]; + + [self performSelector:@selector(setCollapsibleSubviewCollapsedHelper:) withObject:[NSNumber numberWithBool:YES] afterDelay:[self animationDuration]]; + } + else + { + if (hasMinSize) + [self removeMinSizeForCollapsibleSubview]; + + [NSAnimationContext beginGrouping]; + [[NSAnimationContext currentContext] setDuration:([self animationDuration])]; + [[[self collapsibleSubview] animator] setFrameSize:NSMakeSize(constantWidth, uncollapsedSize)]; + [[resizableSubview animator] setFrameSize:NSMakeSize(constantWidth, resizableSubview.frame.size.height - uncollapsedSize - collapsibleDividerThickness)]; + [NSAnimationContext endGrouping]; + + if (hasMinSize) + [self performSelector:@selector(setMinSizeForCollapsibleSubview:) withObject:minSize afterDelay:[self animationDuration]]; + + [self setCollapsibleSubviewCollapsed:NO]; + } + } + + isAnimating = YES; + [self performSelector:@selector(animationEnded) withObject:nil afterDelay:[self animationDuration]]; + + [self performSelector:@selector(resizeAndAdjustSubviews) withObject:nil afterDelay:[self animationDuration]]; +} + +#pragma mark NSSplitView Delegate Methods + +- (BOOL)splitView:(NSSplitView *)splitView shouldHideDividerAtIndex:(NSInteger)dividerIndex +{ + if ([secondaryDelegate respondsToSelector:@selector(splitView:shouldHideDividerAtIndex:)]) + return [secondaryDelegate splitView:splitView shouldHideDividerAtIndex:dividerIndex]; + + if ([self respondsToSelector:@selector(ibDidAddToDesignableDocument:)] == NO) + { + if ([self hasCollapsibleDivider] && [self collapsibleDividerIndex] == dividerIndex) + { + [self setDividerCanCollapse:YES]; + return YES; + } + } + + return NO; +} + +- (NSRect)splitView:(NSSplitView *)splitView additionalEffectiveRectOfDividerAtIndex:(NSInteger)dividerIndex +{ + if ([secondaryDelegate respondsToSelector:@selector(splitView:additionalEffectiveRectOfDividerAtIndex:)]) + return [secondaryDelegate splitView:splitView additionalEffectiveRectOfDividerAtIndex:dividerIndex]; + + return NSZeroRect; +} + +- (BOOL)splitView:(NSSplitView *)sender canCollapseSubview:(NSView *)subview +{ + if ([secondaryDelegate respondsToSelector:@selector(splitView:canCollapseSubview:)]) + return [secondaryDelegate splitView:sender canCollapseSubview:subview]; + + int subviewIndex = [[self subviews] indexOfObject:subview]; + + if ([self respondsToSelector:@selector(ibDidAddToDesignableDocument:)] == NO) + { + if ([self collapsiblePopupSelection] == 1 && subviewIndex == 0) + return YES; + else if ([self collapsiblePopupSelection] == 2 && subviewIndex == [[self subviews] count] - 1) + return YES; + } + + return NO; +} + +- (BOOL)splitView:(NSSplitView *)splitView shouldCollapseSubview:(NSView *)subview forDoubleClickOnDividerAtIndex:(NSInteger)dividerIndex +{ + if ([secondaryDelegate respondsToSelector:@selector(splitView:shouldCollapseSubview:forDoubleClickOnDividerAtIndex:)]) + return [secondaryDelegate splitView:splitView shouldCollapseSubview:subview forDoubleClickOnDividerAtIndex:dividerIndex]; + + int subviewIndex = [[self subviews] indexOfObject:subview]; + + if ([self respondsToSelector:@selector(ibDidAddToDesignableDocument:)] == NO) + { + if (([self collapsiblePopupSelection] == 1 && subviewIndex == 0 && dividerIndex == 0) || + ([self collapsiblePopupSelection] == 2 && subviewIndex == [[self subviews] count] - 1 && dividerIndex == [[splitView subviews] count] - 2)) + { + [self setCollapsibleSubviewCollapsed:YES]; + + // Cause the collapse ourselves by calling the resize method + [self resizeAndAdjustSubviews]; + [self setNeedsDisplay:YES]; + + // Since we manually did the resize above, we pretend that we don't want to collapse + return NO; + } + } + + return NO; +} + +- (CGFloat)splitView:(NSSplitView *)sender constrainMaxCoordinate:(CGFloat)proposedMax ofSubviewAt:(NSInteger)offset +{ + if ([secondaryDelegate respondsToSelector:@selector(splitView:constrainMaxCoordinate:ofSubviewAt:)]) + return [secondaryDelegate splitView:sender constrainMaxCoordinate:proposedMax ofSubviewAt:offset]; + + // Max coordinate depends on max of subview offset, and the min of subview offset + 1 + CGFloat newMaxFromThisSubview = proposedMax; + CGFloat newMaxFromNextSubview = proposedMax; + + // Max from this subview + CGFloat maxValue = [self subviewMaximumSize:offset]; + if (maxValue != FLT_MAX) + { + NSView *subview = [[self subviews] objectAtIndex:offset]; + CGFloat originCoord = [self isVertical] ? [subview frame].origin.x : [subview frame].origin.y; + + newMaxFromThisSubview = originCoord + maxValue; + } + + // Max from the next subview + int nextOffset = offset + 1; + if ([[self subviews] count] > nextOffset) + { + CGFloat minValue = [self subviewMinimumSize:nextOffset]; + if (minValue != 0) + { + NSView *subview = [[self subviews] objectAtIndex:nextOffset]; + CGFloat endCoord = [self isVertical] ? [subview frame].origin.x + [subview frame].size.width : [subview frame].origin.y + [subview frame].size.height; + + newMaxFromNextSubview = endCoord - minValue - [self dividerThickness]; + // This could cause trouble when over constrained (TODO) + } + } + + CGFloat newMax = fminf(newMaxFromThisSubview, newMaxFromNextSubview); + + if (newMax < proposedMax) + return newMax; + + return proposedMax; +} + +- (CGFloat)splitView:(NSSplitView *)sender constrainMinCoordinate:(CGFloat)proposedMin ofSubviewAt:(NSInteger)offset +{ + if ([secondaryDelegate respondsToSelector:@selector(splitView:constrainMinCoordinate:ofSubviewAt:)]) + return [secondaryDelegate splitView:sender constrainMinCoordinate:proposedMin ofSubviewAt:offset]; + + // Min coordinate depends on min of subview offset and the max of subview offset + 1 + CGFloat newMinFromThisSubview = proposedMin; + CGFloat newMaxFromNextSubview = proposedMin; + + // Min from this subview + CGFloat minValue = [self subviewMinimumSize:offset]; + if (minValue != 0) + { + NSView *subview = [[self subviews] objectAtIndex:offset]; + CGFloat originCoord = [self isVertical] ? [subview frame].origin.x : [subview frame].origin.y; + + newMinFromThisSubview = originCoord + minValue; + } + + // Min from the next subview + int nextOffset = offset + 1; + if ([[self subviews] count] > nextOffset) + { + CGFloat maxValue = [self subviewMaximumSize:nextOffset]; + if (maxValue != FLT_MAX) + { + NSView *subview = [[self subviews] objectAtIndex:nextOffset]; + CGFloat endCoord = [self isVertical] ? [subview frame].origin.x + [subview frame].size.width : [subview frame].origin.y + [subview frame].size.height; + + newMaxFromNextSubview = endCoord - maxValue - [self dividerThickness]; + // This could cause trouble when over constrained (TODO) + } + } + + CGFloat newMin = fmaxf(newMinFromThisSubview, newMaxFromNextSubview); + + if (newMin > proposedMin) + return newMin; + + return proposedMin; +} + +- (CGFloat)splitView:(NSSplitView *)sender constrainSplitPosition:(CGFloat)proposedPosition ofSubviewAt:(NSInteger)offset +{ + [self clearPreferredProportionsAndSizes]; + + if ([self respondsToSelector:@selector(ibDidAddToDesignableDocument:)]) + return proposedPosition; + + if ([secondaryDelegate respondsToSelector:@selector(splitView:constrainSplitPosition:ofSubviewAt:)]) + return [secondaryDelegate splitView:sender constrainSplitPosition:proposedPosition ofSubviewAt:offset]; + + return proposedPosition; +} + +- (NSRect)splitView:(NSSplitView *)splitView effectiveRect:(NSRect)proposedEffectiveRect forDrawnRect:(NSRect)drawnRect ofDividerAtIndex:(NSInteger)dividerIndex +{ + if ([secondaryDelegate respondsToSelector:@selector(splitView:effectiveRect:forDrawnRect:ofDividerAtIndex:)]) + return [secondaryDelegate splitView:splitView effectiveRect:proposedEffectiveRect forDrawnRect:drawnRect ofDividerAtIndex:dividerIndex]; + + return proposedEffectiveRect; +} + +- (void)splitViewDidResizeSubviews:(NSNotification *)aNotification +{ + if (collapsibleSubviewCollapsed && ([self isVertical] ? [[self collapsibleSubview] frame].size.width > 0 : [[self collapsibleSubview] frame].size.height > 0)) + { + [self setCollapsibleSubviewCollapsed:NO]; + + [self resizeAndAdjustSubviews]; + } + else if (!collapsibleSubviewCollapsed && ([self isVertical] ? [[self collapsibleSubview] frame].size.width < 0.1 : [[self collapsibleSubview] frame].size.height < 0.1)) + { + [self setCollapsibleSubviewCollapsed:YES]; + + [self resizeAndAdjustSubviews]; + } + else if ([self collapsibleSubviewIsCollapsed]) + { + [self resizeAndAdjustSubviews]; + } + + [self setNeedsDisplay:YES]; +} + +#pragma mark - Resize Subviews Delegate Method and Helper Methods + +- (int)resizableSubviews +{ + int resizableSubviews = 0; + + for (NSView *subview in [self subviews]) + { + if ([self subviewIsResizable:subview]) + resizableSubviews++; + } + + return resizableSubviews; +} + +- (BOOL)subviewIsResizable:(NSView *)subview +{ + if ([self isVertical] && [subview autoresizingMask] & NSViewWidthSizable) + return YES; + + if (![self isVertical] && [subview autoresizingMask] & NSViewHeightSizable) + return YES; + + return NO; +} + +- (CGFloat)subviewMinimumSize:(int)subviewIndex; +{ + NSNumber *minNum = [minValues objectForKey:[NSNumber numberWithInt:subviewIndex]]; + if (!minNum) + return 0; + + int units = 0; + NSNumber *unitsNum = [minUnits objectForKey:[NSNumber numberWithInt:subviewIndex]]; + if (unitsNum) + units = [unitsNum intValue]; + + CGFloat min = [minNum floatValue]; + + switch (units) + { + case 1: + { + // Percent + CGFloat dividerThicknessTotal = [self dividerThickness] * ([[self subviews] count] - 1); + CGFloat totalSize = [self isVertical] ? [self frame].size.width : [self frame].size.height; + totalSize -= dividerThicknessTotal; + + return roundf((min / 100.0) * totalSize); + break; + } + case 0: + default: + { + // Points + return min; + break; + } + } +} + +- (CGFloat)subviewMaximumSize:(int)subviewIndex; +{ + NSNumber *maxNum = [maxValues objectForKey:[NSNumber numberWithInt:subviewIndex]]; + if (!maxNum) + return FLT_MAX; + + int units = 0; + NSNumber *unitsNum = [maxUnits objectForKey:[NSNumber numberWithInt:subviewIndex]]; + if (unitsNum) + units = [unitsNum intValue]; + + CGFloat max = [maxNum floatValue]; + + switch (units) + { + case 1: + { + // Percent + CGFloat dividerThicknessTotal = [self dividerThickness] * ([[self subviews] count] - 1); + CGFloat totalSize = [self isVertical] ? [self frame].size.width : [self frame].size.height; + totalSize -= dividerThicknessTotal; + + return roundf((max / 100.0) * totalSize); + break; + } + case 0: + default: + { + // Points + return max; + break; + } + } +} + +// PREFERRED PROPORTIONS AND SIZES +// +// Preferred proportions (for resizable) +// Need to store resizable subviews preferred proportions for calculating new sizes +// +// Preferred sizes (for non-resizable) +// If a non-resizable subview is ever forced larger or smaller than it prefers, we need to know it's preferred size +// +// Need to recalculate both of the above whenever a divider is moved, or a subview is added/removed or changed between resizable/non-resizable + +- (void)recalculatePreferredProportionsAndSizes; +{ + NSMutableArray *stateArray = [NSMutableArray arrayWithCapacity:[[self subviews] count]]; + + NSMutableDictionary *preferredProportions = [NSMutableDictionary dictionary]; + NSMutableDictionary *preferredSizes = [NSMutableDictionary dictionary]; + + // Total is only the sum of resizable subviews + CGFloat resizableTotal = 0; + + // Calculate resizable total + for (NSView *subview in [self subviews]) + { + if ([self subviewIsResizable:subview]) + resizableTotal += [self isVertical] ? [subview frame].size.width : [subview frame].size.height; + } + + // Calculate resizable preferred propotions and set non-resizable preferred sizes + for (NSView *subview in [self subviews]) + { + int index = [[self subviews] indexOfObject:subview]; + + if ([self subviewIsResizable:subview]) + { + CGFloat size = [self isVertical] ? [subview frame].size.width : [subview frame].size.height; + CGFloat proportion = (resizableTotal > 0) ? (size / resizableTotal) : 0; + + [preferredProportions setObject:[NSNumber numberWithFloat:proportion] + forKey:[NSNumber numberWithInt:index]]; + + [stateArray addObject:[NSNumber numberWithBool:YES]]; + } + else + { + CGFloat size = [self isVertical] ? [subview frame].size.width : [subview frame].size.height; + + [preferredSizes setObject:[NSNumber numberWithFloat:size] + forKey:[NSNumber numberWithInt:index]]; + + [stateArray addObject:[NSNumber numberWithBool:NO]]; + } + } + + [self setResizableSubviewPreferredProportion:preferredProportions]; + [self setNonresizableSubviewPreferredSize:preferredSizes]; + + if (RESIZE_DEBUG_LOGS) NSLog(@"resizableSubviewPreferredProportion: %@", resizableSubviewPreferredProportion); + if (RESIZE_DEBUG_LOGS) NSLog(@"nonresizableSubviewPreferredSize: %@", nonresizableSubviewPreferredSize); + + // Remember state to know when to recalculate + [self setStateForLastPreferredCalculations:stateArray]; + if (RESIZE_DEBUG_LOGS) NSLog(@"stateForLastPreferredCalculations: %@", stateForLastPreferredCalculations); +} + +// Checks if the number or type of subviews has changed since we last recalculated +- (BOOL)validatePreferredProportionsAndSizes; +{ + if (RESIZE_DEBUG_LOGS) NSLog(@"validating preferred proportions and sizes"); + + // Check if we even have saved proportions and sizes + if (![self resizableSubviewPreferredProportion] || ![self nonresizableSubviewPreferredSize]) + return NO; + + // Check if number of items has changed + if ([[self subviews] count] != [[self stateForLastPreferredCalculations] count]) + return NO; + + // Check if any of the subviews have changed between resizable and non-resizable + for (NSView *subview in [self subviews]) + { + int index = [[self subviews] indexOfObject:subview]; + + if ([self subviewIsResizable:subview] != [[[self stateForLastPreferredCalculations] objectAtIndex:index] boolValue]) + return NO; + } + + return YES; +} + +- (void)correctCollapsiblePreferredProportionOrSize; +{ + // TODO: Assuming that the collapsible subview does not change between resizable and non-resizable while collapsed + + if (![self hasCollapsibleSubview]) + return; + + NSMutableDictionary *preferredProportions = [[self resizableSubviewPreferredProportion] mutableCopy]; + NSMutableDictionary *preferredSizes = [[self nonresizableSubviewPreferredSize] mutableCopy]; + + NSNumber *key = [NSNumber numberWithInt:[self collapsibleSubviewIndex]]; + NSView *subview = [self collapsibleSubview]; + + // If the collapsible subview is collapsed, we put aside its preferred propotion/size + if ([self subviewIsCollapsed:subview]) + { + BOOL resizable = [self subviewIsResizable:subview]; + + if (!resizable) + { + NSNumber *sizeNum = [preferredSizes objectForKey:key]; + if (sizeNum) + { + if (RESIZE_DEBUG_LOGS) NSLog(@"removing collapsible view from preferred sizes"); + + // TODO: Save the size for later + + // Remove from preferred sizes + [preferredSizes removeObjectForKey:key]; + } + } + else + { + NSNumber *proportionNum = [preferredProportions objectForKey:key]; + if (proportionNum) + { + if (RESIZE_DEBUG_LOGS) NSLog(@"removing collapsible view from preferred proportions"); + + CGFloat proportion = [proportionNum floatValue]; + + // TODO: Save the proportion for later + + // Remove from preferred proportions + [preferredProportions removeObjectForKey:key]; + + // Recalculate other proportions + CGFloat proportionTotal = 1.0 - proportion; + if (proportionTotal > 0) + { + for (NSNumber *pkey in [preferredProportions allKeys]) + { + CGFloat oldProportion = [[preferredProportions objectForKey:pkey] floatValue]; + CGFloat newPropotion = oldProportion / proportionTotal; + + [preferredProportions setObject:[NSNumber numberWithFloat:newPropotion] forKey:pkey]; + } + } + } + } + + [self setResizableSubviewPreferredProportion:preferredProportions]; + [self setNonresizableSubviewPreferredSize:preferredSizes]; + } + else // Otherwise, we reintegrate its preferred proportion/size + { + [self clearPreferredProportionsAndSizes]; + [self recalculatePreferredProportionsAndSizes]; + } +} + +- (void)validateAndCalculatePreferredProportionsAndSizes; +{ + if (![self validatePreferredProportionsAndSizes]) + [self recalculatePreferredProportionsAndSizes]; + + // Need to make sure the collapsed subviews preferred size/proportion is in the right place + [self correctCollapsiblePreferredProportionOrSize]; +} + + +- (void)clearPreferredProportionsAndSizes; +{ + if (RESIZE_DEBUG_LOGS) NSLog(@"clearing preferred proportions and sizes"); + + [self setResizableSubviewPreferredProportion:nil]; + [self setNonresizableSubviewPreferredSize:nil]; +} + +// RESIZING ALGORITHM + +// non-resizable subviews are given preferred size +// overall remaining size is calculated +// resizable subviews are calculated based on remaining size and preferred proportions +// resizable subviews are checked for min/max constraint violations +// if violating constraint, set to valid size and remove from resizable subviews +// recalculate other resizable subviews and repeat +// if all resizable subviews reached constraints without meeting target size, need to resize non-resizable views +// non-resizable subviews are adjusted proportionally to meet target size +// non-resizable subviews are checked for min/max constraint violations +// if violating constraint, set to valid size and remove from non-resizable subviews +// recalculate other non-resizable subviews and repeat +// if all subviews reached constraints without meeting target size, need to adjust all views to fit +// proportionally resize all subviews to fit in target size, ignoring min/max constraints + +- (void)resizeAndAdjustSubviews; +{ + // Temporary: for now, we will just remember the proportions the first time subviews are resized + // we should be remember them in the user defaults so they save across quits (TODO) + + [self validateAndCalculatePreferredProportionsAndSizes]; + + if (RESIZE_DEBUG_LOGS) NSLog(@"resizeSubviews begins -----------------------------------------------------"); + + NSMutableDictionary *newSubviewSizes = [NSMutableDictionary dictionaryWithCapacity:[[self subviews] count]]; + + // Get new total size + CGFloat totalAvailableSize = [self isVertical] ? [self frame].size.width : [self frame].size.height; + if (RESIZE_DEBUG_LOGS) NSLog(@"totalAvailableSize: %f", totalAvailableSize); + + // Calculate non-resizable subviews total + CGFloat nonresizableSubviewsTotalPreferredSize = 0; + for (NSNumber *size in [nonresizableSubviewPreferredSize allValues]) + nonresizableSubviewsTotalPreferredSize += [size floatValue]; + if (RESIZE_DEBUG_LOGS) NSLog(@"nonresizableSubviewsTotalPreferredSize: %f", nonresizableSubviewsTotalPreferredSize); + + // Calculate divider thickness total + int dividerCount = [[self subviews] count] - 1; + if ([self collapsibleSubviewIsCollapsed] && dividerCanCollapse) dividerCount--; + CGFloat dividerThicknessTotal = [self dividerThickness] * dividerCount; + if (RESIZE_DEBUG_LOGS) NSLog(@"dividerThicknessTotal: %f", dividerThicknessTotal); + + // Calculate overall remaining size (could be negative) + CGFloat resizableSubviewsTotalAvailableSize = totalAvailableSize - nonresizableSubviewsTotalPreferredSize - dividerThicknessTotal; + if (RESIZE_DEBUG_LOGS) NSLog(@"resizableSubviewsTotalAvailableSize: %f", resizableSubviewsTotalAvailableSize); + + // Special case for the collapsible subview + if ([self collapsibleSubviewIsCollapsed]) + { + [newSubviewSizes setObject:[NSNumber numberWithFloat:0.0] + forKey:[NSNumber numberWithInt:[self collapsibleSubviewIndex]]]; + } + + // Set non-resizable subviews to preferred size + [newSubviewSizes addEntriesFromDictionary:nonresizableSubviewPreferredSize]; + + // Set sizes of resizable views based on proportions (could be negative) + CGFloat resizableSubviewAvailableSizeUsed = 0; + int resizableSubviewCounter = 0; + int resizableSubviewCount = [resizableSubviewPreferredProportion count]; + for (NSNumber *key in [resizableSubviewPreferredProportion allKeys]) + { + resizableSubviewCounter++; + + CGFloat proportion = [[resizableSubviewPreferredProportion objectForKey:key] floatValue]; + CGFloat size = roundf(proportion * resizableSubviewsTotalAvailableSize); + resizableSubviewAvailableSizeUsed += size; + + if (resizableSubviewCounter == resizableSubviewCount) + { + // Make adjustment if necessary + size += (resizableSubviewsTotalAvailableSize - resizableSubviewAvailableSizeUsed); + } + + [newSubviewSizes setObject:[NSNumber numberWithFloat:size] forKey:key]; + } + if (RESIZE_DEBUG_LOGS) NSLog(@"newSubviewSizes after resizable proportional resizing: %@", newSubviewSizes); + + // TODO: Could add a special case for resizableSubviewsTotalAvailableSize <= 0 : just set all resizable subviews to minimum size + + // Make array of all the resizable subviews indexes + NSMutableArray *resizableSubviewIndexes = [[resizableSubviewPreferredProportion allKeys] mutableCopy]; + [resizableSubviewIndexes sortUsingDescriptors:[NSArray arrayWithObject:[[[NSSortDescriptor alloc] initWithKey:@"self" ascending:YES] autorelease]]]; + + // Loop until none of the resizable subviews' constraints are violated + CGFloat proportionTotal = 1; + CGFloat resizableSubviewsRemainingAvailableSize = resizableSubviewsTotalAvailableSize; + int i; + for (i = 0; i < [resizableSubviewIndexes count]; i++) + { + NSNumber *key = [resizableSubviewIndexes objectAtIndex:i]; + CGFloat size = [[newSubviewSizes objectForKey:key] floatValue]; + CGFloat minSize = [self subviewMinimumSize:[key intValue]]; + CGFloat maxSize = [self subviewMaximumSize:[key intValue]]; + + BOOL overMax = size > maxSize; + BOOL underMin = size < minSize; + + // Check if current item in array violates constraints + if (underMin || overMax) + { + CGFloat constrainedSize = underMin ? minSize : maxSize; + + if (RESIZE_DEBUG_LOGS) NSLog(@"resizable subview %@ was %@, set to %f", key, (underMin ? @"under min" : @"over max"), constrainedSize); + + // Give subview constrained size and remove from array + [newSubviewSizes setObject:[NSNumber numberWithFloat:constrainedSize] forKey:key]; + [resizableSubviewIndexes removeObject:key]; + + // Adjust total proportion and remaining available size + proportionTotal -= [[resizableSubviewPreferredProportion objectForKey:key] floatValue]; + resizableSubviewsRemainingAvailableSize -= underMin ? minSize : maxSize; + + // Recalculate remaining subview sizes + CGFloat resizableSubviewRemainingSizeUsed = 0; + int j; + for (j = 0; j < [resizableSubviewIndexes count]; j++) + { + NSNumber *jKey = [resizableSubviewIndexes objectAtIndex:j]; + + CGFloat proportion = 0; + if (proportionTotal > 0) + proportion = [[resizableSubviewPreferredProportion objectForKey:jKey] floatValue] / proportionTotal; + else + proportion = 1.0 / [resizableSubviewIndexes count]; + + CGFloat size = roundf(proportion * resizableSubviewsRemainingAvailableSize); + resizableSubviewRemainingSizeUsed += size; + + if (j == [resizableSubviewIndexes count] - 1) + { + // Make adjustment if necessary + size += (resizableSubviewsRemainingAvailableSize - resizableSubviewRemainingSizeUsed); + } + + [newSubviewSizes setObject:[NSNumber numberWithFloat:size] forKey:jKey]; + + // Reset outer loop to start from beginning + i = -1; + } + } + } + if (RESIZE_DEBUG_LOGS) NSLog(@"newSubviewSizes after resizable constraint fulfilling: %@", newSubviewSizes); + + if ([resizableSubviewIndexes count] == 0 && resizableSubviewsRemainingAvailableSize != 0) + { + if (RESIZE_DEBUG_LOGS) NSLog(@"entering nonresizable adjustment stage"); + + // All resizable subviews have reached constraints without reaching the target size + + // First try to adjust non-resizable subviews, with resizableSubviewsRemainingAvailableSize being the amount of adjustment needed + + // Make array of non-resizable preferred proportions (normally go by preferred sizes) + NSMutableDictionary *nonresizableSubviewPreferredProportion = [NSMutableDictionary dictionary]; + for (NSNumber *key in [nonresizableSubviewPreferredSize allKeys]) + { + CGFloat proportion = [[nonresizableSubviewPreferredSize objectForKey:key] floatValue] / nonresizableSubviewsTotalPreferredSize; + + [nonresizableSubviewPreferredProportion setObject:[NSNumber numberWithFloat:proportion] forKey:key]; + } + + // ResizableSubviewsRemainingAvailableSize is the amount of adjustment needed + CGFloat nonresizableSubviewsRemainingAvailableSize = nonresizableSubviewsTotalPreferredSize + resizableSubviewsRemainingAvailableSize; + + // Set sizes of nonresizable views based on proportions (could be negative) + CGFloat nonresizableSubviewAvailableSizeUsed = 0; + int nonresizableSubviewCounter = 0; + int nonresizableSubviewCount = [nonresizableSubviewPreferredProportion count]; + for (NSNumber *key in [nonresizableSubviewPreferredProportion allKeys]) + { + nonresizableSubviewCounter++; + + CGFloat proportion = [[nonresizableSubviewPreferredProportion objectForKey:key] floatValue]; + CGFloat size = roundf(proportion * nonresizableSubviewsRemainingAvailableSize); + nonresizableSubviewAvailableSizeUsed += size; + + if (nonresizableSubviewCounter == nonresizableSubviewCount) + { + // Make adjustment if necessary + size += (nonresizableSubviewsRemainingAvailableSize - nonresizableSubviewAvailableSizeUsed); + } + + [newSubviewSizes setObject:[NSNumber numberWithFloat:size] forKey:key]; + } + if (RESIZE_DEBUG_LOGS) NSLog(@"newSubviewSizes after nonresizable proportional resizing: %@", newSubviewSizes); + + // Make array of all the non-resizable subviews indexes + NSMutableArray *nonresizableSubviewIndexes = [[nonresizableSubviewPreferredSize allKeys] mutableCopy]; + [nonresizableSubviewIndexes sortUsingDescriptors:[NSArray arrayWithObject:[[[NSSortDescriptor alloc] initWithKey:@"self" ascending:YES] autorelease]]]; + + // Loop until none of the non-resizable subviews' constraints are violated + CGFloat proportionTotal = 1; + int i; + for (i = 0; i < [nonresizableSubviewIndexes count]; i++) + { + NSNumber *key = [nonresizableSubviewIndexes objectAtIndex:i]; + CGFloat size = [[newSubviewSizes objectForKey:key] floatValue]; + CGFloat minSize = [self subviewMinimumSize:[key intValue]]; + CGFloat maxSize = [self subviewMaximumSize:[key intValue]]; + + BOOL overMax = size > maxSize; + BOOL underMin = size < minSize; + + // Check if current item in array violates constraints + if (underMin || overMax) + { + CGFloat constrainedSize = underMin ? minSize : maxSize; + + if (RESIZE_DEBUG_LOGS) NSLog(@"nonresizable subview %@ was %@, set to %f", key, (underMin ? @"under min" : @"over max"), constrainedSize); + + // Give subview constrained size and remove from array + [newSubviewSizes setObject:[NSNumber numberWithFloat:constrainedSize] forKey:key]; + [nonresizableSubviewIndexes removeObject:key]; + + // Adjust total proportion and remaining available size + proportionTotal -= [[nonresizableSubviewPreferredProportion objectForKey:key] floatValue]; + nonresizableSubviewsRemainingAvailableSize -= underMin ? minSize : maxSize; + + // Recalculate remaining subview sizes + CGFloat nonresizableSubviewRemainingSizeUsed = 0; + int j; + for (j = 0; j < [nonresizableSubviewIndexes count]; j++) + { + NSNumber *jKey = [nonresizableSubviewIndexes objectAtIndex:j]; + + CGFloat proportion = 0; + if (proportionTotal > 0) + proportion = [[nonresizableSubviewPreferredProportion objectForKey:jKey] floatValue] / proportionTotal; + else + proportion = 1.0 / [nonresizableSubviewIndexes count]; + + CGFloat size = roundf(proportion * nonresizableSubviewsRemainingAvailableSize); + nonresizableSubviewRemainingSizeUsed += size; + + if (j == [nonresizableSubviewIndexes count] - 1) + { + // Make adjustment if necessary + size += (nonresizableSubviewsRemainingAvailableSize - nonresizableSubviewRemainingSizeUsed); + } + + [newSubviewSizes setObject:[NSNumber numberWithFloat:size] forKey:jKey]; + + // Reset outer loop to start from beginning + i = -1; + } + } + } + if (RESIZE_DEBUG_LOGS) NSLog(@"newSubviewSizes after nonresizable constraint fulfilling: %@", newSubviewSizes); + + // If there is still overall violation, resize everything proportionally to make up the difference + + if ([resizableSubviewIndexes count] == 0 && nonresizableSubviewsRemainingAvailableSize != 0) + { + if (RESIZE_DEBUG_LOGS) NSLog(@"entering all subviews forced adjustment stage"); + + // Calculate current proportions and use to calculate new size + + CGFloat allSubviewTotalCurrentSize = 0; + for (NSNumber *size in [newSubviewSizes allValues]) + allSubviewTotalCurrentSize += [size floatValue]; + + CGFloat allSubviewRemainingSizeUsed = 0; + CGFloat allSubviewTotalSize = totalAvailableSize - dividerThicknessTotal; + // TODO: What to do if even the dividers don't fit? + + int k; + for (k = 0; k < [newSubviewSizes count]; k++) + { + NSNumber *key = [NSNumber numberWithInt:k]; + + CGFloat currentSize = [[newSubviewSizes objectForKey:key] floatValue]; + + CGFloat proportion = currentSize / allSubviewTotalCurrentSize; + CGFloat size = roundf(proportion * allSubviewTotalSize); + allSubviewRemainingSizeUsed += size; + + if (k == [newSubviewSizes count] - 1) + { + // Make adjustment if necessary + size += allSubviewTotalSize - allSubviewRemainingSizeUsed; + } + + [newSubviewSizes setObject:[NSNumber numberWithFloat:size] forKey:key]; + } + if (RESIZE_DEBUG_LOGS) NSLog(@"newSubviewSizes after all subviews forced adjustment: %@", newSubviewSizes); + } + + // Otherwise there is still flexibiliy in the non-resizable views, so we are done + } + + // Otherwise there is still flexibility in the resizable views, so we are done + + // Set subview frames + CGFloat position = 0; + for (i = 0; i < [[self subviews] count]; i++) + { + NSView *subview = [[self subviews] objectAtIndex:i]; + CGFloat size = [[newSubviewSizes objectForKey:[NSNumber numberWithInt:i]] floatValue]; + + NSRect subviewFrame = NSZeroRect; + + if ([self isVertical]) + { + subviewFrame.size.height = [self frame].size.height; + subviewFrame.size.width = size; + subviewFrame.origin.y = [subview frame].origin.y; + subviewFrame.origin.x = position; + } + else + { + subviewFrame.size.height = size; + subviewFrame.size.width = [self frame].size.width; + subviewFrame.origin.y = position; + subviewFrame.origin.x = [subview frame].origin.x; + } + + [subview setFrame:subviewFrame]; + + position += size; + + if (dividerCanCollapse && [self subviewIsCollapsed:subview]) + { + // Do nothing + } + else + { + position += [self dividerThickness]; + } + } +} + +- (void)splitView:(NSSplitView *)sender resizeSubviewsWithOldSize:(NSSize)oldSize +{ + if ([secondaryDelegate isKindOfClass:NSClassFromString(@"BWAnchoredButtonBar")]) + { + [self resizeAndAdjustSubviews]; + } + else if ([secondaryDelegate respondsToSelector:@selector(splitView:resizeSubviewsWithOldSize:)]) + { + [secondaryDelegate splitView:sender resizeSubviewsWithOldSize:oldSize]; + } + else if (sender == self) + { + [self resizeAndAdjustSubviews]; + } + else + { + [sender adjustSubviews]; + } +} + +#pragma mark Force Vertical Splitters to Thin Appearance + +// This class doesn't have an appearance for wide vertical splitters, so we force all vertical splitters to thin. +// We also post notifications that are used by the inspector to show & hide controls. + +- (void)setDividerStyle:(NSSplitViewDividerStyle)aStyle +{ + BOOL styleChanged = NO; + + if (aStyle != [self dividerStyle]) + styleChanged = YES; + + if ([self isVertical]) + [super setDividerStyle:NSSplitViewDividerStyleThin]; + else + [super setDividerStyle:aStyle]; + + // There can be sizing issues during design-time if we don't call this + [self adjustSubviews]; + + if (styleChanged) + [[NSNotificationCenter defaultCenter] postNotificationName:@"BWSplitViewDividerThicknessChanged" object:self]; +} + +- (void)setVertical:(BOOL)flag +{ + BOOL orientationChanged = NO; + + if (flag != [self isVertical]) + orientationChanged = YES; + + if (flag) + [super setDividerStyle:NSSplitViewDividerStyleThin]; + + [super setVertical:flag]; + + if (orientationChanged) + [[NSNotificationCenter defaultCenter] postNotificationName:@"BWSplitViewOrientationChanged" object:self]; +} + +#pragma mark IB Inspector Support Methods + +- (BOOL)checkboxIsEnabled +{ + if (![self isVertical] && [super dividerThickness] > 1.01) + return NO; + + return YES; +} + +- (void)setColorIsEnabled:(BOOL)flag +{ + colorIsEnabled = flag; + + [self setNeedsDisplay:YES]; +} + +- (void)setColor:(NSColor *)aColor +{ + if (color != aColor) + { + [color release]; + color = [aColor copy]; + } + + [self setNeedsDisplay:YES]; +} + +- (NSColor *)color +{ + if (color == nil) + color = [[NSColor blackColor] retain]; + + return [[color retain] autorelease]; +} + +- (NSMutableDictionary *)minValues +{ + if (minValues == nil) + minValues = [NSMutableDictionary new]; + + return [[minValues retain] autorelease]; +} + +- (NSMutableDictionary *)maxValues +{ + if (maxValues == nil) + maxValues = [NSMutableDictionary new]; + + return [[maxValues retain] autorelease]; +} + +- (NSMutableDictionary *)minUnits +{ + if (minUnits == nil) + minUnits = [NSMutableDictionary new]; + + return [[minUnits retain] autorelease]; +} + +- (NSMutableDictionary *)maxUnits +{ + if (maxUnits == nil) + maxUnits = [NSMutableDictionary new]; + + return [[maxUnits retain] autorelease]; +} + +- (void)dealloc +{ + [color release]; + [minValues release]; + [maxValues release]; + [minUnits release]; + [maxUnits release]; + [resizableSubviewPreferredProportion release]; + [nonresizableSubviewPreferredSize release]; + [toggleCollapseButton release]; + [stateForLastPreferredCalculations release]; + + [super dealloc]; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWSplitViewInspector.h b/Frameworks/BWToolkitFramework.framework/BWSplitViewInspector.h new file mode 100644 index 00000000..c4c79f8c --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWSplitViewInspector.h @@ -0,0 +1,31 @@ +// +// BWSplitViewInspector.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import +#import "BWSplitView.h" +#import "BWSplitViewInspectorAutosizingView.h" + +@interface BWSplitViewInspector : IBInspector +{ + IBOutlet NSTextField *maxField, *minField, *maxLabel, *minLabel; + IBOutlet NSButton *dividerCheckbox; + IBOutlet BWSplitViewInspectorAutosizingView *autosizingView; + + int subviewPopupSelection, collapsiblePopupSelection, minUnitPopupSelection, maxUnitPopupSelection; + NSMutableArray *subviewPopupContent, *collapsiblePopupContent; + + BWSplitView *splitView; + BOOL dividerCheckboxCollapsed; +} + +@property int subviewPopupSelection, collapsiblePopupSelection, minUnitPopupSelection, maxUnitPopupSelection; +@property (copy) NSMutableArray *subviewPopupContent, *collapsiblePopupContent; +@property (retain) BWSplitView *splitView; +@property BOOL dividerCheckboxCollapsed; + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWSplitViewInspector.m b/Frameworks/BWToolkitFramework.framework/BWSplitViewInspector.m new file mode 100644 index 00000000..867d416f --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWSplitViewInspector.m @@ -0,0 +1,269 @@ +// +// BWSplitViewInspector.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWSplitViewInspector.h" +#import "NSView+BWAdditions.h" + +@interface BWSplitViewInspector (BWSVIPrivate) +- (void)updateControls; +- (BOOL)toggleDividerCheckboxVisibilityWithAnimation:(BOOL)shouldAnimate; +- (void)updateSizeLabels; +@end + +@implementation BWSplitViewInspector + +@synthesize subviewPopupSelection, subviewPopupContent, collapsiblePopupSelection, collapsiblePopupContent, minUnitPopupSelection, maxUnitPopupSelection, splitView, dividerCheckboxCollapsed; + +- (NSString *)viewNibName +{ + return @"BWSplitViewInspector"; +} + +- (void)awakeFromNib +{ + [minField setDelegate:self]; + [maxField setDelegate:self]; + + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(dividerThicknessChanged:) + name:@"BWSplitViewDividerThicknessChanged" + object:splitView]; + + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(orientationChanged:) + name:@"BWSplitViewOrientationChanged" + object:splitView]; +} + +- (void)dividerThicknessChanged:(NSNotification *)notification +{ + [self toggleDividerCheckboxVisibilityWithAnimation:YES]; +} + +- (void)updateSizeLabels +{ + if ([splitView isVertical]) + { + [maxLabel setStringValue:@"Max Width"]; + [minLabel setStringValue:@"Min Width"]; + } + else + { + [maxLabel setStringValue:@"Max Height"]; + [minLabel setStringValue:@"Min Height"]; + } +} + +- (void)orientationChanged:(NSNotification *)notification +{ + [self updateSizeLabels]; + [self toggleDividerCheckboxVisibilityWithAnimation:YES]; +} + +- (void)setCollapsiblePopupSelection:(int)index +{ + collapsiblePopupSelection = index; + + [splitView setCollapsiblePopupSelection:index]; + [self toggleDividerCheckboxVisibilityWithAnimation:YES]; +} + +- (void)setSplitView:(BWSplitView *)aSplitView +{ + if (splitView != aSplitView) + { + [splitView release]; + splitView = [aSplitView retain]; + + [self toggleDividerCheckboxVisibilityWithAnimation:NO]; + } +} + +- (void)setDividerCheckboxWantsLayer:(NSString *)flag +{ + if ([flag isEqualToString:@"YES"]) + [dividerCheckbox setWantsLayer:YES]; + else + [dividerCheckbox setWantsLayer:NO]; +} + +- (BOOL)toggleDividerCheckboxVisibilityWithAnimation:(BOOL)shouldAnimate +{ + // Conditions that must be met for a visibility switch to take place. If any of them fail, we return early. + if (dividerCheckboxCollapsed && [splitView dividerThickness] > 1.01 && [splitView collapsiblePopupSelection] != 0) { + } + else if (!dividerCheckboxCollapsed && ([splitView dividerThickness] < 1.01 || [splitView collapsiblePopupSelection] == 0)) { + } + else + return NO; + + float duration = 0.1, alpha; + NSRect targetFrame = NSZeroRect; + + if (dividerCheckboxCollapsed) + { + targetFrame = NSMakeRect([[self view] frame].origin.x, [[self view] frame].origin.y, [[self view] frame].size.width, [[self view] frame].size.height + 20); + alpha = 1.0; + } + else + { + targetFrame = NSMakeRect([[self view] frame].origin.x, [[self view] frame].origin.y, [[self view] frame].size.width, [[self view] frame].size.height - 20); + alpha = 0.0; + } + + [self performSelector:@selector(setDividerCheckboxWantsLayer:) withObject:@"YES" afterDelay:0]; + + if (shouldAnimate) + { + [NSAnimationContext beginGrouping]; + [[NSAnimationContext currentContext] setDuration:duration]; + [[dividerCheckbox animator] setAlphaValue:alpha]; + [[[self view] animator] setFrame:targetFrame]; + [NSAnimationContext endGrouping]; + + if (dividerCheckboxCollapsed) + [self performSelector:@selector(setDividerCheckboxWantsLayer:) withObject:@"NO" afterDelay:duration]; + } + else + { + [dividerCheckbox setAlphaValue:alpha]; + [[self view] setFrame:targetFrame]; + + if (dividerCheckboxCollapsed) + [self performSelector:@selector(setDividerCheckboxWantsLayer:) withObject:@"NO" afterDelay:0]; + } + + dividerCheckboxCollapsed = !dividerCheckboxCollapsed; + + return YES; +} + +- (void)refresh +{ + [super refresh]; + + if ([[self inspectedObjects] count] > 0) + { + [self setSplitView:[[self inspectedObjects] objectAtIndex:0]]; + + // Populate the subview popup button + NSMutableArray *content = [[NSMutableArray alloc] init]; + + for (NSView *subview in [splitView subviews]) + { + int index = [[splitView subviews] indexOfObject:subview]; + NSString *label = [NSString stringWithFormat:@"Subview %d",index]; + + if (![[subview className] isEqualToString:@"NSView"]) + label = [label stringByAppendingString:[NSString stringWithFormat:@" - %@",[subview className]]]; + + [content addObject:label]; + } + + [self setSubviewPopupContent:content]; + + // Populate the collapsible popup button + if ([splitView isVertical]) + [self setCollapsiblePopupContent:[NSMutableArray arrayWithObjects:@"None", @"Left Pane", @"Right Pane",nil]]; + else + [self setCollapsiblePopupContent:[NSMutableArray arrayWithObjects:@"None", @"Top Pane", @"Bottom Pane",nil]]; + } + + // Refresh autosizing view + [autosizingView setSplitView:splitView]; + [autosizingView layoutButtons]; + + [self updateSizeLabels]; + [self updateControls]; +} + ++ (BOOL)supportsMultipleObjectInspection +{ + return NO; +} + +- (void)setMinUnitPopupSelection:(int)index +{ + minUnitPopupSelection = index; + + NSNumber *minUnit = [NSNumber numberWithInt:index]; + + NSMutableDictionary *tempMinUnits = [[[splitView minUnits] mutableCopy] autorelease]; + [tempMinUnits setObject:minUnit forKey:[NSNumber numberWithInt:[self subviewPopupSelection]]]; + [splitView setMinUnits:tempMinUnits]; +} + +- (void)setMaxUnitPopupSelection:(int)index +{ + maxUnitPopupSelection = index; + + NSNumber *maxUnit = [NSNumber numberWithInt:index]; + + NSMutableDictionary *tempMaxUnits = [[[splitView maxUnits] mutableCopy] autorelease]; + [tempMaxUnits setObject:maxUnit forKey:[NSNumber numberWithInt:[self subviewPopupSelection]]]; + [splitView setMaxUnits:tempMaxUnits]; +} + +- (void)controlTextDidChange:(NSNotification *)aNotification +{ + if ([aNotification object] == minField) + { + if ([minField stringValue] != nil && [[minField stringValue] isEqualToString:@""] == NO && [[minField stringValue] isEqualToString:@" "] == NO) + { + NSNumber *minValue = [NSNumber numberWithInt:[minField intValue]]; + NSMutableDictionary *tempMinValues = [[splitView minValues] mutableCopy]; + [tempMinValues setObject:minValue forKey:[NSNumber numberWithInt:[self subviewPopupSelection]]]; + [splitView setMinValues:tempMinValues]; + } + else + { + NSMutableDictionary *tempMinValues = [[splitView minValues] mutableCopy]; + [tempMinValues removeObjectForKey:[NSNumber numberWithInt:[self subviewPopupSelection]]]; + [splitView setMinValues:tempMinValues]; + } + } + else if ([aNotification object] == maxField) + { + if ([maxField stringValue] != nil && [[maxField stringValue] isEqualToString:@""] == NO && [[maxField stringValue] isEqualToString:@" "] == NO) + { + NSNumber *maxValue = [NSNumber numberWithInt:[maxField intValue]]; + NSMutableDictionary *tempMaxValues = [[splitView maxValues] mutableCopy]; + [tempMaxValues setObject:maxValue forKey:[NSNumber numberWithInt:[self subviewPopupSelection]]]; + [splitView setMaxValues:tempMaxValues]; + } + else + { + NSMutableDictionary *tempMaxValues = [[splitView maxValues] mutableCopy]; + [tempMaxValues removeObjectForKey:[NSNumber numberWithInt:[self subviewPopupSelection]]]; + [splitView setMaxValues:tempMaxValues]; + } + } +} + +- (int)collapsiblePopupSelection +{ + return [splitView collapsiblePopupSelection]; +} + +- (void)setSubviewPopupSelection:(int)index +{ + subviewPopupSelection = index; + + [self updateControls]; +} + +- (void)updateControls +{ + [minField setObjectValue:[[splitView minValues] objectForKey:[NSNumber numberWithInt:[self subviewPopupSelection]]]]; + [maxField setObjectValue:[[splitView maxValues] objectForKey:[NSNumber numberWithInt:[self subviewPopupSelection]]]]; + + [self setMinUnitPopupSelection:[[[splitView minUnits] objectForKey:[NSNumber numberWithInt:[self subviewPopupSelection]]] intValue]]; + [self setMaxUnitPopupSelection:[[[splitView maxUnits] objectForKey:[NSNumber numberWithInt:[self subviewPopupSelection]]] intValue]]; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWSplitViewInspector.xib b/Frameworks/BWToolkitFramework.framework/BWSplitViewInspector.xib new file mode 100644 index 00000000..bb3407fc --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWSplitViewInspector.xib @@ -0,0 +1,2080 @@ + + + + 1050 + 10A380 + 731 + 1025.2 + 427.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 731 + + + YES + + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + YES + + YES + + + YES + + + + YES + + BWSplitViewInspector + + + FirstResponder + + + NSApplication + + + + 268 + + YES + + + 288 + {{98, 18}, {154, 81}} + + BWSplitViewInspectorAutosizingView + + + + 268 + {{81, 119}, {148, 18}} + + YES + + -2080244224 + 131072 + Divider Can Collapse + + LucidaGrande + 11 + 16 + + + 1211912703 + 2 + + NSImage + NSSwitch + + + NSSwitch + + + + 200 + 25 + + + + + 268 + {{20, 262}, {153, 22}} + + YES + + -2076049856 + 133120 + + LucidaGrande + 11 + 3100 + + + 109199615 + 129 + + + 400 + 75 + + + Subview 0 + + 1048576 + 2147483647 + 1 + + NSImage + NSMenuCheckmark + + + NSImage + NSMenuMixedState + + _popUpItemAction: + + + YES + + OtherViews + + YES + + + + You shouldn't see this + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + 1 + YES + YES + 2 + + + + + 268 + {{81, 296}, {21, 18}} + + YES + + 67239424 + 131072 + Switch + + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + {{8, 298}, {70, 14}} + + YES + + 67239488 + 4326400 + Color + + LucidaGrande-Bold + 11 + 16 + + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2NjY3AA + + + + 6 + System + controlTextColor + + 3 + MAA + + + + + + + 268 + + YES + + YES + NSColor pasteboard type + + + {{104, 293}, {66, 24}} + + YES + YES + + 1 + MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA + + + + + 268 + {{8, 144}, {70, 14}} + + YES + + 67239488 + 4326400 + Collapsible + + + + + + + + + 268 + {{81, 139}, {186, 22}} + + YES + + -2076049856 + 133120 + + + 109199615 + 129 + + + 400 + 75 + + + Right Pane + + 1048576 + 2147483647 + 1 + + + _popUpItemAction: + + + YES + + OtherViews + + YES + + + Left Pane + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + + 1 + 1 + YES + YES + 2 + + + + + 12 + + YES + + + 256 + + YES + + + 268 + {{8, 67}, {70, 14}} + + YES + + 67239488 + 4326400 + View Size + + + + + + + + + 268 + {{81, 49}, {88, 14}} + + YES + + 67239488 + 4326400 + Min Width + + + + + + + + + 268 + {{84, 65}, {86, 19}} + + YES + + -1804468671 + 71435264 + + + + YES + + 6 + System + textBackgroundColor + + 3 + MQA + + + + 6 + System + textColor + + + + + + + 268 + {{175, 62}, {92, 22}} + + YES + + -2076049856 + 133120 + + + 109199615 + 129 + + + + 400 + 75 + + + points + + 1048576 + 2147483647 + 1 + + + _popUpItemAction: + + + YES + + OtherViews + + YES + + + + % + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + 1 + YES + YES + 2 + + + + + 268 + {{81, 6}, {91, 14}} + + YES + + 67239488 + 4326400 + Max Width + + + + + + + + + 268 + {{84, 22}, {86, 19}} + + YES + + -1804468671 + 71435264 + + + + YES + + + + + + + 268 + {{175, 19}, {92, 22}} + + YES + + -2076049856 + 133120 + + + 109199615 + 129 + + + + 400 + 75 + + + points + + 1048576 + 2147483647 + 1 + + + _popUpItemAction: + + + YES + + OtherViews + + YES + + + + % + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + 1 + YES + YES + 2 + + + + {{1, 1}, {272, 102}} + + + + {{-1, 171}, {274, 104}} + + {0, 0} + + 67239424 + 0 + Box + + + + 3 + MCAwLjgwMDAwMDAxAA + + + + 1 + 4 + 2 + NO + + 2 + MC41NzY0NzA2MSAwLjU3NjQ3MDYxIDAuNTc2NDcwNjEAA + + + 2 + MC44NDcwNTg4OSAwLjg0NzA1ODg5IDAuODQ3MDU4ODkAA + + + + + 292 + {{8, 98}, {70, 14}} + + YES + + 67239488 + 4326400 + Autosizing + + + + + + + + + 288 + {{112, 37}, {125, 42}} + + YES + + 67239424 + 138543104 + Set the springs in each subview's Size inspector. + + + + + 1 + MC4yOTgwMzkyMyAwLjI5ODAzOTIzIDAuMjk4MDM5MjMAA + + + + + + 288 + + 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 + + + {{85, 5}, {180, 107}} + + YES + + 130560 + 33554432 + + NSImage + Inspector-SplitViewBackground + + 0 + 0 + 0 + YES + + YES + + + {272, 321} + + NSView + + + + YES + subviewPopupSelection + subviewPopupContent + collapsiblePopupContent + collapsiblePopupSelection + minUnitPopupSelection + maxUnitPopupSelection + + YES + + YES + YES + YES + YES + YES + + + + + YES + + + inspectorView + + + + 16 + + + + value: inspectedObjectsController.selection.color + + + + + + value: inspectedObjectsController.selection.color + value + inspectedObjectsController.selection.color + 2 + + + 124 + + + + enabled: inspectedObjectsController.selection.colorIsEnabled + + + + + + enabled: inspectedObjectsController.selection.colorIsEnabled + enabled + inspectedObjectsController.selection.colorIsEnabled + 2 + + + 128 + + + + value: inspectedObjectsController.selection.colorIsEnabled + + + + + + value: inspectedObjectsController.selection.colorIsEnabled + value + inspectedObjectsController.selection.colorIsEnabled + 2 + + + 133 + + + + enabled: inspectedObjectsController.selection.checkboxIsEnabled + + + + + + enabled: inspectedObjectsController.selection.checkboxIsEnabled + enabled + inspectedObjectsController.selection.checkboxIsEnabled + 2 + + + 135 + + + + content + + + + 183 + + + + contentValues: selection.subviewPopupContent + + + + + + contentValues: selection.subviewPopupContent + contentValues + selection.subviewPopupContent + 2 + + + 191 + + + + selectedIndex: selection.subviewPopupSelection + + + + + + selectedIndex: selection.subviewPopupSelection + selectedIndex + selection.subviewPopupSelection + + 2 + + + 192 + + + + contentValues: selection.collapsiblePopupContent + + + + + + contentValues: selection.collapsiblePopupContent + contentValues + selection.collapsiblePopupContent + 2 + + + 196 + + + + dividerCheckbox + + + + 212 + + + + autosizingView + + + + 220 + + + + selectedIndex: selection.collapsiblePopupSelection + + + + + + selectedIndex: selection.collapsiblePopupSelection + selectedIndex + selection.collapsiblePopupSelection + + 2 + + + 222 + + + + maxField + + + + 223 + + + + minField + + + + 224 + + + + maxLabel + + + + 225 + + + + minLabel + + + + 226 + + + + selectedIndex: selection.minUnitPopupSelection + + + + + + selectedIndex: selection.minUnitPopupSelection + selectedIndex + selection.minUnitPopupSelection + 2 + + + 228 + + + + selectedIndex: selection.maxUnitPopupSelection + + + + + + selectedIndex: selection.maxUnitPopupSelection + selectedIndex + selection.maxUnitPopupSelection + 2 + + + 230 + + + + value: inspectedObjectsController.selection.dividerCanCollapse + + + + + + value: inspectedObjectsController.selection.dividerCanCollapse + value + inspectedObjectsController.selection.dividerCanCollapse + 2 + + + 231 + + + + + YES + + 0 + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 1 + + + YES + + + + + + + + + + + + + + + Inspector View + + + 86 + + + YES + + + + + + 89 + + + YES + + + + + + 90 + + + + + 93 + + + + + 98 + + + + + 136 + + + YES + + + + + + 137 + + + + + 138 + + + YES + + + + + + 139 + + + YES + + + + + + 140 + + + YES + + + + + + + 141 + + + + + 142 + + + + + 144 + + + YES + + + + + + + + + + + + 145 + + + YES + + + + + + 146 + + + YES + + + + + + 147 + + + YES + + + + + + + 148 + + + + + 149 + + + + + 151 + + + YES + + + + + + 152 + + + + + 153 + + + YES + + + + + + 170 + + + + + 154 + + + YES + + + + + + 169 + + + + + 155 + + + YES + + + + + + 165 + + + YES + + + + + + 166 + + + YES + + + + + + + 168 + + + + + 167 + + + + + 156 + + + YES + + + + + + 164 + + + + + 157 + + + YES + + + + + + 163 + + + + + 158 + + + YES + + + + + + 159 + + + YES + + + + + + 160 + + + YES + + + + + + + 162 + + + + + 161 + + + + + 171 + + + YES + + + + + + 172 + + + + + 182 + + + + + 206 + + + YES + + + + + + 207 + + + + + 215 + + + + + 216 + + + YES + + + + + + 217 + + + YES + + + + + + 218 + + + + + 219 + + + + + + + YES + + YES + -3.IBPluginDependency + -3.ImportedFromIB2 + 1.IBEditorWindowLastContentRect + 1.IBPluginDependency + 1.IBUserGuides + 1.IBViewEditorWindowController.showingBoundsRectangles + 1.IBViewEditorWindowController.showingLayoutRectangles + 1.ImportedFromIB2 + 1.WindowOrigin + 1.editorWindowContentRectSynchronizationRect + 136.IBPluginDependency + 137.IBPluginDependency + 138.IBPluginDependency + 139.IBPluginDependency + 140.IBEditorWindowLastContentRect + 140.IBPluginDependency + 141.IBPluginDependency + 142.IBPluginDependency + 144.IBPluginDependency + 145.IBPluginDependency + 146.IBPluginDependency + 147.IBEditorWindowLastContentRect + 147.IBPluginDependency + 148.IBPluginDependency + 149.IBPluginDependency + 151.IBPluginDependency + 152.IBPluginDependency + 153.IBPluginDependency + 154.IBPluginDependency + 155.IBPluginDependency + 155.IBViewIntegration.shadowBlurRadius + 155.IBViewIntegration.shadowColor + 155.IBViewIntegration.shadowOffsetHeight + 155.IBViewIntegration.shadowOffsetWidth + 156.IBPluginDependency + 157.IBPluginDependency + 158.IBPluginDependency + 158.IBViewIntegration.shadowBlurRadius + 158.IBViewIntegration.shadowColor + 158.IBViewIntegration.shadowOffsetHeight + 158.IBViewIntegration.shadowOffsetWidth + 159.IBPluginDependency + 160.IBEditorWindowLastContentRect + 160.IBPluginDependency + 161.IBPluginDependency + 162.IBPluginDependency + 163.IBPluginDependency + 164.IBPluginDependency + 165.IBPluginDependency + 166.IBEditorWindowLastContentRect + 166.IBPluginDependency + 167.IBPluginDependency + 168.IBPluginDependency + 169.IBPluginDependency + 170.IBPluginDependency + 171.IBPluginDependency + 172.IBPluginDependency + 182.IBPluginDependency + 206.IBPluginDependency + 207.IBPluginDependency + 215.IBPluginDependency + 216.IBPluginDependency + 217.IBPluginDependency + 218.IBPluginDependency + 219.IBPluginDependency + 86.IBPluginDependency + 89.IBPluginDependency + 90.IBPluginDependency + 93.IBPluginDependency + 98.IBPluginDependency + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + {{812, 128}, {272, 321}} + com.apple.InterfaceBuilder.CocoaPlugin + + YES + + + 11 + 0 + + + + 8 + 2 + + + + 84 + 0 + + + + 170 + 0 + + + + 178 + 0 + + + + 4 + 3 + + + + 4 + 1 + + + + + + {84, 761} + {{767, 669}, {272, 296}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{1077, 504}, {186, 37}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{879, 344}, {181, 37}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + 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, 278}, {97, 37}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{848, 349}, {97, 37}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + 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 + + + + 231 + + + + YES + + BWSplitViewInspector + IBInspector + + YES + + YES + autosizingView + dividerCheckbox + maxField + maxLabel + minField + minLabel + + + YES + BWSplitViewInspectorAutosizingView + NSButton + NSTextField + NSTextField + NSTextField + NSTextField + + + + IBProjectSource + BWSplitViewInspector.h + + + + BWSplitViewInspectorAutosizingView + NSView + + IBProjectSource + BWSplitViewInspectorAutosizingView.h + + + + NSApplication + + IBProjectSource + NSApplication+BWAdditions.h + + + + NSView + + IBProjectSource + NSView+BWAdditions.h + + + + + YES + + IBInspector + NSObject + + inspectorView + NSView + + + IBFrameworkSource + InterfaceBuilderKit.framework/Headers/IBInspector.h + + + + NSActionCell + NSCell + + IBFrameworkSource + AppKit.framework/Headers/NSActionCell.h + + + + NSApplication + NSResponder + + IBFrameworkSource + AppKit.framework/Headers/NSApplication.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSApplicationScripting.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSColorPanel.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSHelpManager.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSPageLayout.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSUserInterfaceItemSearching.h + + + + NSArrayController + NSObjectController + + IBFrameworkSource + AppKit.framework/Headers/NSArrayController.h + + + + NSBox + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSBox.h + + + + NSButton + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSButton.h + + + + NSButtonCell + NSActionCell + + IBFrameworkSource + AppKit.framework/Headers/NSButtonCell.h + + + + NSCell + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSCell.h + + + + NSColorWell + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSColorWell.h + + + + NSControl + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSControl.h + + + + NSController + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSController.h + + + + NSFormatter + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSFormatter.h + + + + NSImageCell + NSCell + + IBFrameworkSource + AppKit.framework/Headers/NSImageCell.h + + + + NSImageView + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSImageView.h + + + + NSManagedObjectContext + NSObject + + IBFrameworkSource + CoreData.framework/Headers/NSManagedObjectContext.h + + + + NSMenu + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSMenu.h + + + + NSMenuItem + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSMenuItem.h + + + + NSMenuItemCell + NSButtonCell + + IBFrameworkSource + AppKit.framework/Headers/NSMenuItemCell.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSAccessibility.h + + + + NSObject + + + + NSObject + + + + NSObject + + + + NSObject + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSDictionaryController.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSDragging.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSFontManager.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSFontPanel.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSKeyValueBinding.h + + + + NSObject + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSNibLoading.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSOutlineView.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSPasteboard.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSSavePanel.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSTableView.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSToolbarItem.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSView.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSArchiver.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSClassDescription.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSError.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSFileManager.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueCoding.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueObserving.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyedArchiver.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSObject.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSObjectScripting.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSPortCoder.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSRunLoop.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptClassDescription.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptKeyValueCoding.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptObjectSpecifiers.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptWhoseTests.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSThread.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURL.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURLConnection.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURLDownload.h + + + + NSObject + + IBFrameworkSource + InterfaceBuilderKit.framework/Headers/IBObjectIntegration.h + + + + NSObjectController + NSController + + IBFrameworkSource + AppKit.framework/Headers/NSObjectController.h + + + + NSPopUpButton + NSButton + + IBFrameworkSource + AppKit.framework/Headers/NSPopUpButton.h + + + + NSPopUpButtonCell + NSMenuItemCell + + IBFrameworkSource + AppKit.framework/Headers/NSPopUpButtonCell.h + + + + NSResponder + + IBFrameworkSource + AppKit.framework/Headers/NSInterfaceStyle.h + + + + NSResponder + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSResponder.h + + + + NSTextField + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSTextField.h + + + + NSTextFieldCell + NSActionCell + + IBFrameworkSource + AppKit.framework/Headers/NSTextFieldCell.h + + + + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSClipView.h + + + + NSView + + + + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSRulerView.h + + + + NSView + NSResponder + + + + NSView + + IBFrameworkSource + InterfaceBuilderKit.framework/Headers/IBViewIntegration.h + + + + + 0 + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + BWToolkit.xcodeproj + 3 + + diff --git a/Frameworks/BWToolkitFramework.framework/BWSplitViewInspectorAutosizingButtonCell.h b/Frameworks/BWToolkitFramework.framework/BWSplitViewInspectorAutosizingButtonCell.h new file mode 100644 index 00000000..00cbfd3e --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWSplitViewInspectorAutosizingButtonCell.h @@ -0,0 +1,16 @@ +// +// BWSplitViewInspectorAutosizingButtonCell.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface BWSplitViewInspectorAutosizingButtonCell : NSButtonCell +{ + +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWSplitViewInspectorAutosizingButtonCell.m b/Frameworks/BWToolkitFramework.framework/BWSplitViewInspectorAutosizingButtonCell.m new file mode 100644 index 00000000..f40b187e --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWSplitViewInspectorAutosizingButtonCell.m @@ -0,0 +1,158 @@ +// +// BWSplitViewInspectorAutosizingButtonCell.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWSplitViewInspectorAutosizingButtonCell.h" +#import "BWSplitViewInspectorAutosizingView.h" +#import "NSColor+BWAdditions.h" +#import "NSImage+BWAdditions.h" +#import "NSApplication+BWAdditions.h" +#import "IBColor.h" + +static NSColor *insetColor, *borderColor, *viewColor, *lineColor, *insetLineColor; +static NSImage *blueArrowStart, *blueArrowEnd, *redArrowStart, *redArrowEnd, *redArrowFill; +static float interiorInset = 7.0; + +@implementation BWSplitViewInspectorAutosizingButtonCell + ++ (void)initialize +{ + insetColor = [IBColor customViewLightBorderColor]; + borderColor = [IBColor customViewDarkBorderColor]; + + // Note: These two colors are reversed in IBColor in 10.5 + if ([NSApplication isOnLeopard]) + viewColor = [IBColor containerCustomViewBackgroundColor]; + else + viewColor = [IBColor childlessCustomViewBackgroundColor]; + + lineColor = [[NSColor colorWithCalibratedRed:124.0/255.0 green:139.0/255.0 blue:159.0/255.0 alpha:1.0] retain]; + insetLineColor = [[[NSColor whiteColor] colorWithAlphaComponent:0.19] retain]; + + NSBundle *bundle = [NSBundle bundleForClass:[BWSplitViewInspectorAutosizingButtonCell class]]; + blueArrowStart = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"Inspector-SplitViewArrowBlueLeft.tif"]]; + blueArrowEnd = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"Inspector-SplitViewArrowBlueRight.tif"]]; + redArrowStart = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"Inspector-SplitViewArrowRedLeft.tif"]]; + redArrowFill = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"Inspector-SplitViewArrowRedFill.tif"]]; + redArrowEnd = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"Inspector-SplitViewArrowRedRight.tif"]]; +} + +- (void)drawBezelWithFrame:(NSRect)frame inView:(NSView *)controlView +{ + [viewColor set]; + NSRectFillUsingOperation(frame,NSCompositeSourceOver); + + [insetColor drawPixelThickLineAtPosition:1 withInset:0 inRect:frame inView:controlView horizontal:NO flip:NO]; + [insetColor drawPixelThickLineAtPosition:1 withInset:0 inRect:frame inView:controlView horizontal:NO flip:YES]; + [insetColor drawPixelThickLineAtPosition:1 withInset:0 inRect:frame inView:controlView horizontal:YES flip:YES]; + [insetColor drawPixelThickLineAtPosition:1 withInset:0 inRect:frame inView:controlView horizontal:YES flip:NO]; + + [borderColor drawPixelThickLineAtPosition:0 withInset:0 inRect:frame inView:controlView horizontal:NO flip:NO]; + [borderColor drawPixelThickLineAtPosition:0 withInset:0 inRect:frame inView:controlView horizontal:NO flip:YES]; + [borderColor drawPixelThickLineAtPosition:0 withInset:0 inRect:frame inView:controlView horizontal:YES flip:YES]; + [borderColor drawPixelThickLineAtPosition:0 withInset:0 inRect:frame inView:controlView horizontal:YES flip:NO]; +} + +- (void)drawInteriorWithFrame:(NSRect)cellFrame inView:(NSView *)controlView +{ + BOOL isVertical = [(BWSplitViewInspectorAutosizingView *)[controlView superview] isVertical]; + NSImage *blueArrowStartCap, *blueArrowEndCap, *redArrowStartCap, *redArrowFillSlice, *redArrowEndCap; + + if (isVertical) + { + blueArrowStartCap = blueArrowStart; + blueArrowEndCap = blueArrowEnd; + redArrowStartCap = redArrowStart; + redArrowFillSlice = redArrowFill; + redArrowEndCap = redArrowEnd; + + [blueArrowStartCap setFlipped:YES]; + [blueArrowEndCap setFlipped:YES]; + } + else + { + blueArrowStartCap = [blueArrowStart rotateImage90DegreesClockwise:NO]; + blueArrowEndCap = [blueArrowEnd rotateImage90DegreesClockwise:NO]; + redArrowStartCap = [redArrowEnd rotateImage90DegreesClockwise:NO]; + redArrowFillSlice = [redArrowFill rotateImage90DegreesClockwise:NO]; + redArrowEndCap = [redArrowStart rotateImage90DegreesClockwise:NO]; + } + + float arrowHeight = [blueArrowStartCap size].height; + float arrowWidth = [blueArrowStartCap size].width; + + NSRect arrowRect = NSZeroRect; + + if (isVertical) + arrowRect = NSMakeRect(interiorInset, roundf(cellFrame.size.height / 2 - 0.5 * arrowHeight), roundf(cellFrame.size.width - interiorInset * 2), arrowHeight); + else + arrowRect = NSMakeRect(roundf(cellFrame.size.width / 2 - 0.5 * arrowWidth), interiorInset - 1, arrowWidth, roundf(cellFrame.size.height - (interiorInset - 1) * 2)); + + if ([self intValue] == 0) + { + NSPoint startArrowOrigin = arrowRect.origin; + NSPoint endArrowOrigin; + + if (isVertical) + endArrowOrigin = NSMakePoint(NSMaxX(arrowRect) - arrowWidth, arrowRect.origin.y); + else + endArrowOrigin = NSMakePoint(arrowRect.origin.x,NSMaxY(arrowRect) - arrowHeight); + + [blueArrowStartCap drawAtPoint:startArrowOrigin fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0]; + [blueArrowEndCap drawAtPoint:endArrowOrigin fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0]; + + NSPoint startPoint, endPoint; + + if (isVertical) + { + startPoint = NSMakePoint(arrowRect.origin.x + arrowWidth, arrowRect.origin.y + floorf(arrowHeight / 2) + 0.5); + endPoint = NSMakePoint(arrowRect.origin.x + arrowRect.size.width - arrowWidth, arrowRect.origin.y + floorf(arrowHeight / 2) + 0.5); + } + else + { + startPoint = NSMakePoint(arrowRect.origin.x + floorf(arrowWidth / 2) + 0.5, arrowRect.origin.y + arrowHeight); + endPoint = NSMakePoint(arrowRect.origin.x + floorf(arrowWidth / 2) + 0.5, NSMaxY(arrowRect) - arrowHeight); + } + + CGFloat array[2] = {3.0, 1.0}; + + // Draw dashed line + NSBezierPath *dashedLine = [NSBezierPath bezierPath]; + [dashedLine setLineWidth:1.0]; + [dashedLine setLineDash:array count:2 phase:3.0]; + [dashedLine moveToPoint:startPoint]; + [dashedLine lineToPoint:endPoint]; + [lineColor set]; + [dashedLine stroke]; + + // Draw white dashed inset line + NSBezierPath *dashedInsetLine = [NSBezierPath bezierPath]; + [dashedInsetLine setLineWidth:1.0]; + [dashedInsetLine setLineDash:array count:2 phase:3.0]; + if (isVertical) + { + [dashedInsetLine moveToPoint:NSMakePoint(startPoint.x, startPoint.y + 1)]; + [dashedInsetLine lineToPoint:NSMakePoint(endPoint.x, endPoint.y + 1)]; + } + else + { + [dashedInsetLine moveToPoint:NSMakePoint(startPoint.x + 1, startPoint.y)]; + [dashedInsetLine lineToPoint:NSMakePoint(endPoint.x + 1, endPoint.y)]; + } + [insetLineColor set]; + [dashedInsetLine stroke]; + } + else + { + if (isVertical) + NSDrawThreePartImage(arrowRect, redArrowStartCap, redArrowFillSlice, redArrowEndCap, NO, NSCompositeSourceOver, 1, YES); + else + NSDrawThreePartImage(arrowRect, redArrowStartCap, redArrowFillSlice, redArrowEndCap, YES, NSCompositeSourceOver, 1, YES); + } +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWSplitViewInspectorAutosizingView.h b/Frameworks/BWToolkitFramework.framework/BWSplitViewInspectorAutosizingView.h new file mode 100644 index 00000000..c1b719f8 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWSplitViewInspectorAutosizingView.h @@ -0,0 +1,23 @@ +// +// BWSplitViewInspectorAutosizingView.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import +#import "BWSplitView.h" + +@interface BWSplitViewInspectorAutosizingView : NSView +{ + NSMutableArray *buttons; + BWSplitView *splitView; +} + +@property (retain) BWSplitView *splitView; + +- (void)layoutButtons; +- (BOOL)isVertical; + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWSplitViewInspectorAutosizingView.m b/Frameworks/BWToolkitFramework.framework/BWSplitViewInspectorAutosizingView.m new file mode 100644 index 00000000..72d64f4a --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWSplitViewInspectorAutosizingView.m @@ -0,0 +1,171 @@ +// +// BWSplitViewInspectorAutosizingView.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWSplitViewInspectorAutosizingView.h" +#import "BWSplitViewInspectorAutosizingButtonCell.h" + +@implementation BWSplitViewInspectorAutosizingView + +@synthesize splitView; + +- (id)initWithFrame:(NSRect)frameRect +{ + if (self = [super initWithFrame:frameRect]) + { + buttons = [[NSMutableArray alloc] init]; + } + return self; +} + +- (void)drawRect:(NSRect)aRect +{ + aRect = self.bounds; + + if ([[self subviews] count] > 0) + { + [[NSColor windowBackgroundColor] set]; + NSRectFill(aRect); + } +} + +- (BOOL)isFlipped +{ + return YES; +} + +- (BOOL)isVertical +{ + return [splitView isVertical]; +} + +- (void)layoutButtons +{ + // Remove existing buttons + [buttons removeAllObjects]; + while ([[self subviews] count] > 0) + { + [[[self subviews] objectAtIndex:0] removeFromSuperview]; + } + + // Create new buttons and draw them + float x, y; + int numberOfSubviews = [[splitView subviews] count]; + + for (int i = 0; i < numberOfSubviews; i++) + { + NSRect buttonRect = NSZeroRect; + + if ([splitView isVertical]) + { + if (i != numberOfSubviews - 1) + buttonRect = NSMakeRect(x, 0, floorf((self.bounds.size.width + numberOfSubviews) / numberOfSubviews), self.bounds.size.height); + else + buttonRect = NSMakeRect(x, 0, self.bounds.size.width - x, self.bounds.size.height); + } + + if ([splitView isVertical] == NO) + { + if (i != numberOfSubviews - 1) + buttonRect = NSMakeRect(0, y, self.bounds.size.width, floorf((self.bounds.size.height + numberOfSubviews) / numberOfSubviews)); + else + buttonRect = NSMakeRect(0, y, self.bounds.size.width, self.bounds.size.height - y); + } + + NSButton *subviewButton = [[[NSButton alloc] initWithFrame:buttonRect] autorelease]; + [subviewButton setCell:[[[BWSplitViewInspectorAutosizingButtonCell alloc] initTextCell:@""] autorelease]]; + [subviewButton setTarget:self]; + [subviewButton setAction:@selector(updateValues:)]; + [subviewButton setTag:i]; + + // Make the new buttons represent whether the subviews are set to resize or not + if ([splitView isVertical]) + { + if ([[[splitView subviews] objectAtIndex:i] autoresizingMask] & NSViewWidthSizable) + [subviewButton setIntValue:1]; + } + else + { + if ([[[splitView subviews] objectAtIndex:i] autoresizingMask] & NSViewHeightSizable) + [subviewButton setIntValue:1]; + } + + if ([splitView isVertical] && numberOfSubviews < 6 || ![splitView isVertical] && numberOfSubviews < 4) + [self addSubview:subviewButton]; + + [buttons addObject:subviewButton]; + + x += buttonRect.size.width - 1; + y += buttonRect.size.height - 1; + } + + // At least 1 subview must be resizable, so if none of the subviews are set to resize, then we'll set all subviews to resize (which will make it the default state) + BOOL resizableViewExists = NO; + for (NSButton *button in buttons) + { + if ([button intValue] == 1) + resizableViewExists = YES; + } + + if (resizableViewExists == NO) + { + for (NSButton *button in buttons) + { + [button setIntValue:1]; + + NSView *subviewForButton = [[splitView subviews] objectAtIndex:[button tag]]; + int mask = [subviewForButton autoresizingMask]; + + if ([splitView isVertical]) + [subviewForButton setAutoresizingMask:(mask | NSViewWidthSizable)]; + else + [subviewForButton setAutoresizingMask:(mask | NSViewHeightSizable)]; + } + } +} + +- (void)updateValues:(id)sender +{ + // Make sure there is always at least one resizable view + NSView *subviewForSender = [[splitView subviews] objectAtIndex:[sender tag]]; + + BOOL resizableViewExists = NO; + for (NSButton *button in buttons) + { + if ([button intValue] == 1) + resizableViewExists = YES; + } + + if (resizableViewExists == NO) + [sender setIntValue:1]; + + // Set the autorezising mask on the subview according to the button state + int mask = [subviewForSender autoresizingMask]; + + if ([splitView isVertical]) + { + if ([sender intValue] == 1) + [subviewForSender setAutoresizingMask:(mask | NSViewWidthSizable)]; + else + [subviewForSender setAutoresizingMask:(mask & ~NSViewWidthSizable)]; + } + else + { + if ([sender intValue] == 1) + [subviewForSender setAutoresizingMask:(mask | NSViewHeightSizable)]; + else + [subviewForSender setAutoresizingMask:(mask & ~NSViewHeightSizable)]; + } +} + +- (void)dealloc +{ + [buttons release]; + [super dealloc]; +} + +@end \ No newline at end of file diff --git a/Frameworks/BWToolkitFramework.framework/BWSplitViewIntegration.m b/Frameworks/BWToolkitFramework.framework/BWSplitViewIntegration.m new file mode 100644 index 00000000..ad271ec1 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWSplitViewIntegration.m @@ -0,0 +1,32 @@ +// +// BWSplitViewIntegration.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import +#import "BWSplitView.h" +#import "BWSplitViewInspector.h" + +@implementation BWSplitView ( BWSplitViewIntegration ) + +- (void)ibPopulateKeyPaths:(NSMutableDictionary *)keyPaths { + [super ibPopulateKeyPaths:keyPaths]; + + [[keyPaths objectForKey:IBAttributeKeyPaths] addObjectsFromArray:[NSArray arrayWithObjects:@"color",@"colorIsEnabled",@"dividerCanCollapse",nil]]; +} + +- (void)ibPopulateAttributeInspectorClasses:(NSMutableArray *)classes { + [super ibPopulateAttributeInspectorClasses:classes]; + + [classes addObject:[BWSplitViewInspector class]]; +} + +- (void)ibDidAddToDesignableDocument:(IBDocument *)document +{ + [super ibDidAddToDesignableDocument:document]; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWSplitViewLibrary.nib/designable.nib b/Frameworks/BWToolkitFramework.framework/BWSplitViewLibrary.nib/designable.nib new file mode 100644 index 00000000..7dd66c7c --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWSplitViewLibrary.nib/designable.nib @@ -0,0 +1,733 @@ + + + + 1050 + 9G55 + 677 + 949.43 + 353.00 + + YES + + + + YES + com.apple.InterfaceBuilderKit + com.apple.InterfaceBuilder.IBSDKPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + YES + + YES + + + YES + + + + YES + + NSObject + + + FirstResponder + + + NSApplication + + + + 268 + + YES + + + 268 + {{20, 506}, {117, 17}} + + YES + + 67239488 + 272630784 + Split Views + + LucidaGrande + 1.300000e+01 + 1044 + + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2OQA + + + + 6 + System + controlTextColor + + 3 + MAA + + + + + + + 12 + {{20, 504}, {224, 5}} + + {0, 0} + + 67239424 + 0 + Box + + + 6 + System + textBackgroundColor + + 3 + MQA + + + + 3 + MCAwLjgwMDAwMDAxAA + + + 3 + 2 + 0 + NO + + + + 268 + + YES + + + 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 + + + {{16, 16}, {48, 48}} + + YES + + 130560 + 33554432 + + NSImage + Library-HorizontalSplitView + + 0 + 0 + 0 + YES + + YES + + + {{23, 418}, {80, 80}} + + Horizontal Split View + 9FA31B50-1D4C-4A6D-917B-0CE3ED4B59FB + A split view with an adjustable divider color, subview size constraints, autosizing, and collapsing functionality. + + A split view with an adjustable divider color, subview size constraints, autosizing, and collapsing functionality. Connect a button to the toggleCollapse: action to collapse a subview with animation. + + YES + + YES + NSFont + NSParagraphStyle + + + YES + + Helvetica + 1.200000e+01 + 16 + + + 4 + + + + + + Split Views + + + + + + 0 + + + + 268 + + YES + + + 272 + {163, 47} + + BWCustomView + + + + 272 + {{0, 48}, {163, 48}} + + BWCustomView + + + {{111, 402}, {163, 96}} + + 2 + + + + 268 + + YES + + + 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 + + + {{16, 16}, {48, 48}} + + YES + + 130560 + 33554432 + + NSImage + Library-VerticalSplitView + + 0 + 0 + 0 + YES + + YES + + + {{23, 210}, {80, 80}} + + Vertical Split View + 4258894C-EB17-472E-8524-0E6C56C08198 + A split view with an adjustable divider color, subview size constraints, autosizing, and collapsing functionality. + + A split view with an adjustable divider color, subview size constraints, autosizing, and collapsing functionality. Connect a button to the toggleCollapse: action to collapse a subview with animation. + + + Split Views + + + + + + 0 + + + + 268 + + YES + + + 258 + {81, 96} + + BWCustomView + + + + 258 + {{82, 0}, {81, 96}} + + BWCustomView + + + {{111, 194}, {163, 96}} + + YES + 2 + + + + 268 + + YES + + + 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 + + + {{16, 16}, {48, 48}} + + YES + + 130560 + 33554432 + + NSImage + Library-GradientSplitView + + 0 + 0 + 0 + YES + + YES + + + {{23, 314}, {80, 80}} + + Gradient Split View + BA582DDE-54F0-4E4A-9177-F69A7A719E31 + A split view with a gradient divider, subview size constraints, autosizing, and collapsing functionality. + + A split view with a gradient divider, subview size constraints, autosizing, and collapsing functionality. Connect a button to the toggleCollapse: action to collapse a subview with animation. + + + Split Views + + + + + + 0 + + + + 268 + + YES + + + 272 + {163, 43} + + BWCustomView + + + + 272 + {{0, 52}, {163, 44}} + + BWCustomView + + + {{111, 298}, {163, 96}} + + + + {356, 543} + + NSView + + + + + YES + + + draggedView + + + + 89 + + + + draggedView + + + + 98 + + + + draggedView + + + + 105 + + + + + YES + + 0 + + YES + + + + + + -2 + + + RmlsZSdzIE93bmVyA + + + -1 + + + First Responder + + + -3 + + + Application + + + 7 + + + YES + + + + + + + + + + + Library Objects + + + 32 + + + + + 33 + + + YES + + + + + + 34 + + + + + 83 + + + YES + + + + + + 84 + + + YES + + + + + + + 85 + + + + + 86 + + + + + 90 + + + YES + + + + + + 91 + + + + + 92 + + + YES + + + + + + 93 + + + YES + + + + + + + 94 + + + + + 95 + + + + + 96 + + + YES + + + + + + 97 + + + + + 99 + + + YES + + + + + + 100 + + + YES + + + + + + + 101 + + + + + 102 + + + + + 103 + + + YES + + + + + + 104 + + + + + + + YES + + YES + -1.IBPluginDependency + -2.IBPluginDependency + -3.IBPluginDependency + 100.CustomClassName + 100.IBPluginDependency + 101.IBPluginDependency + 102.IBPluginDependency + 32.IBPluginDependency + 33.IBPluginDependency + 34.IBPluginDependency + 7.IBEditorWindowLastContentRect + 7.IBPluginDependency + 7.IBUserGuides + 7.WindowOrigin + 7.editorWindowContentRectSynchronizationRect + 83.IBPluginDependency + 84.CustomClassName + 84.IBPluginDependency + 85.IBPluginDependency + 86.IBPluginDependency + 92.IBPluginDependency + 93.CustomClassName + 93.IBPluginDependency + 94.IBPluginDependency + 95.IBPluginDependency + 99.IBPluginDependency + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilderKit + com.apple.InterfaceBuilderKit + BWSplitView + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{516, 109}, {356, 543}} + com.apple.InterfaceBuilder.CocoaPlugin + + YES + + {332, 343} + {{403, 401}, {264, 327}} + com.apple.InterfaceBuilder.IBSDKPlugin + BWSplitView + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.IBSDKPlugin + BWSplitView + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.IBSDKPlugin + + + + YES + + YES + + + YES + + + + + YES + + YES + + + YES + + + + 111 + + + + YES + + BWCustomView + NSCustomView + + IBProjectSource + BWCustomView.h + + + + BWSplitView + NSSplitView + + toggleCollapse: + id + + + secondaryDelegate + id + + + IBProjectSource + BWSplitView.h + + + + NSCustomView + NSView + + extension + id + + + IBProjectSource + NSCustomView.h + + + + NSView + + IBProjectSource + NSView+BWAdditions.h + + + + + 0 + BWToolkit.xcodeproj + 3 + + diff --git a/Frameworks/BWToolkitFramework.framework/BWSplitViewLibrary.nib/keyedobjects.nib b/Frameworks/BWToolkitFramework.framework/BWSplitViewLibrary.nib/keyedobjects.nib new file mode 100644 index 00000000..a02e54e0 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/BWSplitViewLibrary.nib/keyedobjects.nib differ diff --git a/Frameworks/BWToolkitFramework.framework/BWStyledTextField.classdescription b/Frameworks/BWToolkitFramework.framework/BWStyledTextField.classdescription new file mode 100644 index 00000000..5bdd18fc --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWStyledTextField.classdescription @@ -0,0 +1,12 @@ +{ + Actions = { + // Define action descriptions here, for example + // "myAction:" = id; + }; + Outlets = { + // Define outlet descriptions here, for example + // myOutlet = NSView; + }; + ClassName = BWStyledTextField; + SuperClass = NSTextField; +} diff --git a/Frameworks/BWToolkitFramework.framework/BWStyledTextField.h b/Frameworks/BWToolkitFramework.framework/BWStyledTextField.h new file mode 100644 index 00000000..dda90170 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWStyledTextField.h @@ -0,0 +1,33 @@ +// +// BWStyledTextField.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface BWStyledTextField : NSTextField +{ + +} + +- (BOOL)hasGradient; +- (void)setHasGradient:(BOOL)flag; +- (NSColor *)startingColor; +- (void)setStartingColor:(NSColor *)color; +- (NSColor *)endingColor; +- (void)setEndingColor:(NSColor *)color; + +- (NSColor *)solidColor; +- (void)setSolidColor:(NSColor *)color; + +- (BOOL)hasShadow; +- (void)setHasShadow:(BOOL)flag; +- (BOOL)shadowIsBelow; +- (void)setShadowIsBelow:(BOOL)flag; +- (NSColor *)shadowColor; +- (void)setShadowColor:(NSColor *)color; + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWStyledTextField.m b/Frameworks/BWToolkitFramework.framework/BWStyledTextField.m new file mode 100644 index 00000000..c5403334 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWStyledTextField.m @@ -0,0 +1,101 @@ +// +// BWStyledTextField.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWStyledTextField.h" + +@implementation BWStyledTextField + +#pragma mark Shadow + +- (BOOL)hasShadow +{ + return [[self cell] hasShadow]; +} + +- (void)setHasShadow:(BOOL)flag +{ + [[self cell] setHasShadow:flag]; + + [self setNeedsDisplay:YES]; +} + +- (BOOL)shadowIsBelow +{ + return [[self cell] shadowIsBelow]; +} + +- (void)setShadowIsBelow:(BOOL)flag +{ + [[self cell] setShadowIsBelow:flag]; + + [self setNeedsDisplay:YES]; +} + +- (NSColor *)shadowColor +{ + return [[self cell] shadowColor]; +} + +- (void)setShadowColor:(NSColor *)color +{ + [[self cell] setShadowColor:color]; + + [self setNeedsDisplay:YES]; +} + +#pragma mark Fill + +- (BOOL)hasGradient +{ + return [[self cell] hasGradient]; +} + +- (void)setHasGradient:(BOOL)flag +{ + [[self cell] setHasGradient:flag]; + + [self setNeedsDisplay:YES]; +} + +- (NSColor *)startingColor +{ + return [[self cell] startingColor]; +} + +- (void)setStartingColor:(NSColor *)color +{ + [[self cell] setStartingColor:color]; + + [self setNeedsDisplay:YES]; +} + +- (NSColor *)endingColor +{ + return [[self cell] endingColor]; +} + +- (void)setEndingColor:(NSColor *)color +{ + [[self cell] setEndingColor:color]; + + [self setNeedsDisplay:YES]; +} + +- (NSColor *)solidColor +{ + return [[self cell] solidColor]; +} + +- (void)setSolidColor:(NSColor *)color +{ + [[self cell] setSolidColor:color]; + + [self setNeedsDisplay:YES]; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWStyledTextFieldCell.classdescription b/Frameworks/BWToolkitFramework.framework/BWStyledTextFieldCell.classdescription new file mode 100644 index 00000000..a5010847 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWStyledTextFieldCell.classdescription @@ -0,0 +1,12 @@ +{ + Actions = { + // Define action descriptions here, for example + // "myAction:" = id; + }; + Outlets = { + // Define outlet descriptions here, for example + // myOutlet = NSView; + }; + ClassName = BWStyledTextFieldCell; + SuperClass = NSTextFieldCell; +} diff --git a/Frameworks/BWToolkitFramework.framework/BWStyledTextFieldCell.h b/Frameworks/BWToolkitFramework.framework/BWStyledTextFieldCell.h new file mode 100644 index 00000000..a148cb24 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWStyledTextFieldCell.h @@ -0,0 +1,22 @@ +// +// BWStyledTextFieldCell.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface BWStyledTextFieldCell : NSTextFieldCell +{ + BOOL shadowIsBelow, hasShadow, hasGradient; + NSColor *shadowColor, *startingColor, *endingColor, *solidColor; + + NSMutableDictionary *previousAttributes; +} + +@property BOOL shadowIsBelow, hasShadow, hasGradient; +@property (nonatomic, retain) NSColor *shadowColor, *startingColor, *endingColor, *solidColor; + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWStyledTextFieldCell.m b/Frameworks/BWToolkitFramework.framework/BWStyledTextFieldCell.m new file mode 100644 index 00000000..1bd0133c --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWStyledTextFieldCell.m @@ -0,0 +1,205 @@ +// +// BWStyledTextFieldCell.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWStyledTextFieldCell.h" + +@interface NSCell (BWPrivate) +- (NSDictionary *)_textAttributes; +@end + +@interface BWStyledTextFieldCell (BWPrivate) +- (void)applyGradient; +@end + +@interface BWStyledTextFieldCell () +@property (retain) NSMutableDictionary *previousAttributes; +@end + +@implementation BWStyledTextFieldCell + +@synthesize shadowIsBelow, shadowColor, hasShadow, previousAttributes, startingColor, endingColor, hasGradient, solidColor; + +- (id)initWithCoder:(NSCoder *)decoder +{ + if ((self = [super initWithCoder:decoder]) != nil) + { + [self setShadowIsBelow:[decoder decodeBoolForKey:@"BWSTFCShadowIsBelow"]]; + [self setHasShadow:[decoder decodeBoolForKey:@"BWSTFCHasShadow"]]; + [self setHasGradient:[decoder decodeBoolForKey:@"BWSTFCHasGradient"]]; + [self setShadowColor:[decoder decodeObjectForKey:@"BWSTFCShadowColor"]]; + [self setPreviousAttributes:[decoder decodeObjectForKey:@"BWSTFCPreviousAttributes"]]; + [self setStartingColor:[decoder decodeObjectForKey:@"BWSTFCStartingColor"]]; + [self setEndingColor:[decoder decodeObjectForKey:@"BWSTFCEndingColor"]]; + [self setSolidColor:[decoder decodeObjectForKey:@"BWSTFCSolidColor"]]; + + if (self.shadowColor == nil) + self.shadowColor = [NSColor blackColor]; + + if (self.startingColor == nil) + self.startingColor = [NSColor whiteColor]; + + if (self.endingColor == nil) + self.endingColor = [NSColor blackColor]; + + if (self.solidColor == nil) + self.solidColor = [NSColor greenColor]; + + if (self.hasGradient) + [self performSelector:@selector(applyGradient) withObject:nil afterDelay:0]; + } + return self; +} + +- (void)encodeWithCoder:(NSCoder *)coder +{ + [super encodeWithCoder:coder]; + + [coder encodeBool:[self shadowIsBelow] forKey:@"BWSTFCShadowIsBelow"]; + [coder encodeBool:[self hasShadow] forKey:@"BWSTFCHasShadow"]; + [coder encodeBool:[self hasGradient] forKey:@"BWSTFCHasGradient"]; + [coder encodeObject:[self shadowColor] forKey:@"BWSTFCShadowColor"]; + [coder encodeObject:[self previousAttributes] forKey:@"BWSTFCPreviousAttributes"]; + [coder encodeObject:[self startingColor] forKey:@"BWSTFCStartingColor"]; + [coder encodeObject:[self endingColor] forKey:@"BWSTFCEndingColor"]; + [coder encodeObject:[self solidColor] forKey:@"BWSTFCSolidColor"]; +} + +- (NSDictionary *)_textAttributes +{ + NSMutableDictionary *attributes = [[[NSMutableDictionary alloc] init] autorelease]; + [attributes addEntriesFromDictionary:[super _textAttributes]]; + + // Shadow code + if (hasShadow) + { + NSShadow *shadow = [[NSShadow alloc] init]; + [shadow setShadowColor:shadowColor]; + + if (shadowIsBelow) + [shadow setShadowOffset:NSMakeSize(0,-1)]; + else + [shadow setShadowOffset:NSMakeSize(0,1)]; + + [attributes setObject:shadow forKey:NSShadowAttributeName]; + + //[shadow release]; //This causes a sometimes reproducible crash at design-time. Patches welcome. + } + + // Gradient code + if ([previousAttributes objectForKey:@"NSFont"] != nil && [[previousAttributes objectForKey:@"NSFont"] isEqualTo:[attributes objectForKey:@"NSFont"]] == NO) + { + [self performSelector:@selector(applyGradient) withObject:nil afterDelay:0]; + [self setPreviousAttributes:attributes]; + } + + return attributes; +} + +- (void)dealloc +{ + [shadowColor release]; + [super dealloc]; +} + +#pragma mark Gradient-specific Code + +- (void)awakeFromNib +{ + NSMutableDictionary *attributes = [[[NSMutableDictionary alloc] init] autorelease]; + [attributes addEntriesFromDictionary:[super _textAttributes]]; + self.previousAttributes = attributes; + + [self applyGradient]; +} + +- (void)applyGradient +{ + if ([[self controlView] window] == nil) + return; + + if (self.hasGradient) + { + float textHeight = [[self font] ascender] - [[self font] descender]; + + NSSize boundSizeWithFullWidth = NSMakeSize([self controlView].frame.size.width,ceilf(textHeight)); + + NSImage *image = [[[NSImage alloc] initWithSize:boundSizeWithFullWidth] autorelease]; + + NSGradient *gradient = [[[NSGradient alloc] initWithStartingColor:self.startingColor endingColor:self.endingColor] autorelease]; + + [image lockFocus]; + [gradient drawInRect:NSMakeRect(0,0,boundSizeWithFullWidth.width,boundSizeWithFullWidth.height) angle:270]; + [image unlockFocus]; + + NSColor *color = [NSColor colorWithPatternImage:image]; + + [self setTextColor:color]; + } +} + +- (void)drawInteriorWithFrame:(NSRect)cellFrame inView:(NSView *)controlView +{ + [[NSGraphicsContext currentContext] saveGraphicsState]; + + float textHeight = [[self font] ascender] - [[self font] descender]; + + float deltaHeight = cellFrame.size.height - textHeight; + float halfDeltaHeight = deltaHeight / 2; + + float yOrigin = [[controlView superview] convertRect:[controlView frame] toView:nil].origin.y; + [[NSGraphicsContext currentContext] setPatternPhase:NSMakePoint(0, yOrigin + halfDeltaHeight)]; + + [super drawInteriorWithFrame:cellFrame inView:controlView]; + + [[NSGraphicsContext currentContext] restoreGraphicsState]; +} + +- (void)setStartingColor:(NSColor *)color +{ + if (startingColor != color) + { + [startingColor release]; + startingColor = [color retain]; + + [self applyGradient]; + } +} + +- (void)setEndingColor:(NSColor *)color +{ + if (endingColor != color) + { + [endingColor release]; + endingColor = [color retain]; + + [self applyGradient]; + } +} + +- (void)setSolidColor:(NSColor *)color +{ + if (solidColor != color) + { + [solidColor release]; + solidColor = [color retain]; + + [self setTextColor:solidColor]; + } +} + +- (void)setHasGradient:(BOOL)flag +{ + hasGradient = flag; + + if (flag) + [self applyGradient]; + else + [self setTextColor:self.solidColor]; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWStyledTextFieldInspector.h b/Frameworks/BWToolkitFramework.framework/BWStyledTextFieldInspector.h new file mode 100644 index 00000000..15c405ad --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWStyledTextFieldInspector.h @@ -0,0 +1,20 @@ +// +// BWStyledTextFieldInspector.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import +#import "BWStyledTextField.h" + +@interface BWStyledTextFieldInspector : IBInspector +{ + BWStyledTextField *textField; + int shadowPositionPopupSelection, fillPopupSelection; +} + +@property int shadowPositionPopupSelection, fillPopupSelection; + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWStyledTextFieldInspector.m b/Frameworks/BWToolkitFramework.framework/BWStyledTextFieldInspector.m new file mode 100644 index 00000000..f5162129 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWStyledTextFieldInspector.m @@ -0,0 +1,80 @@ +// +// BWStyledTextFieldInspector.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWStyledTextFieldInspector.h" + +@implementation BWStyledTextFieldInspector + +@synthesize shadowPositionPopupSelection, fillPopupSelection; + +- (NSString *)viewNibName +{ + return @"BWStyledTextFieldInspector"; +} + +- (void)refresh +{ + [super refresh]; + + textField = [[self inspectedObjects] objectAtIndex:0]; + + // Update the popup selections in case of an undo operation + if (![textField hasShadow]) + { + [self setShadowPositionPopupSelection:0]; + } + else + { + if ([textField shadowIsBelow]) + [self setShadowPositionPopupSelection:3]; + else + [self setShadowPositionPopupSelection:2]; + } + + if ([textField hasGradient]) + [self setFillPopupSelection:1]; + else + [self setFillPopupSelection:0]; +} + ++ (BOOL)supportsMultipleObjectInspection +{ + return NO; +} + +- (void)setFillPopupSelection:(int)anInt +{ + fillPopupSelection = anInt; + + if (fillPopupSelection == 0) + [textField setHasGradient:NO]; + else + [textField setHasGradient:YES]; +} + +- (void)setShadowPositionPopupSelection:(int)anInt +{ + shadowPositionPopupSelection = anInt; + + if (shadowPositionPopupSelection == 2) + { + [textField setHasShadow:YES]; + [textField setShadowIsBelow:NO]; + } + else if (shadowPositionPopupSelection == 3) + { + [textField setHasShadow:YES]; + [textField setShadowIsBelow:YES]; + } + else + { + [textField setHasShadow:NO]; + } +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWStyledTextFieldInspector.xib b/Frameworks/BWToolkitFramework.framework/BWStyledTextFieldInspector.xib new file mode 100644 index 00000000..43a25eb5 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWStyledTextFieldInspector.xib @@ -0,0 +1,944 @@ + + + + 1050 + 9J61 + 677 + 949.46 + 353.00 + + YES + + + + YES + com.apple.InterfaceBuilderKit + com.apple.InterfaceBuilder.CocoaPlugin + + + YES + + YES + + + YES + + + + YES + + BWStyledTextFieldInspector + + + FirstResponder + + + NSApplication + + + + 268 + + YES + + + 268 + {{81, 2}, {92, 22}} + + YES + + -2076049856 + 133120 + + LucidaGrande + 1.100000e+01 + 3100 + + + 109199615 + 1 + + LucidaGrande + 1.100000e+01 + 16 + + + + 400 + 75 + + + None + + 2147483647 + 1 + + NSImage + NSMenuCheckmark + + + NSImage + NSMenuMixedState + + _popUpItemAction: + + + YES + + OtherViews + + YES + + + + YES + YES + + + 2147483647 + + + _popUpItemAction: + + + + + Above + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + Below + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + 3 + YES + YES + 1 + + + + + 268 + {{8, 7}, {70, 14}} + + YES + + 67239488 + 4326400 + Shadow + + LucidaGrande-Bold + 1.100000e+01 + 16 + + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2OQA + + + + 6 + System + controlTextColor + + 3 + MAA + + + + + + + 268 + + YES + + YES + NSColor pasteboard type + + + {{178, 4}, {86, 20}} + + YES + YES + + 1 + MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA + + + + + 268 + {{8, 68}, {70, 14}} + + YES + + 67239488 + 4326400 + Fill + + + + + + + + + 268 + {{81, 63}, {186, 22}} + + YES + + -2076049856 + 133120 + + + 109199615 + 129 + + + 400 + 75 + + + Solid Color + + 1048576 + 2147483647 + 1 + + + _popUpItemAction: + + + YES + + OtherViews + + YES + + + + Gradient + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + 1 + YES + YES + 2 + + + + + 268 + + YES + + + 268 + + YES + + YES + NSColor pasteboard type + + + {{2, 2}, {31, 23}} + + YES + YES + + 1 + MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA + + + + + 268 + + YES + + YES + NSColor pasteboard type + + + {{147, 2}, {31, 23}} + + YES + YES + + 1 + MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA + + + + {{84, 32}, {180, 27}} + + BWGradientWell + + + + 268 + + YES + + YES + NSColor pasteboard type + + + {{84, 32}, {86, 27}} + + YES + YES + + 1 + MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA + + + + {272, 88} + + NSView + + + + YES + shadowPositionPopupSelection + shadowColor + fillPopupSelection + + YES + + YES + YES + YES + YES + YES + + + + + YES + + + inspectorView + + + + 16 + + + + content + + + + 114 + + + + selectedIndex: selection.shadowPositionPopupSelection + + + + + + selectedIndex: selection.shadowPositionPopupSelection + selectedIndex + selection.shadowPositionPopupSelection + 2 + + + 126 + + + + value: inspectedObjectsController.selection.shadowColor + + + + + + value: inspectedObjectsController.selection.shadowColor + value + inspectedObjectsController.selection.shadowColor + 2 + + + 130 + + + + enabled: selection.shadowPositionPopupSelection + + + + + + enabled: selection.shadowPositionPopupSelection + enabled + selection.shadowPositionPopupSelection + 2 + + + 133 + + + + value: inspectedObjectsController.selection.startingColor + + + + + + value: inspectedObjectsController.selection.startingColor + value + inspectedObjectsController.selection.startingColor + 2 + + + 138 + + + + value: inspectedObjectsController.selection.endingColor + + + + + + value: inspectedObjectsController.selection.endingColor + value + inspectedObjectsController.selection.endingColor + 2 + + + 139 + + + + startingColorWell + + + + 149 + + + + endingColorWell + + + + 150 + + + + gradientWell + + + + 153 + + + + gradientWell + + + + 154 + + + + selectedIndex: selection.fillPopupSelection + + + + + + selectedIndex: selection.fillPopupSelection + selectedIndex + selection.fillPopupSelection + 2 + + + 162 + + + + value: inspectedObjectsController.selection.solidColor + + + + + + value: inspectedObjectsController.selection.solidColor + value + inspectedObjectsController.selection.solidColor + 2 + + + 163 + + + + hidden: selection.fillPopupSelection + + + + + + hidden: selection.fillPopupSelection + hidden + selection.fillPopupSelection + 2 + + + 164 + + + + hidden: selection.fillPopupSelection + + + + + + hidden: selection.fillPopupSelection + hidden + selection.fillPopupSelection + + NSValueTransformerName + NSNegateBoolean + + 2 + + + 166 + + + + + YES + + 0 + + YES + + + + + + -2 + + + RmlsZSdzIE93bmVyA + + + -1 + + + First Responder + + + -3 + + + Application + + + 1 + + + YES + + + + + + + + + + Inspector View + + + 83 + + + YES + + + + + + 89 + + + YES + + + + + + 90 + + + + + 93 + + + + + 101 + + + YES + + + + + + 102 + + + YES + + + + + + + + + 104 + + + + + 105 + + + + + 113 + + + + + 131 + + + + + 132 + + + + + 140 + + + YES + + + + + + 141 + + + + + 142 + + + YES + + + + + + 143 + + + YES + + + + + + 144 + + + YES + + + + + + + 145 + + + + + 146 + + + + + 148 + + + YES + + + + + + + 134 + + + + + 135 + + + + + 158 + + + + + + + YES + + YES + -1.IBPluginDependency + -2.IBPluginDependency + -3.IBPluginDependency + -3.ImportedFromIB2 + 1.IBEditorWindowLastContentRect + 1.IBPluginDependency + 1.IBUserGuides + 1.ImportedFromIB2 + 1.WindowOrigin + 1.editorWindowContentRectSynchronizationRect + 101.IBPluginDependency + 102.IBEditorWindowLastContentRect + 102.IBPluginDependency + 102.editorWindowContentRectSynchronizationRect + 104.IBPluginDependency + 105.IBPluginDependency + 113.IBPluginDependency + 131.IBPluginDependency + 132.IBPluginDependency + 134.CustomClassName + 134.IBPluginDependency + 135.CustomClassName + 135.IBPluginDependency + 140.IBPluginDependency + 141.IBPluginDependency + 142.IBPluginDependency + 143.IBPluginDependency + 144.IBEditorWindowLastContentRect + 144.IBPluginDependency + 145.IBPluginDependency + 146.IBPluginDependency + 148.IBPluginDependency + 158.IBPluginDependency + 83.IBPluginDependency + 89.IBPluginDependency + 90.IBPluginDependency + 93.IBPluginDependency + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilderKit + com.apple.InterfaceBuilderKit + + {{651, 371}, {272, 88}} + com.apple.InterfaceBuilder.CocoaPlugin + + YES + + + 1.100000e+01 + 0 + + + + 8.000000e+00 + 2 + + + + 8.400000e+01 + 0 + + + + 1.700000e+02 + 0 + + + + 1.780000e+02 + 0 + + + + 4.000000e+00 + 3 + + + + 4.000000e+00 + 1 + + + + {84, 761} + {{767, 669}, {272, 296}} + com.apple.InterfaceBuilder.CocoaPlugin + {{789, 408}, {96, 64}} + 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 + BWGradientWellColorWell + com.apple.InterfaceBuilder.CocoaPlugin + BWGradientWellColorWell + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{760, 415}, {186, 37}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + 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 + + YES + + + YES + + + + 166 + + + + YES + + BWGradientWell + NSView + + YES + + YES + endingColorWell + startingColorWell + + + YES + NSColorWell + NSColorWell + + + + IBProjectSource + BWGradientWell.h + + + + BWGradientWellColorWell + NSColorWell + + gradientWell + BWGradientWell + + + IBProjectSource + BWGradientWellColorWell.h + + + + BWStyledTextFieldInspector + IBInspector + + IBProjectSource + BWStyledTextFieldInspector.h + + + + NSView + + IBProjectSource + NSView+BWAdditions.h + + + + + 0 + BWToolkit.xcodeproj + 3 + + diff --git a/Frameworks/BWToolkitFramework.framework/BWStyledTextFieldIntegration.m b/Frameworks/BWToolkitFramework.framework/BWStyledTextFieldIntegration.m new file mode 100644 index 00000000..306fc3a6 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWStyledTextFieldIntegration.m @@ -0,0 +1,29 @@ +// +// BWStyledTextFieldIntegration.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import +#import "BWStyledTextField.h" +#import "BWStyledTextFieldInspector.h" + +@implementation BWStyledTextField (BWStyledTextFieldIntegration) + +- (void)ibPopulateKeyPaths:(NSMutableDictionary *)keyPaths +{ + [super ibPopulateKeyPaths:keyPaths]; + + [[keyPaths objectForKey:IBAttributeKeyPaths] addObjectsFromArray:[NSArray arrayWithObjects:@"shadowIsBelow", @"hasShadow", @"shadowColor", @"startingColor", @"endingColor", @"hasGradient", @"solidColor", nil]]; +} + +- (void)ibPopulateAttributeInspectorClasses:(NSMutableArray *)classes +{ + [super ibPopulateAttributeInspectorClasses:classes]; + + [classes addObject:[BWStyledTextFieldInspector class]]; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWTexturedSlider.classdescription b/Frameworks/BWToolkitFramework.framework/BWTexturedSlider.classdescription new file mode 100755 index 00000000..f61e4bdf --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTexturedSlider.classdescription @@ -0,0 +1,12 @@ +{ + Actions = { + // Define action descriptions here, for example + // "myAction:" = id; + }; + Outlets = { + // Define outlet descriptions here, for example + // myOutlet = NSView; + }; + ClassName = BWTexturedSlider; + SuperClass = NSSlider; +} diff --git a/Frameworks/BWToolkitFramework.framework/BWTexturedSlider.h b/Frameworks/BWToolkitFramework.framework/BWTexturedSlider.h new file mode 100755 index 00000000..54356bf5 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTexturedSlider.h @@ -0,0 +1,25 @@ +// +// BWTexturedSlider.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface BWTexturedSlider : NSSlider +{ + int trackHeight, indicatorIndex; + NSRect sliderCellRect; + NSButton *minButton, *maxButton; +} + +@property int indicatorIndex; +@property (retain) NSButton *minButton; +@property (retain) NSButton *maxButton; + +- (int)trackHeight; +- (void)setTrackHeight:(int)newTrackHeight; + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWTexturedSlider.m b/Frameworks/BWToolkitFramework.framework/BWTexturedSlider.m new file mode 100755 index 00000000..713ed3b9 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTexturedSlider.m @@ -0,0 +1,217 @@ +// +// BWTexturedSlider.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWTexturedSlider.h" +#import "BWTexturedSliderCell.h" + +static NSImage *quietSpeakerImage, *loudSpeakerImage, *smallPhotoImage, *largePhotoImage; +static float imageInset = 25; + +@implementation BWTexturedSlider + +@synthesize indicatorIndex; +@synthesize minButton; +@synthesize maxButton; + ++ (void)initialize +{ + NSBundle *bundle = [NSBundle bundleForClass:[BWTexturedSlider class]]; + + quietSpeakerImage = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TexturedSliderSpeakerQuiet.png"]]; + loudSpeakerImage = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TexturedSliderSpeakerLoud.png"]]; + smallPhotoImage = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TexturedSliderPhotoSmall.tif"]]; + largePhotoImage = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TexturedSliderPhotoLarge.tif"]]; +} + +- (id)initWithCoder:(NSCoder *)decoder +{ + if ((self = [super initWithCoder:decoder]) != nil) + { + indicatorIndex = [decoder decodeIntForKey:@"BWTSIndicatorIndex"]; + [self setMinButton:[decoder decodeObjectForKey:@"BWTSMinButton"]]; + [self setMaxButton:[decoder decodeObjectForKey:@"BWTSMaxButton"]]; + } + return self; +} + +- (void)encodeWithCoder:(NSCoder*)coder +{ + [super encodeWithCoder:coder]; + + [coder encodeInt:[self indicatorIndex] forKey:@"BWTSIndicatorIndex"]; + [coder encodeObject:[self minButton] forKey:@"BWTSMinButton"]; + [coder encodeObject:[self maxButton] forKey:@"BWTSMaxButton"]; +} + +- (int)trackHeight +{ + return [[self cell] trackHeight]; +} + +- (void)setTrackHeight:(int)newTrackHeight +{ + [[self cell] setTrackHeight:newTrackHeight]; + [self setNeedsDisplay:YES]; +} + +- (void)setSliderToMinimum +{ + [self setDoubleValue:[self minValue]]; + [self sendAction:[self action] to:[self target]]; +} + +- (void)setSliderToMaximum +{ + [self setDoubleValue:[self maxValue]]; + [self sendAction:[self action] to:[self target]]; +} + +- (NSView *)hitTest:(NSPoint)aPoint +{ + if ([self indicatorIndex] == 0) + return [super hitTest:aPoint]; + + NSPoint convertedPoint = [self convertPoint:aPoint fromView:nil]; + + if (NSPointInRect(convertedPoint, minButton.frame)) + return minButton; + else if (NSPointInRect(convertedPoint, maxButton.frame)) + return maxButton; + else + return [super hitTest:aPoint]; +} + +- (void)drawRect:(NSRect)aRect +{ + aRect = self.bounds; + sliderCellRect = aRect; + + if ([self indicatorIndex] == 2) + { + [minButton setFrameOrigin:NSMakePoint(imageInset-19, 3)]; + [maxButton setFrameOrigin:NSMakePoint(NSMaxX(self.bounds)-imageInset+4, 3)]; + + sliderCellRect.size.width -= imageInset * 2; + sliderCellRect.origin.x += imageInset; + } + else if ([self indicatorIndex] == 3) + { + [minButton setFrameOrigin:NSMakePoint(imageInset-7, 4)]; + [maxButton setFrameOrigin:NSMakePoint(NSMaxX(self.bounds)-imageInset, 4)]; + + sliderCellRect.size.width -= imageInset * 2; + sliderCellRect.origin.x += imageInset; + } + + [[self cell] drawWithFrame:sliderCellRect inView:self]; +} + +- (void)setIndicatorIndex:(int)anIndex +{ + [minButton removeFromSuperview]; + [maxButton removeFromSuperview]; + + if (indicatorIndex == 0 && (anIndex == 2 || anIndex == 3)) + { + NSRect newFrame = self.frame; + newFrame.size.width += imageInset * 2; + newFrame.origin.x -= imageInset; + [self setFrame:newFrame]; + } + + if ((indicatorIndex == 2 || indicatorIndex == 3) && anIndex == 0) + { + NSRect newFrame = self.frame; + newFrame.size.width -= imageInset * 2; + newFrame.origin.x += imageInset; + [self setFrame:newFrame]; + } + + if (anIndex == 2) + { + minButton = [[NSButton alloc] initWithFrame:NSMakeRect(0,0,smallPhotoImage.size.width,smallPhotoImage.size.height)]; + [minButton setBordered:NO]; + [minButton setImage:smallPhotoImage]; + [minButton setTarget:self]; + [minButton setAction:@selector(setSliderToMinimum)]; + [[minButton cell] setHighlightsBy:2]; + + maxButton = [[NSButton alloc] initWithFrame:NSMakeRect(NSMaxX(self.bounds) - imageInset,0,largePhotoImage.size.width,largePhotoImage.size.height)]; + [maxButton setBordered:NO]; + [maxButton setImage:largePhotoImage]; + [maxButton setTarget:self]; + [maxButton setAction:@selector(setSliderToMaximum)]; + [[maxButton cell] setHighlightsBy:2]; + + [self addSubview:minButton]; + [self addSubview:maxButton]; + } + else if (anIndex == 3) + { + minButton = [[NSButton alloc] initWithFrame:NSMakeRect(0,0,quietSpeakerImage.size.width,quietSpeakerImage.size.height)]; + [minButton setBordered:NO]; + [minButton setImage:quietSpeakerImage]; + [minButton setTarget:self]; + [minButton setAction:@selector(setSliderToMinimum)]; + [[minButton cell] setHighlightsBy:2]; + + maxButton = [[NSButton alloc] initWithFrame:NSMakeRect(NSMaxX(self.bounds) - imageInset,0,loudSpeakerImage.size.width,loudSpeakerImage.size.height)]; + [maxButton setBordered:NO]; + [maxButton setImage:loudSpeakerImage]; + [maxButton setTarget:self]; + [maxButton setAction:@selector(setSliderToMaximum)]; + [[maxButton cell] setHighlightsBy:2]; + + [self addSubview:minButton]; + [self addSubview:maxButton]; + } + + indicatorIndex = anIndex; +} + +- (void)setEnabled:(BOOL)flag +{ + [super setEnabled:flag]; + + [minButton setEnabled:flag]; + [maxButton setEnabled:flag]; +} + +- (void)scrollWheel:(NSEvent*)event +{ + /* Scroll wheel movement appears to be specified in terms of pixels, and + definitely not in terms of the values that the slider contains. Because + of this, we'll have to map our current value to pixel space, adjust the + pixel space value, and then map back to value space again. */ + + CGFloat valueRange = [self maxValue] - [self minValue]; + CGFloat valueOffset = [self doubleValue] - [self minValue]; + CGFloat pixelRange = [self isVertical] ? NSHeight([self frame]) : NSWidth([self frame]); + + CGFloat valueInPixelSpace = ((valueOffset / valueRange) * pixelRange); + + /* deltaX and deltaY are 'flipped' from what you'd expect. Scrolling down + produces + Y values, and scrolling left produces + X values. Because we + want left/down scrolling to decrease the value, we adjust accordingly. */ + valueInPixelSpace += [event deltaY]; + valueInPixelSpace -= [event deltaX]; + + double newValue = [self minValue] + ((valueInPixelSpace / pixelRange) * valueRange); + + [self setFloatValue:newValue]; + [self sendAction:[self action] to:[self target]]; +} + +- (void)dealloc +{ + [minButton release]; + [maxButton release]; + [super dealloc]; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWTexturedSliderCell.classdescription b/Frameworks/BWToolkitFramework.framework/BWTexturedSliderCell.classdescription new file mode 100755 index 00000000..bf8ee438 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTexturedSliderCell.classdescription @@ -0,0 +1,12 @@ +{ + Actions = { + // Define action descriptions here, for example + // "myAction:" = id; + }; + Outlets = { + // Define outlet descriptions here, for example + // myOutlet = NSView; + }; + ClassName = BWTexturedSliderCell; + SuperClass = NSSliderCell; +} diff --git a/Frameworks/BWToolkitFramework.framework/BWTexturedSliderCell.h b/Frameworks/BWToolkitFramework.framework/BWTexturedSliderCell.h new file mode 100755 index 00000000..184dd8ec --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTexturedSliderCell.h @@ -0,0 +1,19 @@ +// +// BWTexturedSliderCell.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface BWTexturedSliderCell : NSSliderCell +{ + BOOL isPressed; + int trackHeight; +} + +@property int trackHeight; + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWTexturedSliderCell.m b/Frameworks/BWToolkitFramework.framework/BWTexturedSliderCell.m new file mode 100755 index 00000000..e28aee86 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTexturedSliderCell.m @@ -0,0 +1,125 @@ +// +// BWTexturedSliderCell.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWTexturedSliderCell.h" + +@implementation BWTexturedSliderCell +@synthesize trackHeight; + +static NSImage *trackLeftImage, *trackFillImage, *trackRightImage, *thumbPImage, *thumbNImage; + ++ (void)initialize +{ + if([BWTexturedSliderCell class] == [self class]) + { + NSBundle *bundle = [NSBundle bundleForClass:[BWTexturedSliderCell class]]; + + trackLeftImage = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TexturedSliderTrackLeft.tiff"]]; + trackFillImage = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TexturedSliderTrackFill.tiff"]]; + trackRightImage = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TexturedSliderTrackRight.tiff"]]; + thumbPImage = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TexturedSliderThumbP.tiff"]]; + thumbNImage = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TexturedSliderThumbN.tiff"]]; + } +} + +- (id)initWithCoder:(NSCoder *)decoder; +{ + if ((self = [super initWithCoder:decoder]) != nil) + { + [self setTrackHeight:[decoder decodeBoolForKey:@"BWTSTrackHeight"]]; + [self setControlSize:NSSmallControlSize]; + isPressed = NO; + } + return self; +} + +- (void)encodeWithCoder:(NSCoder*)coder +{ + [super encodeWithCoder:coder]; + + [coder encodeBool:[self trackHeight] forKey:@"BWTSTrackHeight"]; +} + +- (NSControlSize)controlSize +{ + return NSRegularControlSize; +} + +- (void)setControlSize:(NSControlSize)size +{ + +} + +- (NSInteger)numberOfTickMarks +{ + return 0; +} + +- (void)setNumberOfTickMarks:(NSInteger)numberOfTickMarks +{ + +} + +- (void)drawBarInside:(NSRect)cellFrame flipped:(BOOL)flipped +{ + NSRect slideRect = cellFrame; + + if (trackHeight == 0) + slideRect.size.height = trackFillImage.size.height; + else + slideRect.size.height = trackFillImage.size.height + 1; + + slideRect.origin.y += roundf((cellFrame.size.height - slideRect.size.height) / 2); + + // Inset the bar so the knob goes all the way to both ends + slideRect.size.width -= 9; + slideRect.origin.x += 5; + + if ([self isEnabled]) + NSDrawThreePartImage(slideRect, trackLeftImage, trackFillImage, trackRightImage, NO, NSCompositeSourceOver, 1, flipped); + else + NSDrawThreePartImage(slideRect, trackLeftImage, trackFillImage, trackRightImage, NO, NSCompositeSourceOver, 0.5, flipped); +} + +- (void)drawKnob:(NSRect)rect +{ + NSImage *drawImage; + + if (isPressed) + drawImage = thumbPImage; + else + drawImage = thumbNImage; + + NSPoint drawPoint; + drawPoint.x = rect.origin.x + roundf((rect.size.width - drawImage.size.width) / 2); + drawPoint.y = NSMaxY(rect) - roundf((rect.size.height - drawImage.size.height) / 2); + + if (trackHeight == 0) + drawPoint.y++; + + [drawImage compositeToPoint:drawPoint operation:NSCompositeSourceOver]; +} + +- (BOOL)_usesCustomTrackImage +{ + return YES; +} + +- (BOOL)startTrackingAt:(NSPoint)startPoint inView:(NSView *)controlView +{ + isPressed = YES; + return [super startTrackingAt:startPoint inView:controlView]; +} + +- (void)stopTracking:(NSPoint)lastPoint at:(NSPoint)stopPoint inView:(NSView *)controlView mouseIsUp:(BOOL)flag +{ + isPressed = NO; + [super stopTracking:(NSPoint)lastPoint at:(NSPoint)stopPoint inView:(NSView *)controlView mouseIsUp:(BOOL)flag]; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWTexturedSliderInspector.h b/Frameworks/BWToolkitFramework.framework/BWTexturedSliderInspector.h new file mode 100644 index 00000000..0c18570c --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTexturedSliderInspector.h @@ -0,0 +1,14 @@ +// +// BWControlsInspector.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface BWTexturedSliderInspector : IBInspector +{ +} +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWTexturedSliderInspector.m b/Frameworks/BWToolkitFramework.framework/BWTexturedSliderInspector.m new file mode 100644 index 00000000..ded11f17 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTexturedSliderInspector.m @@ -0,0 +1,22 @@ +// +// BWControlsInspector.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWTexturedSliderInspector.h" + +@implementation BWTexturedSliderInspector + +- (NSString *)viewNibName { + return @"BWTexturedSliderInspector"; +} + +- (void)refresh { + // Synchronize your inspector's content view with the currently selected objects. + [super refresh]; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWTexturedSliderInspector.nib/designable.nib b/Frameworks/BWToolkitFramework.framework/BWTexturedSliderInspector.nib/designable.nib new file mode 100644 index 00000000..79e39843 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTexturedSliderInspector.nib/designable.nib @@ -0,0 +1,611 @@ + + + + 1050 + 9D34 + 667 + 949.33 + 352.00 + + YES + + + + YES + com.apple.InterfaceBuilderKit + com.apple.InterfaceBuilder.CocoaPlugin + + + YES + + BWTexturedSliderInspector + + + FirstResponder + + + NSApplication + + + + 256 + + YES + + + 268 + {{81, 3}, {186, 22}} + + YES + + -2076049856 + 133120 + + LucidaGrande + 1.100000e+01 + 3100 + + + 109199615 + 1 + + LucidaGrande + 1.100000e+01 + 16 + + + + 400 + 75 + + + Regular + + 1048576 + 2147483647 + 1 + + NSImage + NSMenuCheckmark + + + NSImage + NSMenuMixedState + + _popUpItemAction: + + + YES + + OtherViews + + YES + + + + Large + + 1048576 + 2147483647 + + + _popUpItemAction: + 1 + + + + + 3 + YES + YES + 1 + + + + + 268 + {{8, 8}, {70, 14}} + + YES + + 67239488 + 4326400 + Track Size + + LucidaGrande-Bold + 1.100000e+01 + 16 + + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2OQA + + + + 6 + System + controlTextColor + + 3 + MAA + + + + + + + 268 + {{8, 33}, {70, 14}} + + YES + + 67239488 + 4326400 + Indicators + + + + + + + + + 268 + {{81, 28}, {186, 22}} + + YES + + -2076049856 + 133120 + + + 109199615 + 1 + + + + 400 + 75 + + + None + + 1048576 + 2147483647 + 1 + + + _popUpItemAction: + + + YES + + OtherViews + + YES + + + + YES + YES + + + 2147483647 + + + _popUpItemAction: + + + + + Photo + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + Speaker Volume + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + 3 + YES + YES + 1 + + + + {272, 54} + + NSView + NSResponder + + + + + YES + + + inspectorView + + + + 36 + + + + selectedTag: inspectedObjectsController.selection.trackHeight + + + + + + selectedTag: inspectedObjectsController.selection.trackHeight + selectedTag + inspectedObjectsController.selection.trackHeight + 2 + + + 97 + + + + selectedIndex: inspectedObjectsController.selection.indicatorIndex + + + + + + selectedIndex: inspectedObjectsController.selection.indicatorIndex + selectedIndex + inspectedObjectsController.selection.indicatorIndex + 2 + + + 100 + + + + + YES + + 0 + + YES + + + + + + -2 + + + RmlsZSdzIE93bmVyA + + + -1 + + + First Responder + + + -3 + + + Application + + + 21 + + + YES + + + + + + + Inspector View + + + 56 + + + YES + + + + + + 57 + + + YES + + + + + + 62 + + + YES + + + + + + 66 + + + + + 73 + + + + + 74 + + + YES + + + + + + 75 + + + YES + + + + + + + 77 + + + + + 78 + + + + + 84 + + + YES + + + + + + 85 + + + YES + + + + + + 86 + + + YES + + + + + + + + + 87 + + + + + 88 + + + + + 89 + + + + + 90 + + + + + + + YES + + YES + -1.IBPluginDependency + -2.IBPluginDependency + -3.IBPluginDependency + -3.ImportedFromIB2 + 21.GUserGuides + 21.IBEditorWindowLastContentRect + 21.IBPluginDependency + 21.IBUserGuides + 21.ImportedFromIB2 + 21.WindowOrigin + 21.editorWindowContentRectSynchronizationRect + 56.IBPluginDependency + 57.IBPluginDependency + 62.IBPluginDependency + 66.IBPluginDependency + 73.IBPluginDependency + 74.IBPluginDependency + 75.IBEditorWindowLastContentRect + 75.IBPluginDependency + 75.editorWindowContentRectSynchronizationRect + 77.IBPluginDependency + 78.IBPluginDependency + 84.IBPluginDependency + 85.IBPluginDependency + 86.IBEditorWindowLastContentRect + 86.IBPluginDependency + 86.editorWindowContentRectSynchronizationRect + 87.IBPluginDependency + 88.IBPluginDependency + 89.IBPluginDependency + 90.IBPluginDependency + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilderKit + com.apple.InterfaceBuilderKit + + + YES + + + 9.000000e+01 + 0 + + + + 2.270000e+02 + 0 + + + {{711, 342}, {272, 54}} + com.apple.InterfaceBuilder.CocoaPlugin + + YES + + + 8.400000e+01 + 0 + + + + 2.640000e+02 + 0 + + + + 1.780000e+02 + 0 + + + + 4.000000e+00 + 3 + + + + 8.000000e+00 + 0 + + + + 4.000000e+00 + 1 + + + + 1.700000e+02 + 0 + + + + {155, 478} + {{474, 671}, {272, 296}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{781, 330}, {186, 37}} + com.apple.InterfaceBuilder.CocoaPlugin + {{117, 885}, {186, 54}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{781, 328}, {186, 64}} + com.apple.InterfaceBuilder.CocoaPlugin + {{117, 885}, {186, 54}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + YES + + YES + + + YES + + + + + YES + + YES + + + YES + + + + 100 + + + + YES + + BWTexturedSliderInspector + IBInspector + + IBProjectSource + BWTexturedSliderInspector.h + + + + NSView + + IBProjectSource + NSView+BWAdditions.h + + + + + 0 + ../IHControls.xcodeproj + 3 + + diff --git a/Frameworks/BWToolkitFramework.framework/BWTexturedSliderInspector.nib/keyedobjects.nib b/Frameworks/BWToolkitFramework.framework/BWTexturedSliderInspector.nib/keyedobjects.nib new file mode 100644 index 00000000..1cc9afce Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/BWTexturedSliderInspector.nib/keyedobjects.nib differ diff --git a/Frameworks/BWToolkitFramework.framework/BWTexturedSliderIntegration.m b/Frameworks/BWToolkitFramework.framework/BWTexturedSliderIntegration.m new file mode 100644 index 00000000..c37b851a --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTexturedSliderIntegration.m @@ -0,0 +1,66 @@ +// +// BWControlsView.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import +#import "BWTexturedSlider.h" +#import "BWTexturedSliderInspector.h" + + +@implementation BWTexturedSlider ( BWTexturedSliderIntegration ) + +- (void)ibPopulateKeyPaths:(NSMutableDictionary *)keyPaths { + [super ibPopulateKeyPaths:keyPaths]; + [[keyPaths objectForKey:IBAttributeKeyPaths] addObjectsFromArray:[NSArray arrayWithObjects:@"trackHeight",@"indicatorIndex",nil]]; +} + +- (void)ibPopulateAttributeInspectorClasses:(NSMutableArray *)classes { + [super ibPopulateAttributeInspectorClasses:classes]; + [classes addObject:[BWTexturedSliderInspector class]]; +} + +- (IBInset)ibLayoutInset +{ + IBInset inset; + + if ([self trackHeight] == 0) + { + inset.top = 4; + inset.bottom = 5; + } + else + { + inset.top = 5; + inset.bottom = 4; + } + + if ([self indicatorIndex] == 0) + { + inset.right = 4; + inset.left = 5; + } + else if ([self indicatorIndex] == 2) + { + inset.bottom = 3; + inset.right = 5; + inset.left = 13; + } + else if ([self indicatorIndex] == 3) + { + inset.right = 12; + inset.left = 18; + } + else + { + inset.right = 0; + inset.left = 0; + } + + return inset; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWTokenAttachmentCell.h b/Frameworks/BWToolkitFramework.framework/BWTokenAttachmentCell.h new file mode 100644 index 00000000..8d69de58 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTokenAttachmentCell.h @@ -0,0 +1,17 @@ +// +// BWTokenAttachmentCell.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import +#import "NSTokenAttachmentCell.h" + +@interface BWTokenAttachmentCell : NSTokenAttachmentCell +{ + +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWTokenAttachmentCell.m b/Frameworks/BWToolkitFramework.framework/BWTokenAttachmentCell.m new file mode 100644 index 00000000..1a3a8870 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTokenAttachmentCell.m @@ -0,0 +1,226 @@ +// +// BWTokenAttachmentCell.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWTokenAttachmentCell.h" + +static NSGradient *blueGradient, *blueStrokeGradient, *blueInsetGradient, *highlightedBlueGradient, *highlightedBlueStrokeGradient, *highlightedBlueInsetGradient, *arrowGradient; +static NSShadow *textShadow; +static NSColor *highlightedArrowColor; + +static float arrowWidth = 7.0; +static float arrowHeight = 6.0; + +@interface NSTokenAttachmentCell (BWTACPrivate) +- (NSDictionary *)_textAttributes; +@end + +@interface BWTokenAttachmentCell (BWTACPrivate) ++ (NSImage *)arrowInHighlightedState:(BOOL)isHighlighted; +@end + +@implementation BWTokenAttachmentCell + ++ (void)initialize +{ + NSColor *blueTopColor = [NSColor colorWithCalibratedRed:217.0/255.0 green:228.0/255.0 blue:254.0/255.0 alpha:1]; + NSColor *blueBottomColor = [NSColor colorWithCalibratedRed:195.0/255.0 green:212.0/255.0 blue:250.0/255.0 alpha:1]; + blueGradient = [[NSGradient alloc] initWithStartingColor:blueTopColor endingColor:blueBottomColor]; + + NSColor *blueStrokeTopColor = [NSColor colorWithCalibratedRed:164.0/255.0 green:184.0/255.0 blue:230.0/255.0 alpha:1]; + NSColor *blueStrokeBottomColor = [NSColor colorWithCalibratedRed:122.0/255.0 green:128.0/255.0 blue:199.0/255.0 alpha:1]; + blueStrokeGradient = [[NSGradient alloc] initWithStartingColor:blueStrokeTopColor endingColor:blueStrokeBottomColor]; + + NSColor *blueInsetTopColor = [NSColor colorWithCalibratedRed:226.0/255.0 green:234.0/255.0 blue:254.0/255.0 alpha:1]; + NSColor *blueInsetBottomColor = [NSColor colorWithCalibratedRed:206.0/255.0 green:221.0/255.0 blue:250.0/255.0 alpha:1]; + blueInsetGradient = [[NSGradient alloc] initWithStartingColor:blueInsetTopColor endingColor:blueInsetBottomColor]; + + NSColor *highlightedBlueTopColor = [NSColor colorWithCalibratedRed:80.0/255.0 green:127.0/255.0 blue:251.0/255.0 alpha:1]; + NSColor *highlightedBlueBottomColor = [NSColor colorWithCalibratedRed:65.0/255.0 green:107.0/255.0 blue:236.0/255.0 alpha:1]; + highlightedBlueGradient = [[NSGradient alloc] initWithStartingColor:highlightedBlueTopColor endingColor:highlightedBlueBottomColor]; + + NSColor *highlightedBlueStrokeTopColor = [NSColor colorWithCalibratedRed:51.0/255.0 green:95.0/255.0 blue:248.0/255.0 alpha:1]; + NSColor *highlightedBlueStrokeBottomColor = [NSColor colorWithCalibratedRed:42.0/255.0 green:47.0/255.0 blue:233.0/255.0 alpha:1]; + highlightedBlueStrokeGradient = [[NSGradient alloc] initWithStartingColor:highlightedBlueStrokeTopColor endingColor:highlightedBlueStrokeBottomColor]; + + NSColor *highlightedBlueInsetTopColor = [NSColor colorWithCalibratedRed:92.0/255.0 green:137.0/255.0 blue:251.0/255.0 alpha:1]; + NSColor *highlightedBlueInsetBottomColor = [NSColor colorWithCalibratedRed:76.0/255.0 green:116.0/255.0 blue:236.0/255.0 alpha:1]; + highlightedBlueInsetGradient = [[NSGradient alloc] initWithStartingColor:highlightedBlueInsetTopColor endingColor:highlightedBlueInsetBottomColor]; + + NSColor *arrowGradientTopColor = [NSColor colorWithCalibratedRed:111.0/255.0 green:140.0/255.0 blue:222.0/255.0 alpha:1]; + NSColor *arrowGradientBottomColor = [NSColor colorWithCalibratedRed:58.0/255.0 green:91.0/255.0 blue:203.0/255.0 alpha:1]; + arrowGradient = [[NSGradient alloc] initWithStartingColor:arrowGradientTopColor endingColor:arrowGradientBottomColor]; + + textShadow = [[NSShadow alloc] init]; + [textShadow setShadowOffset:NSMakeSize(0,1 / [[NSScreen mainScreen] userSpaceScaleFactor])]; + [textShadow setShadowColor:[[NSColor blackColor] colorWithAlphaComponent:0.3]]; + + highlightedArrowColor = [[NSColor colorWithCalibratedRed:246.0/255.0 green:249.0/255.0 blue:254.0/255.0 alpha:1] retain]; +} + +- (NSImage *)arrowInHighlightedState:(BOOL)isHighlighted +{ + float scaleFactor = [[NSScreen mainScreen] userSpaceScaleFactor]; + + NSImage *arrowImage = [[[NSImage alloc] init] autorelease]; + [arrowImage setSize:NSMakeSize(arrowWidth, arrowHeight)]; + [arrowImage setFlipped:YES]; + + [arrowImage lockFocus]; + + NSPoint p1 = NSMakePoint(0,0); + NSPoint p2 = NSMakePoint(arrowWidth,0); + NSPoint p3 = NSMakePoint(arrowWidth / 2, arrowHeight - 1 / scaleFactor); + + NSBezierPath *triangle = [NSBezierPath bezierPath]; + [triangle moveToPoint:p1]; + [triangle lineToPoint:p2]; + [triangle lineToPoint:p3]; + [triangle lineToPoint:p1]; + + p1 = NSMakePoint(0, 1 / scaleFactor); + p2 = NSMakePoint(arrowWidth, 1 / scaleFactor); + p3 = NSMakePoint(arrowWidth / 2, arrowHeight); + + NSBezierPath *triangle2 = [NSBezierPath bezierPath]; + [triangle2 moveToPoint:p1]; + [triangle2 lineToPoint:p2]; + [triangle2 lineToPoint:p3]; + [triangle2 lineToPoint:p1]; + + if (isHighlighted) + { + // Draw shadow + [[[NSColor blackColor] colorWithAlphaComponent:0.2] set]; + [triangle fill]; + + // Draw arrow + [highlightedArrowColor set]; + [triangle2 fill]; + } + else + { + // Draw shadow + [[[NSColor whiteColor] colorWithAlphaComponent:0.75] set]; + [triangle2 fill]; + + // Draw arrow + [arrowGradient drawInBezierPath:triangle angle:90]; + } + + [arrowImage unlockFocus]; + + return arrowImage; +} + +- (void)drawTokenWithFrame:(NSRect)aRect inView:(NSView *)aView; +{ + float scaleFactor = [[NSScreen mainScreen] userSpaceScaleFactor]; + + NSRect drawingRect = [self drawingRectForBounds:aRect]; + NSRect insetRect = NSInsetRect(drawingRect, 1 / scaleFactor, 1 / scaleFactor); + NSRect insetRect2 = NSInsetRect(insetRect, 1 / scaleFactor, 1 / scaleFactor); + + if (scaleFactor < 0.99 || scaleFactor > 1.01) + { + drawingRect = [aView centerScanRect:drawingRect]; + insetRect = [aView centerScanRect:insetRect]; + insetRect2 = [aView centerScanRect:insetRect2]; + } + + NSBezierPath *drawingPath = [NSBezierPath bezierPathWithRoundedRect:drawingRect xRadius:0.5*drawingRect.size.height yRadius:0.5*drawingRect.size.height]; + NSBezierPath *insetPath = [NSBezierPath bezierPathWithRoundedRect:insetRect xRadius:0.5*insetRect.size.height yRadius:0.5*insetRect.size.height]; + NSBezierPath *insetPath2 = [NSBezierPath bezierPathWithRoundedRect:insetRect2 xRadius:0.5*insetRect2.size.height yRadius:0.5*insetRect2.size.height]; + + if (_tacFlags._selected == NO) + { + [blueStrokeGradient drawInBezierPath:drawingPath angle:90]; + [blueInsetGradient drawInBezierPath:insetPath angle:90]; + [blueGradient drawInBezierPath:insetPath2 angle:90]; + } + else + { + [highlightedBlueStrokeGradient drawInBezierPath:drawingPath angle:90]; + [highlightedBlueInsetGradient drawInBezierPath:insetPath angle:90]; + [highlightedBlueGradient drawInBezierPath:insetPath2 angle:90]; + } + + // Darken on mouse over + CGFloat red, blue, green, alpha; + [[self tokenBackgroundColor] getRed:&red green:&green blue:&blue alpha:&alpha]; + + if (red > 0.427 && red < 0.428) + { + [[NSColor colorWithCalibratedRed:32.0/255.0 green:59.0/255.0 blue:167.0/255.0 alpha:0.1] set]; + + [NSGraphicsContext saveGraphicsState]; + [[NSGraphicsContext currentContext] setCompositingOperation:NSCompositePlusDarker]; + [drawingPath fill]; + [NSGraphicsContext restoreGraphicsState]; + } + +} + +- (int)interiorBackgroundStyle +{ + // If the token isn't selected, tell NSCell to draw a white shadow below the text + if (_tacFlags._selected == NO) + return NSBackgroundStyleRaised; + + return [super interiorBackgroundStyle]; +} + +- (NSDictionary *)_textAttributes +{ + if (_tacFlags._selected) + { + NSMutableDictionary *attributes = [[[NSMutableDictionary alloc] init] autorelease]; + [attributes addEntriesFromDictionary:[super _textAttributes]]; + [attributes setObject:textShadow forKey:NSShadowAttributeName]; + + return attributes; + } + + return [super _textAttributes]; +} + +- (id)pullDownImage +{ + NSImage *arrowImage; + + if (_tacFlags._selected) + arrowImage = [self arrowInHighlightedState:YES]; + else + arrowImage = [self arrowInHighlightedState:NO]; + + return arrowImage; +} + +- (NSRect)pullDownRectForBounds:(NSRect)bounds +{ + NSRect pullDownRect = [super pullDownRectForBounds:bounds]; + + pullDownRect.origin.x--; + + if (!_tacFlags._selected) + pullDownRect.origin.y++; + + float scaleFactor = [[NSScreen mainScreen] userSpaceScaleFactor]; + + if (scaleFactor < 0.99 || scaleFactor > 1.01) + pullDownRect = [[self controlView] centerScanRect:pullDownRect]; + + return pullDownRect; +} + +// --- For testing menu arrows --- +//- (BOOL)_hasMenu +//{ +// return YES; +//} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWTokenField.classdescription b/Frameworks/BWToolkitFramework.framework/BWTokenField.classdescription new file mode 100644 index 00000000..7f17d931 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTokenField.classdescription @@ -0,0 +1,12 @@ +{ + Actions = { + // Define action descriptions here, for example + // "myAction:" = id; + }; + Outlets = { + // Define outlet descriptions here, for example + // myOutlet = NSView; + }; + ClassName = BWTokenField; + SuperClass = NSTokenField; +} diff --git a/Frameworks/BWToolkitFramework.framework/BWTokenField.h b/Frameworks/BWToolkitFramework.framework/BWTokenField.h new file mode 100644 index 00000000..907bbc9e --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTokenField.h @@ -0,0 +1,16 @@ +// +// BWTokenField.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface BWTokenField : NSTokenField +{ + +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWTokenField.m b/Frameworks/BWToolkitFramework.framework/BWTokenField.m new file mode 100644 index 00000000..431a8a30 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTokenField.m @@ -0,0 +1,13 @@ +// +// BWTokenField.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWTokenField.h" + +@implementation BWTokenField + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWTokenFieldCell.classdescription b/Frameworks/BWToolkitFramework.framework/BWTokenFieldCell.classdescription new file mode 100644 index 00000000..38288f1f --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTokenFieldCell.classdescription @@ -0,0 +1,12 @@ +{ + Actions = { + // Define action descriptions here, for example + // "myAction:" = id; + }; + Outlets = { + // Define outlet descriptions here, for example + // myOutlet = NSView; + }; + ClassName = BWTokenFieldCell; + SuperClass = NSTokenFieldCell; +} diff --git a/Frameworks/BWToolkitFramework.framework/BWTokenFieldCell.h b/Frameworks/BWToolkitFramework.framework/BWTokenFieldCell.h new file mode 100644 index 00000000..0ea0f04a --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTokenFieldCell.h @@ -0,0 +1,16 @@ +// +// BWTokenFieldCell.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface BWTokenFieldCell : NSTokenFieldCell +{ + +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWTokenFieldCell.m b/Frameworks/BWToolkitFramework.framework/BWTokenFieldCell.m new file mode 100644 index 00000000..6f56cf5a --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTokenFieldCell.m @@ -0,0 +1,27 @@ +// +// BWTokenFieldCell.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWTokenFieldCell.h" +#import "BWTokenAttachmentCell.h" + +@implementation BWTokenFieldCell + +- (id)setUpTokenAttachmentCell:(NSTokenAttachmentCell *)aCell forRepresentedObject:(id)anObj +{ + BWTokenAttachmentCell *attachmentCell = [[BWTokenAttachmentCell alloc] initTextCell:[aCell stringValue]]; + + [attachmentCell setRepresentedObject:anObj]; + [attachmentCell setAttachment:[aCell attachment]]; + [attachmentCell setControlSize:[self controlSize]]; + [attachmentCell setTextColor:[NSColor blackColor]]; + [attachmentCell setFont:[self font]]; + + return [attachmentCell autorelease]; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWToolbarItem.classdescription b/Frameworks/BWToolkitFramework.framework/BWToolbarItem.classdescription new file mode 100644 index 00000000..268defa6 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWToolbarItem.classdescription @@ -0,0 +1,12 @@ +{ + Actions = { + // Define action descriptions here, for example + // "myAction:" = id; + }; + Outlets = { + // Define outlet descriptions here, for example + // myOutlet = NSView; + }; + ClassName = BWToolbarItem; + SuperClass = NSToolbarItem; +} diff --git a/Frameworks/BWToolkitFramework.framework/BWToolbarItem.h b/Frameworks/BWToolkitFramework.framework/BWToolbarItem.h new file mode 100644 index 00000000..06f0a6d1 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWToolbarItem.h @@ -0,0 +1,16 @@ +// +// BWToolbarItem.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface BWToolbarItem : NSToolbarItem +{ + NSString *identifierString; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWToolbarItem.m b/Frameworks/BWToolkitFramework.framework/BWToolbarItem.m new file mode 100644 index 00000000..3c196d1d --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWToolbarItem.m @@ -0,0 +1,62 @@ +// +// BWToolbarItem.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWToolbarItem.h" +#import "NSString+BWAdditions.h" + +@interface BWToolbarItem () +@property (copy) NSString *identifierString; +@end + +@interface NSToolbarItem (BWTIPrivate) +- (void)_setItemIdentifier:(id)fp8; +- (id)initWithCoder:(NSCoder *)coder; +- (void)encodeWithCoder:(NSCoder*)coder; +@end + +@implementation BWToolbarItem + +@synthesize identifierString; + +- (id)initWithCoder:(NSCoder *)coder +{ + if ((self = [super initWithCoder:coder]) != nil) + { + [self setIdentifierString:[coder decodeObjectForKey:@"BWTIIdentifierString"]]; + } + return self; +} + +- (void)encodeWithCoder:(NSCoder*)coder +{ + [super encodeWithCoder:coder]; + + [coder encodeObject:[self identifierString] forKey:@"BWTIIdentifierString"]; +} + +- (void)setIdentifierString:(NSString *)aString +{ + if (identifierString != aString) + { + [identifierString release]; + identifierString = [aString copy]; + } + + if (identifierString == nil || [identifierString isEqualToString:@""]) + [self _setItemIdentifier:[[NSString randomUUID] retain]]; + else + [self _setItemIdentifier:identifierString]; +} + +- (void)dealloc +{ + [identifierString release]; + [super dealloc]; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWToolbarItemInspector.h b/Frameworks/BWToolkitFramework.framework/BWToolbarItemInspector.h new file mode 100644 index 00000000..c6b2467a --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWToolbarItemInspector.h @@ -0,0 +1,16 @@ +// +// BWToolbarItemInspector.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface BWToolbarItemInspector : IBInspector +{ + +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWToolbarItemInspector.m b/Frameworks/BWToolkitFramework.framework/BWToolbarItemInspector.m new file mode 100644 index 00000000..5a5a1b59 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWToolbarItemInspector.m @@ -0,0 +1,22 @@ +// +// BWToolbarItemInspector.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWToolbarItemInspector.h" + +@implementation BWToolbarItemInspector + +- (NSString *)viewNibName { + return @"BWToolbarItemInspector"; +} + +- (void)refresh { + // Synchronize your inspector's content view with the currently selected objects + [super refresh]; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWToolbarItemInspector.xib b/Frameworks/BWToolkitFramework.framework/BWToolbarItemInspector.xib new file mode 100644 index 00000000..b203530c --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWToolbarItemInspector.xib @@ -0,0 +1,341 @@ + + + + 1050 + 9G55 + 677 + 949.43 + 353.00 + + YES + + + + YES + com.apple.InterfaceBuilderKit + com.apple.InterfaceBuilder.CocoaPlugin + + + YES + + YES + + + YES + + + + YES + + BWToolbarItemInspector + + + FirstResponder + + + NSApplication + + + + 268 + + YES + + + 268 + {{84, 4}, {180, 19}} + + YES + + -1804468671 + -1874721792 + + + LucidaGrande + 1.100000e+01 + 3100 + + + YES + + 6 + System + textBackgroundColor + + 3 + MQA + + + + 6 + System + textColor + + 3 + MAA + + + + + + + 268 + {{8, 6}, {70, 14}} + + YES + + 67239488 + 4326400 + Identifier + + LucidaGrande-Bold + 1.100000e+01 + 16 + + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2OQA + + + + 6 + System + controlTextColor + + + + + + {272, 27} + + NSView + + + + + YES + + + inspectorView + + + + 16 + + + + value: inspectedObjectsController.selection.identifierString + + + + + + value: inspectedObjectsController.selection.identifierString + value + inspectedObjectsController.selection.identifierString + + NSNullPlaceholder + Auto-generated + + 2 + + + 112 + + + + + YES + + 0 + + YES + + + + + + -2 + + + RmlsZSdzIE93bmVyA + + + -1 + + + First Responder + + + -3 + + + Application + + + 1 + + + YES + + + + + Inspector View + + + 79 + + + YES + + + + + + 89 + + + YES + + + + + + 93 + + + + + 109 + + + + + + + YES + + YES + -1.IBPluginDependency + -2.IBPluginDependency + -3.IBPluginDependency + -3.ImportedFromIB2 + 1.IBEditorWindowLastContentRect + 1.IBPluginDependency + 1.IBUserGuides + 1.ImportedFromIB2 + 1.WindowOrigin + 1.editorWindowContentRectSynchronizationRect + 109.IBPluginDependency + 79.IBPluginDependency + 89.IBPluginDependency + 93.IBPluginDependency + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilderKit + com.apple.InterfaceBuilderKit + + {{681, 438}, {272, 27}} + com.apple.InterfaceBuilder.CocoaPlugin + + YES + + + 1.100000e+01 + 0 + + + + 8.000000e+00 + 2 + + + + 8.400000e+01 + 0 + + + + 1.700000e+02 + 0 + + + + 1.780000e+02 + 0 + + + + 4.000000e+00 + 3 + + + + 4.000000e+00 + 1 + + + + {84, 761} + {{767, 669}, {272, 296}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + YES + + YES + + + YES + + + + + YES + + YES + + + YES + + + + 112 + + + + YES + + BWToolbarItemInspector + IBInspector + + IBProjectSource + BWToolbarItemInspector.h + + + + NSView + + IBProjectSource + NSView+BWAdditions.h + + + + + 0 + BWToolkit.xcodeproj + 3 + + diff --git a/Frameworks/BWToolkitFramework.framework/BWToolbarItemIntegration.m b/Frameworks/BWToolkitFramework.framework/BWToolbarItemIntegration.m new file mode 100644 index 00000000..47e02654 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWToolbarItemIntegration.m @@ -0,0 +1,27 @@ +// +// BWToolbarItemIntegration.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import +#import "BWToolbarItem.h" +#import "BWToolbarItemInspector.h" + +@implementation BWToolbarItem ( BWToolbarItemIntegration ) + +- (void)ibPopulateKeyPaths:(NSMutableDictionary *)keyPaths { + [super ibPopulateKeyPaths:keyPaths]; + + [[keyPaths objectForKey:IBAttributeKeyPaths] addObjectsFromArray:[NSArray arrayWithObjects:@"identifierString", nil]]; +} + +- (void)ibPopulateAttributeInspectorClasses:(NSMutableArray *)classes { + [super ibPopulateAttributeInspectorClasses:classes]; + + [classes addObject:[BWToolbarItemInspector class]]; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWToolbarItemsLibrary.nib/designable.nib b/Frameworks/BWToolkitFramework.framework/BWToolbarItemsLibrary.nib/designable.nib new file mode 100644 index 00000000..921bae74 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWToolbarItemsLibrary.nib/designable.nib @@ -0,0 +1,680 @@ + + + + 1050 + 9G55 + 677 + 949.43 + 353.00 + + YES + + + + YES + com.apple.InterfaceBuilderKit + com.apple.InterfaceBuilder.IBSDKPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + YES + + YES + + + YES + + + + YES + + NSObject + + + FirstResponder + + + NSApplication + + + + 268 + + YES + + + 268 + {{20, 306}, {117, 17}} + + YES + + 67239488 + 272630784 + Toolbar Items + + LucidaGrande + 1.300000e+01 + 1044 + + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2OQA + + + + 6 + System + controlTextColor + + 3 + MAA + + + + + + + 12 + {{20, 304}, {224, 5}} + + {0, 0} + + 67239424 + 0 + Box + + + 6 + System + textBackgroundColor + + 3 + MQA + + + + 3 + MCAwLjgwMDAwMDAxAA + + + 3 + 2 + 0 + NO + + + + 268 + + YES + + + 268 + + 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 + + + {{16, 16}, {48, 48}} + + YES + + 130560 + 33554432 + + NSImage + Library-ShowColors + + 0 + 2 + 0 + NO + + YES + + + {{111, 218}, {80, 80}} + + Show Colors Toolbar Item + 4441130C-85E3-495B-A733-21AC7F883A78 + Q29sb3JzIHRvb2xiYXIgaWNvbiBmcm9tIGlXb3JrICcwOC4 + + Q29sb3JzIHRvb2xiYXIgaWNvbiBmcm9tIGlXb3JrICcwOS4gTW9yZSBhcHByb3ByaWF0ZSBmb3IgTGVv +cGFyZCB0b29sYmFycyB0aGFuIHRoZSBzdGFuZGFyZCBpY29uLg + + YES + + YES + NSFont + NSParagraphStyle + + + YES + + Helvetica + 1.200000e+01 + 16 + + + 4 + + + + + + Toolbar Items + + + + + + 0 + + + + 268 + + YES + + + 268 + + 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 + + + {{16, 16}, {48, 48}} + + YES + + 130560 + 33554432 + + NSImage + Library-ShowFonts + + 0 + 2 + 0 + NO + + YES + + + {{23, 218}, {80, 80}} + + Show Fonts Toolbar Item + 4B4B332F-9188-40E1-B5DF-5DFBC63F9881 + Rm9udHMgdG9vbGJhciBpY29uIGZyb20gaVdvcmsgJzA4Lg + + Rm9udHMgdG9vbGJhciBpY29uIGZyb20gaVdvcmsgJzA5LiBNb3JlIGFwcHJvcHJpYXRlIGZvciBMZW9w +YXJkIHRvb2xiYXJzIHRoYW4gdGhlIHN0YW5kYXJkIGljb24uA + + + Toolbar Items + + + + + + 0 + + + + 268 + + YES + + + 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 + + + {{19, 19}, {42, 42}} + + YES + + 130560 + 33554432 + + NSImage + Library-ToolbarItem + + 0 + 0 + 0 + YES + + YES + + + {{199, 218}, {80, 80}} + + Toolbar Item + F9174FB5-0E5B-4043-8D3C-46D902920FD2 + Standard toolbar item with a customizable identifier. + + Standard toolbar item with a customizable identifier. + + + Toolbar Items + + + + + + 0 + + + {452, 343} + + NSView + + + 97090EAA-0A04-42C8-A0EF-26D0A5600BE8 + Toolbar Item + Toolbar Item + + + + NSImage + ToolbarItemColors + + + + {0, 0} + {0, 0} + YES + YES + -1 + YES + 0 + + + 97090EAA-0A04-42C8-A0EF-26D0A5600BE8 + Toolbar Item + Toolbar Item + + + + NSImage + ToolbarItemFonts + + + + {0, 0} + {0, 0} + YES + YES + -1 + YES + 0 + + + 97090EAA-0A04-42C8-A0EF-26D0A5600BE8 + Toolbar Item + Toolbar Item + + + + + + {0, 0} + {0, 0} + YES + YES + -1 + YES + 0 + + + + + YES + + + representedObject + + + + 58 + + + + representedObject + + + + 59 + + + + draggedView + + + + 60 + + + + draggedView + + + + 61 + + + + representedObject + + + + 67 + + + + draggedView + + + + 70 + + + + + YES + + 0 + + YES + + + + + + -2 + + + RmlsZSdzIE93bmVyA + + + -1 + + + First Responder + + + -3 + + + Application + + + 7 + + + YES + + + + + + + + Library Objects + + + 32 + + + + + 33 + + + YES + + + + + + 34 + + + + + 47 + + + + + 48 + + + + + 52 + + + YES + + + + + + 53 + + + YES + + + + + + 54 + + + YES + + + + + + 55 + + + + + 56 + + + YES + + + + + + 57 + + + + + 62 + + + YES + + + + + + 66 + + + + + 68 + + + YES + + + + + + 69 + + + + + + + YES + + YES + -1.IBPluginDependency + -2.IBPluginDependency + -3.IBPluginDependency + 32.IBPluginDependency + 33.IBPluginDependency + 34.IBPluginDependency + 47.CustomClassName + 47.IBPluginDependency + 48.CustomClassName + 48.IBPluginDependency + 52.IBPluginDependency + 53.IBPluginDependency + 54.IBPluginDependency + 55.IBPluginDependency + 56.IBPluginDependency + 57.IBPluginDependency + 62.IBPluginDependency + 66.CustomClassName + 66.IBPluginDependency + 7.IBEditorWindowLastContentRect + 7.IBPluginDependency + 7.IBUserGuides + 7.WindowOrigin + 7.editorWindowContentRectSynchronizationRect + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilderKit + com.apple.InterfaceBuilderKit + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + BWToolbarShowColorsItem + com.apple.InterfaceBuilder.CocoaPlugin + BWToolbarShowFontsItem + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.IBSDKPlugin + com.apple.InterfaceBuilder.IBSDKPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.IBSDKPlugin + BWToolbarItem + com.apple.InterfaceBuilder.CocoaPlugin + {{614, 121}, {452, 343}} + com.apple.InterfaceBuilder.CocoaPlugin + + YES + + {332, 343} + {{403, 401}, {264, 327}} + + + + YES + + YES + + + YES + + + + + YES + + YES + + + YES + + + + 70 + + + + YES + + BWToolbarItem + NSToolbarItem + + IBProjectSource + BWToolbarItem.h + + + + BWToolbarShowColorsItem + NSToolbarItem + + IBProjectSource + BWToolbarShowColorsItem.h + + + + BWToolbarShowFontsItem + NSToolbarItem + + IBProjectSource + BWToolbarShowFontsItem.h + + + + NSView + + IBProjectSource + NSView+BWAdditions.h + + + + + 0 + BWToolkit.xcodeproj + 3 + + diff --git a/Frameworks/BWToolkitFramework.framework/BWToolbarItemsLibrary.nib/keyedobjects.nib b/Frameworks/BWToolkitFramework.framework/BWToolbarItemsLibrary.nib/keyedobjects.nib new file mode 100644 index 00000000..b2c4d903 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/BWToolbarItemsLibrary.nib/keyedobjects.nib differ diff --git a/Frameworks/BWToolkitFramework.framework/BWToolbarShowColorsItem.classdescription b/Frameworks/BWToolkitFramework.framework/BWToolbarShowColorsItem.classdescription new file mode 100644 index 00000000..a597a973 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWToolbarShowColorsItem.classdescription @@ -0,0 +1,12 @@ +{ + Actions = { + // Define action descriptions here, for example + // "myAction:" = id; + }; + Outlets = { + // Define outlet descriptions here, for example + // myOutlet = NSView; + }; + ClassName = BWToolbarShowColorsItem; + SuperClass = NSToolbarItem; +} diff --git a/Frameworks/BWToolkitFramework.framework/BWToolbarShowColorsItem.h b/Frameworks/BWToolkitFramework.framework/BWToolbarShowColorsItem.h new file mode 100644 index 00000000..517f60df --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWToolbarShowColorsItem.h @@ -0,0 +1,16 @@ +// +// BWToolbarShowColorsItem.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface BWToolbarShowColorsItem : NSToolbarItem +{ + +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWToolbarShowColorsItem.m b/Frameworks/BWToolkitFramework.framework/BWToolbarShowColorsItem.m new file mode 100644 index 00000000..5ef002f9 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWToolbarShowColorsItem.m @@ -0,0 +1,51 @@ +// +// BWToolbarShowColorsItem.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWToolbarShowColorsItem.h" + +@implementation BWToolbarShowColorsItem + +- (NSImage *)image +{ + NSBundle *bundle = [NSBundle bundleForClass:[BWToolbarShowColorsItem class]]; + NSImage *image = [[[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"ToolbarItemColors.tiff"]] autorelease]; + + return image; +} + +- (NSString *)itemIdentifier +{ + return @"BWToolbarShowColorsItem"; +} + +- (NSString *)label +{ + return @"Colors"; +} + +- (NSString *)paletteLabel +{ + return @"Colors"; +} + +- (id)target +{ + return [NSApplication sharedApplication]; +} + +- (SEL)action +{ + return @selector(orderFrontColorPanel:); +} + +- (NSString *)toolTip +{ + return @"Show Color Panel"; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWToolbarShowFontsItem.classdescription b/Frameworks/BWToolkitFramework.framework/BWToolbarShowFontsItem.classdescription new file mode 100644 index 00000000..b4e260e7 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWToolbarShowFontsItem.classdescription @@ -0,0 +1,12 @@ +{ + Actions = { + // Define action descriptions here, for example + // "myAction:" = id; + }; + Outlets = { + // Define outlet descriptions here, for example + // myOutlet = NSView; + }; + ClassName = BWToolbarShowFontsItem; + SuperClass = NSToolbarItem; +} diff --git a/Frameworks/BWToolkitFramework.framework/BWToolbarShowFontsItem.h b/Frameworks/BWToolkitFramework.framework/BWToolbarShowFontsItem.h new file mode 100644 index 00000000..8c7ec5d5 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWToolbarShowFontsItem.h @@ -0,0 +1,16 @@ +// +// BWToolbarShowFontsItem.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface BWToolbarShowFontsItem : NSToolbarItem +{ + +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWToolbarShowFontsItem.m b/Frameworks/BWToolkitFramework.framework/BWToolbarShowFontsItem.m new file mode 100644 index 00000000..f5474dbf --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWToolbarShowFontsItem.m @@ -0,0 +1,51 @@ +// +// BWToolbarShowFontsItem.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWToolbarShowFontsItem.h" + +@implementation BWToolbarShowFontsItem + +- (NSImage *)image +{ + NSBundle *bundle = [NSBundle bundleForClass:[BWToolbarShowFontsItem class]]; + NSImage *image = [[[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"ToolbarItemFonts.tiff"]] autorelease]; + + return image; +} + +- (NSString *)itemIdentifier +{ + return @"BWToolbarShowFontsItem"; +} + +- (NSString *)label +{ + return @"Fonts"; +} + +- (NSString *)paletteLabel +{ + return @"Fonts"; +} + +- (id)target +{ + return [NSApplication sharedApplication]; +} + +- (SEL)action +{ + return @selector(orderFrontFontPanel:); +} + +- (NSString *)toolTip +{ + return @"Show Font Panel"; +} + +@end \ No newline at end of file diff --git a/Frameworks/BWToolkitFramework.framework/BWToolkit.h b/Frameworks/BWToolkitFramework.framework/BWToolkit.h new file mode 100644 index 00000000..f2ccdbf3 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWToolkit.h @@ -0,0 +1,15 @@ +// +// BWToolkit.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface BWToolkit : IBPlugin { + +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWToolkit.m b/Frameworks/BWToolkitFramework.framework/BWToolkit.m new file mode 100644 index 00000000..9d6a26a6 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWToolkit.m @@ -0,0 +1,25 @@ +// +// BWToolkit.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWToolkit.h" + +@implementation BWToolkit +- (NSArray *)libraryNibNames { + return [NSArray arrayWithObjects:@"BWSplitViewLibrary",@"BWControllersLibrary",@"BWToolbarItemsLibrary",@"BWBottomBarLibrary",@"BWToolkitLibrary",@"BWTransparentControlsLibrary",@"BWButtonBarLibrary",nil]; +} + +- (NSArray *)requiredFrameworks { + return [NSArray arrayWithObjects:[NSBundle bundleWithIdentifier:@"com.brandonwalkin.BWToolkitFramework"], nil]; +} + +- (NSString *)label +{ + return @"BWToolkit"; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWToolkit.xcodeproj/TemplateIcon.icns b/Frameworks/BWToolkitFramework.framework/BWToolkit.xcodeproj/TemplateIcon.icns new file mode 100644 index 00000000..8ba57558 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/BWToolkit.xcodeproj/TemplateIcon.icns differ diff --git a/Frameworks/BWToolkitFramework.framework/BWToolkit.xcodeproj/project.pbxproj b/Frameworks/BWToolkitFramework.framework/BWToolkit.xcodeproj/project.pbxproj new file mode 100644 index 00000000..cab14741 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWToolkit.xcodeproj/project.pbxproj @@ -0,0 +1,2053 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 42; + objects = { + +/* Begin PBXAggregateTarget section */ + 53DF6901067E5B8E0090B5B0 /* All */ = { + isa = PBXAggregateTarget; + buildConfigurationList = C056398708A954F8003078D8 /* Build configuration list for PBXAggregateTarget "All" */; + buildPhases = ( + ); + dependencies = ( + 53DF6903067E5B930090B5B0 /* PBXTargetDependency */, + 53DF6905067E5B930090B5B0 /* PBXTargetDependency */, + ); + name = All; + productName = All; + }; +/* End PBXAggregateTarget section */ + +/* Begin PBXBuildFile section */ + 13F8B89007B43554008AE28D /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DD92D38A0106425D02CA0E72 /* Cocoa.framework */; }; + 546DEAF3067F632A0098DCC4 /* BWToolkitFramework.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 53DF68FD067E5B5A0090B5B0 /* BWToolkitFramework.framework */; }; + 8D1AC9700486D14A00FE50C9 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DD92D38A0106425D02CA0E72 /* Cocoa.framework */; }; + 8D1AC9800486D23B00FE50C9 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 8D1AC97F0486D23B00FE50C9 /* InfoPlist.strings */; }; + C08787290A49DE9A00E9B151 /* BWToolkit.m in Sources */ = {isa = PBXBuildFile; fileRef = 0259C576FE90428111CA0C5A /* BWToolkit.m */; }; + C0D069560A49DF9100C95564 /* InterfaceBuilderKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C0D069550A49DF9100C95564 /* InterfaceBuilderKit.framework */; }; + CA0D2A260E2F034000E8680C /* NSWindow-NSTimeMachineSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = CA0D2A250E2F034000E8680C /* NSWindow-NSTimeMachineSupport.h */; }; + CA0DDBD00FDA586F006B3EA3 /* BWGradientWell.m in Sources */ = {isa = PBXBuildFile; fileRef = CA0DDBCF0FDA586F006B3EA3 /* BWGradientWell.m */; }; + CA0DDC210FDA5EDA006B3EA3 /* BWGradientWellColorWell.m in Sources */ = {isa = PBXBuildFile; fileRef = CA0DDC200FDA5EDA006B3EA3 /* BWGradientWellColorWell.m */; }; + CA0DDC820FDA698B006B3EA3 /* GradientWellPattern.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA0DDC810FDA698B006B3EA3 /* GradientWellPattern.tif */; }; + CA10ABD50E272711009BA4D7 /* BWTransparentScrollViewIntegration.m in Sources */ = {isa = PBXBuildFile; fileRef = CA10ABD40E272711009BA4D7 /* BWTransparentScrollViewIntegration.m */; }; + CA10ABD80E272748009BA4D7 /* BWTransparentScrollView.h in Headers */ = {isa = PBXBuildFile; fileRef = CA10ABD60E272748009BA4D7 /* BWTransparentScrollView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA10ABD90E272748009BA4D7 /* BWTransparentScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = CA10ABD70E272748009BA4D7 /* BWTransparentScrollView.m */; }; + CA2FB4070DFD0058005131D4 /* BWTexturedSliderIntegration.m in Sources */ = {isa = PBXBuildFile; fileRef = CA2FB4060DFD0058005131D4 /* BWTexturedSliderIntegration.m */; }; + CA2FB4340DFD02B6005131D4 /* BWTexturedSliderInspector.nib in Resources */ = {isa = PBXBuildFile; fileRef = CA2FB4330DFD02B6005131D4 /* BWTexturedSliderInspector.nib */; }; + CA325ACE0DCABE22001446BB /* BWAnchoredButtonIntegration.m in Sources */ = {isa = PBXBuildFile; fileRef = CA325ACD0DCABE22001446BB /* BWAnchoredButtonIntegration.m */; }; + CA325B4F0DCAE25A001446BB /* BWAnchoredButtonBar.h in Headers */ = {isa = PBXBuildFile; fileRef = CA325B4D0DCAE25A001446BB /* BWAnchoredButtonBar.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA325B500DCAE25A001446BB /* BWAnchoredButtonBar.m in Sources */ = {isa = PBXBuildFile; fileRef = CA325B4E0DCAE25A001446BB /* BWAnchoredButtonBar.m */; }; + CA325B8D0DCBF32E001446BB /* BWSelectableToolbar.h in Headers */ = {isa = PBXBuildFile; fileRef = CA630AE80DC7FC3400AD7F9E /* BWSelectableToolbar.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA325D4E0DCD2EEE001446BB /* BWAnchoredButtonBarInspector.xib in Resources */ = {isa = PBXBuildFile; fileRef = CA325D4D0DCD2EEE001446BB /* BWAnchoredButtonBarInspector.xib */; }; + CA325D530DCD3019001446BB /* BWAnchoredButtonBarInspector.m in Sources */ = {isa = PBXBuildFile; fileRef = CA325D520DCD3019001446BB /* BWAnchoredButtonBarInspector.m */; }; + CA325D550DCD3045001446BB /* BWAnchoredButtonBarIntegration.m in Sources */ = {isa = PBXBuildFile; fileRef = CA325D540DCD3045001446BB /* BWAnchoredButtonBarIntegration.m */; }; + CA325F040DCD91EF001446BB /* BWAnchoredButton.h in Headers */ = {isa = PBXBuildFile; fileRef = CA325F020DCD91EF001446BB /* BWAnchoredButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA325F050DCD91EF001446BB /* BWAnchoredButton.m in Sources */ = {isa = PBXBuildFile; fileRef = CA325F030DCD91EF001446BB /* BWAnchoredButton.m */; }; + CA325F080DCD9268001446BB /* BWAnchoredButtonCell.h in Headers */ = {isa = PBXBuildFile; fileRef = CA325F060DCD9268001446BB /* BWAnchoredButtonCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA325F090DCD9268001446BB /* BWAnchoredButtonCell.m in Sources */ = {isa = PBXBuildFile; fileRef = CA325F070DCD9268001446BB /* BWAnchoredButtonCell.m */; }; + CA3455300DDCD6C900A7C0A9 /* BWSelectableToolbarHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = CA34552E0DDCD6C900A7C0A9 /* BWSelectableToolbarHelper.h */; }; + CA3455310DDCD6C900A7C0A9 /* BWSelectableToolbarHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = CA34552F0DDCD6C900A7C0A9 /* BWSelectableToolbarHelper.m */; }; + CA3A18890ECA9E86000C3A43 /* BWTransparentTextFieldCell.h in Headers */ = {isa = PBXBuildFile; fileRef = CA3A18870ECA9E86000C3A43 /* BWTransparentTextFieldCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA3A188A0ECA9E86000C3A43 /* BWTransparentTextFieldCell.m in Sources */ = {isa = PBXBuildFile; fileRef = CA3A18880ECA9E86000C3A43 /* BWTransparentTextFieldCell.m */; }; + CA3A188C0ECA9F5B000C3A43 /* BWTransparentTextFieldCell.classdescription in Resources */ = {isa = PBXBuildFile; fileRef = CA3A188B0ECA9E9E000C3A43 /* BWTransparentTextFieldCell.classdescription */; }; + CA40594B0EBDCBA70010580A /* Library-TokenField.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA40594A0EBDCBA70010580A /* Library-TokenField.tif */; }; + CA405A120EBF214E0010580A /* Library-TransparentTextView.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA405A110EBF214E0010580A /* Library-TransparentTextView.tif */; }; + CA405A6F0EBF2E400010580A /* BWTransparentScroller.m in Sources */ = {isa = PBXBuildFile; fileRef = CA405A6D0EBF2E400010580A /* BWTransparentScroller.m */; }; + CA405A700EBF2E400010580A /* BWTransparentScroller.h in Headers */ = {isa = PBXBuildFile; fileRef = CA405A6E0EBF2E400010580A /* BWTransparentScroller.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA405AC30EBF2E760010580A /* BWTransparentScroller.classdescription in Resources */ = {isa = PBXBuildFile; fileRef = CA405A710EBF2E560010580A /* BWTransparentScroller.classdescription */; }; + CA405AE00EBF2FE30010580A /* TransparentScrollerKnobRight.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA405AD40EBF2FE30010580A /* TransparentScrollerKnobRight.tif */; }; + CA405AE10EBF2FE30010580A /* TransparentScrollerKnobBottom.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA405AD50EBF2FE30010580A /* TransparentScrollerKnobBottom.tif */; }; + CA405AE20EBF2FE30010580A /* TransparentScrollerSlotRight.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA405AD60EBF2FE30010580A /* TransparentScrollerSlotRight.tif */; }; + CA405AE30EBF2FE30010580A /* TransparentScrollerKnobLeft.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA405AD70EBF2FE30010580A /* TransparentScrollerKnobLeft.tif */; }; + CA405AE40EBF2FE30010580A /* TransparentScrollerKnobVerticalFill.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA405AD80EBF2FE30010580A /* TransparentScrollerKnobVerticalFill.tif */; }; + CA405AE50EBF2FE30010580A /* TransparentScrollerSlotVerticalFill.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA405AD90EBF2FE30010580A /* TransparentScrollerSlotVerticalFill.tif */; }; + CA405AE60EBF2FE30010580A /* TransparentScrollerSlotHorizontalFill.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA405ADA0EBF2FE30010580A /* TransparentScrollerSlotHorizontalFill.tif */; }; + CA405AE70EBF2FE30010580A /* TransparentScrollerKnobHorizontalFill.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA405ADB0EBF2FE30010580A /* TransparentScrollerKnobHorizontalFill.tif */; }; + CA405AE80EBF2FE30010580A /* TransparentScrollerSlotLeft.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA405ADC0EBF2FE30010580A /* TransparentScrollerSlotLeft.tif */; }; + CA405AE90EBF2FE30010580A /* TransparentScrollerSlotBottom.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA405ADD0EBF2FE30010580A /* TransparentScrollerSlotBottom.tif */; }; + CA405AEA0EBF2FE30010580A /* TransparentScrollerSlotTop.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA405ADE0EBF2FE30010580A /* TransparentScrollerSlotTop.tif */; }; + CA405AEB0EBF2FE30010580A /* TransparentScrollerKnobTop.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA405ADF0EBF2FE30010580A /* TransparentScrollerKnobTop.tif */; }; + CA4070B70E0B66C300B56AB7 /* ToolbarItemColors.tiff in Resources */ = {isa = PBXBuildFile; fileRef = CA4070B50E0B66C200B56AB7 /* ToolbarItemColors.tiff */; }; + CA4070B80E0B66C300B56AB7 /* ToolbarItemFonts.tiff in Resources */ = {isa = PBXBuildFile; fileRef = CA4070B60E0B66C200B56AB7 /* ToolbarItemFonts.tiff */; }; + CA4070C10E0B68C300B56AB7 /* ToolbarItemColors.tiff in Resources */ = {isa = PBXBuildFile; fileRef = CA4070B50E0B66C200B56AB7 /* ToolbarItemColors.tiff */; }; + CA4070C20E0B68C300B56AB7 /* ToolbarItemFonts.tiff in Resources */ = {isa = PBXBuildFile; fileRef = CA4070B60E0B66C200B56AB7 /* ToolbarItemFonts.tiff */; }; + CA4071030E0B6D2100B56AB7 /* BWToolbarItemsLibrary.nib in Resources */ = {isa = PBXBuildFile; fileRef = CA4071020E0B6D2100B56AB7 /* BWToolbarItemsLibrary.nib */; }; + CA4071130E0B78E900B56AB7 /* Library-TexturedAddButton.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA4071110E0B78E900B56AB7 /* Library-TexturedAddButton.tif */; }; + CA4071140E0B78E900B56AB7 /* Library-TexturedRemoveButton.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA4071120E0B78E900B56AB7 /* Library-TexturedRemoveButton.tif */; }; + CA4071390E0B985300B56AB7 /* BWUnanchoredButton.h in Headers */ = {isa = PBXBuildFile; fileRef = CA4071370E0B985300B56AB7 /* BWUnanchoredButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA40713A0E0B985300B56AB7 /* BWUnanchoredButton.m in Sources */ = {isa = PBXBuildFile; fileRef = CA4071380E0B985300B56AB7 /* BWUnanchoredButton.m */; }; + CA40713D0E0B986000B56AB7 /* BWUnanchoredButtonCell.h in Headers */ = {isa = PBXBuildFile; fileRef = CA40713B0E0B986000B56AB7 /* BWUnanchoredButtonCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA40713E0E0B986000B56AB7 /* BWUnanchoredButtonCell.m in Sources */ = {isa = PBXBuildFile; fileRef = CA40713C0E0B986000B56AB7 /* BWUnanchoredButtonCell.m */; }; + CA40716A0E0DB7CA00B56AB7 /* BWUnanchoredButtonIntegration.m in Sources */ = {isa = PBXBuildFile; fileRef = CA4071690E0DB7CA00B56AB7 /* BWUnanchoredButtonIntegration.m */; }; + CA4071CD0E0ED32300B56AB7 /* BWUnanchoredButtonContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = CA4071CB0E0ED32300B56AB7 /* BWUnanchoredButtonContainer.h */; }; + CA4071CE0E0ED32300B56AB7 /* BWUnanchoredButtonContainer.m in Sources */ = {isa = PBXBuildFile; fileRef = CA4071CC0E0ED32300B56AB7 /* BWUnanchoredButtonContainer.m */; }; + CA4071D00E0ED67100B56AB7 /* BWUnanchoredButtonContainerIntegration.m in Sources */ = {isa = PBXBuildFile; fileRef = CA4071CF0E0ED67100B56AB7 /* BWUnanchoredButtonContainerIntegration.m */; }; + CA4A50DB0E1DC7AB00BC7395 /* BWSheetController.h in Headers */ = {isa = PBXBuildFile; fileRef = CA4A50D90E1DC7AB00BC7395 /* BWSheetController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA4A50DC0E1DC7AB00BC7395 /* BWSheetController.m in Sources */ = {isa = PBXBuildFile; fileRef = CA4A50DA0E1DC7AB00BC7395 /* BWSheetController.m */; }; + CA4A50DE0E1DCB9E00BC7395 /* BWSheetController.classdescription in Resources */ = {isa = PBXBuildFile; fileRef = CA4A50DD0E1DCB5A00BC7395 /* BWSheetController.classdescription */; }; + CA4A51E30E1EC6B700BC7395 /* Library-SheetController.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA4A51E20E1EC6B700BC7395 /* Library-SheetController.tif */; }; + CA4A52070E1EE3CC00BC7395 /* BWControllersLibrary.nib in Resources */ = {isa = PBXBuildFile; fileRef = CA4A52060E1EE3CC00BC7395 /* BWControllersLibrary.nib */; }; + CA4A52150E1EECEB00BC7395 /* BWSheetControllerIntegration.m in Sources */ = {isa = PBXBuildFile; fileRef = CA4A52140E1EECEB00BC7395 /* BWSheetControllerIntegration.m */; }; + CA4A524B0E1EF21500BC7395 /* Library-SheetController.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA4A51E20E1EC6B700BC7395 /* Library-SheetController.tif */; }; + CA4A53B20E2033E800BC7395 /* BWTransparentTableViewIntegration.m in Sources */ = {isa = PBXBuildFile; fileRef = CA4A53B10E2033E800BC7395 /* BWTransparentTableViewIntegration.m */; }; + CA4A54780E2190A000BC7395 /* Library-TransparentTableView.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA4A54760E2190A000BC7395 /* Library-TransparentTableView.tif */; }; + CA4A54790E2190A000BC7395 /* Library-TransparentCheckboxCell.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA4A54770E2190A000BC7395 /* Library-TransparentCheckboxCell.tif */; }; + CA5101040E7851010014AEF1 /* BWToolkitFramework.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = 53DF68FD067E5B5A0090B5B0 /* BWToolkitFramework.framework */; }; + CA6124080F05F88500A3B5AC /* Inspector-SplitViewBackground.tiff in Resources */ = {isa = PBXBuildFile; fileRef = CA6124070F05F88500A3B5AC /* Inspector-SplitViewBackground.tiff */; }; + CA6124150F060E8500A3B5AC /* BWSplitViewInspectorAutosizingButtonCell.m in Sources */ = {isa = PBXBuildFile; fileRef = CA6124140F060E8500A3B5AC /* BWSplitViewInspectorAutosizingButtonCell.m */; }; + CA61245B0F06177500A3B5AC /* Inspector-SplitViewArrowBlueLeft.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA6124570F06177500A3B5AC /* Inspector-SplitViewArrowBlueLeft.tif */; }; + CA61245D0F06177500A3B5AC /* Inspector-SplitViewArrowBlueRight.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA6124590F06177500A3B5AC /* Inspector-SplitViewArrowBlueRight.tif */; }; + CA61247C0F061DA900A3B5AC /* Inspector-SplitViewArrowRedFill.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA6124790F061DA900A3B5AC /* Inspector-SplitViewArrowRedFill.tif */; }; + CA61247D0F061DA900A3B5AC /* Inspector-SplitViewArrowRedRight.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA61247A0F061DA900A3B5AC /* Inspector-SplitViewArrowRedRight.tif */; }; + CA61247E0F061DA900A3B5AC /* Inspector-SplitViewArrowRedLeft.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA61247B0F061DA900A3B5AC /* Inspector-SplitViewArrowRedLeft.tif */; }; + CA6124D60F062E7500A3B5AC /* BWSplitViewInspectorAutosizingView.m in Sources */ = {isa = PBXBuildFile; fileRef = CA6124D50F062E7500A3B5AC /* BWSplitViewInspectorAutosizingView.m */; }; + CA6309C00DC7EB5E00AD7F9E /* BWTexturedSlider.classdescription in Resources */ = {isa = PBXBuildFile; fileRef = CA6309AD0DC7EB5E00AD7F9E /* BWTexturedSlider.classdescription */; }; + CA6309C10DC7EB5E00AD7F9E /* BWTexturedSliderCell.classdescription in Resources */ = {isa = PBXBuildFile; fileRef = CA6309AE0DC7EB5E00AD7F9E /* BWTexturedSliderCell.classdescription */; }; + CA6309C20DC7EB5E00AD7F9E /* BWTransparentButton.classdescription in Resources */ = {isa = PBXBuildFile; fileRef = CA6309AF0DC7EB5E00AD7F9E /* BWTransparentButton.classdescription */; }; + CA6309C30DC7EB5E00AD7F9E /* BWTransparentButtonCell.classdescription in Resources */ = {isa = PBXBuildFile; fileRef = CA6309B00DC7EB5E00AD7F9E /* BWTransparentButtonCell.classdescription */; }; + CA6309C40DC7EB5E00AD7F9E /* BWTransparentCheckbox.classdescription in Resources */ = {isa = PBXBuildFile; fileRef = CA6309B10DC7EB5E00AD7F9E /* BWTransparentCheckbox.classdescription */; }; + CA6309C50DC7EB5E00AD7F9E /* BWTransparentCheckboxCell.classdescription in Resources */ = {isa = PBXBuildFile; fileRef = CA6309B20DC7EB5E00AD7F9E /* BWTransparentCheckboxCell.classdescription */; }; + CA6309C60DC7EB5E00AD7F9E /* BWTransparentPopUpButton.classdescription in Resources */ = {isa = PBXBuildFile; fileRef = CA6309B30DC7EB5E00AD7F9E /* BWTransparentPopUpButton.classdescription */; }; + CA6309C70DC7EB5E00AD7F9E /* BWTransparentPopUpButtonCell.classdescription in Resources */ = {isa = PBXBuildFile; fileRef = CA6309B40DC7EB5E00AD7F9E /* BWTransparentPopUpButtonCell.classdescription */; }; + CA6309C80DC7EB5E00AD7F9E /* BWTransparentSlider.classdescription in Resources */ = {isa = PBXBuildFile; fileRef = CA6309B50DC7EB5E00AD7F9E /* BWTransparentSlider.classdescription */; }; + CA6309C90DC7EB5E00AD7F9E /* BWTransparentSliderCell.classdescription in Resources */ = {isa = PBXBuildFile; fileRef = CA6309B60DC7EB5E00AD7F9E /* BWTransparentSliderCell.classdescription */; }; + CA6309CA0DC7EB5E00AD7F9E /* BWSplitView.classdescription in Resources */ = {isa = PBXBuildFile; fileRef = CA6309B70DC7EB5E00AD7F9E /* BWSplitView.classdescription */; }; + CA6309CB0DC7EB5E00AD7F9E /* BWInsetTextField.classdescription in Resources */ = {isa = PBXBuildFile; fileRef = CA6309B80DC7EB5E00AD7F9E /* BWInsetTextField.classdescription */; }; + CA6309CD0DC7EB5E00AD7F9E /* BWAddRegularBottomBar.classdescription in Resources */ = {isa = PBXBuildFile; fileRef = CA6309BA0DC7EB5E00AD7F9E /* BWAddRegularBottomBar.classdescription */; }; + CA6309CE0DC7EB5E00AD7F9E /* BWRemoveBottomBar.classdescription in Resources */ = {isa = PBXBuildFile; fileRef = CA6309BB0DC7EB5E00AD7F9E /* BWRemoveBottomBar.classdescription */; }; + CA6309CF0DC7EB5E00AD7F9E /* BWToolbarShowColorsItem.classdescription in Resources */ = {isa = PBXBuildFile; fileRef = CA6309BC0DC7EB5E00AD7F9E /* BWToolbarShowColorsItem.classdescription */; }; + CA6309D00DC7EB5E00AD7F9E /* BWToolbarShowFontsItem.classdescription in Resources */ = {isa = PBXBuildFile; fileRef = CA6309BD0DC7EB5E00AD7F9E /* BWToolbarShowFontsItem.classdescription */; }; + CA6309D10DC7EB5E00AD7F9E /* BWSelectableToolbar.classdescription in Resources */ = {isa = PBXBuildFile; fileRef = CA6309BE0DC7EB5E00AD7F9E /* BWSelectableToolbar.classdescription */; }; + CA6309E30DC7F2EE00AD7F9E /* BWTexturedSliderInspector.m in Sources */ = {isa = PBXBuildFile; fileRef = CA6309E00DC7F2EE00AD7F9E /* BWTexturedSliderInspector.m */; }; + CA6309E40DC7F2EE00AD7F9E /* BWSelectableToolbarInspector.m in Sources */ = {isa = PBXBuildFile; fileRef = CA6309E20DC7F2EE00AD7F9E /* BWSelectableToolbarInspector.m */; }; + CA6309EE0DC7F39600AD7F9E /* BWSelectableToolbarIntegration.m in Sources */ = {isa = PBXBuildFile; fileRef = CA6309E90DC7F39600AD7F9E /* BWSelectableToolbarIntegration.m */; }; + CA6309EF0DC7F39600AD7F9E /* BWTransparentButtonIntegration.m in Sources */ = {isa = PBXBuildFile; fileRef = CA6309EA0DC7F39600AD7F9E /* BWTransparentButtonIntegration.m */; }; + CA6309F00DC7F39600AD7F9E /* BWTransparentCheckboxIntegration.m in Sources */ = {isa = PBXBuildFile; fileRef = CA6309EB0DC7F39600AD7F9E /* BWTransparentCheckboxIntegration.m */; }; + CA6309F10DC7F39600AD7F9E /* BWTransparentPopUpButtonIntegration.m in Sources */ = {isa = PBXBuildFile; fileRef = CA6309EC0DC7F39600AD7F9E /* BWTransparentPopUpButtonIntegration.m */; }; + CA630A500DC7F59300AD7F9E /* Library-TexturedSlider.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA630A4D0DC7F59300AD7F9E /* Library-TexturedSlider.tif */; }; + CA630A510DC7F59300AD7F9E /* Library-InsetTextField.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA630A4E0DC7F59300AD7F9E /* Library-InsetTextField.tif */; }; + CA630A5F0DC7F63C00AD7F9E /* BWToolkitLibrary.nib in Resources */ = {isa = PBXBuildFile; fileRef = CA630A590DC7F63B00AD7F9E /* BWToolkitLibrary.nib */; }; + CA630A600DC7F63C00AD7F9E /* BWTransparentControlsLibrary.nib in Resources */ = {isa = PBXBuildFile; fileRef = CA630A5B0DC7F63B00AD7F9E /* BWTransparentControlsLibrary.nib */; }; + CA630A620DC7F63C00AD7F9E /* BWSelectableToolbarInspector.nib in Resources */ = {isa = PBXBuildFile; fileRef = CA630A5E0DC7F63C00AD7F9E /* BWSelectableToolbarInspector.nib */; }; + CA630A6F0DC7F6FC00AD7F9E /* TexturedSliderTrackRight.tiff in Resources */ = {isa = PBXBuildFile; fileRef = CA630A680DC7F6FC00AD7F9E /* TexturedSliderTrackRight.tiff */; }; + CA630A700DC7F6FC00AD7F9E /* TexturedSliderTrackFill.tiff in Resources */ = {isa = PBXBuildFile; fileRef = CA630A690DC7F6FC00AD7F9E /* TexturedSliderTrackFill.tiff */; }; + CA630A710DC7F6FC00AD7F9E /* TexturedSliderTrackLeft.tiff in Resources */ = {isa = PBXBuildFile; fileRef = CA630A6A0DC7F6FC00AD7F9E /* TexturedSliderTrackLeft.tiff */; }; + CA630A720DC7F6FC00AD7F9E /* TexturedSliderThumbP.tiff in Resources */ = {isa = PBXBuildFile; fileRef = CA630A6B0DC7F6FC00AD7F9E /* TexturedSliderThumbP.tiff */; }; + CA630A730DC7F6FC00AD7F9E /* TexturedSliderThumbN.tiff in Resources */ = {isa = PBXBuildFile; fileRef = CA630A6C0DC7F6FC00AD7F9E /* TexturedSliderThumbN.tiff */; }; + CA630A780DC7F74400AD7F9E /* GradientSplitViewDimpleBitmap.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA630A760DC7F74400AD7F9E /* GradientSplitViewDimpleBitmap.tif */; }; + CA630A790DC7F74400AD7F9E /* GradientSplitViewDimpleVector.pdf in Resources */ = {isa = PBXBuildFile; fileRef = CA630A770DC7F74400AD7F9E /* GradientSplitViewDimpleVector.pdf */; }; + CA630A880DC7F83A00AD7F9E /* TransparentSliderThumbP.tiff in Resources */ = {isa = PBXBuildFile; fileRef = CA630A830DC7F83A00AD7F9E /* TransparentSliderThumbP.tiff */; }; + CA630A890DC7F83A00AD7F9E /* TransparentSliderThumbN.tiff in Resources */ = {isa = PBXBuildFile; fileRef = CA630A840DC7F83A00AD7F9E /* TransparentSliderThumbN.tiff */; }; + CA630A8A0DC7F83A00AD7F9E /* TransparentSliderTrackFill.tiff in Resources */ = {isa = PBXBuildFile; fileRef = CA630A850DC7F83A00AD7F9E /* TransparentSliderTrackFill.tiff */; }; + CA630A8B0DC7F83A00AD7F9E /* TransparentSliderTrackLeft.tiff in Resources */ = {isa = PBXBuildFile; fileRef = CA630A860DC7F83A00AD7F9E /* TransparentSliderTrackLeft.tiff */; }; + CA630A8C0DC7F83A00AD7F9E /* TransparentSliderTrackRight.tiff in Resources */ = {isa = PBXBuildFile; fileRef = CA630A870DC7F83A00AD7F9E /* TransparentSliderTrackRight.tiff */; }; + CA630A930DC7F84700AD7F9E /* TransparentButtonRightN.tiff in Resources */ = {isa = PBXBuildFile; fileRef = CA630A8D0DC7F84700AD7F9E /* TransparentButtonRightN.tiff */; }; + CA630A940DC7F84700AD7F9E /* TransparentButtonFillN.tiff in Resources */ = {isa = PBXBuildFile; fileRef = CA630A8E0DC7F84700AD7F9E /* TransparentButtonFillN.tiff */; }; + CA630A950DC7F84700AD7F9E /* TransparentButtonLeftN.tiff in Resources */ = {isa = PBXBuildFile; fileRef = CA630A8F0DC7F84700AD7F9E /* TransparentButtonLeftN.tiff */; }; + CA630A960DC7F84700AD7F9E /* TransparentButtonRightP.tiff in Resources */ = {isa = PBXBuildFile; fileRef = CA630A900DC7F84700AD7F9E /* TransparentButtonRightP.tiff */; }; + CA630A970DC7F84700AD7F9E /* TransparentButtonFillP.tiff in Resources */ = {isa = PBXBuildFile; fileRef = CA630A910DC7F84700AD7F9E /* TransparentButtonFillP.tiff */; }; + CA630A980DC7F84700AD7F9E /* TransparentButtonLeftP.tiff in Resources */ = {isa = PBXBuildFile; fileRef = CA630A920DC7F84700AD7F9E /* TransparentButtonLeftP.tiff */; }; + CA630A9D0DC7F87B00AD7F9E /* TransparentCheckboxOffN.tiff in Resources */ = {isa = PBXBuildFile; fileRef = CA630A990DC7F87B00AD7F9E /* TransparentCheckboxOffN.tiff */; }; + CA630A9E0DC7F87B00AD7F9E /* TransparentCheckboxOffP.tiff in Resources */ = {isa = PBXBuildFile; fileRef = CA630A9A0DC7F87B00AD7F9E /* TransparentCheckboxOffP.tiff */; }; + CA630A9F0DC7F87B00AD7F9E /* TransparentCheckboxOnN.tiff in Resources */ = {isa = PBXBuildFile; fileRef = CA630A9B0DC7F87B00AD7F9E /* TransparentCheckboxOnN.tiff */; }; + CA630AA00DC7F87B00AD7F9E /* TransparentCheckboxOnP.tiff in Resources */ = {isa = PBXBuildFile; fileRef = CA630A9C0DC7F87B00AD7F9E /* TransparentCheckboxOnP.tiff */; }; + CA630AA70DC7F88A00AD7F9E /* TransparentPopUpFillN.tiff in Resources */ = {isa = PBXBuildFile; fileRef = CA630AA10DC7F88A00AD7F9E /* TransparentPopUpFillN.tiff */; }; + CA630AA80DC7F88A00AD7F9E /* TransparentPopUpFillP.tiff in Resources */ = {isa = PBXBuildFile; fileRef = CA630AA20DC7F88A00AD7F9E /* TransparentPopUpFillP.tiff */; }; + CA630AA90DC7F88A00AD7F9E /* TransparentPopUpLeftN.tiff in Resources */ = {isa = PBXBuildFile; fileRef = CA630AA30DC7F88A00AD7F9E /* TransparentPopUpLeftN.tiff */; }; + CA630AAA0DC7F88A00AD7F9E /* TransparentPopUpLeftP.tiff in Resources */ = {isa = PBXBuildFile; fileRef = CA630AA40DC7F88A00AD7F9E /* TransparentPopUpLeftP.tiff */; }; + CA630AAB0DC7F88A00AD7F9E /* TransparentPopUpRightN.tiff in Resources */ = {isa = PBXBuildFile; fileRef = CA630AA50DC7F88A00AD7F9E /* TransparentPopUpRightN.tiff */; }; + CA630AAC0DC7F88A00AD7F9E /* TransparentPopUpRightP.tiff in Resources */ = {isa = PBXBuildFile; fileRef = CA630AA60DC7F88A00AD7F9E /* TransparentPopUpRightP.tiff */; }; + CA630AE40DC7FB6300AD7F9E /* BWToolbarShowColorsItem.h in Headers */ = {isa = PBXBuildFile; fileRef = CA630AE00DC7FB6300AD7F9E /* BWToolbarShowColorsItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA630AE50DC7FB6300AD7F9E /* BWToolbarShowColorsItem.m in Sources */ = {isa = PBXBuildFile; fileRef = CA630AE10DC7FB6300AD7F9E /* BWToolbarShowColorsItem.m */; }; + CA630AE60DC7FB6300AD7F9E /* BWToolbarShowFontsItem.h in Headers */ = {isa = PBXBuildFile; fileRef = CA630AE20DC7FB6300AD7F9E /* BWToolbarShowFontsItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA630AE70DC7FB6300AD7F9E /* BWToolbarShowFontsItem.m in Sources */ = {isa = PBXBuildFile; fileRef = CA630AE30DC7FB6300AD7F9E /* BWToolbarShowFontsItem.m */; }; + CA630AEB0DC7FC3400AD7F9E /* BWSelectableToolbar.m in Sources */ = {isa = PBXBuildFile; fileRef = CA630AE90DC7FC3400AD7F9E /* BWSelectableToolbar.m */; }; + CA630AF00DC7FF0800AD7F9E /* BWAddRegularBottomBar.h in Headers */ = {isa = PBXBuildFile; fileRef = CA630AEC0DC7FF0800AD7F9E /* BWAddRegularBottomBar.h */; }; + CA630AF10DC7FF0800AD7F9E /* BWAddRegularBottomBar.m in Sources */ = {isa = PBXBuildFile; fileRef = CA630AED0DC7FF0800AD7F9E /* BWAddRegularBottomBar.m */; }; + CA630AF20DC7FF0800AD7F9E /* BWRemoveBottomBar.h in Headers */ = {isa = PBXBuildFile; fileRef = CA630AEE0DC7FF0800AD7F9E /* BWRemoveBottomBar.h */; }; + CA630AF30DC7FF0800AD7F9E /* BWRemoveBottomBar.m in Sources */ = {isa = PBXBuildFile; fileRef = CA630AEF0DC7FF0800AD7F9E /* BWRemoveBottomBar.m */; }; + CA630AF60DC8002200AD7F9E /* BWInsetTextField.h in Headers */ = {isa = PBXBuildFile; fileRef = CA630AF40DC8002200AD7F9E /* BWInsetTextField.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA630AF70DC8002200AD7F9E /* BWInsetTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = CA630AF50DC8002200AD7F9E /* BWInsetTextField.m */; }; + CA630B0A0DC8004A00AD7F9E /* BWTransparentButton.h in Headers */ = {isa = PBXBuildFile; fileRef = CA630AF80DC8004A00AD7F9E /* BWTransparentButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA630B0B0DC8004A00AD7F9E /* BWTransparentButton.m in Sources */ = {isa = PBXBuildFile; fileRef = CA630AF90DC8004A00AD7F9E /* BWTransparentButton.m */; }; + CA630B0C0DC8004A00AD7F9E /* BWTransparentButtonCell.h in Headers */ = {isa = PBXBuildFile; fileRef = CA630AFA0DC8004A00AD7F9E /* BWTransparentButtonCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA630B0D0DC8004A00AD7F9E /* BWTransparentButtonCell.m in Sources */ = {isa = PBXBuildFile; fileRef = CA630AFB0DC8004A00AD7F9E /* BWTransparentButtonCell.m */; }; + CA630B0E0DC8004A00AD7F9E /* BWTransparentCheckbox.h in Headers */ = {isa = PBXBuildFile; fileRef = CA630AFC0DC8004A00AD7F9E /* BWTransparentCheckbox.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA630B0F0DC8004A00AD7F9E /* BWTransparentCheckbox.m in Sources */ = {isa = PBXBuildFile; fileRef = CA630AFD0DC8004A00AD7F9E /* BWTransparentCheckbox.m */; }; + CA630B100DC8004A00AD7F9E /* BWTransparentCheckboxCell.h in Headers */ = {isa = PBXBuildFile; fileRef = CA630AFE0DC8004A00AD7F9E /* BWTransparentCheckboxCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA630B110DC8004A00AD7F9E /* BWTransparentCheckboxCell.m in Sources */ = {isa = PBXBuildFile; fileRef = CA630AFF0DC8004A00AD7F9E /* BWTransparentCheckboxCell.m */; }; + CA630B120DC8004A00AD7F9E /* BWTransparentPopUpButton.h in Headers */ = {isa = PBXBuildFile; fileRef = CA630B000DC8004A00AD7F9E /* BWTransparentPopUpButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA630B130DC8004A00AD7F9E /* BWTransparentPopUpButton.m in Sources */ = {isa = PBXBuildFile; fileRef = CA630B010DC8004A00AD7F9E /* BWTransparentPopUpButton.m */; }; + CA630B140DC8004A00AD7F9E /* BWTransparentPopUpButtonCell.h in Headers */ = {isa = PBXBuildFile; fileRef = CA630B020DC8004A00AD7F9E /* BWTransparentPopUpButtonCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA630B150DC8004A00AD7F9E /* BWTransparentPopUpButtonCell.m in Sources */ = {isa = PBXBuildFile; fileRef = CA630B030DC8004A00AD7F9E /* BWTransparentPopUpButtonCell.m */; }; + CA630B160DC8004A00AD7F9E /* BWTransparentSlider.h in Headers */ = {isa = PBXBuildFile; fileRef = CA630B040DC8004A00AD7F9E /* BWTransparentSlider.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA630B170DC8004A00AD7F9E /* BWTransparentSlider.m in Sources */ = {isa = PBXBuildFile; fileRef = CA630B050DC8004A00AD7F9E /* BWTransparentSlider.m */; }; + CA630B180DC8004A00AD7F9E /* BWTransparentSliderCell.h in Headers */ = {isa = PBXBuildFile; fileRef = CA630B060DC8004A00AD7F9E /* BWTransparentSliderCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA630B190DC8004A00AD7F9E /* BWTransparentSliderCell.m in Sources */ = {isa = PBXBuildFile; fileRef = CA630B070DC8004A00AD7F9E /* BWTransparentSliderCell.m */; }; + CA630B1E0DC82DD600AD7F9E /* BWSplitView.h in Headers */ = {isa = PBXBuildFile; fileRef = CA630B1C0DC82DD600AD7F9E /* BWSplitView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA630B1F0DC82DD600AD7F9E /* BWSplitView.m in Sources */ = {isa = PBXBuildFile; fileRef = CA630B1D0DC82DD600AD7F9E /* BWSplitView.m */; }; + CA630B260DC82E2100AD7F9E /* BWTexturedSlider.h in Headers */ = {isa = PBXBuildFile; fileRef = CA630B220DC82E2100AD7F9E /* BWTexturedSlider.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA630B270DC82E2100AD7F9E /* BWTexturedSlider.m in Sources */ = {isa = PBXBuildFile; fileRef = CA630B230DC82E2100AD7F9E /* BWTexturedSlider.m */; }; + CA630B280DC82E2100AD7F9E /* BWTexturedSliderCell.h in Headers */ = {isa = PBXBuildFile; fileRef = CA630B240DC82E2100AD7F9E /* BWTexturedSliderCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA630B290DC82E2100AD7F9E /* BWTexturedSliderCell.m in Sources */ = {isa = PBXBuildFile; fileRef = CA630B250DC82E2100AD7F9E /* BWTexturedSliderCell.m */; }; + CA630CB90DC83EB700AD7F9E /* BWTransparentSliderIntegration.m in Sources */ = {isa = PBXBuildFile; fileRef = CA630CB80DC83EB700AD7F9E /* BWTransparentSliderIntegration.m */; }; + CA630CFA0DC843DD00AD7F9E /* BWAddSmallBottomBar.h in Headers */ = {isa = PBXBuildFile; fileRef = CA630CF80DC843DD00AD7F9E /* BWAddSmallBottomBar.h */; }; + CA630CFB0DC843DD00AD7F9E /* BWAddSmallBottomBar.m in Sources */ = {isa = PBXBuildFile; fileRef = CA630CF90DC843DD00AD7F9E /* BWAddSmallBottomBar.m */; }; + CA66C0F60EF79AC0005EE9A5 /* NSString+BWAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CA66C0F40EF79AC0005EE9A5 /* NSString+BWAdditions.m */; }; + CA66C0F70EF79AC0005EE9A5 /* NSString+BWAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = CA66C0F50EF79AC0005EE9A5 /* NSString+BWAdditions.h */; }; + CA685D7D0E6639680003D937 /* BWSplitViewInspector.xib in Resources */ = {isa = PBXBuildFile; fileRef = CA685D7C0E6639680003D937 /* BWSplitViewInspector.xib */; }; + CA685D840E663E4D0003D937 /* BWSplitViewInspector.m in Sources */ = {isa = PBXBuildFile; fileRef = CA685D830E663E4D0003D937 /* BWSplitViewInspector.m */; }; + CA685D8C0E6646000003D937 /* BWSplitViewIntegration.m in Sources */ = {isa = PBXBuildFile; fileRef = CA685D8B0E6646000003D937 /* BWSplitViewIntegration.m */; }; + CA685E860E669FCA0003D937 /* Library-VerticalSplitView.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA685E840E669FCA0003D937 /* Library-VerticalSplitView.tif */; }; + CA685E870E669FCA0003D937 /* Library-HorizontalSplitView.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA685E850E669FCA0003D937 /* Library-HorizontalSplitView.tif */; }; + CA685E8A0E66A03A0003D937 /* BWSplitViewLibrary.nib in Resources */ = {isa = PBXBuildFile; fileRef = CA685E890E66A03A0003D937 /* BWSplitViewLibrary.nib */; }; + CA685EFF0E68C6CB0003D937 /* BWAddMiniBottomBar.h in Headers */ = {isa = PBXBuildFile; fileRef = CA685EFD0E68C6CB0003D937 /* BWAddMiniBottomBar.h */; }; + CA685F000E68C6CB0003D937 /* BWAddMiniBottomBar.m in Sources */ = {isa = PBXBuildFile; fileRef = CA685EFE0E68C6CB0003D937 /* BWAddMiniBottomBar.m */; }; + CA685F210E68C8290003D937 /* BWAddSheetBottomBar.h in Headers */ = {isa = PBXBuildFile; fileRef = CA685F1F0E68C8290003D937 /* BWAddSheetBottomBar.h */; }; + CA685F220E68C8290003D937 /* BWAddSheetBottomBar.m in Sources */ = {isa = PBXBuildFile; fileRef = CA685F200E68C8290003D937 /* BWAddSheetBottomBar.m */; }; + CA685F2E0E690EE50003D937 /* BWAddMiniBottomBarIntegration.m in Sources */ = {isa = PBXBuildFile; fileRef = CA685F2D0E690EE50003D937 /* BWAddMiniBottomBarIntegration.m */; }; + CA685F300E690FB80003D937 /* BWAddSheetBottomBarIntegration.m in Sources */ = {isa = PBXBuildFile; fileRef = CA685F2F0E690FB80003D937 /* BWAddSheetBottomBarIntegration.m */; }; + CA685F320E69556F0003D937 /* BWAddMiniBottomBar.classdescription in Resources */ = {isa = PBXBuildFile; fileRef = CA685F310E6955650003D937 /* BWAddMiniBottomBar.classdescription */; }; + CA6860180E6A13B00003D937 /* Library-AddMiniBottomBar.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA6860170E6A13B00003D937 /* Library-AddMiniBottomBar.tif */; }; + CA6860440E6A26180003D937 /* Library-AddSheetBottomBar.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA6860430E6A26180003D937 /* Library-AddSheetBottomBar.tif */; }; + CA875ADA0DD165A500764511 /* NSColor+BWAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = CA875AD80DD165A500764511 /* NSColor+BWAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA875ADB0DD165A500764511 /* NSColor+BWAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CA875AD90DD165A500764511 /* NSColor+BWAdditions.m */; }; + CA875CC70DD7EA3900764511 /* NSImage+BWAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = CA875CC50DD7EA3900764511 /* NSImage+BWAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA875CC80DD7EA3900764511 /* NSImage+BWAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CA875CC60DD7EA3900764511 /* NSImage+BWAdditions.m */; }; + CA944DDA0DDF800D00F103BC /* NSWindow+BWAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = CA944DD80DDF800D00F103BC /* NSWindow+BWAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA944DDB0DDF800D00F103BC /* NSWindow+BWAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CA944DD90DDF800D00F103BC /* NSWindow+BWAdditions.m */; }; + CA944E3A0DDFE32A00F103BC /* Library-ShowFonts.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA944E360DDFE32A00F103BC /* Library-ShowFonts.tif */; }; + CA944E3B0DDFE32A00F103BC /* Library-GradientSplitView.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA944E370DDFE32A00F103BC /* Library-GradientSplitView.tif */; }; + CA944E3C0DDFE32A00F103BC /* Library-ShowColors.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA944E380DDFE32A00F103BC /* Library-ShowColors.tif */; }; + CA944E3D0DDFE32A00F103BC /* Library-TransparentButton.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA944E390DDFE32A00F103BC /* Library-TransparentButton.tif */; }; + CA944E450DDFE50200F103BC /* Library-TransparentSlider.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA944E410DDFE50200F103BC /* Library-TransparentSlider.tif */; }; + CA944E460DDFE50200F103BC /* Library-TransparentCheckbox.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA944E420DDFE50200F103BC /* Library-TransparentCheckbox.tif */; }; + CA944E470DDFE50200F103BC /* Library-TransparentPopUpButton.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA944E430DDFE50200F103BC /* Library-TransparentPopUpButton.tif */; }; + CA944E480DDFE50200F103BC /* Library-TransparentLabel.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA944E440DDFE50200F103BC /* Library-TransparentLabel.tif */; }; + CA944E990DDFF53000F103BC /* Library-AnchoredButton.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA944E970DDFF53000F103BC /* Library-AnchoredButton.tif */; }; + CA944E9A0DDFF53000F103BC /* Library-AnchoredPopUpButton.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA944E980DDFF53000F103BC /* Library-AnchoredPopUpButton.tif */; }; + CA944F080DE00CC000F103BC /* NSView+BWAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = CA944F060DE00CC000F103BC /* NSView+BWAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA944F090DE00CC000F103BC /* NSView+BWAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CA944F070DE00CC000F103BC /* NSView+BWAdditions.m */; }; + CA944F920DE01F8100F103BC /* Library-AnchoredButtonBar.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA944F910DE01F8100F103BC /* Library-AnchoredButtonBar.tif */; }; + CA94506E0DE0D9F600F103BC /* Library-AddSmallBottomBar.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA94506D0DE0D9F600F103BC /* Library-AddSmallBottomBar.tif */; }; + CA9450810DE0DE7F00F103BC /* Library-AddRegularBottomBar.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA94507F0DE0DE7F00F103BC /* Library-AddRegularBottomBar.tif */; }; + CA9450820DE0DE7F00F103BC /* Library-RemoveBottomBar.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA9450800DE0DE7F00F103BC /* Library-RemoveBottomBar.tif */; }; + CA9450890DE0E6BA00F103BC /* BWAddSmallBottomBar.classdescription in Resources */ = {isa = PBXBuildFile; fileRef = CA9450880DE0E6BA00F103BC /* BWAddSmallBottomBar.classdescription */; }; + CA9451040DE13E4400F103BC /* BWBottomBarLibrary.nib in Resources */ = {isa = PBXBuildFile; fileRef = CA9451030DE13E4400F103BC /* BWBottomBarLibrary.nib */; }; + CA9451190DE1449000F103BC /* BWRemoveBottomBarIntegration.m in Sources */ = {isa = PBXBuildFile; fileRef = CA9451180DE1449000F103BC /* BWRemoveBottomBarIntegration.m */; }; + CA9451570DE14DE600F103BC /* BWAddRegularBottomBarIntegration.m in Sources */ = {isa = PBXBuildFile; fileRef = CA9451560DE14DE600F103BC /* BWAddRegularBottomBarIntegration.m */; }; + CA9451700DE154CF00F103BC /* BWAddSmallBottomBarIntegration.m in Sources */ = {isa = PBXBuildFile; fileRef = CA94516F0DE154CF00F103BC /* BWAddSmallBottomBarIntegration.m */; }; + CA94518B0DE15A6C00F103BC /* BWTransparentTableView.h in Headers */ = {isa = PBXBuildFile; fileRef = CA9451890DE15A6C00F103BC /* BWTransparentTableView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA94518C0DE15A6C00F103BC /* BWTransparentTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = CA94518A0DE15A6C00F103BC /* BWTransparentTableView.m */; }; + CA9451D10DE1656300F103BC /* BWTransparentTableView.classdescription in Resources */ = {isa = PBXBuildFile; fileRef = CA94518E0DE15C4F00F103BC /* BWTransparentTableView.classdescription */; }; + CA9451E80DE1690500F103BC /* BWTransparentTableViewCell.h in Headers */ = {isa = PBXBuildFile; fileRef = CA9451E60DE1690500F103BC /* BWTransparentTableViewCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA9451E90DE1690500F103BC /* BWTransparentTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = CA9451E70DE1690500F103BC /* BWTransparentTableViewCell.m */; }; + CA9451EB0DE1692C00F103BC /* BWTransparentTableViewCell.classdescription in Resources */ = {isa = PBXBuildFile; fileRef = CA9451EA0DE1692100F103BC /* BWTransparentTableViewCell.classdescription */; }; + CA94521C0DE17A1A00F103BC /* TransparentSliderTriangleThumbN.tiff in Resources */ = {isa = PBXBuildFile; fileRef = CA94521A0DE17A1A00F103BC /* TransparentSliderTriangleThumbN.tiff */; }; + CA94521D0DE17A1A00F103BC /* TransparentSliderTriangleThumbP.tiff in Resources */ = {isa = PBXBuildFile; fileRef = CA94521B0DE17A1A00F103BC /* TransparentSliderTriangleThumbP.tiff */; }; + CA9453DD0DE293BC00F103BC /* BWAnchoredPopUpButton.h in Headers */ = {isa = PBXBuildFile; fileRef = CA9453DB0DE293BC00F103BC /* BWAnchoredPopUpButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA9453DE0DE293BC00F103BC /* BWAnchoredPopUpButton.m in Sources */ = {isa = PBXBuildFile; fileRef = CA9453DC0DE293BC00F103BC /* BWAnchoredPopUpButton.m */; }; + CA9453E10DE293C800F103BC /* BWAnchoredPopUpButtonCell.h in Headers */ = {isa = PBXBuildFile; fileRef = CA9453DF0DE293C800F103BC /* BWAnchoredPopUpButtonCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA9453E20DE293C800F103BC /* BWAnchoredPopUpButtonCell.m in Sources */ = {isa = PBXBuildFile; fileRef = CA9453E00DE293C800F103BC /* BWAnchoredPopUpButtonCell.m */; }; + CA94541B0DE29DF200F103BC /* BWAnchoredPopUpButtonIntegration.m in Sources */ = {isa = PBXBuildFile; fileRef = CA94541A0DE29DF200F103BC /* BWAnchoredPopUpButtonIntegration.m */; }; + CA9454200DE29F0A00F103BC /* BWAnchoredButtonBar.classdescription in Resources */ = {isa = PBXBuildFile; fileRef = CA94541C0DE29E3500F103BC /* BWAnchoredButtonBar.classdescription */; }; + CA9454210DE29F0A00F103BC /* BWAnchoredButton.classdescription in Resources */ = {isa = PBXBuildFile; fileRef = CA94541D0DE29E4600F103BC /* BWAnchoredButton.classdescription */; }; + CA9454220DE29F0A00F103BC /* BWAnchoredPopUpButton.classdescription in Resources */ = {isa = PBXBuildFile; fileRef = CA94541E0DE29E5300F103BC /* BWAnchoredPopUpButton.classdescription */; }; + CA960A500E75F88C00308367 /* BWTokenField.h in Headers */ = {isa = PBXBuildFile; fileRef = CA960A4E0E75F88C00308367 /* BWTokenField.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA960A510E75F88C00308367 /* BWTokenField.m in Sources */ = {isa = PBXBuildFile; fileRef = CA960A4F0E75F88C00308367 /* BWTokenField.m */; }; + CA960A540E75F89400308367 /* BWTokenFieldCell.h in Headers */ = {isa = PBXBuildFile; fileRef = CA960A520E75F89400308367 /* BWTokenFieldCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA960A550E75F89400308367 /* BWTokenFieldCell.m in Sources */ = {isa = PBXBuildFile; fileRef = CA960A530E75F89400308367 /* BWTokenFieldCell.m */; }; + CA960A560E75F8D800308367 /* BWTokenField.classdescription in Resources */ = {isa = PBXBuildFile; fileRef = CA960A4A0E75F84700308367 /* BWTokenField.classdescription */; }; + CA960A570E75F8DD00308367 /* BWTokenFieldCell.classdescription in Resources */ = {isa = PBXBuildFile; fileRef = CA960A4C0E75F85800308367 /* BWTokenFieldCell.classdescription */; }; + CA960A7E0E76766E00308367 /* NSTokenAttachmentCell.h in Headers */ = {isa = PBXBuildFile; fileRef = CA960A7C0E76766E00308367 /* NSTokenAttachmentCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA960A7F0E76766E00308367 /* NSTokenAttachment.h in Headers */ = {isa = PBXBuildFile; fileRef = CA960A7D0E76766E00308367 /* NSTokenAttachment.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA960AAB0E7676E000308367 /* BWTokenAttachmentCell.h in Headers */ = {isa = PBXBuildFile; fileRef = CA960AA90E7676E000308367 /* BWTokenAttachmentCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA960AAC0E7676E000308367 /* BWTokenAttachmentCell.m in Sources */ = {isa = PBXBuildFile; fileRef = CA960AAA0E7676E000308367 /* BWTokenAttachmentCell.m */; }; + CA9918340DF4DA5200FE0577 /* BWButtonBarLibrary.nib in Resources */ = {isa = PBXBuildFile; fileRef = CA9918330DF4DA5200FE0577 /* BWButtonBarLibrary.nib */; }; + CA99186C0DF51C9000FE0577 /* Inspector-ButtonBarMode1.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA9918690DF51C9000FE0577 /* Inspector-ButtonBarMode1.tif */; }; + CA99186D0DF51C9000FE0577 /* Inspector-ButtonBarMode2.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA99186A0DF51C9000FE0577 /* Inspector-ButtonBarMode2.tif */; }; + CA99186E0DF51C9000FE0577 /* Inspector-ButtonBarMode3.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA99186B0DF51C9000FE0577 /* Inspector-ButtonBarMode3.tif */; }; + CA9918860DF65E5600FE0577 /* Inspector-ButtonBarModeSelection.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA9918850DF65E5600FE0577 /* Inspector-ButtonBarModeSelection.tif */; }; + CA9919660DF9F81600FE0577 /* BWCustomView.h in Headers */ = {isa = PBXBuildFile; fileRef = CA9919640DF9F81600FE0577 /* BWCustomView.h */; }; + CA9919670DF9F81600FE0577 /* BWCustomView.m in Sources */ = {isa = PBXBuildFile; fileRef = CA9919650DF9F81600FE0577 /* BWCustomView.m */; }; + CA99198A0DFA272500FE0577 /* BWCustomViewIntegration.m in Sources */ = {isa = PBXBuildFile; fileRef = CA9919890DFA272500FE0577 /* BWCustomViewIntegration.m */; }; + CA991BD10DFA8B3D00FE0577 /* TexturedSliderPhotoSmall.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA991BCD0DFA8B3D00FE0577 /* TexturedSliderPhotoSmall.tif */; }; + CA991BD20DFA8B3D00FE0577 /* TexturedSliderPhotoLarge.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA991BCE0DFA8B3D00FE0577 /* TexturedSliderPhotoLarge.tif */; }; + CA991BD30DFA8B3D00FE0577 /* TexturedSliderSpeakerQuiet.png in Resources */ = {isa = PBXBuildFile; fileRef = CA991BCF0DFA8B3D00FE0577 /* TexturedSliderSpeakerQuiet.png */; }; + CA991BD40DFA8B3D00FE0577 /* TexturedSliderSpeakerLoud.png in Resources */ = {isa = PBXBuildFile; fileRef = CA991BD00DFA8B3D00FE0577 /* TexturedSliderSpeakerLoud.png */; }; + CA9995D90E2DE8B20001808E /* TransparentPopUpPullDownRightN.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA9995D80E2DE8B20001808E /* TransparentPopUpPullDownRightN.tif */; }; + CA9995E80E2DE9C60001808E /* TransparentPopUpPullDownRightP.tif in Resources */ = {isa = PBXBuildFile; fileRef = CA9995E70E2DE9C60001808E /* TransparentPopUpPullDownRightP.tif */; }; + CAAC333A0FE5DA5700C66575 /* NSApplication+BWAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = CAAC33380FE5DA5700C66575 /* NSApplication+BWAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CAAC333B0FE5DA5700C66575 /* NSApplication+BWAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CAAC33390FE5DA5700C66575 /* NSApplication+BWAdditions.m */; }; + CAAC34280FE8DDC100C66575 /* Library-GradientBox.tif in Resources */ = {isa = PBXBuildFile; fileRef = CAAC34180FE8DAD900C66575 /* Library-GradientBox.tif */; }; + CAAC34290FE8DDC600C66575 /* Library-StyledTextField.tif in Resources */ = {isa = PBXBuildFile; fileRef = CAAC34190FE8DAD900C66575 /* Library-StyledTextField.tif */; }; + CAB82ED40F514F39006519E3 /* NSEvent+BWAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = CAB82ED20F514F39006519E3 /* NSEvent+BWAdditions.h */; }; + CAB82ED50F514F39006519E3 /* NSEvent+BWAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CAB82ED30F514F39006519E3 /* NSEvent+BWAdditions.m */; }; + CACEBC7B0E178524003E3CB2 /* NSCustomView.h in Headers */ = {isa = PBXBuildFile; fileRef = CACEBC7A0E178524003E3CB2 /* NSCustomView.h */; }; + CAD1DFC00E19E9B5005E4CBF /* Inspector-ButtonBarMode2Pressed.tif in Resources */ = {isa = PBXBuildFile; fileRef = CAD1DFBF0E19E9B5005E4CBF /* Inspector-ButtonBarMode2Pressed.tif */; }; + CAD1E00D0E1B476C005E4CBF /* Inspector-ButtonBarMode3Pressed.tif in Resources */ = {isa = PBXBuildFile; fileRef = CAD1E00C0E1B476C005E4CBF /* Inspector-ButtonBarMode3Pressed.tif */; }; + CAD1E0130E1B4C2C005E4CBF /* Inspector-ButtonBarMode1Pressed.tif in Resources */ = {isa = PBXBuildFile; fileRef = CAD1E0120E1B4C2C005E4CBF /* Inspector-ButtonBarMode1Pressed.tif */; }; + CAD1E0190E1B7425005E4CBF /* Library-SelectableToolbar.tif in Resources */ = {isa = PBXBuildFile; fileRef = CAD1E0180E1B7425005E4CBF /* Library-SelectableToolbar.tif */; }; + CAEA804D0ED0A73E0062B378 /* BWToolbarItem.h in Headers */ = {isa = PBXBuildFile; fileRef = CAEA804B0ED0A73E0062B378 /* BWToolbarItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CAEA804E0ED0A73E0062B378 /* BWToolbarItem.m in Sources */ = {isa = PBXBuildFile; fileRef = CAEA804C0ED0A73E0062B378 /* BWToolbarItem.m */; }; + CAEA80500ED0A75E0062B378 /* BWToolbarItem.classdescription in Resources */ = {isa = PBXBuildFile; fileRef = CAEA804F0ED0A7500062B378 /* BWToolbarItem.classdescription */; }; + CAEA80600ED0A8250062B378 /* BWToolbarItemInspector.xib in Resources */ = {isa = PBXBuildFile; fileRef = CAEA805F0ED0A8250062B378 /* BWToolbarItemInspector.xib */; }; + CAEA80760ED0ACA90062B378 /* BWToolbarItemInspector.m in Sources */ = {isa = PBXBuildFile; fileRef = CAEA80750ED0ACA90062B378 /* BWToolbarItemInspector.m */; }; + CAEA80780ED0AD470062B378 /* BWToolbarItemIntegration.m in Sources */ = {isa = PBXBuildFile; fileRef = CAEA80770ED0AD470062B378 /* BWToolbarItemIntegration.m */; }; + CAEA81640ED46D830062B378 /* Library-ToolbarItem.tiff in Resources */ = {isa = PBXBuildFile; fileRef = CAEA81630ED46D830062B378 /* Library-ToolbarItem.tiff */; }; + CAEB146B0F4A534300E57E67 /* BWToolkitFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = CAEB146A0F4A534300E57E67 /* BWToolkitFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CAEB14750F4A538100E57E67 /* License.rtf in Resources */ = {isa = PBXBuildFile; fileRef = CAEB14740F4A538100E57E67 /* License.rtf */; }; + CAEB14770F4A538A00E57E67 /* Release Notes.rtf in Resources */ = {isa = PBXBuildFile; fileRef = CAEB14760F4A538A00E57E67 /* Release Notes.rtf */; }; + CAEE04EE0FD753DB001A1C3F /* BWHyperlinkButton.h in Headers */ = {isa = PBXBuildFile; fileRef = CAEE04EC0FD753DB001A1C3F /* BWHyperlinkButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CAEE04EF0FD753DB001A1C3F /* BWHyperlinkButton.m in Sources */ = {isa = PBXBuildFile; fileRef = CAEE04ED0FD753DB001A1C3F /* BWHyperlinkButton.m */; }; + CAEE04F20FD7549A001A1C3F /* BWHyperlinkButtonCell.h in Headers */ = {isa = PBXBuildFile; fileRef = CAEE04F00FD7549A001A1C3F /* BWHyperlinkButtonCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CAEE04F30FD7549A001A1C3F /* BWHyperlinkButtonCell.m in Sources */ = {isa = PBXBuildFile; fileRef = CAEE04F10FD7549A001A1C3F /* BWHyperlinkButtonCell.m */; }; + CAEE05550FD76214001A1C3F /* BWHyperlinkButtonInspector.m in Sources */ = {isa = PBXBuildFile; fileRef = CAEE05540FD76214001A1C3F /* BWHyperlinkButtonInspector.m */; }; + CAEE05620FD764AB001A1C3F /* BWHyperlinkButtonInspector.xib in Resources */ = {isa = PBXBuildFile; fileRef = CAEE05610FD764AB001A1C3F /* BWHyperlinkButtonInspector.xib */; }; + CAEE05660FD76542001A1C3F /* BWHyperlinkButtonIntegration.m in Sources */ = {isa = PBXBuildFile; fileRef = CAEE05650FD76542001A1C3F /* BWHyperlinkButtonIntegration.m */; }; + CAEE07750FD79453001A1C3F /* BWGradientBox.h in Headers */ = {isa = PBXBuildFile; fileRef = CAEE07730FD79453001A1C3F /* BWGradientBox.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CAEE07760FD79453001A1C3F /* BWGradientBox.m in Sources */ = {isa = PBXBuildFile; fileRef = CAEE07740FD79453001A1C3F /* BWGradientBox.m */; }; + CAEE077C0FD79CE9001A1C3F /* BWStyledTextField.h in Headers */ = {isa = PBXBuildFile; fileRef = CAEE077A0FD79CE9001A1C3F /* BWStyledTextField.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CAEE077D0FD79CE9001A1C3F /* BWStyledTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = CAEE077B0FD79CE9001A1C3F /* BWStyledTextField.m */; }; + CAEE07860FD79D91001A1C3F /* BWStyledTextFieldInspector.m in Sources */ = {isa = PBXBuildFile; fileRef = CAEE07850FD79D91001A1C3F /* BWStyledTextFieldInspector.m */; }; + CAEE07880FD79DD6001A1C3F /* BWStyledTextFieldIntegration.m in Sources */ = {isa = PBXBuildFile; fileRef = CAEE07870FD79DD6001A1C3F /* BWStyledTextFieldIntegration.m */; }; + CAEE078B0FD79E3B001A1C3F /* BWStyledTextFieldInspector.xib in Resources */ = {isa = PBXBuildFile; fileRef = CAEE078A0FD79E3B001A1C3F /* BWStyledTextFieldInspector.xib */; }; + CAEE07C20FD7BB18001A1C3F /* BWStyledTextFieldCell.h in Headers */ = {isa = PBXBuildFile; fileRef = CAEE07C00FD7BB18001A1C3F /* BWStyledTextFieldCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CAEE07C30FD7BB18001A1C3F /* BWStyledTextFieldCell.m in Sources */ = {isa = PBXBuildFile; fileRef = CAEE07C10FD7BB18001A1C3F /* BWStyledTextFieldCell.m */; }; + CAEE09FE0FD7D4E9001A1C3F /* BWGradientBoxInspector.m in Sources */ = {isa = PBXBuildFile; fileRef = CAEE09FD0FD7D4E9001A1C3F /* BWGradientBoxInspector.m */; }; + CAEE0A000FD7D544001A1C3F /* BWGradientBoxInspector.xib in Resources */ = {isa = PBXBuildFile; fileRef = CAEE09FF0FD7D544001A1C3F /* BWGradientBoxInspector.xib */; }; + CAEE0A020FD7D557001A1C3F /* BWGradientBoxIntegration.m in Sources */ = {isa = PBXBuildFile; fileRef = CAEE0A010FD7D557001A1C3F /* BWGradientBoxIntegration.m */; }; + CAF6B8450E049A6500CA1768 /* ButtonBarPullDownArrow.pdf in Resources */ = {isa = PBXBuildFile; fileRef = CAF6B8440E049A6500CA1768 /* ButtonBarPullDownArrow.pdf */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 53DF6902067E5B930090B5B0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0259C573FE90428111CA0C5A /* Project object */; + proxyType = 1; + remoteGlobalIDString = 8D1AC9600486D14A00FE50C9; + remoteInfo = BWToolkit; + }; + 53DF6904067E5B930090B5B0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0259C573FE90428111CA0C5A /* Project object */; + proxyType = 1; + remoteGlobalIDString = 53DF68FC067E5B5A0090B5B0; + remoteInfo = BWToolkitFramework; + }; + 546DEAEF067F62F70098DCC4 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0259C573FE90428111CA0C5A /* Project object */; + proxyType = 1; + remoteGlobalIDString = 53DF68FC067E5B5A0090B5B0; + remoteInfo = BWToolkitFramework; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + CA5101020E7850F60014AEF1 /* Copy Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + CA5101040E7851010014AEF1 /* BWToolkitFramework.framework in Copy Frameworks */, + ); + name = "Copy Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 0259C576FE90428111CA0C5A /* BWToolkit.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = BWToolkit.m; sourceTree = ""; }; + 0259C57AFE90428111CA0C5A /* BWToolkit.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = BWToolkit.h; sourceTree = ""; }; + 13F8B88807B434F6008AE28D /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; + 13F8B88907B434F6008AE28D /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = ""; }; + 13F8B88A07B434F6008AE28D /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; + 32DBCF980370C29C00C91783 /* BWToolkit_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWToolkit_Prefix.pch; sourceTree = ""; }; + 53DF68FD067E5B5A0090B5B0 /* BWToolkitFramework.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = BWToolkitFramework.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 53DF68FE067E5B5A0090B5B0 /* BWToolkitFramework-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "BWToolkitFramework-Info.plist"; sourceTree = ""; }; + 8D1AC9730486D14A00FE50C9 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; + 8D1AC9740486D14A00FE50C9 /* BWToolkit.ibplugin */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = BWToolkit.ibplugin; sourceTree = BUILT_PRODUCTS_DIR; }; + 8D1AC97B0486D23100FE50C9 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; }; + C0D069550A49DF9100C95564 /* InterfaceBuilderKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = InterfaceBuilderKit.framework; path = /Developer/Library/Frameworks/InterfaceBuilderKit.framework; sourceTree = ""; }; + CA0D2A250E2F034000E8680C /* NSWindow-NSTimeMachineSupport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSWindow-NSTimeMachineSupport.h"; sourceTree = ""; }; + CA0DDBCE0FDA586F006B3EA3 /* BWGradientWell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWGradientWell.h; sourceTree = ""; }; + CA0DDBCF0FDA586F006B3EA3 /* BWGradientWell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWGradientWell.m; sourceTree = ""; }; + CA0DDC1F0FDA5EDA006B3EA3 /* BWGradientWellColorWell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWGradientWellColorWell.h; sourceTree = ""; }; + CA0DDC200FDA5EDA006B3EA3 /* BWGradientWellColorWell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWGradientWellColorWell.m; sourceTree = ""; }; + CA0DDC810FDA698B006B3EA3 /* GradientWellPattern.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = GradientWellPattern.tif; sourceTree = ""; }; + CA10ABD40E272711009BA4D7 /* BWTransparentScrollViewIntegration.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWTransparentScrollViewIntegration.m; sourceTree = ""; }; + CA10ABD60E272748009BA4D7 /* BWTransparentScrollView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWTransparentScrollView.h; sourceTree = ""; }; + CA10ABD70E272748009BA4D7 /* BWTransparentScrollView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWTransparentScrollView.m; sourceTree = ""; }; + CA10AC030E272790009BA4D7 /* BWTransparentScrollView.classdescription */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = BWTransparentScrollView.classdescription; sourceTree = ""; }; + CA2FB4060DFD0058005131D4 /* BWTexturedSliderIntegration.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWTexturedSliderIntegration.m; sourceTree = ""; }; + CA2FB4330DFD02B6005131D4 /* BWTexturedSliderInspector.nib */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; path = BWTexturedSliderInspector.nib; sourceTree = ""; }; + CA325ACD0DCABE22001446BB /* BWAnchoredButtonIntegration.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWAnchoredButtonIntegration.m; sourceTree = ""; }; + CA325B4D0DCAE25A001446BB /* BWAnchoredButtonBar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWAnchoredButtonBar.h; sourceTree = ""; }; + CA325B4E0DCAE25A001446BB /* BWAnchoredButtonBar.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWAnchoredButtonBar.m; sourceTree = ""; }; + CA325D4D0DCD2EEE001446BB /* BWAnchoredButtonBarInspector.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = BWAnchoredButtonBarInspector.xib; sourceTree = ""; }; + CA325D510DCD3019001446BB /* BWAnchoredButtonBarInspector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWAnchoredButtonBarInspector.h; sourceTree = ""; }; + CA325D520DCD3019001446BB /* BWAnchoredButtonBarInspector.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWAnchoredButtonBarInspector.m; sourceTree = ""; }; + CA325D540DCD3045001446BB /* BWAnchoredButtonBarIntegration.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWAnchoredButtonBarIntegration.m; sourceTree = ""; }; + CA325F020DCD91EF001446BB /* BWAnchoredButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWAnchoredButton.h; sourceTree = ""; }; + CA325F030DCD91EF001446BB /* BWAnchoredButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWAnchoredButton.m; sourceTree = ""; }; + CA325F060DCD9268001446BB /* BWAnchoredButtonCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWAnchoredButtonCell.h; sourceTree = ""; }; + CA325F070DCD9268001446BB /* BWAnchoredButtonCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWAnchoredButtonCell.m; sourceTree = ""; }; + CA34552E0DDCD6C900A7C0A9 /* BWSelectableToolbarHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWSelectableToolbarHelper.h; sourceTree = ""; }; + CA34552F0DDCD6C900A7C0A9 /* BWSelectableToolbarHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWSelectableToolbarHelper.m; sourceTree = ""; }; + CA3A18870ECA9E86000C3A43 /* BWTransparentTextFieldCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWTransparentTextFieldCell.h; sourceTree = ""; }; + CA3A18880ECA9E86000C3A43 /* BWTransparentTextFieldCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWTransparentTextFieldCell.m; sourceTree = ""; }; + CA3A188B0ECA9E9E000C3A43 /* BWTransparentTextFieldCell.classdescription */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = BWTransparentTextFieldCell.classdescription; sourceTree = ""; }; + CA40594A0EBDCBA70010580A /* Library-TokenField.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "Library-TokenField.tif"; sourceTree = ""; }; + CA405A110EBF214E0010580A /* Library-TransparentTextView.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "Library-TransparentTextView.tif"; sourceTree = ""; }; + CA405A6D0EBF2E400010580A /* BWTransparentScroller.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWTransparentScroller.m; sourceTree = ""; }; + CA405A6E0EBF2E400010580A /* BWTransparentScroller.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWTransparentScroller.h; sourceTree = ""; }; + CA405A710EBF2E560010580A /* BWTransparentScroller.classdescription */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = BWTransparentScroller.classdescription; sourceTree = ""; }; + CA405AD40EBF2FE30010580A /* TransparentScrollerKnobRight.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = TransparentScrollerKnobRight.tif; sourceTree = ""; }; + CA405AD50EBF2FE30010580A /* TransparentScrollerKnobBottom.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = TransparentScrollerKnobBottom.tif; sourceTree = ""; }; + CA405AD60EBF2FE30010580A /* TransparentScrollerSlotRight.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = TransparentScrollerSlotRight.tif; sourceTree = ""; }; + CA405AD70EBF2FE30010580A /* TransparentScrollerKnobLeft.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = TransparentScrollerKnobLeft.tif; sourceTree = ""; }; + CA405AD80EBF2FE30010580A /* TransparentScrollerKnobVerticalFill.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = TransparentScrollerKnobVerticalFill.tif; sourceTree = ""; }; + CA405AD90EBF2FE30010580A /* TransparentScrollerSlotVerticalFill.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = TransparentScrollerSlotVerticalFill.tif; sourceTree = ""; }; + CA405ADA0EBF2FE30010580A /* TransparentScrollerSlotHorizontalFill.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = TransparentScrollerSlotHorizontalFill.tif; sourceTree = ""; }; + CA405ADB0EBF2FE30010580A /* TransparentScrollerKnobHorizontalFill.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = TransparentScrollerKnobHorizontalFill.tif; sourceTree = ""; }; + CA405ADC0EBF2FE30010580A /* TransparentScrollerSlotLeft.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = TransparentScrollerSlotLeft.tif; sourceTree = ""; }; + CA405ADD0EBF2FE30010580A /* TransparentScrollerSlotBottom.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = TransparentScrollerSlotBottom.tif; sourceTree = ""; }; + CA405ADE0EBF2FE30010580A /* TransparentScrollerSlotTop.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = TransparentScrollerSlotTop.tif; sourceTree = ""; }; + CA405ADF0EBF2FE30010580A /* TransparentScrollerKnobTop.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = TransparentScrollerKnobTop.tif; sourceTree = ""; }; + CA4070B50E0B66C200B56AB7 /* ToolbarItemColors.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = ToolbarItemColors.tiff; sourceTree = ""; }; + CA4070B60E0B66C200B56AB7 /* ToolbarItemFonts.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = ToolbarItemFonts.tiff; sourceTree = ""; }; + CA4071020E0B6D2100B56AB7 /* BWToolbarItemsLibrary.nib */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; path = BWToolbarItemsLibrary.nib; sourceTree = ""; }; + CA4071110E0B78E900B56AB7 /* Library-TexturedAddButton.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "Library-TexturedAddButton.tif"; sourceTree = ""; }; + CA4071120E0B78E900B56AB7 /* Library-TexturedRemoveButton.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "Library-TexturedRemoveButton.tif"; sourceTree = ""; }; + CA4071370E0B985300B56AB7 /* BWUnanchoredButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWUnanchoredButton.h; sourceTree = ""; }; + CA4071380E0B985300B56AB7 /* BWUnanchoredButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWUnanchoredButton.m; sourceTree = ""; }; + CA40713B0E0B986000B56AB7 /* BWUnanchoredButtonCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWUnanchoredButtonCell.h; sourceTree = ""; }; + CA40713C0E0B986000B56AB7 /* BWUnanchoredButtonCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWUnanchoredButtonCell.m; sourceTree = ""; }; + CA4071690E0DB7CA00B56AB7 /* BWUnanchoredButtonIntegration.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWUnanchoredButtonIntegration.m; sourceTree = ""; }; + CA4071CB0E0ED32300B56AB7 /* BWUnanchoredButtonContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWUnanchoredButtonContainer.h; sourceTree = ""; }; + CA4071CC0E0ED32300B56AB7 /* BWUnanchoredButtonContainer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWUnanchoredButtonContainer.m; sourceTree = ""; }; + CA4071CF0E0ED67100B56AB7 /* BWUnanchoredButtonContainerIntegration.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWUnanchoredButtonContainerIntegration.m; sourceTree = ""; }; + CA4A50D90E1DC7AB00BC7395 /* BWSheetController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWSheetController.h; sourceTree = ""; }; + CA4A50DA0E1DC7AB00BC7395 /* BWSheetController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWSheetController.m; sourceTree = ""; }; + CA4A50DD0E1DCB5A00BC7395 /* BWSheetController.classdescription */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = BWSheetController.classdescription; sourceTree = ""; }; + CA4A51E20E1EC6B700BC7395 /* Library-SheetController.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "Library-SheetController.tif"; sourceTree = ""; }; + CA4A52060E1EE3CC00BC7395 /* BWControllersLibrary.nib */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; path = BWControllersLibrary.nib; sourceTree = ""; }; + CA4A52140E1EECEB00BC7395 /* BWSheetControllerIntegration.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWSheetControllerIntegration.m; sourceTree = ""; }; + CA4A52B10E1F11D000BC7395 /* IBColor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IBColor.h; sourceTree = ""; }; + CA4A53B10E2033E800BC7395 /* BWTransparentTableViewIntegration.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWTransparentTableViewIntegration.m; sourceTree = ""; }; + CA4A54760E2190A000BC7395 /* Library-TransparentTableView.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "Library-TransparentTableView.tif"; sourceTree = ""; }; + CA4A54770E2190A000BC7395 /* Library-TransparentCheckboxCell.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "Library-TransparentCheckboxCell.tif"; sourceTree = ""; }; + CA6124070F05F88500A3B5AC /* Inspector-SplitViewBackground.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "Inspector-SplitViewBackground.tiff"; sourceTree = ""; }; + CA6124130F060E8500A3B5AC /* BWSplitViewInspectorAutosizingButtonCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWSplitViewInspectorAutosizingButtonCell.h; sourceTree = ""; }; + CA6124140F060E8500A3B5AC /* BWSplitViewInspectorAutosizingButtonCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWSplitViewInspectorAutosizingButtonCell.m; sourceTree = ""; }; + CA6124570F06177500A3B5AC /* Inspector-SplitViewArrowBlueLeft.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "Inspector-SplitViewArrowBlueLeft.tif"; sourceTree = ""; }; + CA6124590F06177500A3B5AC /* Inspector-SplitViewArrowBlueRight.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "Inspector-SplitViewArrowBlueRight.tif"; sourceTree = ""; }; + CA6124790F061DA900A3B5AC /* Inspector-SplitViewArrowRedFill.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "Inspector-SplitViewArrowRedFill.tif"; sourceTree = ""; }; + CA61247A0F061DA900A3B5AC /* Inspector-SplitViewArrowRedRight.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "Inspector-SplitViewArrowRedRight.tif"; sourceTree = ""; }; + CA61247B0F061DA900A3B5AC /* Inspector-SplitViewArrowRedLeft.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "Inspector-SplitViewArrowRedLeft.tif"; sourceTree = ""; }; + CA6124D40F062E7500A3B5AC /* BWSplitViewInspectorAutosizingView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWSplitViewInspectorAutosizingView.h; sourceTree = ""; }; + CA6124D50F062E7500A3B5AC /* BWSplitViewInspectorAutosizingView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWSplitViewInspectorAutosizingView.m; sourceTree = ""; }; + CA6309AD0DC7EB5E00AD7F9E /* BWTexturedSlider.classdescription */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = BWTexturedSlider.classdescription; sourceTree = ""; }; + CA6309AE0DC7EB5E00AD7F9E /* BWTexturedSliderCell.classdescription */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = BWTexturedSliderCell.classdescription; sourceTree = ""; }; + CA6309AF0DC7EB5E00AD7F9E /* BWTransparentButton.classdescription */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = BWTransparentButton.classdescription; sourceTree = ""; }; + CA6309B00DC7EB5E00AD7F9E /* BWTransparentButtonCell.classdescription */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = BWTransparentButtonCell.classdescription; sourceTree = ""; }; + CA6309B10DC7EB5E00AD7F9E /* BWTransparentCheckbox.classdescription */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = BWTransparentCheckbox.classdescription; sourceTree = ""; }; + CA6309B20DC7EB5E00AD7F9E /* BWTransparentCheckboxCell.classdescription */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = BWTransparentCheckboxCell.classdescription; sourceTree = ""; }; + CA6309B30DC7EB5E00AD7F9E /* BWTransparentPopUpButton.classdescription */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = BWTransparentPopUpButton.classdescription; sourceTree = ""; }; + CA6309B40DC7EB5E00AD7F9E /* BWTransparentPopUpButtonCell.classdescription */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = BWTransparentPopUpButtonCell.classdescription; sourceTree = ""; }; + CA6309B50DC7EB5E00AD7F9E /* BWTransparentSlider.classdescription */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = BWTransparentSlider.classdescription; sourceTree = ""; }; + CA6309B60DC7EB5E00AD7F9E /* BWTransparentSliderCell.classdescription */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = BWTransparentSliderCell.classdescription; sourceTree = ""; }; + CA6309B70DC7EB5E00AD7F9E /* BWSplitView.classdescription */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = BWSplitView.classdescription; sourceTree = ""; }; + CA6309B80DC7EB5E00AD7F9E /* BWInsetTextField.classdescription */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = BWInsetTextField.classdescription; sourceTree = ""; }; + CA6309BA0DC7EB5E00AD7F9E /* BWAddRegularBottomBar.classdescription */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = BWAddRegularBottomBar.classdescription; sourceTree = ""; }; + CA6309BB0DC7EB5E00AD7F9E /* BWRemoveBottomBar.classdescription */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = BWRemoveBottomBar.classdescription; sourceTree = ""; }; + CA6309BC0DC7EB5E00AD7F9E /* BWToolbarShowColorsItem.classdescription */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = BWToolbarShowColorsItem.classdescription; sourceTree = ""; }; + CA6309BD0DC7EB5E00AD7F9E /* BWToolbarShowFontsItem.classdescription */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = BWToolbarShowFontsItem.classdescription; sourceTree = ""; }; + CA6309BE0DC7EB5E00AD7F9E /* BWSelectableToolbar.classdescription */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = BWSelectableToolbar.classdescription; sourceTree = ""; }; + CA6309DF0DC7F2EE00AD7F9E /* BWTexturedSliderInspector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWTexturedSliderInspector.h; sourceTree = ""; }; + CA6309E00DC7F2EE00AD7F9E /* BWTexturedSliderInspector.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWTexturedSliderInspector.m; sourceTree = ""; }; + CA6309E10DC7F2EE00AD7F9E /* BWSelectableToolbarInspector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWSelectableToolbarInspector.h; sourceTree = ""; }; + CA6309E20DC7F2EE00AD7F9E /* BWSelectableToolbarInspector.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWSelectableToolbarInspector.m; sourceTree = ""; }; + CA6309E90DC7F39600AD7F9E /* BWSelectableToolbarIntegration.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWSelectableToolbarIntegration.m; sourceTree = ""; }; + CA6309EA0DC7F39600AD7F9E /* BWTransparentButtonIntegration.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWTransparentButtonIntegration.m; sourceTree = ""; }; + CA6309EB0DC7F39600AD7F9E /* BWTransparentCheckboxIntegration.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWTransparentCheckboxIntegration.m; sourceTree = ""; }; + CA6309EC0DC7F39600AD7F9E /* BWTransparentPopUpButtonIntegration.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWTransparentPopUpButtonIntegration.m; sourceTree = ""; }; + CA630A4D0DC7F59300AD7F9E /* Library-TexturedSlider.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "Library-TexturedSlider.tif"; sourceTree = ""; }; + CA630A4E0DC7F59300AD7F9E /* Library-InsetTextField.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "Library-InsetTextField.tif"; sourceTree = ""; }; + CA630A5A0DC7F63B00AD7F9E /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/BWToolkitLibrary.nib; sourceTree = ""; }; + CA630A5B0DC7F63B00AD7F9E /* BWTransparentControlsLibrary.nib */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; path = BWTransparentControlsLibrary.nib; sourceTree = ""; }; + CA630A5E0DC7F63C00AD7F9E /* BWSelectableToolbarInspector.nib */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; path = BWSelectableToolbarInspector.nib; sourceTree = ""; }; + CA630A680DC7F6FC00AD7F9E /* TexturedSliderTrackRight.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = TexturedSliderTrackRight.tiff; sourceTree = ""; }; + CA630A690DC7F6FC00AD7F9E /* TexturedSliderTrackFill.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = TexturedSliderTrackFill.tiff; sourceTree = ""; }; + CA630A6A0DC7F6FC00AD7F9E /* TexturedSliderTrackLeft.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = TexturedSliderTrackLeft.tiff; sourceTree = ""; }; + CA630A6B0DC7F6FC00AD7F9E /* TexturedSliderThumbP.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = TexturedSliderThumbP.tiff; sourceTree = ""; }; + CA630A6C0DC7F6FC00AD7F9E /* TexturedSliderThumbN.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = TexturedSliderThumbN.tiff; sourceTree = ""; }; + CA630A760DC7F74400AD7F9E /* GradientSplitViewDimpleBitmap.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = GradientSplitViewDimpleBitmap.tif; sourceTree = ""; }; + CA630A770DC7F74400AD7F9E /* GradientSplitViewDimpleVector.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = GradientSplitViewDimpleVector.pdf; sourceTree = ""; }; + CA630A830DC7F83A00AD7F9E /* TransparentSliderThumbP.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = TransparentSliderThumbP.tiff; sourceTree = ""; }; + CA630A840DC7F83A00AD7F9E /* TransparentSliderThumbN.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = TransparentSliderThumbN.tiff; sourceTree = ""; }; + CA630A850DC7F83A00AD7F9E /* TransparentSliderTrackFill.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = TransparentSliderTrackFill.tiff; sourceTree = ""; }; + CA630A860DC7F83A00AD7F9E /* TransparentSliderTrackLeft.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = TransparentSliderTrackLeft.tiff; sourceTree = ""; }; + CA630A870DC7F83A00AD7F9E /* TransparentSliderTrackRight.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = TransparentSliderTrackRight.tiff; sourceTree = ""; }; + CA630A8D0DC7F84700AD7F9E /* TransparentButtonRightN.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = TransparentButtonRightN.tiff; sourceTree = ""; }; + CA630A8E0DC7F84700AD7F9E /* TransparentButtonFillN.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = TransparentButtonFillN.tiff; sourceTree = ""; }; + CA630A8F0DC7F84700AD7F9E /* TransparentButtonLeftN.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = TransparentButtonLeftN.tiff; sourceTree = ""; }; + CA630A900DC7F84700AD7F9E /* TransparentButtonRightP.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = TransparentButtonRightP.tiff; sourceTree = ""; }; + CA630A910DC7F84700AD7F9E /* TransparentButtonFillP.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = TransparentButtonFillP.tiff; sourceTree = ""; }; + CA630A920DC7F84700AD7F9E /* TransparentButtonLeftP.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = TransparentButtonLeftP.tiff; sourceTree = ""; }; + CA630A990DC7F87B00AD7F9E /* TransparentCheckboxOffN.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = TransparentCheckboxOffN.tiff; sourceTree = ""; }; + CA630A9A0DC7F87B00AD7F9E /* TransparentCheckboxOffP.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = TransparentCheckboxOffP.tiff; sourceTree = ""; }; + CA630A9B0DC7F87B00AD7F9E /* TransparentCheckboxOnN.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = TransparentCheckboxOnN.tiff; sourceTree = ""; }; + CA630A9C0DC7F87B00AD7F9E /* TransparentCheckboxOnP.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = TransparentCheckboxOnP.tiff; sourceTree = ""; }; + CA630AA10DC7F88A00AD7F9E /* TransparentPopUpFillN.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = TransparentPopUpFillN.tiff; sourceTree = ""; }; + CA630AA20DC7F88A00AD7F9E /* TransparentPopUpFillP.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = TransparentPopUpFillP.tiff; sourceTree = ""; }; + CA630AA30DC7F88A00AD7F9E /* TransparentPopUpLeftN.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = TransparentPopUpLeftN.tiff; sourceTree = ""; }; + CA630AA40DC7F88A00AD7F9E /* TransparentPopUpLeftP.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = TransparentPopUpLeftP.tiff; sourceTree = ""; }; + CA630AA50DC7F88A00AD7F9E /* TransparentPopUpRightN.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = TransparentPopUpRightN.tiff; sourceTree = ""; }; + CA630AA60DC7F88A00AD7F9E /* TransparentPopUpRightP.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = TransparentPopUpRightP.tiff; sourceTree = ""; }; + CA630AE00DC7FB6300AD7F9E /* BWToolbarShowColorsItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWToolbarShowColorsItem.h; sourceTree = ""; }; + CA630AE10DC7FB6300AD7F9E /* BWToolbarShowColorsItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWToolbarShowColorsItem.m; sourceTree = ""; }; + CA630AE20DC7FB6300AD7F9E /* BWToolbarShowFontsItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWToolbarShowFontsItem.h; sourceTree = ""; }; + CA630AE30DC7FB6300AD7F9E /* BWToolbarShowFontsItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWToolbarShowFontsItem.m; sourceTree = ""; }; + CA630AE80DC7FC3400AD7F9E /* BWSelectableToolbar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWSelectableToolbar.h; sourceTree = ""; }; + CA630AE90DC7FC3400AD7F9E /* BWSelectableToolbar.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWSelectableToolbar.m; sourceTree = ""; }; + CA630AEC0DC7FF0800AD7F9E /* BWAddRegularBottomBar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWAddRegularBottomBar.h; sourceTree = ""; }; + CA630AED0DC7FF0800AD7F9E /* BWAddRegularBottomBar.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWAddRegularBottomBar.m; sourceTree = ""; }; + CA630AEE0DC7FF0800AD7F9E /* BWRemoveBottomBar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWRemoveBottomBar.h; sourceTree = ""; }; + CA630AEF0DC7FF0800AD7F9E /* BWRemoveBottomBar.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWRemoveBottomBar.m; sourceTree = ""; }; + CA630AF40DC8002200AD7F9E /* BWInsetTextField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWInsetTextField.h; sourceTree = ""; }; + CA630AF50DC8002200AD7F9E /* BWInsetTextField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWInsetTextField.m; sourceTree = ""; }; + CA630AF80DC8004A00AD7F9E /* BWTransparentButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWTransparentButton.h; sourceTree = ""; }; + CA630AF90DC8004A00AD7F9E /* BWTransparentButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWTransparentButton.m; sourceTree = ""; }; + CA630AFA0DC8004A00AD7F9E /* BWTransparentButtonCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWTransparentButtonCell.h; sourceTree = ""; }; + CA630AFB0DC8004A00AD7F9E /* BWTransparentButtonCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWTransparentButtonCell.m; sourceTree = ""; }; + CA630AFC0DC8004A00AD7F9E /* BWTransparentCheckbox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWTransparentCheckbox.h; sourceTree = ""; }; + CA630AFD0DC8004A00AD7F9E /* BWTransparentCheckbox.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWTransparentCheckbox.m; sourceTree = ""; }; + CA630AFE0DC8004A00AD7F9E /* BWTransparentCheckboxCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWTransparentCheckboxCell.h; sourceTree = ""; }; + CA630AFF0DC8004A00AD7F9E /* BWTransparentCheckboxCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWTransparentCheckboxCell.m; sourceTree = ""; }; + CA630B000DC8004A00AD7F9E /* BWTransparentPopUpButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWTransparentPopUpButton.h; sourceTree = ""; }; + CA630B010DC8004A00AD7F9E /* BWTransparentPopUpButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWTransparentPopUpButton.m; sourceTree = ""; }; + CA630B020DC8004A00AD7F9E /* BWTransparentPopUpButtonCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWTransparentPopUpButtonCell.h; sourceTree = ""; }; + CA630B030DC8004A00AD7F9E /* BWTransparentPopUpButtonCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWTransparentPopUpButtonCell.m; sourceTree = ""; }; + CA630B040DC8004A00AD7F9E /* BWTransparentSlider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWTransparentSlider.h; sourceTree = ""; }; + CA630B050DC8004A00AD7F9E /* BWTransparentSlider.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWTransparentSlider.m; sourceTree = ""; }; + CA630B060DC8004A00AD7F9E /* BWTransparentSliderCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWTransparentSliderCell.h; sourceTree = ""; }; + CA630B070DC8004A00AD7F9E /* BWTransparentSliderCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWTransparentSliderCell.m; sourceTree = ""; }; + CA630B1C0DC82DD600AD7F9E /* BWSplitView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWSplitView.h; sourceTree = ""; }; + CA630B1D0DC82DD600AD7F9E /* BWSplitView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWSplitView.m; sourceTree = ""; }; + CA630B220DC82E2100AD7F9E /* BWTexturedSlider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWTexturedSlider.h; sourceTree = ""; }; + CA630B230DC82E2100AD7F9E /* BWTexturedSlider.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWTexturedSlider.m; sourceTree = ""; }; + CA630B240DC82E2100AD7F9E /* BWTexturedSliderCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWTexturedSliderCell.h; sourceTree = ""; }; + CA630B250DC82E2100AD7F9E /* BWTexturedSliderCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWTexturedSliderCell.m; sourceTree = ""; }; + CA630CB80DC83EB700AD7F9E /* BWTransparentSliderIntegration.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWTransparentSliderIntegration.m; sourceTree = ""; }; + CA630CF80DC843DD00AD7F9E /* BWAddSmallBottomBar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWAddSmallBottomBar.h; sourceTree = ""; }; + CA630CF90DC843DD00AD7F9E /* BWAddSmallBottomBar.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWAddSmallBottomBar.m; sourceTree = ""; }; + CA66C0F40EF79AC0005EE9A5 /* NSString+BWAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString+BWAdditions.m"; sourceTree = ""; }; + CA66C0F50EF79AC0005EE9A5 /* NSString+BWAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+BWAdditions.h"; sourceTree = ""; }; + CA685D7C0E6639680003D937 /* BWSplitViewInspector.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = BWSplitViewInspector.xib; sourceTree = ""; }; + CA685D820E663E4D0003D937 /* BWSplitViewInspector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWSplitViewInspector.h; sourceTree = ""; }; + CA685D830E663E4D0003D937 /* BWSplitViewInspector.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWSplitViewInspector.m; sourceTree = ""; }; + CA685D8B0E6646000003D937 /* BWSplitViewIntegration.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWSplitViewIntegration.m; sourceTree = ""; }; + CA685E840E669FCA0003D937 /* Library-VerticalSplitView.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "Library-VerticalSplitView.tif"; sourceTree = ""; }; + CA685E850E669FCA0003D937 /* Library-HorizontalSplitView.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "Library-HorizontalSplitView.tif"; sourceTree = ""; }; + CA685E890E66A03A0003D937 /* BWSplitViewLibrary.nib */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; path = BWSplitViewLibrary.nib; sourceTree = ""; }; + CA685EFD0E68C6CB0003D937 /* BWAddMiniBottomBar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWAddMiniBottomBar.h; sourceTree = ""; }; + CA685EFE0E68C6CB0003D937 /* BWAddMiniBottomBar.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWAddMiniBottomBar.m; sourceTree = ""; }; + CA685F1F0E68C8290003D937 /* BWAddSheetBottomBar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWAddSheetBottomBar.h; sourceTree = ""; }; + CA685F200E68C8290003D937 /* BWAddSheetBottomBar.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWAddSheetBottomBar.m; sourceTree = ""; }; + CA685F2D0E690EE50003D937 /* BWAddMiniBottomBarIntegration.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWAddMiniBottomBarIntegration.m; sourceTree = ""; }; + CA685F2F0E690FB80003D937 /* BWAddSheetBottomBarIntegration.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWAddSheetBottomBarIntegration.m; sourceTree = ""; }; + CA685F310E6955650003D937 /* BWAddMiniBottomBar.classdescription */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = BWAddMiniBottomBar.classdescription; sourceTree = ""; }; + CA685F330E69557B0003D937 /* BWAddSheetBottomBar.classdescription */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = BWAddSheetBottomBar.classdescription; sourceTree = ""; }; + CA6860170E6A13B00003D937 /* Library-AddMiniBottomBar.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "Library-AddMiniBottomBar.tif"; sourceTree = ""; }; + CA6860430E6A26180003D937 /* Library-AddSheetBottomBar.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "Library-AddSheetBottomBar.tif"; sourceTree = ""; }; + CA875AD80DD165A500764511 /* NSColor+BWAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSColor+BWAdditions.h"; sourceTree = ""; }; + CA875AD90DD165A500764511 /* NSColor+BWAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSColor+BWAdditions.m"; sourceTree = ""; }; + CA875CC50DD7EA3900764511 /* NSImage+BWAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSImage+BWAdditions.h"; sourceTree = ""; }; + CA875CC60DD7EA3900764511 /* NSImage+BWAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSImage+BWAdditions.m"; sourceTree = ""; }; + CA944DD80DDF800D00F103BC /* NSWindow+BWAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSWindow+BWAdditions.h"; sourceTree = ""; }; + CA944DD90DDF800D00F103BC /* NSWindow+BWAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSWindow+BWAdditions.m"; sourceTree = ""; }; + CA944E360DDFE32A00F103BC /* Library-ShowFonts.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "Library-ShowFonts.tif"; sourceTree = ""; }; + CA944E370DDFE32A00F103BC /* Library-GradientSplitView.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "Library-GradientSplitView.tif"; sourceTree = ""; }; + CA944E380DDFE32A00F103BC /* Library-ShowColors.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "Library-ShowColors.tif"; sourceTree = ""; }; + CA944E390DDFE32A00F103BC /* Library-TransparentButton.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "Library-TransparentButton.tif"; sourceTree = ""; }; + CA944E410DDFE50200F103BC /* Library-TransparentSlider.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "Library-TransparentSlider.tif"; sourceTree = ""; }; + CA944E420DDFE50200F103BC /* Library-TransparentCheckbox.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "Library-TransparentCheckbox.tif"; sourceTree = ""; }; + CA944E430DDFE50200F103BC /* Library-TransparentPopUpButton.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "Library-TransparentPopUpButton.tif"; sourceTree = ""; }; + CA944E440DDFE50200F103BC /* Library-TransparentLabel.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "Library-TransparentLabel.tif"; sourceTree = ""; }; + CA944E970DDFF53000F103BC /* Library-AnchoredButton.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "Library-AnchoredButton.tif"; sourceTree = ""; }; + CA944E980DDFF53000F103BC /* Library-AnchoredPopUpButton.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "Library-AnchoredPopUpButton.tif"; sourceTree = ""; }; + CA944F060DE00CC000F103BC /* NSView+BWAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSView+BWAdditions.h"; sourceTree = ""; }; + CA944F070DE00CC000F103BC /* NSView+BWAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSView+BWAdditions.m"; sourceTree = ""; }; + CA944F910DE01F8100F103BC /* Library-AnchoredButtonBar.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "Library-AnchoredButtonBar.tif"; sourceTree = ""; }; + CA94506D0DE0D9F600F103BC /* Library-AddSmallBottomBar.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "Library-AddSmallBottomBar.tif"; sourceTree = ""; }; + CA94507F0DE0DE7F00F103BC /* Library-AddRegularBottomBar.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "Library-AddRegularBottomBar.tif"; sourceTree = ""; }; + CA9450800DE0DE7F00F103BC /* Library-RemoveBottomBar.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "Library-RemoveBottomBar.tif"; sourceTree = ""; }; + CA9450880DE0E6BA00F103BC /* BWAddSmallBottomBar.classdescription */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = BWAddSmallBottomBar.classdescription; sourceTree = ""; }; + CA9451030DE13E4400F103BC /* BWBottomBarLibrary.nib */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; path = BWBottomBarLibrary.nib; sourceTree = ""; }; + CA9451180DE1449000F103BC /* BWRemoveBottomBarIntegration.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWRemoveBottomBarIntegration.m; sourceTree = ""; }; + CA9451560DE14DE600F103BC /* BWAddRegularBottomBarIntegration.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWAddRegularBottomBarIntegration.m; sourceTree = ""; }; + CA94516F0DE154CF00F103BC /* BWAddSmallBottomBarIntegration.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWAddSmallBottomBarIntegration.m; sourceTree = ""; }; + CA9451890DE15A6C00F103BC /* BWTransparentTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWTransparentTableView.h; sourceTree = ""; }; + CA94518A0DE15A6C00F103BC /* BWTransparentTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWTransparentTableView.m; sourceTree = ""; }; + CA94518E0DE15C4F00F103BC /* BWTransparentTableView.classdescription */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = BWTransparentTableView.classdescription; sourceTree = ""; }; + CA9451E60DE1690500F103BC /* BWTransparentTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWTransparentTableViewCell.h; sourceTree = ""; }; + CA9451E70DE1690500F103BC /* BWTransparentTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWTransparentTableViewCell.m; sourceTree = ""; }; + CA9451EA0DE1692100F103BC /* BWTransparentTableViewCell.classdescription */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = BWTransparentTableViewCell.classdescription; sourceTree = ""; }; + CA94521A0DE17A1A00F103BC /* TransparentSliderTriangleThumbN.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = TransparentSliderTriangleThumbN.tiff; sourceTree = ""; }; + CA94521B0DE17A1A00F103BC /* TransparentSliderTriangleThumbP.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = TransparentSliderTriangleThumbP.tiff; sourceTree = ""; }; + CA9453DB0DE293BC00F103BC /* BWAnchoredPopUpButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWAnchoredPopUpButton.h; sourceTree = ""; }; + CA9453DC0DE293BC00F103BC /* BWAnchoredPopUpButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWAnchoredPopUpButton.m; sourceTree = ""; }; + CA9453DF0DE293C800F103BC /* BWAnchoredPopUpButtonCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWAnchoredPopUpButtonCell.h; sourceTree = ""; }; + CA9453E00DE293C800F103BC /* BWAnchoredPopUpButtonCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWAnchoredPopUpButtonCell.m; sourceTree = ""; }; + CA94541A0DE29DF200F103BC /* BWAnchoredPopUpButtonIntegration.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWAnchoredPopUpButtonIntegration.m; sourceTree = ""; }; + CA94541C0DE29E3500F103BC /* BWAnchoredButtonBar.classdescription */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = BWAnchoredButtonBar.classdescription; sourceTree = ""; }; + CA94541D0DE29E4600F103BC /* BWAnchoredButton.classdescription */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = BWAnchoredButton.classdescription; sourceTree = ""; }; + CA94541E0DE29E5300F103BC /* BWAnchoredPopUpButton.classdescription */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = BWAnchoredPopUpButton.classdescription; sourceTree = ""; }; + CA960A4A0E75F84700308367 /* BWTokenField.classdescription */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = BWTokenField.classdescription; sourceTree = ""; }; + CA960A4C0E75F85800308367 /* BWTokenFieldCell.classdescription */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = BWTokenFieldCell.classdescription; sourceTree = ""; }; + CA960A4E0E75F88C00308367 /* BWTokenField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWTokenField.h; sourceTree = ""; }; + CA960A4F0E75F88C00308367 /* BWTokenField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWTokenField.m; sourceTree = ""; }; + CA960A520E75F89400308367 /* BWTokenFieldCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWTokenFieldCell.h; sourceTree = ""; }; + CA960A530E75F89400308367 /* BWTokenFieldCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWTokenFieldCell.m; sourceTree = ""; }; + CA960A7C0E76766E00308367 /* NSTokenAttachmentCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSTokenAttachmentCell.h; sourceTree = ""; }; + CA960A7D0E76766E00308367 /* NSTokenAttachment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSTokenAttachment.h; sourceTree = ""; }; + CA960AA90E7676E000308367 /* BWTokenAttachmentCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWTokenAttachmentCell.h; sourceTree = ""; }; + CA960AAA0E7676E000308367 /* BWTokenAttachmentCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWTokenAttachmentCell.m; sourceTree = ""; }; + CA9918330DF4DA5200FE0577 /* BWButtonBarLibrary.nib */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; path = BWButtonBarLibrary.nib; sourceTree = ""; }; + CA9918690DF51C9000FE0577 /* Inspector-ButtonBarMode1.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "Inspector-ButtonBarMode1.tif"; sourceTree = ""; }; + CA99186A0DF51C9000FE0577 /* Inspector-ButtonBarMode2.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "Inspector-ButtonBarMode2.tif"; sourceTree = ""; }; + CA99186B0DF51C9000FE0577 /* Inspector-ButtonBarMode3.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "Inspector-ButtonBarMode3.tif"; sourceTree = ""; }; + CA9918850DF65E5600FE0577 /* Inspector-ButtonBarModeSelection.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "Inspector-ButtonBarModeSelection.tif"; sourceTree = ""; }; + CA9919640DF9F81600FE0577 /* BWCustomView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWCustomView.h; sourceTree = ""; }; + CA9919650DF9F81600FE0577 /* BWCustomView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWCustomView.m; sourceTree = ""; }; + CA99197D0DFA25CD00FE0577 /* BWCustomView.classdescription */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = BWCustomView.classdescription; sourceTree = ""; }; + CA9919890DFA272500FE0577 /* BWCustomViewIntegration.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWCustomViewIntegration.m; sourceTree = ""; }; + CA991BCD0DFA8B3D00FE0577 /* TexturedSliderPhotoSmall.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = TexturedSliderPhotoSmall.tif; sourceTree = ""; }; + CA991BCE0DFA8B3D00FE0577 /* TexturedSliderPhotoLarge.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = TexturedSliderPhotoLarge.tif; sourceTree = ""; }; + CA991BCF0DFA8B3D00FE0577 /* TexturedSliderSpeakerQuiet.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = TexturedSliderSpeakerQuiet.png; sourceTree = ""; }; + CA991BD00DFA8B3D00FE0577 /* TexturedSliderSpeakerLoud.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = TexturedSliderSpeakerLoud.png; sourceTree = ""; }; + CA9995D80E2DE8B20001808E /* TransparentPopUpPullDownRightN.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = TransparentPopUpPullDownRightN.tif; sourceTree = ""; }; + CA9995E70E2DE9C60001808E /* TransparentPopUpPullDownRightP.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = TransparentPopUpPullDownRightP.tif; sourceTree = ""; }; + CAAC33380FE5DA5700C66575 /* NSApplication+BWAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSApplication+BWAdditions.h"; sourceTree = ""; }; + CAAC33390FE5DA5700C66575 /* NSApplication+BWAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSApplication+BWAdditions.m"; sourceTree = ""; }; + CAAC34180FE8DAD900C66575 /* Library-GradientBox.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "Library-GradientBox.tif"; sourceTree = ""; }; + CAAC34190FE8DAD900C66575 /* Library-StyledTextField.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "Library-StyledTextField.tif"; sourceTree = ""; }; + CAB82ED20F514F39006519E3 /* NSEvent+BWAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSEvent+BWAdditions.h"; sourceTree = ""; }; + CAB82ED30F514F39006519E3 /* NSEvent+BWAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSEvent+BWAdditions.m"; sourceTree = ""; }; + CACEBC7A0E178524003E3CB2 /* NSCustomView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSCustomView.h; sourceTree = ""; }; + CAD1DFBF0E19E9B5005E4CBF /* Inspector-ButtonBarMode2Pressed.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "Inspector-ButtonBarMode2Pressed.tif"; sourceTree = ""; }; + CAD1E00C0E1B476C005E4CBF /* Inspector-ButtonBarMode3Pressed.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "Inspector-ButtonBarMode3Pressed.tif"; sourceTree = ""; }; + CAD1E0120E1B4C2C005E4CBF /* Inspector-ButtonBarMode1Pressed.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "Inspector-ButtonBarMode1Pressed.tif"; sourceTree = ""; }; + CAD1E0180E1B7425005E4CBF /* Library-SelectableToolbar.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "Library-SelectableToolbar.tif"; sourceTree = ""; }; + CAEA804B0ED0A73E0062B378 /* BWToolbarItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWToolbarItem.h; sourceTree = ""; }; + CAEA804C0ED0A73E0062B378 /* BWToolbarItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWToolbarItem.m; sourceTree = ""; }; + CAEA804F0ED0A7500062B378 /* BWToolbarItem.classdescription */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = BWToolbarItem.classdescription; sourceTree = ""; }; + CAEA805F0ED0A8250062B378 /* BWToolbarItemInspector.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = BWToolbarItemInspector.xib; sourceTree = ""; }; + CAEA80740ED0ACA90062B378 /* BWToolbarItemInspector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWToolbarItemInspector.h; sourceTree = ""; }; + CAEA80750ED0ACA90062B378 /* BWToolbarItemInspector.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWToolbarItemInspector.m; sourceTree = ""; }; + CAEA80770ED0AD470062B378 /* BWToolbarItemIntegration.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWToolbarItemIntegration.m; sourceTree = ""; }; + CAEA81630ED46D830062B378 /* Library-ToolbarItem.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "Library-ToolbarItem.tiff"; sourceTree = ""; }; + CAEB146A0F4A534300E57E67 /* BWToolkitFramework.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWToolkitFramework.h; sourceTree = ""; }; + CAEB14740F4A538100E57E67 /* License.rtf */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; path = License.rtf; sourceTree = ""; }; + CAEB14760F4A538A00E57E67 /* Release Notes.rtf */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; path = "Release Notes.rtf"; sourceTree = ""; }; + CAEE04EC0FD753DB001A1C3F /* BWHyperlinkButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWHyperlinkButton.h; sourceTree = ""; }; + CAEE04ED0FD753DB001A1C3F /* BWHyperlinkButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWHyperlinkButton.m; sourceTree = ""; }; + CAEE04F00FD7549A001A1C3F /* BWHyperlinkButtonCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWHyperlinkButtonCell.h; sourceTree = ""; }; + CAEE04F10FD7549A001A1C3F /* BWHyperlinkButtonCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWHyperlinkButtonCell.m; sourceTree = ""; }; + CAEE04F40FD7552F001A1C3F /* BWHyperlinkButton.classdescription */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = BWHyperlinkButton.classdescription; sourceTree = ""; }; + CAEE04F50FD75541001A1C3F /* BWHyperlinkButtonCell.classdescription */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = BWHyperlinkButtonCell.classdescription; sourceTree = ""; }; + CAEE05530FD76214001A1C3F /* BWHyperlinkButtonInspector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWHyperlinkButtonInspector.h; sourceTree = ""; }; + CAEE05540FD76214001A1C3F /* BWHyperlinkButtonInspector.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWHyperlinkButtonInspector.m; sourceTree = ""; }; + CAEE05610FD764AB001A1C3F /* BWHyperlinkButtonInspector.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = BWHyperlinkButtonInspector.xib; sourceTree = ""; }; + CAEE05650FD76542001A1C3F /* BWHyperlinkButtonIntegration.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWHyperlinkButtonIntegration.m; sourceTree = ""; }; + CAEE07730FD79453001A1C3F /* BWGradientBox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWGradientBox.h; sourceTree = ""; }; + CAEE07740FD79453001A1C3F /* BWGradientBox.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWGradientBox.m; sourceTree = ""; }; + CAEE07770FD79C65001A1C3F /* BWGradientBox.classdescription */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = BWGradientBox.classdescription; sourceTree = ""; }; + CAEE07780FD79C96001A1C3F /* BWStyledTextField.classdescription */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = BWStyledTextField.classdescription; sourceTree = ""; }; + CAEE077A0FD79CE9001A1C3F /* BWStyledTextField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWStyledTextField.h; sourceTree = ""; }; + CAEE077B0FD79CE9001A1C3F /* BWStyledTextField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWStyledTextField.m; sourceTree = ""; }; + CAEE07830FD79D6E001A1C3F /* BWStyledTextFieldCell.classdescription */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = BWStyledTextFieldCell.classdescription; sourceTree = ""; }; + CAEE07840FD79D91001A1C3F /* BWStyledTextFieldInspector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWStyledTextFieldInspector.h; sourceTree = ""; }; + CAEE07850FD79D91001A1C3F /* BWStyledTextFieldInspector.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWStyledTextFieldInspector.m; sourceTree = ""; }; + CAEE07870FD79DD6001A1C3F /* BWStyledTextFieldIntegration.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWStyledTextFieldIntegration.m; sourceTree = ""; }; + CAEE078A0FD79E3B001A1C3F /* BWStyledTextFieldInspector.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = BWStyledTextFieldInspector.xib; sourceTree = ""; }; + CAEE07C00FD7BB18001A1C3F /* BWStyledTextFieldCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWStyledTextFieldCell.h; sourceTree = ""; }; + CAEE07C10FD7BB18001A1C3F /* BWStyledTextFieldCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWStyledTextFieldCell.m; sourceTree = ""; }; + CAEE09FC0FD7D4E9001A1C3F /* BWGradientBoxInspector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWGradientBoxInspector.h; sourceTree = ""; }; + CAEE09FD0FD7D4E9001A1C3F /* BWGradientBoxInspector.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWGradientBoxInspector.m; sourceTree = ""; }; + CAEE09FF0FD7D544001A1C3F /* BWGradientBoxInspector.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = BWGradientBoxInspector.xib; sourceTree = ""; }; + CAEE0A010FD7D557001A1C3F /* BWGradientBoxIntegration.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWGradientBoxIntegration.m; sourceTree = ""; }; + CAF6B8440E049A6500CA1768 /* ButtonBarPullDownArrow.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = ButtonBarPullDownArrow.pdf; sourceTree = ""; }; + DD92D38A0106425D02CA0E72 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 53DF68FB067E5B5A0090B5B0 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 13F8B89007B43554008AE28D /* Cocoa.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 8D1AC96E0486D14A00FE50C9 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 8D1AC9700486D14A00FE50C9 /* Cocoa.framework in Frameworks */, + 546DEAF3067F632A0098DCC4 /* BWToolkitFramework.framework in Frameworks */, + C0D069560A49DF9100C95564 /* InterfaceBuilderKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 0259C574FE90428111CA0C5A /* BWToolkit */ = { + isa = PBXGroup; + children = ( + 32DBCF9E0370C38000C91783 /* Plugin */, + 54D33B2C06778E4400C9C163 /* Framework */, + 0259C582FE90428111CA0C5A /* Resources */, + 1ED78706FE9D4A0611CA0C5A /* Products */, + 2E58F364FFB232C311CA0CBA /* Frameworks */, + ); + name = BWToolkit; + sourceTree = ""; + }; + 0259C582FE90428111CA0C5A /* Resources */ = { + isa = PBXGroup; + children = ( + CAEB14760F4A538A00E57E67 /* Release Notes.rtf */, + CAEB14740F4A538100E57E67 /* License.rtf */, + 8D1AC9730486D14A00FE50C9 /* Info.plist */, + 53DF68FE067E5B5A0090B5B0 /* BWToolkitFramework-Info.plist */, + 8D1AC97F0486D23B00FE50C9 /* InfoPlist.strings */, + ); + name = Resources; + sourceTree = ""; + }; + 131E8FE8067F80F40006E0CE /* Resources */ = { + isa = PBXGroup; + children = ( + CA4A52AC0E1F0F3000BC7395 /* Private IB Classes */, + CA99183C0DF4DC6200FE0577 /* Libraries */, + CA99183D0DF4DC6A00FE0577 /* Inspectors */, + CA630A530DC7F59800AD7F9E /* Library Thumbnails */, + ); + name = Resources; + sourceTree = ""; + }; + 13F8B6FD07B43410008AE28D /* Linked Frameworks */ = { + isa = PBXGroup; + children = ( + DD92D38A0106425D02CA0E72 /* Cocoa.framework */, + C0D069550A49DF9100C95564 /* InterfaceBuilderKit.framework */, + ); + name = "Linked Frameworks"; + sourceTree = ""; + }; + 13F8B70407B43425008AE28D /* Other Frameworks */ = { + isa = PBXGroup; + children = ( + 13F8B88807B434F6008AE28D /* AppKit.framework */, + 13F8B88907B434F6008AE28D /* CoreData.framework */, + 13F8B88A07B434F6008AE28D /* Foundation.framework */, + ); + name = "Other Frameworks"; + sourceTree = ""; + }; + 1ED78706FE9D4A0611CA0C5A /* Products */ = { + isa = PBXGroup; + children = ( + 8D1AC9740486D14A00FE50C9 /* BWToolkit.ibplugin */, + 53DF68FD067E5B5A0090B5B0 /* BWToolkitFramework.framework */, + ); + name = Products; + sourceTree = ""; + }; + 2E58F364FFB232C311CA0CBA /* Frameworks */ = { + isa = PBXGroup; + children = ( + 13F8B6FD07B43410008AE28D /* Linked Frameworks */, + 13F8B70407B43425008AE28D /* Other Frameworks */, + ); + name = Frameworks; + sourceTree = ""; + }; + 32DBCF9E0370C38000C91783 /* Plugin */ = { + isa = PBXGroup; + children = ( + 54D33B2406778DD400C9C163 /* Class Descriptions */, + 54D33B2506778DF000C9C163 /* Classes */, + 32DBCF9F0370C38200C91783 /* Other Sources */, + 131E8FE8067F80F40006E0CE /* Resources */, + ); + name = Plugin; + sourceTree = ""; + }; + 32DBCF9F0370C38200C91783 /* Other Sources */ = { + isa = PBXGroup; + children = ( + 32DBCF980370C29C00C91783 /* BWToolkit_Prefix.pch */, + CA2FB4060DFD0058005131D4 /* BWTexturedSliderIntegration.m */, + CAEA80770ED0AD470062B378 /* BWToolbarItemIntegration.m */, + CA6309E90DC7F39600AD7F9E /* BWSelectableToolbarIntegration.m */, + CA325D540DCD3045001446BB /* BWAnchoredButtonBarIntegration.m */, + CA325ACD0DCABE22001446BB /* BWAnchoredButtonIntegration.m */, + CA94541A0DE29DF200F103BC /* BWAnchoredPopUpButtonIntegration.m */, + CA4071690E0DB7CA00B56AB7 /* BWUnanchoredButtonIntegration.m */, + CA4071CF0E0ED67100B56AB7 /* BWUnanchoredButtonContainerIntegration.m */, + CA6309EA0DC7F39600AD7F9E /* BWTransparentButtonIntegration.m */, + CA6309EB0DC7F39600AD7F9E /* BWTransparentCheckboxIntegration.m */, + CA6309EC0DC7F39600AD7F9E /* BWTransparentPopUpButtonIntegration.m */, + CA630CB80DC83EB700AD7F9E /* BWTransparentSliderIntegration.m */, + CA4A53B10E2033E800BC7395 /* BWTransparentTableViewIntegration.m */, + CA10ABD40E272711009BA4D7 /* BWTransparentScrollViewIntegration.m */, + CA9451560DE14DE600F103BC /* BWAddRegularBottomBarIntegration.m */, + CA94516F0DE154CF00F103BC /* BWAddSmallBottomBarIntegration.m */, + CA685F2D0E690EE50003D937 /* BWAddMiniBottomBarIntegration.m */, + CA685F2F0E690FB80003D937 /* BWAddSheetBottomBarIntegration.m */, + CA9451180DE1449000F103BC /* BWRemoveBottomBarIntegration.m */, + CA9919890DFA272500FE0577 /* BWCustomViewIntegration.m */, + CA4A52140E1EECEB00BC7395 /* BWSheetControllerIntegration.m */, + CA685D8B0E6646000003D937 /* BWSplitViewIntegration.m */, + CAEE05650FD76542001A1C3F /* BWHyperlinkButtonIntegration.m */, + CAEE07870FD79DD6001A1C3F /* BWStyledTextFieldIntegration.m */, + CAEE0A010FD7D557001A1C3F /* BWGradientBoxIntegration.m */, + ); + name = "Other Sources"; + sourceTree = ""; + }; + 54D33B2406778DD400C9C163 /* Class Descriptions */ = { + isa = PBXGroup; + children = ( + CA6309AD0DC7EB5E00AD7F9E /* BWTexturedSlider.classdescription */, + CA6309AE0DC7EB5E00AD7F9E /* BWTexturedSliderCell.classdescription */, + CA6309AF0DC7EB5E00AD7F9E /* BWTransparentButton.classdescription */, + CA6309B00DC7EB5E00AD7F9E /* BWTransparentButtonCell.classdescription */, + CA6309B10DC7EB5E00AD7F9E /* BWTransparentCheckbox.classdescription */, + CA6309B20DC7EB5E00AD7F9E /* BWTransparentCheckboxCell.classdescription */, + CA6309B30DC7EB5E00AD7F9E /* BWTransparentPopUpButton.classdescription */, + CA6309B40DC7EB5E00AD7F9E /* BWTransparentPopUpButtonCell.classdescription */, + CA6309B50DC7EB5E00AD7F9E /* BWTransparentSlider.classdescription */, + CA6309B60DC7EB5E00AD7F9E /* BWTransparentSliderCell.classdescription */, + CA94518E0DE15C4F00F103BC /* BWTransparentTableView.classdescription */, + CA9451EA0DE1692100F103BC /* BWTransparentTableViewCell.classdescription */, + CA3A188B0ECA9E9E000C3A43 /* BWTransparentTextFieldCell.classdescription */, + CA6309B70DC7EB5E00AD7F9E /* BWSplitView.classdescription */, + CA99197D0DFA25CD00FE0577 /* BWCustomView.classdescription */, + CA6309B80DC7EB5E00AD7F9E /* BWInsetTextField.classdescription */, + CA6309BA0DC7EB5E00AD7F9E /* BWAddRegularBottomBar.classdescription */, + CA9450880DE0E6BA00F103BC /* BWAddSmallBottomBar.classdescription */, + CA685F310E6955650003D937 /* BWAddMiniBottomBar.classdescription */, + CA685F330E69557B0003D937 /* BWAddSheetBottomBar.classdescription */, + CA6309BB0DC7EB5E00AD7F9E /* BWRemoveBottomBar.classdescription */, + CA6309BC0DC7EB5E00AD7F9E /* BWToolbarShowColorsItem.classdescription */, + CA6309BD0DC7EB5E00AD7F9E /* BWToolbarShowFontsItem.classdescription */, + CA6309BE0DC7EB5E00AD7F9E /* BWSelectableToolbar.classdescription */, + CA94541C0DE29E3500F103BC /* BWAnchoredButtonBar.classdescription */, + CA94541D0DE29E4600F103BC /* BWAnchoredButton.classdescription */, + CA94541E0DE29E5300F103BC /* BWAnchoredPopUpButton.classdescription */, + CA4A50DD0E1DCB5A00BC7395 /* BWSheetController.classdescription */, + CA10AC030E272790009BA4D7 /* BWTransparentScrollView.classdescription */, + CA405A710EBF2E560010580A /* BWTransparentScroller.classdescription */, + CA960A4A0E75F84700308367 /* BWTokenField.classdescription */, + CA960A4C0E75F85800308367 /* BWTokenFieldCell.classdescription */, + CAEA804F0ED0A7500062B378 /* BWToolbarItem.classdescription */, + CAEE04F40FD7552F001A1C3F /* BWHyperlinkButton.classdescription */, + CAEE04F50FD75541001A1C3F /* BWHyperlinkButtonCell.classdescription */, + CAEE07770FD79C65001A1C3F /* BWGradientBox.classdescription */, + CAEE07780FD79C96001A1C3F /* BWStyledTextField.classdescription */, + CAEE07830FD79D6E001A1C3F /* BWStyledTextFieldCell.classdescription */, + ); + name = "Class Descriptions"; + sourceTree = ""; + }; + 54D33B2506778DF000C9C163 /* Classes */ = { + isa = PBXGroup; + children = ( + 0259C57AFE90428111CA0C5A /* BWToolkit.h */, + 0259C576FE90428111CA0C5A /* BWToolkit.m */, + CA6309DF0DC7F2EE00AD7F9E /* BWTexturedSliderInspector.h */, + CA6309E00DC7F2EE00AD7F9E /* BWTexturedSliderInspector.m */, + CA6309E10DC7F2EE00AD7F9E /* BWSelectableToolbarInspector.h */, + CA6309E20DC7F2EE00AD7F9E /* BWSelectableToolbarInspector.m */, + CA325D510DCD3019001446BB /* BWAnchoredButtonBarInspector.h */, + CA325D520DCD3019001446BB /* BWAnchoredButtonBarInspector.m */, + CA685D820E663E4D0003D937 /* BWSplitViewInspector.h */, + CA685D830E663E4D0003D937 /* BWSplitViewInspector.m */, + CA6124D40F062E7500A3B5AC /* BWSplitViewInspectorAutosizingView.h */, + CA6124D50F062E7500A3B5AC /* BWSplitViewInspectorAutosizingView.m */, + CA6124130F060E8500A3B5AC /* BWSplitViewInspectorAutosizingButtonCell.h */, + CA6124140F060E8500A3B5AC /* BWSplitViewInspectorAutosizingButtonCell.m */, + CAEA80740ED0ACA90062B378 /* BWToolbarItemInspector.h */, + CAEA80750ED0ACA90062B378 /* BWToolbarItemInspector.m */, + CAEE05530FD76214001A1C3F /* BWHyperlinkButtonInspector.h */, + CAEE05540FD76214001A1C3F /* BWHyperlinkButtonInspector.m */, + CAEE07840FD79D91001A1C3F /* BWStyledTextFieldInspector.h */, + CAEE07850FD79D91001A1C3F /* BWStyledTextFieldInspector.m */, + CAEE09FC0FD7D4E9001A1C3F /* BWGradientBoxInspector.h */, + CAEE09FD0FD7D4E9001A1C3F /* BWGradientBoxInspector.m */, + CA0DDBCE0FDA586F006B3EA3 /* BWGradientWell.h */, + CA0DDBCF0FDA586F006B3EA3 /* BWGradientWell.m */, + CA0DDC1F0FDA5EDA006B3EA3 /* BWGradientWellColorWell.h */, + CA0DDC200FDA5EDA006B3EA3 /* BWGradientWellColorWell.m */, + ); + name = Classes; + sourceTree = ""; + }; + 54D33B2C06778E4400C9C163 /* Framework */ = { + isa = PBXGroup; + children = ( + CA630A630DC7F67F00AD7F9E /* Graphics */, + CA630AAD0DC7F8ED00AD7F9E /* Classes */, + C0894DA40C32F4C100401507 /* Categories */, + CACEBC780E17759C003E3CB2 /* Private Cocoa Headers */, + ); + name = Framework; + sourceTree = ""; + }; + C0894DA40C32F4C100401507 /* Categories */ = { + isa = PBXGroup; + children = ( + CA875AD80DD165A500764511 /* NSColor+BWAdditions.h */, + CA875AD90DD165A500764511 /* NSColor+BWAdditions.m */, + CA875CC50DD7EA3900764511 /* NSImage+BWAdditions.h */, + CA875CC60DD7EA3900764511 /* NSImage+BWAdditions.m */, + CA944DD80DDF800D00F103BC /* NSWindow+BWAdditions.h */, + CA944DD90DDF800D00F103BC /* NSWindow+BWAdditions.m */, + CA944F060DE00CC000F103BC /* NSView+BWAdditions.h */, + CA944F070DE00CC000F103BC /* NSView+BWAdditions.m */, + CAB82ED20F514F39006519E3 /* NSEvent+BWAdditions.h */, + CAB82ED30F514F39006519E3 /* NSEvent+BWAdditions.m */, + CA66C0F50EF79AC0005EE9A5 /* NSString+BWAdditions.h */, + CA66C0F40EF79AC0005EE9A5 /* NSString+BWAdditions.m */, + CAAC33380FE5DA5700C66575 /* NSApplication+BWAdditions.h */, + CAAC33390FE5DA5700C66575 /* NSApplication+BWAdditions.m */, + ); + name = Categories; + sourceTree = ""; + }; + CA0DDC800FDA6981006B3EA3 /* Gradient Well */ = { + isa = PBXGroup; + children = ( + CA0DDC810FDA698B006B3EA3 /* GradientWellPattern.tif */, + ); + name = "Gradient Well"; + sourceTree = ""; + }; + CA325ABD0DCAB76C001446BB /* Button Bar */ = { + isa = PBXGroup; + children = ( + CA325B4D0DCAE25A001446BB /* BWAnchoredButtonBar.h */, + CA325B4E0DCAE25A001446BB /* BWAnchoredButtonBar.m */, + CA325F020DCD91EF001446BB /* BWAnchoredButton.h */, + CA325F030DCD91EF001446BB /* BWAnchoredButton.m */, + CA325F060DCD9268001446BB /* BWAnchoredButtonCell.h */, + CA325F070DCD9268001446BB /* BWAnchoredButtonCell.m */, + CA9453DB0DE293BC00F103BC /* BWAnchoredPopUpButton.h */, + CA9453DC0DE293BC00F103BC /* BWAnchoredPopUpButton.m */, + CA9453DF0DE293C800F103BC /* BWAnchoredPopUpButtonCell.h */, + CA9453E00DE293C800F103BC /* BWAnchoredPopUpButtonCell.m */, + CA4071CB0E0ED32300B56AB7 /* BWUnanchoredButtonContainer.h */, + CA4071CC0E0ED32300B56AB7 /* BWUnanchoredButtonContainer.m */, + CA4071370E0B985300B56AB7 /* BWUnanchoredButton.h */, + CA4071380E0B985300B56AB7 /* BWUnanchoredButton.m */, + CA40713B0E0B986000B56AB7 /* BWUnanchoredButtonCell.h */, + CA40713C0E0B986000B56AB7 /* BWUnanchoredButtonCell.m */, + ); + name = "Button Bar"; + sourceTree = ""; + }; + CA405AC80EBF2FBE0010580A /* Scroller */ = { + isa = PBXGroup; + children = ( + CA405AD40EBF2FE30010580A /* TransparentScrollerKnobRight.tif */, + CA405AD50EBF2FE30010580A /* TransparentScrollerKnobBottom.tif */, + CA405AD60EBF2FE30010580A /* TransparentScrollerSlotRight.tif */, + CA405AD70EBF2FE30010580A /* TransparentScrollerKnobLeft.tif */, + CA405AD80EBF2FE30010580A /* TransparentScrollerKnobVerticalFill.tif */, + CA405AD90EBF2FE30010580A /* TransparentScrollerSlotVerticalFill.tif */, + CA405ADA0EBF2FE30010580A /* TransparentScrollerSlotHorizontalFill.tif */, + CA405ADB0EBF2FE30010580A /* TransparentScrollerKnobHorizontalFill.tif */, + CA405ADC0EBF2FE30010580A /* TransparentScrollerSlotLeft.tif */, + CA405ADD0EBF2FE30010580A /* TransparentScrollerSlotBottom.tif */, + CA405ADE0EBF2FE30010580A /* TransparentScrollerSlotTop.tif */, + CA405ADF0EBF2FE30010580A /* TransparentScrollerKnobTop.tif */, + ); + name = Scroller; + sourceTree = ""; + }; + CA4A50D80E1DC79000BC7395 /* Sheet Controller */ = { + isa = PBXGroup; + children = ( + CA4A50D90E1DC7AB00BC7395 /* BWSheetController.h */, + CA4A50DA0E1DC7AB00BC7395 /* BWSheetController.m */, + ); + name = "Sheet Controller"; + sourceTree = ""; + }; + CA4A52AC0E1F0F3000BC7395 /* Private IB Classes */ = { + isa = PBXGroup; + children = ( + CA4A52B10E1F11D000BC7395 /* IBColor.h */, + ); + name = "Private IB Classes"; + sourceTree = ""; + }; + CA6124220F06160800A3B5AC /* Anchored Button Bar */ = { + isa = PBXGroup; + children = ( + CA9918690DF51C9000FE0577 /* Inspector-ButtonBarMode1.tif */, + CA99186A0DF51C9000FE0577 /* Inspector-ButtonBarMode2.tif */, + CA99186B0DF51C9000FE0577 /* Inspector-ButtonBarMode3.tif */, + CAD1E0120E1B4C2C005E4CBF /* Inspector-ButtonBarMode1Pressed.tif */, + CAD1DFBF0E19E9B5005E4CBF /* Inspector-ButtonBarMode2Pressed.tif */, + CAD1E00C0E1B476C005E4CBF /* Inspector-ButtonBarMode3Pressed.tif */, + CA9918850DF65E5600FE0577 /* Inspector-ButtonBarModeSelection.tif */, + ); + name = "Anchored Button Bar"; + sourceTree = ""; + }; + CA6124230F06161A00A3B5AC /* Split View */ = { + isa = PBXGroup; + children = ( + CA6124570F06177500A3B5AC /* Inspector-SplitViewArrowBlueLeft.tif */, + CA6124590F06177500A3B5AC /* Inspector-SplitViewArrowBlueRight.tif */, + CA6124790F061DA900A3B5AC /* Inspector-SplitViewArrowRedFill.tif */, + CA61247A0F061DA900A3B5AC /* Inspector-SplitViewArrowRedRight.tif */, + CA61247B0F061DA900A3B5AC /* Inspector-SplitViewArrowRedLeft.tif */, + CA6124070F05F88500A3B5AC /* Inspector-SplitViewBackground.tiff */, + ); + name = "Split View"; + sourceTree = ""; + }; + CA630A530DC7F59800AD7F9E /* Library Thumbnails */ = { + isa = PBXGroup; + children = ( + CAAC34180FE8DAD900C66575 /* Library-GradientBox.tif */, + CAAC34190FE8DAD900C66575 /* Library-StyledTextField.tif */, + CAD1E0180E1B7425005E4CBF /* Library-SelectableToolbar.tif */, + CA6860170E6A13B00003D937 /* Library-AddMiniBottomBar.tif */, + CA94506D0DE0D9F600F103BC /* Library-AddSmallBottomBar.tif */, + CA94507F0DE0DE7F00F103BC /* Library-AddRegularBottomBar.tif */, + CA6860430E6A26180003D937 /* Library-AddSheetBottomBar.tif */, + CA9450800DE0DE7F00F103BC /* Library-RemoveBottomBar.tif */, + CA944F910DE01F8100F103BC /* Library-AnchoredButtonBar.tif */, + CA944E970DDFF53000F103BC /* Library-AnchoredButton.tif */, + CA944E980DDFF53000F103BC /* Library-AnchoredPopUpButton.tif */, + CA944E410DDFE50200F103BC /* Library-TransparentSlider.tif */, + CA944E420DDFE50200F103BC /* Library-TransparentCheckbox.tif */, + CA944E430DDFE50200F103BC /* Library-TransparentPopUpButton.tif */, + CA944E440DDFE50200F103BC /* Library-TransparentLabel.tif */, + CA944E390DDFE32A00F103BC /* Library-TransparentButton.tif */, + CA4A54760E2190A000BC7395 /* Library-TransparentTableView.tif */, + CA405A110EBF214E0010580A /* Library-TransparentTextView.tif */, + CA4A54770E2190A000BC7395 /* Library-TransparentCheckboxCell.tif */, + CA630A4D0DC7F59300AD7F9E /* Library-TexturedSlider.tif */, + CA4A51E20E1EC6B700BC7395 /* Library-SheetController.tif */, + CA630A4E0DC7F59300AD7F9E /* Library-InsetTextField.tif */, + CA40594A0EBDCBA70010580A /* Library-TokenField.tif */, + CA944E370DDFE32A00F103BC /* Library-GradientSplitView.tif */, + CA685E840E669FCA0003D937 /* Library-VerticalSplitView.tif */, + CA685E850E669FCA0003D937 /* Library-HorizontalSplitView.tif */, + CA944E360DDFE32A00F103BC /* Library-ShowFonts.tif */, + CA944E380DDFE32A00F103BC /* Library-ShowColors.tif */, + CA4071110E0B78E900B56AB7 /* Library-TexturedAddButton.tif */, + CA4071120E0B78E900B56AB7 /* Library-TexturedRemoveButton.tif */, + CAEA81630ED46D830062B378 /* Library-ToolbarItem.tiff */, + ); + name = "Library Thumbnails"; + sourceTree = ""; + }; + CA630A630DC7F67F00AD7F9E /* Graphics */ = { + isa = PBXGroup; + children = ( + CAF6B8060E049A3100CA1768 /* Button Bar */, + CA630A670DC7F6E300AD7F9E /* Textured Slider */, + CA630A660DC7F6D300AD7F9E /* Split View */, + CA630A640DC7F6BA00AD7F9E /* Toolbar Items */, + CA630A650DC7F6C300AD7F9E /* Transparent Controls */, + ); + name = Graphics; + sourceTree = ""; + }; + CA630A640DC7F6BA00AD7F9E /* Toolbar Items */ = { + isa = PBXGroup; + children = ( + CA4070B50E0B66C200B56AB7 /* ToolbarItemColors.tiff */, + CA4070B60E0B66C200B56AB7 /* ToolbarItemFonts.tiff */, + ); + name = "Toolbar Items"; + sourceTree = ""; + }; + CA630A650DC7F6C300AD7F9E /* Transparent Controls */ = { + isa = PBXGroup; + children = ( + CA405AC80EBF2FBE0010580A /* Scroller */, + CA630A820DC7F80900AD7F9E /* Slider */, + CA630A810DC7F80400AD7F9E /* Button */, + CA630A800DC7F7FD00AD7F9E /* Check Box */, + CA630A7F0DC7F7F700AD7F9E /* Pop Up */, + ); + name = "Transparent Controls"; + sourceTree = ""; + }; + CA630A660DC7F6D300AD7F9E /* Split View */ = { + isa = PBXGroup; + children = ( + CA630A760DC7F74400AD7F9E /* GradientSplitViewDimpleBitmap.tif */, + CA630A770DC7F74400AD7F9E /* GradientSplitViewDimpleVector.pdf */, + ); + name = "Split View"; + sourceTree = ""; + }; + CA630A670DC7F6E300AD7F9E /* Textured Slider */ = { + isa = PBXGroup; + children = ( + CA991BCD0DFA8B3D00FE0577 /* TexturedSliderPhotoSmall.tif */, + CA991BCE0DFA8B3D00FE0577 /* TexturedSliderPhotoLarge.tif */, + CA991BCF0DFA8B3D00FE0577 /* TexturedSliderSpeakerQuiet.png */, + CA991BD00DFA8B3D00FE0577 /* TexturedSliderSpeakerLoud.png */, + CA630A680DC7F6FC00AD7F9E /* TexturedSliderTrackRight.tiff */, + CA630A690DC7F6FC00AD7F9E /* TexturedSliderTrackFill.tiff */, + CA630A6A0DC7F6FC00AD7F9E /* TexturedSliderTrackLeft.tiff */, + CA630A6B0DC7F6FC00AD7F9E /* TexturedSliderThumbP.tiff */, + CA630A6C0DC7F6FC00AD7F9E /* TexturedSliderThumbN.tiff */, + ); + name = "Textured Slider"; + sourceTree = ""; + }; + CA630A7F0DC7F7F700AD7F9E /* Pop Up */ = { + isa = PBXGroup; + children = ( + CA630AA10DC7F88A00AD7F9E /* TransparentPopUpFillN.tiff */, + CA630AA20DC7F88A00AD7F9E /* TransparentPopUpFillP.tiff */, + CA630AA30DC7F88A00AD7F9E /* TransparentPopUpLeftN.tiff */, + CA630AA40DC7F88A00AD7F9E /* TransparentPopUpLeftP.tiff */, + CA630AA50DC7F88A00AD7F9E /* TransparentPopUpRightN.tiff */, + CA630AA60DC7F88A00AD7F9E /* TransparentPopUpRightP.tiff */, + CA9995D80E2DE8B20001808E /* TransparentPopUpPullDownRightN.tif */, + CA9995E70E2DE9C60001808E /* TransparentPopUpPullDownRightP.tif */, + ); + name = "Pop Up"; + sourceTree = ""; + }; + CA630A800DC7F7FD00AD7F9E /* Check Box */ = { + isa = PBXGroup; + children = ( + CA630A990DC7F87B00AD7F9E /* TransparentCheckboxOffN.tiff */, + CA630A9A0DC7F87B00AD7F9E /* TransparentCheckboxOffP.tiff */, + CA630A9B0DC7F87B00AD7F9E /* TransparentCheckboxOnN.tiff */, + CA630A9C0DC7F87B00AD7F9E /* TransparentCheckboxOnP.tiff */, + ); + name = "Check Box"; + sourceTree = ""; + }; + CA630A810DC7F80400AD7F9E /* Button */ = { + isa = PBXGroup; + children = ( + CA630A8D0DC7F84700AD7F9E /* TransparentButtonRightN.tiff */, + CA630A8E0DC7F84700AD7F9E /* TransparentButtonFillN.tiff */, + CA630A8F0DC7F84700AD7F9E /* TransparentButtonLeftN.tiff */, + CA630A900DC7F84700AD7F9E /* TransparentButtonRightP.tiff */, + CA630A910DC7F84700AD7F9E /* TransparentButtonFillP.tiff */, + CA630A920DC7F84700AD7F9E /* TransparentButtonLeftP.tiff */, + ); + name = Button; + sourceTree = ""; + }; + CA630A820DC7F80900AD7F9E /* Slider */ = { + isa = PBXGroup; + children = ( + CA94521A0DE17A1A00F103BC /* TransparentSliderTriangleThumbN.tiff */, + CA94521B0DE17A1A00F103BC /* TransparentSliderTriangleThumbP.tiff */, + CA630A830DC7F83A00AD7F9E /* TransparentSliderThumbP.tiff */, + CA630A840DC7F83A00AD7F9E /* TransparentSliderThumbN.tiff */, + CA630A850DC7F83A00AD7F9E /* TransparentSliderTrackFill.tiff */, + CA630A860DC7F83A00AD7F9E /* TransparentSliderTrackLeft.tiff */, + CA630A870DC7F83A00AD7F9E /* TransparentSliderTrackRight.tiff */, + ); + name = Slider; + sourceTree = ""; + }; + CA630AAD0DC7F8ED00AD7F9E /* Classes */ = { + isa = PBXGroup; + children = ( + CAEB146A0F4A534300E57E67 /* BWToolkitFramework.h */, + CAEE07790FD79CD9001A1C3F /* Styled Text Field */, + CAEE07720FD79440001A1C3F /* Gradient Box */, + CA960A4D0E75F87500308367 /* Token Field */, + CA4A50D80E1DC79000BC7395 /* Sheet Controller */, + CA325ABD0DCAB76C001446BB /* Button Bar */, + CA630ADE0DC7FB3800AD7F9E /* Toolbar Items */, + CA630ADD0DC7FB3300AD7F9E /* Selectable Toolbar */, + CA630ABA0DC7F97C00AD7F9E /* Bottom Bar */, + CA630AB90DC7F96F00AD7F9E /* Inset Text Field */, + CA630AB80DC7F96400AD7F9E /* Transparent Controls */, + CA630AB70DC7F95D00AD7F9E /* Split View */, + CA630AB40DC7F94000AD7F9E /* Textured Slider */, + CAA2CC730F80B82E00E70572 /* Hyperlink Button */, + ); + name = Classes; + sourceTree = ""; + }; + CA630AB40DC7F94000AD7F9E /* Textured Slider */ = { + isa = PBXGroup; + children = ( + CA630B220DC82E2100AD7F9E /* BWTexturedSlider.h */, + CA630B230DC82E2100AD7F9E /* BWTexturedSlider.m */, + CA630B240DC82E2100AD7F9E /* BWTexturedSliderCell.h */, + CA630B250DC82E2100AD7F9E /* BWTexturedSliderCell.m */, + ); + name = "Textured Slider"; + sourceTree = ""; + }; + CA630AB70DC7F95D00AD7F9E /* Split View */ = { + isa = PBXGroup; + children = ( + CA630B1C0DC82DD600AD7F9E /* BWSplitView.h */, + CA630B1D0DC82DD600AD7F9E /* BWSplitView.m */, + CA9919640DF9F81600FE0577 /* BWCustomView.h */, + CA9919650DF9F81600FE0577 /* BWCustomView.m */, + ); + name = "Split View"; + sourceTree = ""; + }; + CA630AB80DC7F96400AD7F9E /* Transparent Controls */ = { + isa = PBXGroup; + children = ( + CA630AF80DC8004A00AD7F9E /* BWTransparentButton.h */, + CA630AF90DC8004A00AD7F9E /* BWTransparentButton.m */, + CA630AFA0DC8004A00AD7F9E /* BWTransparentButtonCell.h */, + CA630AFB0DC8004A00AD7F9E /* BWTransparentButtonCell.m */, + CA630AFC0DC8004A00AD7F9E /* BWTransparentCheckbox.h */, + CA630AFD0DC8004A00AD7F9E /* BWTransparentCheckbox.m */, + CA630AFE0DC8004A00AD7F9E /* BWTransparentCheckboxCell.h */, + CA630AFF0DC8004A00AD7F9E /* BWTransparentCheckboxCell.m */, + CA630B000DC8004A00AD7F9E /* BWTransparentPopUpButton.h */, + CA630B010DC8004A00AD7F9E /* BWTransparentPopUpButton.m */, + CA630B020DC8004A00AD7F9E /* BWTransparentPopUpButtonCell.h */, + CA630B030DC8004A00AD7F9E /* BWTransparentPopUpButtonCell.m */, + CA630B040DC8004A00AD7F9E /* BWTransparentSlider.h */, + CA630B050DC8004A00AD7F9E /* BWTransparentSlider.m */, + CA630B060DC8004A00AD7F9E /* BWTransparentSliderCell.h */, + CA630B070DC8004A00AD7F9E /* BWTransparentSliderCell.m */, + CA3A18870ECA9E86000C3A43 /* BWTransparentTextFieldCell.h */, + CA3A18880ECA9E86000C3A43 /* BWTransparentTextFieldCell.m */, + CA10ABD60E272748009BA4D7 /* BWTransparentScrollView.h */, + CA10ABD70E272748009BA4D7 /* BWTransparentScrollView.m */, + CA405A6E0EBF2E400010580A /* BWTransparentScroller.h */, + CA405A6D0EBF2E400010580A /* BWTransparentScroller.m */, + CA9451890DE15A6C00F103BC /* BWTransparentTableView.h */, + CA94518A0DE15A6C00F103BC /* BWTransparentTableView.m */, + CA9451E60DE1690500F103BC /* BWTransparentTableViewCell.h */, + CA9451E70DE1690500F103BC /* BWTransparentTableViewCell.m */, + ); + name = "Transparent Controls"; + sourceTree = ""; + }; + CA630AB90DC7F96F00AD7F9E /* Inset Text Field */ = { + isa = PBXGroup; + children = ( + CA630AF40DC8002200AD7F9E /* BWInsetTextField.h */, + CA630AF50DC8002200AD7F9E /* BWInsetTextField.m */, + ); + name = "Inset Text Field"; + sourceTree = ""; + }; + CA630ABA0DC7F97C00AD7F9E /* Bottom Bar */ = { + isa = PBXGroup; + children = ( + CA630AEC0DC7FF0800AD7F9E /* BWAddRegularBottomBar.h */, + CA630AED0DC7FF0800AD7F9E /* BWAddRegularBottomBar.m */, + CA630CF80DC843DD00AD7F9E /* BWAddSmallBottomBar.h */, + CA630CF90DC843DD00AD7F9E /* BWAddSmallBottomBar.m */, + CA685EFD0E68C6CB0003D937 /* BWAddMiniBottomBar.h */, + CA685EFE0E68C6CB0003D937 /* BWAddMiniBottomBar.m */, + CA685F1F0E68C8290003D937 /* BWAddSheetBottomBar.h */, + CA685F200E68C8290003D937 /* BWAddSheetBottomBar.m */, + CA630AEE0DC7FF0800AD7F9E /* BWRemoveBottomBar.h */, + CA630AEF0DC7FF0800AD7F9E /* BWRemoveBottomBar.m */, + ); + name = "Bottom Bar"; + sourceTree = ""; + }; + CA630ADD0DC7FB3300AD7F9E /* Selectable Toolbar */ = { + isa = PBXGroup; + children = ( + CA630AE80DC7FC3400AD7F9E /* BWSelectableToolbar.h */, + CA630AE90DC7FC3400AD7F9E /* BWSelectableToolbar.m */, + CA34552E0DDCD6C900A7C0A9 /* BWSelectableToolbarHelper.h */, + CA34552F0DDCD6C900A7C0A9 /* BWSelectableToolbarHelper.m */, + ); + name = "Selectable Toolbar"; + sourceTree = ""; + }; + CA630ADE0DC7FB3800AD7F9E /* Toolbar Items */ = { + isa = PBXGroup; + children = ( + CA630AE00DC7FB6300AD7F9E /* BWToolbarShowColorsItem.h */, + CA630AE10DC7FB6300AD7F9E /* BWToolbarShowColorsItem.m */, + CA630AE20DC7FB6300AD7F9E /* BWToolbarShowFontsItem.h */, + CA630AE30DC7FB6300AD7F9E /* BWToolbarShowFontsItem.m */, + CAEA804B0ED0A73E0062B378 /* BWToolbarItem.h */, + CAEA804C0ED0A73E0062B378 /* BWToolbarItem.m */, + ); + name = "Toolbar Items"; + sourceTree = ""; + }; + CA960A4D0E75F87500308367 /* Token Field */ = { + isa = PBXGroup; + children = ( + CA960A4E0E75F88C00308367 /* BWTokenField.h */, + CA960A4F0E75F88C00308367 /* BWTokenField.m */, + CA960A520E75F89400308367 /* BWTokenFieldCell.h */, + CA960A530E75F89400308367 /* BWTokenFieldCell.m */, + CA960AA90E7676E000308367 /* BWTokenAttachmentCell.h */, + CA960AAA0E7676E000308367 /* BWTokenAttachmentCell.m */, + ); + name = "Token Field"; + sourceTree = ""; + }; + CA99183C0DF4DC6200FE0577 /* Libraries */ = { + isa = PBXGroup; + children = ( + CA630A590DC7F63B00AD7F9E /* BWToolkitLibrary.nib */, + CA630A5B0DC7F63B00AD7F9E /* BWTransparentControlsLibrary.nib */, + CA9451030DE13E4400F103BC /* BWBottomBarLibrary.nib */, + CA9918330DF4DA5200FE0577 /* BWButtonBarLibrary.nib */, + CA4071020E0B6D2100B56AB7 /* BWToolbarItemsLibrary.nib */, + CA4A52060E1EE3CC00BC7395 /* BWControllersLibrary.nib */, + CA685E890E66A03A0003D937 /* BWSplitViewLibrary.nib */, + ); + name = Libraries; + sourceTree = ""; + }; + CA99183D0DF4DC6A00FE0577 /* Inspectors */ = { + isa = PBXGroup; + children = ( + CA9918650DF51BE600FE0577 /* Graphics */, + CA630A5E0DC7F63C00AD7F9E /* BWSelectableToolbarInspector.nib */, + CA2FB4330DFD02B6005131D4 /* BWTexturedSliderInspector.nib */, + CA325D4D0DCD2EEE001446BB /* BWAnchoredButtonBarInspector.xib */, + CA685D7C0E6639680003D937 /* BWSplitViewInspector.xib */, + CAEA805F0ED0A8250062B378 /* BWToolbarItemInspector.xib */, + CAEE05610FD764AB001A1C3F /* BWHyperlinkButtonInspector.xib */, + CAEE078A0FD79E3B001A1C3F /* BWStyledTextFieldInspector.xib */, + CAEE09FF0FD7D544001A1C3F /* BWGradientBoxInspector.xib */, + ); + name = Inspectors; + sourceTree = ""; + }; + CA9918650DF51BE600FE0577 /* Graphics */ = { + isa = PBXGroup; + children = ( + CA0DDC800FDA6981006B3EA3 /* Gradient Well */, + CA6124230F06161A00A3B5AC /* Split View */, + CA6124220F06160800A3B5AC /* Anchored Button Bar */, + ); + name = Graphics; + sourceTree = ""; + }; + CAA2CC730F80B82E00E70572 /* Hyperlink Button */ = { + isa = PBXGroup; + children = ( + CAEE04EC0FD753DB001A1C3F /* BWHyperlinkButton.h */, + CAEE04ED0FD753DB001A1C3F /* BWHyperlinkButton.m */, + CAEE04F00FD7549A001A1C3F /* BWHyperlinkButtonCell.h */, + CAEE04F10FD7549A001A1C3F /* BWHyperlinkButtonCell.m */, + ); + name = "Hyperlink Button"; + sourceTree = ""; + }; + CACEBC780E17759C003E3CB2 /* Private Cocoa Headers */ = { + isa = PBXGroup; + children = ( + CA960A7D0E76766E00308367 /* NSTokenAttachment.h */, + CA960A7C0E76766E00308367 /* NSTokenAttachmentCell.h */, + CA0D2A250E2F034000E8680C /* NSWindow-NSTimeMachineSupport.h */, + CACEBC7A0E178524003E3CB2 /* NSCustomView.h */, + ); + name = "Private Cocoa Headers"; + sourceTree = ""; + }; + CAEE07720FD79440001A1C3F /* Gradient Box */ = { + isa = PBXGroup; + children = ( + CAEE07730FD79453001A1C3F /* BWGradientBox.h */, + CAEE07740FD79453001A1C3F /* BWGradientBox.m */, + ); + name = "Gradient Box"; + sourceTree = ""; + }; + CAEE07790FD79CD9001A1C3F /* Styled Text Field */ = { + isa = PBXGroup; + children = ( + CAEE077A0FD79CE9001A1C3F /* BWStyledTextField.h */, + CAEE077B0FD79CE9001A1C3F /* BWStyledTextField.m */, + CAEE07C00FD7BB18001A1C3F /* BWStyledTextFieldCell.h */, + CAEE07C10FD7BB18001A1C3F /* BWStyledTextFieldCell.m */, + ); + name = "Styled Text Field"; + sourceTree = ""; + }; + CAF6B8060E049A3100CA1768 /* Button Bar */ = { + isa = PBXGroup; + children = ( + CAF6B8440E049A6500CA1768 /* ButtonBarPullDownArrow.pdf */, + ); + name = "Button Bar"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 53DF68F8067E5B5A0090B5B0 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + CA630AE40DC7FB6300AD7F9E /* BWToolbarShowColorsItem.h in Headers */, + CA630AE60DC7FB6300AD7F9E /* BWToolbarShowFontsItem.h in Headers */, + CA630AF00DC7FF0800AD7F9E /* BWAddRegularBottomBar.h in Headers */, + CA630AF20DC7FF0800AD7F9E /* BWRemoveBottomBar.h in Headers */, + CA630AF60DC8002200AD7F9E /* BWInsetTextField.h in Headers */, + CA630B0A0DC8004A00AD7F9E /* BWTransparentButton.h in Headers */, + CA630B0C0DC8004A00AD7F9E /* BWTransparentButtonCell.h in Headers */, + CA630B0E0DC8004A00AD7F9E /* BWTransparentCheckbox.h in Headers */, + CA630B100DC8004A00AD7F9E /* BWTransparentCheckboxCell.h in Headers */, + CA630B120DC8004A00AD7F9E /* BWTransparentPopUpButton.h in Headers */, + CA630B140DC8004A00AD7F9E /* BWTransparentPopUpButtonCell.h in Headers */, + CA630B160DC8004A00AD7F9E /* BWTransparentSlider.h in Headers */, + CA630B180DC8004A00AD7F9E /* BWTransparentSliderCell.h in Headers */, + CA630B1E0DC82DD600AD7F9E /* BWSplitView.h in Headers */, + CA630B260DC82E2100AD7F9E /* BWTexturedSlider.h in Headers */, + CA630B280DC82E2100AD7F9E /* BWTexturedSliderCell.h in Headers */, + CA630CFA0DC843DD00AD7F9E /* BWAddSmallBottomBar.h in Headers */, + CA325B4F0DCAE25A001446BB /* BWAnchoredButtonBar.h in Headers */, + CA325B8D0DCBF32E001446BB /* BWSelectableToolbar.h in Headers */, + CA325F040DCD91EF001446BB /* BWAnchoredButton.h in Headers */, + CA325F080DCD9268001446BB /* BWAnchoredButtonCell.h in Headers */, + CA875ADA0DD165A500764511 /* NSColor+BWAdditions.h in Headers */, + CA875CC70DD7EA3900764511 /* NSImage+BWAdditions.h in Headers */, + CA3455300DDCD6C900A7C0A9 /* BWSelectableToolbarHelper.h in Headers */, + CA944DDA0DDF800D00F103BC /* NSWindow+BWAdditions.h in Headers */, + CA944F080DE00CC000F103BC /* NSView+BWAdditions.h in Headers */, + CA94518B0DE15A6C00F103BC /* BWTransparentTableView.h in Headers */, + CA9451E80DE1690500F103BC /* BWTransparentTableViewCell.h in Headers */, + CA9453DD0DE293BC00F103BC /* BWAnchoredPopUpButton.h in Headers */, + CA9453E10DE293C800F103BC /* BWAnchoredPopUpButtonCell.h in Headers */, + CA9919660DF9F81600FE0577 /* BWCustomView.h in Headers */, + CA4071390E0B985300B56AB7 /* BWUnanchoredButton.h in Headers */, + CA40713D0E0B986000B56AB7 /* BWUnanchoredButtonCell.h in Headers */, + CA4071CD0E0ED32300B56AB7 /* BWUnanchoredButtonContainer.h in Headers */, + CACEBC7B0E178524003E3CB2 /* NSCustomView.h in Headers */, + CA4A50DB0E1DC7AB00BC7395 /* BWSheetController.h in Headers */, + CA10ABD80E272748009BA4D7 /* BWTransparentScrollView.h in Headers */, + CA0D2A260E2F034000E8680C /* NSWindow-NSTimeMachineSupport.h in Headers */, + CA685EFF0E68C6CB0003D937 /* BWAddMiniBottomBar.h in Headers */, + CA685F210E68C8290003D937 /* BWAddSheetBottomBar.h in Headers */, + CA960A500E75F88C00308367 /* BWTokenField.h in Headers */, + CA960A540E75F89400308367 /* BWTokenFieldCell.h in Headers */, + CA960A7E0E76766E00308367 /* NSTokenAttachmentCell.h in Headers */, + CA960A7F0E76766E00308367 /* NSTokenAttachment.h in Headers */, + CA960AAB0E7676E000308367 /* BWTokenAttachmentCell.h in Headers */, + CA405A700EBF2E400010580A /* BWTransparentScroller.h in Headers */, + CA3A18890ECA9E86000C3A43 /* BWTransparentTextFieldCell.h in Headers */, + CAEA804D0ED0A73E0062B378 /* BWToolbarItem.h in Headers */, + CA66C0F70EF79AC0005EE9A5 /* NSString+BWAdditions.h in Headers */, + CAEB146B0F4A534300E57E67 /* BWToolkitFramework.h in Headers */, + CAB82ED40F514F39006519E3 /* NSEvent+BWAdditions.h in Headers */, + CAEE04EE0FD753DB001A1C3F /* BWHyperlinkButton.h in Headers */, + CAEE04F20FD7549A001A1C3F /* BWHyperlinkButtonCell.h in Headers */, + CAEE07750FD79453001A1C3F /* BWGradientBox.h in Headers */, + CAEE077C0FD79CE9001A1C3F /* BWStyledTextField.h in Headers */, + CAEE07C20FD7BB18001A1C3F /* BWStyledTextFieldCell.h in Headers */, + CAAC333A0FE5DA5700C66575 /* NSApplication+BWAdditions.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 53DF68FC067E5B5A0090B5B0 /* BWToolkitFramework */ = { + isa = PBXNativeTarget; + buildConfigurationList = C056397F08A954F8003078D8 /* Build configuration list for PBXNativeTarget "BWToolkitFramework" */; + buildPhases = ( + 53DF68F8067E5B5A0090B5B0 /* Headers */, + 53DF68F9067E5B5A0090B5B0 /* Resources */, + 53DF68FA067E5B5A0090B5B0 /* Sources */, + 53DF68FB067E5B5A0090B5B0 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = BWToolkitFramework; + productName = BWToolkitFramework; + productReference = 53DF68FD067E5B5A0090B5B0 /* BWToolkitFramework.framework */; + productType = "com.apple.product-type.framework"; + }; + 8D1AC9600486D14A00FE50C9 /* BWToolkit */ = { + isa = PBXNativeTarget; + buildConfigurationList = C056398308A954F8003078D8 /* Build configuration list for PBXNativeTarget "BWToolkit" */; + buildPhases = ( + A31B8C0B0FF02AF500B47231 /* ShellScript */, + 8D1AC9660486D14A00FE50C9 /* Resources */, + 8D1AC96A0486D14A00FE50C9 /* Sources */, + 8D1AC96E0486D14A00FE50C9 /* Frameworks */, + CA5101020E7850F60014AEF1 /* Copy Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 546DEAF0067F62F70098DCC4 /* PBXTargetDependency */, + ); + name = BWToolkit; + productInstallPath = "$(HOME)/Developer/Palettes"; + productName = BWToolkit; + productReference = 8D1AC9740486D14A00FE50C9 /* BWToolkit.ibplugin */; + productType = "com.apple.product-type.bundle"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 0259C573FE90428111CA0C5A /* Project object */ = { + isa = PBXProject; + buildConfigurationList = C056398B08A954F8003078D8 /* Build configuration list for PBXProject "BWToolkit" */; + compatibilityVersion = "Xcode 2.4"; + hasScannedForEncodings = 1; + mainGroup = 0259C574FE90428111CA0C5A /* BWToolkit */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 53DF6901067E5B8E0090B5B0 /* All */, + 8D1AC9600486D14A00FE50C9 /* BWToolkit */, + 53DF68FC067E5B5A0090B5B0 /* BWToolkitFramework */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 53DF68F9067E5B5A0090B5B0 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + CA630A6F0DC7F6FC00AD7F9E /* TexturedSliderTrackRight.tiff in Resources */, + CA630A700DC7F6FC00AD7F9E /* TexturedSliderTrackFill.tiff in Resources */, + CA630A710DC7F6FC00AD7F9E /* TexturedSliderTrackLeft.tiff in Resources */, + CA630A720DC7F6FC00AD7F9E /* TexturedSliderThumbP.tiff in Resources */, + CA630A730DC7F6FC00AD7F9E /* TexturedSliderThumbN.tiff in Resources */, + CA630A780DC7F74400AD7F9E /* GradientSplitViewDimpleBitmap.tif in Resources */, + CA630A790DC7F74400AD7F9E /* GradientSplitViewDimpleVector.pdf in Resources */, + CA630A880DC7F83A00AD7F9E /* TransparentSliderThumbP.tiff in Resources */, + CA630A890DC7F83A00AD7F9E /* TransparentSliderThumbN.tiff in Resources */, + CA630A8A0DC7F83A00AD7F9E /* TransparentSliderTrackFill.tiff in Resources */, + CA630A8B0DC7F83A00AD7F9E /* TransparentSliderTrackLeft.tiff in Resources */, + CA630A8C0DC7F83A00AD7F9E /* TransparentSliderTrackRight.tiff in Resources */, + CA630A930DC7F84700AD7F9E /* TransparentButtonRightN.tiff in Resources */, + CA630A940DC7F84700AD7F9E /* TransparentButtonFillN.tiff in Resources */, + CA630A950DC7F84700AD7F9E /* TransparentButtonLeftN.tiff in Resources */, + CA630A960DC7F84700AD7F9E /* TransparentButtonRightP.tiff in Resources */, + CA630A970DC7F84700AD7F9E /* TransparentButtonFillP.tiff in Resources */, + CA630A980DC7F84700AD7F9E /* TransparentButtonLeftP.tiff in Resources */, + CA630A9D0DC7F87B00AD7F9E /* TransparentCheckboxOffN.tiff in Resources */, + CA630A9E0DC7F87B00AD7F9E /* TransparentCheckboxOffP.tiff in Resources */, + CA630A9F0DC7F87B00AD7F9E /* TransparentCheckboxOnN.tiff in Resources */, + CA630AA00DC7F87B00AD7F9E /* TransparentCheckboxOnP.tiff in Resources */, + CA630AA70DC7F88A00AD7F9E /* TransparentPopUpFillN.tiff in Resources */, + CA630AA80DC7F88A00AD7F9E /* TransparentPopUpFillP.tiff in Resources */, + CA630AA90DC7F88A00AD7F9E /* TransparentPopUpLeftN.tiff in Resources */, + CA630AAA0DC7F88A00AD7F9E /* TransparentPopUpLeftP.tiff in Resources */, + CA630AAB0DC7F88A00AD7F9E /* TransparentPopUpRightN.tiff in Resources */, + CA630AAC0DC7F88A00AD7F9E /* TransparentPopUpRightP.tiff in Resources */, + CA94521C0DE17A1A00F103BC /* TransparentSliderTriangleThumbN.tiff in Resources */, + CA94521D0DE17A1A00F103BC /* TransparentSliderTriangleThumbP.tiff in Resources */, + CA991BD10DFA8B3D00FE0577 /* TexturedSliderPhotoSmall.tif in Resources */, + CA991BD20DFA8B3D00FE0577 /* TexturedSliderPhotoLarge.tif in Resources */, + CA991BD30DFA8B3D00FE0577 /* TexturedSliderSpeakerQuiet.png in Resources */, + CA991BD40DFA8B3D00FE0577 /* TexturedSliderSpeakerLoud.png in Resources */, + CAF6B8450E049A6500CA1768 /* ButtonBarPullDownArrow.pdf in Resources */, + CA4070B70E0B66C300B56AB7 /* ToolbarItemColors.tiff in Resources */, + CA4070B80E0B66C300B56AB7 /* ToolbarItemFonts.tiff in Resources */, + CA4A524B0E1EF21500BC7395 /* Library-SheetController.tif in Resources */, + CA9995D90E2DE8B20001808E /* TransparentPopUpPullDownRightN.tif in Resources */, + CA9995E80E2DE9C60001808E /* TransparentPopUpPullDownRightP.tif in Resources */, + CA405AE00EBF2FE30010580A /* TransparentScrollerKnobRight.tif in Resources */, + CA405AE10EBF2FE30010580A /* TransparentScrollerKnobBottom.tif in Resources */, + CA405AE20EBF2FE30010580A /* TransparentScrollerSlotRight.tif in Resources */, + CA405AE30EBF2FE30010580A /* TransparentScrollerKnobLeft.tif in Resources */, + CA405AE40EBF2FE30010580A /* TransparentScrollerKnobVerticalFill.tif in Resources */, + CA405AE50EBF2FE30010580A /* TransparentScrollerSlotVerticalFill.tif in Resources */, + CA405AE60EBF2FE30010580A /* TransparentScrollerSlotHorizontalFill.tif in Resources */, + CA405AE70EBF2FE30010580A /* TransparentScrollerKnobHorizontalFill.tif in Resources */, + CA405AE80EBF2FE30010580A /* TransparentScrollerSlotLeft.tif in Resources */, + CA405AE90EBF2FE30010580A /* TransparentScrollerSlotBottom.tif in Resources */, + CA405AEA0EBF2FE30010580A /* TransparentScrollerSlotTop.tif in Resources */, + CA405AEB0EBF2FE30010580A /* TransparentScrollerKnobTop.tif in Resources */, + CAEB14750F4A538100E57E67 /* License.rtf in Resources */, + CAEB14770F4A538A00E57E67 /* Release Notes.rtf in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 8D1AC9660486D14A00FE50C9 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 8D1AC9800486D23B00FE50C9 /* InfoPlist.strings in Resources */, + CA6309C00DC7EB5E00AD7F9E /* BWTexturedSlider.classdescription in Resources */, + CA6309C10DC7EB5E00AD7F9E /* BWTexturedSliderCell.classdescription in Resources */, + CA6309C20DC7EB5E00AD7F9E /* BWTransparentButton.classdescription in Resources */, + CA6309C30DC7EB5E00AD7F9E /* BWTransparentButtonCell.classdescription in Resources */, + CA6309C40DC7EB5E00AD7F9E /* BWTransparentCheckbox.classdescription in Resources */, + CA6309C50DC7EB5E00AD7F9E /* BWTransparentCheckboxCell.classdescription in Resources */, + CA6309C60DC7EB5E00AD7F9E /* BWTransparentPopUpButton.classdescription in Resources */, + CA6309C70DC7EB5E00AD7F9E /* BWTransparentPopUpButtonCell.classdescription in Resources */, + CA6309C80DC7EB5E00AD7F9E /* BWTransparentSlider.classdescription in Resources */, + CA6309C90DC7EB5E00AD7F9E /* BWTransparentSliderCell.classdescription in Resources */, + CA6309CA0DC7EB5E00AD7F9E /* BWSplitView.classdescription in Resources */, + CA6309CB0DC7EB5E00AD7F9E /* BWInsetTextField.classdescription in Resources */, + CA6309CD0DC7EB5E00AD7F9E /* BWAddRegularBottomBar.classdescription in Resources */, + CA6309CE0DC7EB5E00AD7F9E /* BWRemoveBottomBar.classdescription in Resources */, + CA6309CF0DC7EB5E00AD7F9E /* BWToolbarShowColorsItem.classdescription in Resources */, + CA6309D00DC7EB5E00AD7F9E /* BWToolbarShowFontsItem.classdescription in Resources */, + CA6309D10DC7EB5E00AD7F9E /* BWSelectableToolbar.classdescription in Resources */, + CA630A500DC7F59300AD7F9E /* Library-TexturedSlider.tif in Resources */, + CA630A510DC7F59300AD7F9E /* Library-InsetTextField.tif in Resources */, + CA630A5F0DC7F63C00AD7F9E /* BWToolkitLibrary.nib in Resources */, + CA630A600DC7F63C00AD7F9E /* BWTransparentControlsLibrary.nib in Resources */, + CA630A620DC7F63C00AD7F9E /* BWSelectableToolbarInspector.nib in Resources */, + CA325D4E0DCD2EEE001446BB /* BWAnchoredButtonBarInspector.xib in Resources */, + CA944E3A0DDFE32A00F103BC /* Library-ShowFonts.tif in Resources */, + CA944E3B0DDFE32A00F103BC /* Library-GradientSplitView.tif in Resources */, + CA944E3C0DDFE32A00F103BC /* Library-ShowColors.tif in Resources */, + CA944E3D0DDFE32A00F103BC /* Library-TransparentButton.tif in Resources */, + CA944E450DDFE50200F103BC /* Library-TransparentSlider.tif in Resources */, + CA944E460DDFE50200F103BC /* Library-TransparentCheckbox.tif in Resources */, + CA944E470DDFE50200F103BC /* Library-TransparentPopUpButton.tif in Resources */, + CA944E480DDFE50200F103BC /* Library-TransparentLabel.tif in Resources */, + CA944E990DDFF53000F103BC /* Library-AnchoredButton.tif in Resources */, + CA944E9A0DDFF53000F103BC /* Library-AnchoredPopUpButton.tif in Resources */, + CA944F920DE01F8100F103BC /* Library-AnchoredButtonBar.tif in Resources */, + CA94506E0DE0D9F600F103BC /* Library-AddSmallBottomBar.tif in Resources */, + CA9450810DE0DE7F00F103BC /* Library-AddRegularBottomBar.tif in Resources */, + CA9450820DE0DE7F00F103BC /* Library-RemoveBottomBar.tif in Resources */, + CA9450890DE0E6BA00F103BC /* BWAddSmallBottomBar.classdescription in Resources */, + CA9451040DE13E4400F103BC /* BWBottomBarLibrary.nib in Resources */, + CA9451D10DE1656300F103BC /* BWTransparentTableView.classdescription in Resources */, + CA9451EB0DE1692C00F103BC /* BWTransparentTableViewCell.classdescription in Resources */, + CA9454200DE29F0A00F103BC /* BWAnchoredButtonBar.classdescription in Resources */, + CA9454210DE29F0A00F103BC /* BWAnchoredButton.classdescription in Resources */, + CA9454220DE29F0A00F103BC /* BWAnchoredPopUpButton.classdescription in Resources */, + CA9918340DF4DA5200FE0577 /* BWButtonBarLibrary.nib in Resources */, + CA99186C0DF51C9000FE0577 /* Inspector-ButtonBarMode1.tif in Resources */, + CA99186D0DF51C9000FE0577 /* Inspector-ButtonBarMode2.tif in Resources */, + CA99186E0DF51C9000FE0577 /* Inspector-ButtonBarMode3.tif in Resources */, + CA9918860DF65E5600FE0577 /* Inspector-ButtonBarModeSelection.tif in Resources */, + CA2FB4340DFD02B6005131D4 /* BWTexturedSliderInspector.nib in Resources */, + CA4070C10E0B68C300B56AB7 /* ToolbarItemColors.tiff in Resources */, + CA4070C20E0B68C300B56AB7 /* ToolbarItemFonts.tiff in Resources */, + CA4071030E0B6D2100B56AB7 /* BWToolbarItemsLibrary.nib in Resources */, + CA4071130E0B78E900B56AB7 /* Library-TexturedAddButton.tif in Resources */, + CA4071140E0B78E900B56AB7 /* Library-TexturedRemoveButton.tif in Resources */, + CAD1DFC00E19E9B5005E4CBF /* Inspector-ButtonBarMode2Pressed.tif in Resources */, + CAD1E00D0E1B476C005E4CBF /* Inspector-ButtonBarMode3Pressed.tif in Resources */, + CAD1E0130E1B4C2C005E4CBF /* Inspector-ButtonBarMode1Pressed.tif in Resources */, + CAD1E0190E1B7425005E4CBF /* Library-SelectableToolbar.tif in Resources */, + CA4A50DE0E1DCB9E00BC7395 /* BWSheetController.classdescription in Resources */, + CA4A51E30E1EC6B700BC7395 /* Library-SheetController.tif in Resources */, + CA4A52070E1EE3CC00BC7395 /* BWControllersLibrary.nib in Resources */, + CA4A54780E2190A000BC7395 /* Library-TransparentTableView.tif in Resources */, + CA4A54790E2190A000BC7395 /* Library-TransparentCheckboxCell.tif in Resources */, + CA685D7D0E6639680003D937 /* BWSplitViewInspector.xib in Resources */, + CA685E860E669FCA0003D937 /* Library-VerticalSplitView.tif in Resources */, + CA685E870E669FCA0003D937 /* Library-HorizontalSplitView.tif in Resources */, + CA685E8A0E66A03A0003D937 /* BWSplitViewLibrary.nib in Resources */, + CA685F320E69556F0003D937 /* BWAddMiniBottomBar.classdescription in Resources */, + CA6860180E6A13B00003D937 /* Library-AddMiniBottomBar.tif in Resources */, + CA6860440E6A26180003D937 /* Library-AddSheetBottomBar.tif in Resources */, + CA960A560E75F8D800308367 /* BWTokenField.classdescription in Resources */, + CA960A570E75F8DD00308367 /* BWTokenFieldCell.classdescription in Resources */, + CA40594B0EBDCBA70010580A /* Library-TokenField.tif in Resources */, + CA405A120EBF214E0010580A /* Library-TransparentTextView.tif in Resources */, + CA405AC30EBF2E760010580A /* BWTransparentScroller.classdescription in Resources */, + CA3A188C0ECA9F5B000C3A43 /* BWTransparentTextFieldCell.classdescription in Resources */, + CAEA80500ED0A75E0062B378 /* BWToolbarItem.classdescription in Resources */, + CAEA80600ED0A8250062B378 /* BWToolbarItemInspector.xib in Resources */, + CAEA81640ED46D830062B378 /* Library-ToolbarItem.tiff in Resources */, + CA6124080F05F88500A3B5AC /* Inspector-SplitViewBackground.tiff in Resources */, + CA61245B0F06177500A3B5AC /* Inspector-SplitViewArrowBlueLeft.tif in Resources */, + CA61245D0F06177500A3B5AC /* Inspector-SplitViewArrowBlueRight.tif in Resources */, + CA61247C0F061DA900A3B5AC /* Inspector-SplitViewArrowRedFill.tif in Resources */, + CA61247D0F061DA900A3B5AC /* Inspector-SplitViewArrowRedRight.tif in Resources */, + CA61247E0F061DA900A3B5AC /* Inspector-SplitViewArrowRedLeft.tif in Resources */, + CAEE05620FD764AB001A1C3F /* BWHyperlinkButtonInspector.xib in Resources */, + CAEE078B0FD79E3B001A1C3F /* BWStyledTextFieldInspector.xib in Resources */, + CAEE0A000FD7D544001A1C3F /* BWGradientBoxInspector.xib in Resources */, + CA0DDC820FDA698B006B3EA3 /* GradientWellPattern.tif in Resources */, + CAAC34280FE8DDC100C66575 /* Library-GradientBox.tif in Resources */, + CAAC34290FE8DDC600C66575 /* Library-StyledTextField.tif in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + A31B8C0B0FF02AF500B47231 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/bash; + shellScript = "echo \"Original ARCHS value:\"\necho $ARCHS\n\nif [ $MAC_OS_X_VERSION_MAJOR -eq \"1050\" ]; then\n ARCHS=\"i386 ppc\"\nfi\nif [ $MAC_OS_X_VERSION_MAJOR -eq \"1060\" ]; then\n ARCHS=\"i386 ppc x86_64\"\nfi\n\necho \"Evaluated ARCHS value:\"\necho $ARCHS"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 53DF68FA067E5B5A0090B5B0 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + CA630AE50DC7FB6300AD7F9E /* BWToolbarShowColorsItem.m in Sources */, + CA630AE70DC7FB6300AD7F9E /* BWToolbarShowFontsItem.m in Sources */, + CA630AEB0DC7FC3400AD7F9E /* BWSelectableToolbar.m in Sources */, + CA630AF10DC7FF0800AD7F9E /* BWAddRegularBottomBar.m in Sources */, + CA630AF30DC7FF0800AD7F9E /* BWRemoveBottomBar.m in Sources */, + CA630AF70DC8002200AD7F9E /* BWInsetTextField.m in Sources */, + CA630B0B0DC8004A00AD7F9E /* BWTransparentButton.m in Sources */, + CA630B0D0DC8004A00AD7F9E /* BWTransparentButtonCell.m in Sources */, + CA630B0F0DC8004A00AD7F9E /* BWTransparentCheckbox.m in Sources */, + CA630B110DC8004A00AD7F9E /* BWTransparentCheckboxCell.m in Sources */, + CA630B130DC8004A00AD7F9E /* BWTransparentPopUpButton.m in Sources */, + CA630B150DC8004A00AD7F9E /* BWTransparentPopUpButtonCell.m in Sources */, + CA630B170DC8004A00AD7F9E /* BWTransparentSlider.m in Sources */, + CA630B190DC8004A00AD7F9E /* BWTransparentSliderCell.m in Sources */, + CA630B1F0DC82DD600AD7F9E /* BWSplitView.m in Sources */, + CA630B270DC82E2100AD7F9E /* BWTexturedSlider.m in Sources */, + CA630B290DC82E2100AD7F9E /* BWTexturedSliderCell.m in Sources */, + CA630CFB0DC843DD00AD7F9E /* BWAddSmallBottomBar.m in Sources */, + CA325B500DCAE25A001446BB /* BWAnchoredButtonBar.m in Sources */, + CA325F050DCD91EF001446BB /* BWAnchoredButton.m in Sources */, + CA325F090DCD9268001446BB /* BWAnchoredButtonCell.m in Sources */, + CA875ADB0DD165A500764511 /* NSColor+BWAdditions.m in Sources */, + CA875CC80DD7EA3900764511 /* NSImage+BWAdditions.m in Sources */, + CA3455310DDCD6C900A7C0A9 /* BWSelectableToolbarHelper.m in Sources */, + CA944DDB0DDF800D00F103BC /* NSWindow+BWAdditions.m in Sources */, + CA944F090DE00CC000F103BC /* NSView+BWAdditions.m in Sources */, + CA94518C0DE15A6C00F103BC /* BWTransparentTableView.m in Sources */, + CA9451E90DE1690500F103BC /* BWTransparentTableViewCell.m in Sources */, + CA9453DE0DE293BC00F103BC /* BWAnchoredPopUpButton.m in Sources */, + CA9453E20DE293C800F103BC /* BWAnchoredPopUpButtonCell.m in Sources */, + CA9919670DF9F81600FE0577 /* BWCustomView.m in Sources */, + CA40713A0E0B985300B56AB7 /* BWUnanchoredButton.m in Sources */, + CA40713E0E0B986000B56AB7 /* BWUnanchoredButtonCell.m in Sources */, + CA4071CE0E0ED32300B56AB7 /* BWUnanchoredButtonContainer.m in Sources */, + CA4A50DC0E1DC7AB00BC7395 /* BWSheetController.m in Sources */, + CA10ABD90E272748009BA4D7 /* BWTransparentScrollView.m in Sources */, + CA685F000E68C6CB0003D937 /* BWAddMiniBottomBar.m in Sources */, + CA685F220E68C8290003D937 /* BWAddSheetBottomBar.m in Sources */, + CA960A510E75F88C00308367 /* BWTokenField.m in Sources */, + CA960A550E75F89400308367 /* BWTokenFieldCell.m in Sources */, + CA960AAC0E7676E000308367 /* BWTokenAttachmentCell.m in Sources */, + CA405A6F0EBF2E400010580A /* BWTransparentScroller.m in Sources */, + CA3A188A0ECA9E86000C3A43 /* BWTransparentTextFieldCell.m in Sources */, + CAEA804E0ED0A73E0062B378 /* BWToolbarItem.m in Sources */, + CA66C0F60EF79AC0005EE9A5 /* NSString+BWAdditions.m in Sources */, + CAB82ED50F514F39006519E3 /* NSEvent+BWAdditions.m in Sources */, + CAEE04EF0FD753DB001A1C3F /* BWHyperlinkButton.m in Sources */, + CAEE04F30FD7549A001A1C3F /* BWHyperlinkButtonCell.m in Sources */, + CAEE07760FD79453001A1C3F /* BWGradientBox.m in Sources */, + CAEE077D0FD79CE9001A1C3F /* BWStyledTextField.m in Sources */, + CAEE07C30FD7BB18001A1C3F /* BWStyledTextFieldCell.m in Sources */, + CAAC333B0FE5DA5700C66575 /* NSApplication+BWAdditions.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 8D1AC96A0486D14A00FE50C9 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C08787290A49DE9A00E9B151 /* BWToolkit.m in Sources */, + CA6309E30DC7F2EE00AD7F9E /* BWTexturedSliderInspector.m in Sources */, + CA6309E40DC7F2EE00AD7F9E /* BWSelectableToolbarInspector.m in Sources */, + CA6309EE0DC7F39600AD7F9E /* BWSelectableToolbarIntegration.m in Sources */, + CA6309EF0DC7F39600AD7F9E /* BWTransparentButtonIntegration.m in Sources */, + CA6309F00DC7F39600AD7F9E /* BWTransparentCheckboxIntegration.m in Sources */, + CA6309F10DC7F39600AD7F9E /* BWTransparentPopUpButtonIntegration.m in Sources */, + CA630CB90DC83EB700AD7F9E /* BWTransparentSliderIntegration.m in Sources */, + CA325ACE0DCABE22001446BB /* BWAnchoredButtonIntegration.m in Sources */, + CA325D530DCD3019001446BB /* BWAnchoredButtonBarInspector.m in Sources */, + CA325D550DCD3045001446BB /* BWAnchoredButtonBarIntegration.m in Sources */, + CA9451190DE1449000F103BC /* BWRemoveBottomBarIntegration.m in Sources */, + CA9451570DE14DE600F103BC /* BWAddRegularBottomBarIntegration.m in Sources */, + CA9451700DE154CF00F103BC /* BWAddSmallBottomBarIntegration.m in Sources */, + CA94541B0DE29DF200F103BC /* BWAnchoredPopUpButtonIntegration.m in Sources */, + CA99198A0DFA272500FE0577 /* BWCustomViewIntegration.m in Sources */, + CA2FB4070DFD0058005131D4 /* BWTexturedSliderIntegration.m in Sources */, + CA40716A0E0DB7CA00B56AB7 /* BWUnanchoredButtonIntegration.m in Sources */, + CA4071D00E0ED67100B56AB7 /* BWUnanchoredButtonContainerIntegration.m in Sources */, + CA4A52150E1EECEB00BC7395 /* BWSheetControllerIntegration.m in Sources */, + CA4A53B20E2033E800BC7395 /* BWTransparentTableViewIntegration.m in Sources */, + CA10ABD50E272711009BA4D7 /* BWTransparentScrollViewIntegration.m in Sources */, + CA685D840E663E4D0003D937 /* BWSplitViewInspector.m in Sources */, + CA685D8C0E6646000003D937 /* BWSplitViewIntegration.m in Sources */, + CA685F2E0E690EE50003D937 /* BWAddMiniBottomBarIntegration.m in Sources */, + CA685F300E690FB80003D937 /* BWAddSheetBottomBarIntegration.m in Sources */, + CAEA80760ED0ACA90062B378 /* BWToolbarItemInspector.m in Sources */, + CAEA80780ED0AD470062B378 /* BWToolbarItemIntegration.m in Sources */, + CA6124150F060E8500A3B5AC /* BWSplitViewInspectorAutosizingButtonCell.m in Sources */, + CA6124D60F062E7500A3B5AC /* BWSplitViewInspectorAutosizingView.m in Sources */, + CAEE05550FD76214001A1C3F /* BWHyperlinkButtonInspector.m in Sources */, + CAEE05660FD76542001A1C3F /* BWHyperlinkButtonIntegration.m in Sources */, + CAEE07860FD79D91001A1C3F /* BWStyledTextFieldInspector.m in Sources */, + CAEE07880FD79DD6001A1C3F /* BWStyledTextFieldIntegration.m in Sources */, + CAEE09FE0FD7D4E9001A1C3F /* BWGradientBoxInspector.m in Sources */, + CAEE0A020FD7D557001A1C3F /* BWGradientBoxIntegration.m in Sources */, + CA0DDBD00FDA586F006B3EA3 /* BWGradientWell.m in Sources */, + CA0DDC210FDA5EDA006B3EA3 /* BWGradientWellColorWell.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 53DF6903067E5B930090B5B0 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 8D1AC9600486D14A00FE50C9 /* BWToolkit */; + targetProxy = 53DF6902067E5B930090B5B0 /* PBXContainerItemProxy */; + }; + 53DF6905067E5B930090B5B0 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 53DF68FC067E5B5A0090B5B0 /* BWToolkitFramework */; + targetProxy = 53DF6904067E5B930090B5B0 /* PBXContainerItemProxy */; + }; + 546DEAF0067F62F70098DCC4 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 53DF68FC067E5B5A0090B5B0 /* BWToolkitFramework */; + targetProxy = 546DEAEF067F62F70098DCC4 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 8D1AC97F0486D23B00FE50C9 /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + 8D1AC97B0486D23100FE50C9 /* English */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; + CA630A590DC7F63B00AD7F9E /* BWToolkitLibrary.nib */ = { + isa = PBXVariantGroup; + children = ( + CA630A5A0DC7F63B00AD7F9E /* English */, + ); + name = BWToolkitLibrary.nib; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + C056398008A954F8003078D8 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; + ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; + COPY_PHASE_STRIP = NO; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1.0.3; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", + "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", + ); + FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(DEVELOPER_FRAMEWORKS_DIR)\""; + FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_2 = "\"$(DEVELOPER_FRAMEWORKS_DIR)\""; + FRAMEWORK_VERSION = A; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_GC = YES; + GCC_MODEL_TUNING = G5; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h"; + INFOPLIST_FILE = "BWToolkitFramework-Info.plist"; + INSTALL_PATH = "@loader_path/../Frameworks"; + PRODUCT_NAME = BWToolkitFramework; + SKIP_INSTALL = NO; + }; + name = Debug; + }; + C056398108A954F8003078D8 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; + ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1.1; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", + "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", + ); + FRAMEWORK_VERSION = A; + GCC_ENABLE_OBJC_GC = YES; + GCC_MODEL_TUNING = G5; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h"; + INFOPLIST_FILE = "BWToolkitFramework-Info.plist"; + INSTALL_MODE_FLAG = "go-w,a+rX"; + INSTALL_PATH = "@loader_path/../Frameworks"; + PRODUCT_NAME = BWToolkitFramework; + SKIP_INSTALL = NO; + }; + name = Release; + }; + C056398408A954F8003078D8 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; + COPY_PHASE_STRIP = NO; + FRAMEWORK_SEARCH_PATHS = "\"/Developer/Library/Frameworks\""; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_MODEL_TUNING = G5; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = BWToolkit_Prefix.pch; + INFOPLIST_FILE = Info.plist; + PRODUCT_NAME = BWToolkit; + WRAPPER_EXTENSION = ibplugin; + }; + name = Debug; + }; + C056398508A954F8003078D8 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; + COPY_PHASE_STRIP = NO; + FRAMEWORK_SEARCH_PATHS = "\"/Developer/Library/Frameworks\""; + GCC_MODEL_TUNING = G5; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = BWToolkit_Prefix.pch; + INFOPLIST_FILE = Info.plist; + PRODUCT_NAME = BWToolkit; + WRAPPER_EXTENSION = ibplugin; + }; + name = Release; + }; + C056398808A954F8003078D8 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_MODEL_TUNING = G5; + GCC_OPTIMIZATION_LEVEL = 0; + PRODUCT_NAME = All; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + ZERO_LINK = YES; + }; + name = Debug; + }; + C056398908A954F8003078D8 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + GCC_MODEL_TUNING = G5; + PRODUCT_NAME = All; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + }; + name = Release; + }; + C056398C08A954F8003078D8 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + DEBUG_INFORMATION_FORMAT = dwarf; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_MODEL_TUNING = ""; + GCC_VERSION = com.apple.compilers.llvmgcc42; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + PREBINDING = NO; + SDKROOT = /Developer/SDKs/MacOSX10.5.sdk; + }; + name = Debug; + }; + C056398D08A954F8003078D8 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + DEBUG_INFORMATION_FORMAT = dwarf; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_MODEL_TUNING = ""; + GCC_VERSION = com.apple.compilers.llvmgcc42; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + PREBINDING = NO; + SDKROOT = /Developer/SDKs/MacOSX10.5.sdk; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + C056397F08A954F8003078D8 /* Build configuration list for PBXNativeTarget "BWToolkitFramework" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C056398008A954F8003078D8 /* Debug */, + C056398108A954F8003078D8 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C056398308A954F8003078D8 /* Build configuration list for PBXNativeTarget "BWToolkit" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C056398408A954F8003078D8 /* Debug */, + C056398508A954F8003078D8 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C056398708A954F8003078D8 /* Build configuration list for PBXAggregateTarget "All" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C056398808A954F8003078D8 /* Debug */, + C056398908A954F8003078D8 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C056398B08A954F8003078D8 /* Build configuration list for PBXProject "BWToolkit" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C056398C08A954F8003078D8 /* Debug */, + C056398D08A954F8003078D8 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 0259C573FE90428111CA0C5A /* Project object */; +} diff --git a/Frameworks/BWToolkitFramework.framework/BWToolkitFramework b/Frameworks/BWToolkitFramework.framework/BWToolkitFramework deleted file mode 120000 index 07148544..00000000 --- a/Frameworks/BWToolkitFramework.framework/BWToolkitFramework +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/BWToolkitFramework \ No newline at end of file diff --git a/Frameworks/BWToolkitFramework.framework/BWToolkitFramework-Info.plist b/Frameworks/BWToolkitFramework.framework/BWToolkitFramework-Info.plist new file mode 100644 index 00000000..89161bcb --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWToolkitFramework-Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + BWToolkitFramework + CFBundleIdentifier + com.brandonwalkin.BWToolkitFramework + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + FMWK + CFBundleSignature + ???? + CFBundleVersion + 1.2.1 + NSPrincipalClass + BWToolkit + + diff --git a/Frameworks/BWToolkitFramework.framework/BWToolkitFramework.h b/Frameworks/BWToolkitFramework.framework/BWToolkitFramework.h new file mode 100644 index 00000000..38b6ea3a --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWToolkitFramework.h @@ -0,0 +1,47 @@ +// +// BWToolkitFramework.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +// This is a convenience header for importing the BWToolkit framework into your classes. + +#import "BWAnchoredButton.h" +#import "BWAnchoredButtonBar.h" +#import "BWAnchoredButtonCell.h" +#import "BWAnchoredPopUpButton.h" +#import "BWAnchoredPopUpButtonCell.h" +#import "BWGradientBox.h" +#import "BWHyperlinkButton.h" +#import "BWHyperlinkButtonCell.h" +#import "BWInsetTextField.h" +#import "BWSelectableToolbar.h" +#import "BWSheetController.h" +#import "BWSplitView.h" +#import "BWStyledTextField.h" +#import "BWStyledTextFieldCell.h" +#import "BWTexturedSlider.h" +#import "BWTexturedSliderCell.h" +#import "BWTokenAttachmentCell.h" +#import "BWTokenField.h" +#import "BWTokenFieldCell.h" +#import "BWToolbarItem.h" +#import "BWToolbarShowColorsItem.h" +#import "BWToolbarShowFontsItem.h" +#import "BWTransparentButton.h" +#import "BWTransparentButtonCell.h" +#import "BWTransparentCheckbox.h" +#import "BWTransparentCheckboxCell.h" +#import "BWTransparentPopUpButton.h" +#import "BWTransparentPopUpButtonCell.h" +#import "BWTransparentScroller.h" +#import "BWTransparentScrollView.h" +#import "BWTransparentSlider.h" +#import "BWTransparentSliderCell.h" +#import "BWTransparentTableView.h" +#import "BWTransparentTableViewCell.h" +#import "BWTransparentTextFieldCell.h" +#import "BWUnanchoredButton.h" +#import "BWUnanchoredButtonCell.h" diff --git a/Frameworks/BWToolkitFramework.framework/BWToolkit_Prefix.pch b/Frameworks/BWToolkitFramework.framework/BWToolkit_Prefix.pch new file mode 100644 index 00000000..186d30cf --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWToolkit_Prefix.pch @@ -0,0 +1,8 @@ +// +// Prefix header for all source files of the 'BWToolkit' target in the 'BWToolkit' project. +// + +#ifdef __OBJC__ + #import + #import +#endif diff --git a/Frameworks/BWToolkitFramework.framework/BWTransparentButton.classdescription b/Frameworks/BWToolkitFramework.framework/BWTransparentButton.classdescription new file mode 100644 index 00000000..d1ef0e4f --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTransparentButton.classdescription @@ -0,0 +1,12 @@ +{ + Actions = { + // Define action descriptions here, for example + // "myAction:" = id; + }; + Outlets = { + // Define outlet descriptions here, for example + // myOutlet = NSView; + }; + ClassName = BWTransparentButton; + SuperClass = NSButton; +} diff --git a/Frameworks/BWToolkitFramework.framework/BWTransparentButton.h b/Frameworks/BWToolkitFramework.framework/BWTransparentButton.h new file mode 100644 index 00000000..46c64b6e --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTransparentButton.h @@ -0,0 +1,16 @@ +// +// BWTransparentButton.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface BWTransparentButton : NSButton +{ + +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWTransparentButton.m b/Frameworks/BWToolkitFramework.framework/BWTransparentButton.m new file mode 100644 index 00000000..f264e63c --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTransparentButton.m @@ -0,0 +1,13 @@ +// +// BWTransparentButton.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWTransparentButton.h" + +@implementation BWTransparentButton + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWTransparentButtonCell.classdescription b/Frameworks/BWToolkitFramework.framework/BWTransparentButtonCell.classdescription new file mode 100644 index 00000000..7c556d9f --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTransparentButtonCell.classdescription @@ -0,0 +1,12 @@ +{ + Actions = { + // Define action descriptions here, for example + // "myAction:" = id; + }; + Outlets = { + // Define outlet descriptions here, for example + // myOutlet = NSView; + }; + ClassName = BWTransparentButtonCell; + SuperClass = NSButtonCell; +} diff --git a/Frameworks/BWToolkitFramework.framework/BWTransparentButtonCell.h b/Frameworks/BWToolkitFramework.framework/BWTransparentButtonCell.h new file mode 100644 index 00000000..4dbc42e6 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTransparentButtonCell.h @@ -0,0 +1,17 @@ +// +// BWTransparentButtonCell.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import +#import "BWTransparentButton.h" + +@interface BWTransparentButtonCell : NSButtonCell +{ + +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWTransparentButtonCell.m b/Frameworks/BWToolkitFramework.framework/BWTransparentButtonCell.m new file mode 100644 index 00000000..078342f8 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTransparentButtonCell.m @@ -0,0 +1,104 @@ +// +// BWTransparentButtonCell.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWTransparentButtonCell.h" +#import "NSImage+BWAdditions.h" + +static NSImage *buttonLeftN, *buttonFillN, *buttonRightN, *buttonLeftP, *buttonFillP, *buttonRightP; +static NSColor *disabledColor, *enabledColor; + +@interface NSCell (BWTBCPrivate) +- (NSDictionary *)_textAttributes; +@end + +@interface BWTransparentButtonCell (BWTBCPrivate) +- (NSColor *)interiorColor; +@end + +@implementation BWTransparentButtonCell + ++ (void)initialize; +{ + NSBundle *bundle = [NSBundle bundleForClass:[BWTransparentButtonCell class]]; + + buttonLeftN = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentButtonLeftN.tiff"]]; + buttonFillN = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentButtonFillN.tiff"]]; + buttonRightN = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentButtonRightN.tiff"]]; + buttonLeftP = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentButtonLeftP.tiff"]]; + buttonFillP = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentButtonFillP.tiff"]]; + buttonRightP = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentButtonRightP.tiff"]]; + + enabledColor = [[NSColor whiteColor] retain]; + disabledColor = [[NSColor colorWithCalibratedWhite:0.6 alpha:1] retain]; +} + +- (void)drawBezelWithFrame:(NSRect)cellFrame inView:(NSView *)controlView +{ + cellFrame.size.height = buttonFillN.size.height; + + if ([self isHighlighted]) + NSDrawThreePartImage(cellFrame, buttonLeftP, buttonFillP, buttonRightP, NO, NSCompositeSourceOver, 1, YES); + else + NSDrawThreePartImage(cellFrame, buttonLeftN, buttonFillN, buttonRightN, NO, NSCompositeSourceOver, 1, YES); +} + +- (void)drawImage:(NSImage *)image withFrame:(NSRect)frame inView:(NSView *)controlView +{ + frame.origin.y -= 2; + + if ([[image name] isEqualToString:@"NSActionTemplate"]) + [image setSize:NSMakeSize(10,10)]; + + NSImage *newImage = image; + + if ([image isTemplate]) + newImage = [image tintedImageWithColor:[self interiorColor]]; + + [super drawImage:newImage withFrame:frame inView:controlView]; +} + +- (NSRect)drawTitle:(NSAttributedString *)title withFrame:(NSRect)frame inView:(NSView *)controlView +{ + frame.origin.y -= 4; + + return [super drawTitle:title withFrame:frame inView:controlView]; +} + +- (NSDictionary *)_textAttributes +{ + NSMutableDictionary *attributes = [[[NSMutableDictionary alloc] init] autorelease]; + [attributes addEntriesFromDictionary:[super _textAttributes]]; + [attributes setObject:[NSFont systemFontOfSize:11] forKey:NSFontAttributeName]; + [attributes setObject:[self interiorColor] forKey:NSForegroundColorAttributeName]; + + return attributes; +} + +- (NSColor *)interiorColor +{ + NSColor *interiorColor; + + if ([self isEnabled]) + interiorColor = enabledColor; + else + interiorColor = disabledColor; + + return interiorColor; +} + +- (NSControlSize)controlSize +{ + return NSSmallControlSize; +} + +- (void)setControlSize:(NSControlSize)size +{ + +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWTransparentButtonIntegration.m b/Frameworks/BWToolkitFramework.framework/BWTransparentButtonIntegration.m new file mode 100644 index 00000000..a27a053b --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTransparentButtonIntegration.m @@ -0,0 +1,35 @@ +// +// BWTransparentButtonIntegration.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import +#import "BWTransparentButton.h" + +@implementation BWTransparentButton ( BWTransparentButtonIntegration ) + +- (IBInset)ibLayoutInset +{ + IBInset inset; + inset.top = 10; + inset.bottom = 0; + inset.left = 1; + inset.right = 1; + + return inset; +} + +- (NSInteger)ibBaselineCount +{ + return 1; +} + +- (CGFloat)ibBaselineAtIndex:(NSInteger)index +{ + return 13; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWTransparentCheckbox.classdescription b/Frameworks/BWToolkitFramework.framework/BWTransparentCheckbox.classdescription new file mode 100644 index 00000000..145e03f2 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTransparentCheckbox.classdescription @@ -0,0 +1,12 @@ +{ + Actions = { + // Define action descriptions here, for example + // "myAction:" = id; + }; + Outlets = { + // Define outlet descriptions here, for example + // myOutlet = NSView; + }; + ClassName = BWTransparentCheckbox; + SuperClass = NSButton; +} diff --git a/Frameworks/BWToolkitFramework.framework/BWTransparentCheckbox.h b/Frameworks/BWToolkitFramework.framework/BWTransparentCheckbox.h new file mode 100644 index 00000000..0ee83192 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTransparentCheckbox.h @@ -0,0 +1,16 @@ +// +// BWTransparentCheckbox.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface BWTransparentCheckbox : NSButton +{ + +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWTransparentCheckbox.m b/Frameworks/BWToolkitFramework.framework/BWTransparentCheckbox.m new file mode 100644 index 00000000..d7bf92be --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTransparentCheckbox.m @@ -0,0 +1,13 @@ +// +// BWTransparentCheckbox.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWTransparentCheckbox.h" + +@implementation BWTransparentCheckbox + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWTransparentCheckboxCell.classdescription b/Frameworks/BWToolkitFramework.framework/BWTransparentCheckboxCell.classdescription new file mode 100644 index 00000000..81dba9d8 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTransparentCheckboxCell.classdescription @@ -0,0 +1,12 @@ +{ + Actions = { + // Define action descriptions here, for example + // "myAction:" = id; + }; + Outlets = { + // Define outlet descriptions here, for example + // myOutlet = NSView; + }; + ClassName = BWTransparentCheckboxCell; + SuperClass = NSButtonCell; +} diff --git a/Frameworks/BWToolkitFramework.framework/BWTransparentCheckboxCell.h b/Frameworks/BWToolkitFramework.framework/BWTransparentCheckboxCell.h new file mode 100644 index 00000000..b126b3e8 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTransparentCheckboxCell.h @@ -0,0 +1,17 @@ +// +// BWTransparentCheckboxCell.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import +#import "BWTransparentCheckbox.h" + +@interface BWTransparentCheckboxCell : NSButtonCell +{ + +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWTransparentCheckboxCell.m b/Frameworks/BWToolkitFramework.framework/BWTransparentCheckboxCell.m new file mode 100644 index 00000000..48326525 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTransparentCheckboxCell.m @@ -0,0 +1,124 @@ +// +// BWTransparentCheckboxCell.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWTransparentCheckboxCell.h" +#import "BWTransparentTableView.h" +#import "NSApplication+BWAdditions.h" + +static NSImage *checkboxOffN, *checkboxOffP, *checkboxOnN, *checkboxOnP; + +@implementation BWTransparentCheckboxCell + ++ (void)initialize; +{ + NSBundle *bundle = [NSBundle bundleForClass:[BWTransparentCheckboxCell class]]; + + checkboxOffN = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentCheckboxOffN.tiff"]]; + checkboxOffP = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentCheckboxOffP.tiff"]]; + checkboxOnN = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentCheckboxOnN.tiff"]]; + checkboxOnP = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentCheckboxOnP.tiff"]]; + + [checkboxOffN setFlipped:YES]; + [checkboxOffP setFlipped:YES]; + [checkboxOnN setFlipped:YES]; + [checkboxOnP setFlipped:YES]; +} + +- (NSRect)drawTitle:(NSAttributedString *)title withFrame:(NSRect)frame inView:(NSView *)controlView +{ + if ([[self controlView] isMemberOfClass:[BWTransparentTableView class]]) + { + frame.origin.x += 4; + return [super drawTitle:title withFrame:frame inView:controlView]; + } + + return [super drawTitle:title withFrame:frame inView:controlView]; +} + +- (void)drawImage:(NSImage*)image withFrame:(NSRect)frame inView:(NSView*)controlView +{ + if ([[self controlView] isMemberOfClass:[BWTransparentTableView class]]) + frame.origin.x += 4; + + CGFloat y = NSMaxY(frame) - (frame.size.height - checkboxOffN.size.height) / 2.0 - 15; + CGFloat x = frame.origin.x + 1; + NSPoint point = NSMakePoint(x, roundf(y)); + + CGFloat alpha = 1.0; + + if (![self isEnabled]) + alpha = 0.6; + + if ([self isHighlighted] && [self intValue]) + [checkboxOnP drawAtPoint:point fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:alpha]; + else if (![self isHighlighted] && [self intValue]) + [checkboxOnN drawAtPoint:point fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:alpha]; + else if (![self isHighlighted] && ![self intValue]) + [checkboxOffN drawAtPoint:point fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:alpha]; + else if ([self isHighlighted] && ![self intValue]) + [checkboxOffP drawAtPoint:point fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:alpha]; + + if (![[self title] isEqualToString:@""]) + { + // Style the text differently if the cell is in a table view + if ([[self controlView] isMemberOfClass:[BWTransparentTableView class]]) + { + NSColor *textColor; + + // Make the text white if the row is selected + if ([self backgroundStyle] != 1) + textColor = [NSColor colorWithCalibratedWhite:(198.0f / 255.0f) alpha:1]; + else + textColor = [NSColor whiteColor]; + + NSMutableDictionary *attributes = [[[NSMutableDictionary alloc] init] autorelease]; + [attributes addEntriesFromDictionary:[[self attributedTitle] attributesAtIndex:0 effectiveRange:NULL]]; + [attributes setObject:textColor forKey:NSForegroundColorAttributeName]; + [attributes setObject:[NSFont systemFontOfSize:11] forKey:NSFontAttributeName]; + + NSMutableAttributedString *string = [[[NSMutableAttributedString alloc] initWithString:[self title] attributes:attributes] autorelease]; + [self setAttributedTitle:string]; + } + else + { + NSColor *textColor; + if ([self isEnabled]) + textColor = [NSColor whiteColor]; + else + textColor = [NSColor colorWithCalibratedWhite:0.6 alpha:1]; + + NSMutableDictionary *attributes = [[[NSMutableDictionary alloc] init] autorelease]; + [attributes addEntriesFromDictionary:[[self attributedTitle] attributesAtIndex:0 effectiveRange:NULL]]; + [attributes setObject:textColor forKey:NSForegroundColorAttributeName]; + + if ([NSApplication isOnLeopard]) + [attributes setObject:[NSFont boldSystemFontOfSize:11] forKey:NSFontAttributeName]; + else + [attributes setObject:[NSFont systemFontOfSize:11] forKey:NSFontAttributeName]; + + NSShadow *shadow = [[[NSShadow alloc] init] autorelease]; + [shadow setShadowOffset:NSMakeSize(0,-1)]; + [attributes setObject:shadow forKey:NSShadowAttributeName]; + + NSMutableAttributedString *string = [[[NSMutableAttributedString alloc] initWithString:[self title] attributes:attributes] autorelease]; + [self setAttributedTitle:string]; + } + } +} + +- (NSControlSize)controlSize +{ + return NSSmallControlSize; +} + +- (void)setControlSize:(NSControlSize)size +{ + +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWTransparentCheckboxIntegration.m b/Frameworks/BWToolkitFramework.framework/BWTransparentCheckboxIntegration.m new file mode 100644 index 00000000..e14736b0 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTransparentCheckboxIntegration.m @@ -0,0 +1,35 @@ +// +// BWTransparentCheckBoxIntegration.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import +#import "BWTransparentCheckbox.h" + +@implementation BWTransparentCheckbox ( BWTransparentCheckboxIntegration ) + +- (NSSize)ibMinimumSize +{ + return NSMakeSize(0,18); +} + +- (NSSize)ibMaximumSize +{ + return NSMakeSize(100000,18); +} + +- (IBInset)ibLayoutInset +{ + IBInset inset; + inset.top = 3; + inset.bottom = 3; + inset.left = 2; + inset.right = 0; + + return inset; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWTransparentControlsLibrary.nib/designable.nib b/Frameworks/BWToolkitFramework.framework/BWTransparentControlsLibrary.nib/designable.nib new file mode 100644 index 00000000..467e1880 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTransparentControlsLibrary.nib/designable.nib @@ -0,0 +1,1995 @@ + + + + 1050 + 9J61 + 677 + 949.46 + 353.00 + + YES + + + + YES + com.apple.InterfaceBuilderKit + com.apple.InterfaceBuilder.IBSDKPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + YES + + YES + + + YES + + + + YES + + NSObject + + + FirstResponder + + + NSApplication + + + + 268 + + YES + + + 268 + {{20, 518}, {138, 17}} + + YES + + 67239488 + 272630784 + Transparent Controls + + LucidaGrande + 1.300000e+01 + 1044 + + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2OQA + + + + 6 + System + controlTextColor + + 3 + MAA + + + + + + + 12 + {{20, 516}, {582, 5}} + + {0, 0} + + 67239424 + 0 + Box + + + 6 + System + textBackgroundColor + + 3 + MQA + + + + 3 + MCAwLjgwMDAwMDAxAA + + + 3 + 2 + 0 + NO + + + + 268 + {{106, 373}, {63, 18}} + + YES + + -2080244224 + 131072 + Check + + LucidaGrande-Bold + 1.100000e+01 + 16 + + + 1211912703 + 130 + + NSImage + NSSwitch + + + NSSwitch + + + + 200 + 25 + + + + + 268 + {{395, 458}, {100, 22}} + + YES + + -2076049856 + 133120 + + LucidaGrande + 1.100000e+01 + 16 + + + 109199615 + 129 + + + 400 + 75 + + + Item 1 + + 1048576 + 2147483647 + 1 + + NSImage + NSMenuCheckmark + + + NSImage + NSMenuMixedState + + _popUpItemAction: + + + YES + + OtherViews + + YES + + + + Item 2 + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + Item 3 + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + 1 + YES + YES + 2 + + + + + 268 + {{108, 286}, {96, 15}} + + YES + + -2080244224 + 131072 + + + LucidaGrande + 1.100000e+01 + 3100 + + + 1.000000e+02 + 0.000000e+00 + 5.000000e+01 + 0.000000e+00 + 0 + 1 + NO + NO + + + + + 268 + {{103, 454}, {81, 28}} + + YES + + 67239424 + 134348800 + Button + + + -2038284033 + 129 + + + 200 + 25 + + + + + 4364 + + YES + + + 2304 + + YES + + + 4352 + {240, 135} + + YES + + + -2147483392 + {{-26, 0}, {16, 17}} + + + YES + + 2.370000e+02 + 4.000000e+01 + 1.000000e+03 + + 75628032 + 0 + + + + 3 + MC4zMzMzMzI5OQA + + + 6 + System + headerTextColor + + + + + 337772096 + 2048 + Text Cell + + + + 6 + System + controlBackgroundColor + + + + 1 + MSAxIDEAA + + + 3 + YES + YES + + + + 3.000000e+00 + 2.000000e+00 + + + 6 + System + gridColor + + 3 + MC41AA + + + 2.000000e+01 + -692060160 + 4 + 15 + 0 + YES + + + {240, 135} + + + + + 4 + MSAwLjE0AA + + 4 + + + + -2147483392 + {{-100, -100}, {15, 120}} + + + _doScroller: + 9.925373e-01 + + + + -2147483392 + {{-100, -100}, {225, 15}} + + 1 + + _doScroller: + 5.714286e-01 + + + {{398, 199}, {240, 135}} + + + 528 + + + + QSAAAEEgAABBsAAAQbAAAA + + + + 268 + + YES + + + 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 + + + {{18, 24}, {44, 32}} + + YES + + 130560 + 33554432 + + NSImage + Library-TransparentButton + + 0 + 0 + 0 + YES + + YES + + + {{20, 430}, {80, 80}} + + Transparent Button (HUD) + 4F24C31E-C382-4B82-B3C2-3285017ADD6F + Button for use in transparent panels (HUD windows). + + Button for use in transparent panels (HUD windows). + + YES + + YES + NSFont + NSParagraphStyle + + + YES + + Helvetica + 1.200000e+01 + 16 + + + 4 + + + + + + Transparent Controls + + + + + + 0 + + + + 268 + + YES + + + 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 + + + {{18, 24}, {44, 32}} + + YES + + 130560 + 33554432 + + NSImage + Library-TransparentPopUpButton + + 0 + 0 + 0 + YES + + YES + + + {{310, 430}, {80, 80}} + + Transparent Pop Up Button (HUD) + AF3C0ED2-BF58-45A7-8960-A37D8CF230E6 + Pop-up button for use in transparent panels (HUD windows). + + Pop-up button for use in transparent panels (HUD windows). + + + Transparent Controls + + + + + + 0 + + + + 268 + + YES + + + 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 + + + {{18, 24}, {44, 32}} + + YES + + 130560 + 33554432 + + NSImage + Library-TransparentCheckbox + + 0 + 0 + 0 + YES + + YES + + + {{20, 342}, {80, 80}} + + Transparent Check Box (HUD) + A39224B0-B5D2-4D6D-854E-938511A6152E + Check box for use in transparent panels (HUD windows). + + Check box for use in transparent panels (HUD windows). + + + Transparent Controls + + + + + + 0 + + + + 268 + + YES + + + 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 + + + {{18, 24}, {44, 32}} + + YES + + 130560 + 33554432 + + NSImage + Library-TransparentSlider + + 0 + 0 + 0 + YES + + YES + + + {{20, 254}, {80, 80}} + + Transparent Horizontal Slider (HUD) + 746DB67C-37BB-4C61-A84E-A57E23607AFE + Horizontal slider for use in transparent panels (HUD windows). + + Horizontal slider for use in transparent panels (HUD windows). + + + Transparent Controls + + + + + + 0 + + + + 268 + + YES + + + 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 + + + {{18, 24}, {44, 32}} + + YES + + 130560 + 33554432 + + NSImage + Library-TransparentLabel + + 0 + 0 + 0 + YES + + YES + + + {{310, 342}, {80, 80}} + + Transparent Label (HUD) + EC285393-CFF0-4711-8EF0-586BB955CA87 + Label for use in transparent panels (HUD windows). + + Label for use in transparent panels (HUD windows). + + + Transparent Controls + + + + + + 0 + + + + 268 + + YES + + + 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 + + + {{18, 24}, {44, 32}} + + YES + + 130560 + 33554432 + + NSImage + Library-TransparentTableView + + 0 + 0 + 0 + YES + + YES + + + {{310, 254}, {80, 80}} + + Transparent Table View (HUD) + FDB83576-2468-4324-A58F-7E706FD396FB + Table view for use in transparent panels (HUD windows). + + Table view for use in transparent panels (HUD windows). + + + Transparent Controls + + + + + + 0 + + + + 268 + + YES + + + 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 + + + {{18, 24}, {44, 32}} + + YES + + 130560 + 33554432 + + NSImage + Library-TransparentCheckboxCell + + 0 + 0 + 0 + YES + + YES + + + {{20, 166}, {80, 80}} + + Transparent Check Box Cell (HUD) + C8192A0A-8DD8-47E3-8EB9-EC8AB6842CC2 + Check box cell for use in transparent views. + + Check box cell for use in transparent views. + + + Transparent Controls + + + + + + 0 + + + + 268 + + YES + + + 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 + + + {{18, 24}, {44, 32}} + + YES + + 130560 + 33554432 + + NSImage + Library-TransparentTextView + + 0 + 0 + 0 + YES + + YES + + + {{310, 102}, {80, 80}} + + Transparent Text View (HUD) + EBF4A84F-3790-478C-9C09-AE6F0747EF77 + Text view for use in transparent panels (HUD windows). + + Text view for use in transparent panels (HUD windows). + + + Transparent Controls + + + + + + 0 + + + + 256 + + YES + + + 2304 + + YES + + + 2322 + + YES + + YES + Apple HTML pasteboard type + Apple PDF pasteboard type + Apple PICT pasteboard type + Apple PNG pasteboard type + Apple URL pasteboard type + CorePasteboardFlavorType 0x6D6F6F76 + CorePasteboardFlavorType 0x75726C20 + 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 + NeXT font pasteboard type + NeXT ruler pasteboard type + WebURLsWithTitlesPboardType + + + {225, 180} + + + + + + Lorem ipsum dolor sit er elit lamet, consectetaur cillium adipisicing pecu, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum Et harumd und lookum like Greek to me, dereud facilis est er expedit distinct. Nam liber te conscient to factor tum poen legum odioque civiuda + + + YES + + YES + + YES + NSColor + NSFont + NSParagraphStyle + + + YES + + 1 + MC45MDE5NjA3OSAwLjkwMTk2MDc5IDAuOTAxOTYwNzkAA + + + LucidaGrande + 1.000000e+01 + 2843 + + + 3 + + YES + + 0.000000e+00 + + + 5.600000e+01 + + + 1.120000e+02 + + + 1.680000e+02 + + + 2.240000e+02 + + + 2.800000e+02 + + + 3.360000e+02 + + + 3.920000e+02 + + + 4.480000e+02 + + + 5.040000e+02 + + + 5.600000e+02 + + + 6.160000e+02 + + + 6.720000e+02 + + + 7.280000e+02 + + + 7.840000e+02 + + + 8.400000e+02 + + + 8.960000e+02 + + + 9.520000e+02 + + + 1.008000e+03 + + + 1.064000e+03 + + + 1.120000e+03 + + + 1.176000e+03 + + + 1.232000e+03 + + + 1.288000e+03 + + + 1.344000e+03 + + + 1.400000e+03 + + + 1.456000e+03 + + + 1.512000e+03 + + + 1.568000e+03 + + + 1.624000e+03 + + + 1.680000e+03 + + + 1.736000e+03 + + + + + + + YES + + YES + NSColor + NSFont + NSParagraphStyle + + + YES + + + LucidaGrande-Bold + 1.000000e+01 + 16 + + + 3 + + YES + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GQAEAQgADAEiAAcBhAQAA + + + + + YES + + + 6 + + + + 2.250000e+02 + 1 + + + 10983 + + + + YES + + YES + NSBackgroundColor + NSColor + + + YES + + 6 + System + selectedTextBackgroundColor + + + + 6 + System + selectedTextColor + + + + + + + YES + + YES + NSColor + NSUnderline + + + YES + + 1 + MCAwIDEAA + + + + + + + 6 + {480, 1e+07} + {223, 0} + + + + {225, 135} + + + + + + {4, -5} + 1 + + 2 + + + + 256 + {{225, 0}, {15, 135}} + + YES + + _doScroller: + 7.500000e-01 + + + + 256 + {{-100, -100}, {87, 18}} + + 1 + + _doScroller: + 1.000000e+00 + 9.456522e-01 + + + {{398, 47}, {240, 135}} + + + 592 + + + + + + + 268 + {{395, 375}, {38, 14}} + + YES + + 68288064 + 272761856 + Label + + + + + + + + {686, 555} + + NSView + + + 67239424 + 131072 + Check + + 1211912703 + 130 + + + + + 200 + 25 + + + + + YES + + + draggedView + + + + 149 + + + + draggedView + + + + 150 + + + + draggedView + + + + 151 + + + + draggedView + + + + 152 + + + + draggedView + + + + 175 + + + + representedObject + + + + 179 + + + + draggedView + + + + 190 + + + + draggedView + + + + 195 + + + + + YES + + 0 + + YES + + + + + + -2 + + + RmlsZSdzIE93bmVyA + + + -1 + + + First Responder + + + -3 + + + Application + + + 7 + + + YES + + + + + + + + + + + + + + + + + + + + Library Objects + + + 41 + + + YES + + + + + + 42 + + + + + 45 + + + YES + + + + + + 47 + + + YES + + + + + + 50 + + + YES + + + + + + 52 + + + YES + + + + + + 53 + + + + + 56 + + + + + 60 + + + YES + + + + + + 61 + + + YES + + + + + + + + 62 + + + + + 63 + + + + + 64 + + + + + 71 + + + + + 76 + + + + + 98 + + + YES + + + + + + + + 99 + + + + + 100 + + + + + 101 + + + YES + + + + + + 103 + + + YES + + + + + + 106 + + + + + 132 + + + + + 142 + + + YES + + + + + + 143 + + + YES + + + + + + 144 + + + YES + + + + + + 145 + + + YES + + + + + + 146 + + + YES + + + + + + 139 + + + YES + + + + + + 140 + + + + + 93 + + + YES + + + + + + 94 + + + + + 89 + + + YES + + + + + + 90 + + + + + 91 + + + YES + + + + + + 92 + + + + + 95 + + + YES + + + + + + 96 + + + + + 160 + + + YES + + + + + + 176 + + + YES + + + + + + 177 + + + + + 178 + + + YES + + + + + + 180 + + + YES + + + + + + 183 + + + YES + + + + + + 184 + + + + + 185 + + + YES + + + + + + + + 186 + + + + + 187 + + + + + 188 + + + + + 191 + + + YES + + + + + + 192 + + + + + 193 + + + YES + + + + + + 194 + + + + + + + YES + + YES + -1.IBPluginDependency + -2.IBPluginDependency + -3.IBPluginDependency + 100.IBPluginDependency + 101.CustomClassName + 101.IBPluginDependency + 103.IBPluginDependency + 106.CustomClassName + 106.IBPluginDependency + 132.CustomClassName + 132.IBPluginDependency + 142.IBPluginDependency + 143.IBPluginDependency + 144.IBPluginDependency + 145.IBPluginDependency + 146.IBPluginDependency + 160.IBPluginDependency + 178.IBPluginDependency + 180.IBPluginDependency + 185.CustomClassName + 185.IBPluginDependency + 186.CustomClassName + 186.IBPluginDependency + 187.IBPluginDependency + 188.IBPluginDependency + 193.IBPluginDependency + 194.CustomClassName + 194.IBPluginDependency + 41.IBPluginDependency + 42.IBPluginDependency + 45.CustomClassName + 45.IBPluginDependency + 47.CustomClassName + 47.IBPluginDependency + 50.CustomClassName + 50.IBPluginDependency + 52.CustomClassName + 52.IBPluginDependency + 53.CustomClassName + 53.IBPluginDependency + 56.CustomClassName + 56.IBPluginDependency + 60.CustomClassName + 60.IBPluginDependency + 61.IBEditorWindowLastContentRect + 61.IBPluginDependency + 62.IBPluginDependency + 63.IBPluginDependency + 64.IBPluginDependency + 7.IBEditorWindowLastContentRect + 7.IBPluginDependency + 7.IBUserGuides + 7.WindowOrigin + 7.editorWindowContentRectSynchronizationRect + 71.CustomClassName + 71.IBPluginDependency + 76.IBPluginDependency + 98.CustomClassName + 98.IBPluginDependency + 99.CustomClassName + 99.IBPluginDependency + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilderKit + com.apple.InterfaceBuilderKit + com.apple.InterfaceBuilder.CocoaPlugin + BWTransparentTableView + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + BWTransparentTableViewCell + com.apple.InterfaceBuilder.CocoaPlugin + BWTransparentCheckboxCell + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.IBSDKPlugin + com.apple.InterfaceBuilder.IBSDKPlugin + com.apple.InterfaceBuilder.IBSDKPlugin + com.apple.InterfaceBuilder.IBSDKPlugin + com.apple.InterfaceBuilder.IBSDKPlugin + com.apple.InterfaceBuilder.IBSDKPlugin + com.apple.InterfaceBuilder.IBSDKPlugin + com.apple.InterfaceBuilder.IBSDKPlugin + BWTransparentScrollView + com.apple.InterfaceBuilder.CocoaPlugin + BWTransparentScroller + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + BWTransparentTextFieldCell + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + BWTransparentCheckbox + com.apple.InterfaceBuilder.CocoaPlugin + BWTransparentPopUpButton + com.apple.InterfaceBuilder.CocoaPlugin + BWTransparentSlider + com.apple.InterfaceBuilder.CocoaPlugin + BWTransparentButton + com.apple.InterfaceBuilder.CocoaPlugin + BWTransparentButtonCell + com.apple.InterfaceBuilder.CocoaPlugin + BWTransparentSliderCell + com.apple.InterfaceBuilder.CocoaPlugin + BWTransparentPopUpButtonCell + com.apple.InterfaceBuilder.CocoaPlugin + {{931, 621}, {100, 54}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{480, 260}, {686, 555}} + com.apple.InterfaceBuilder.CocoaPlugin + + YES + + {332, 343} + {{403, 401}, {264, 327}} + BWTransparentCheckboxCell + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + BWTransparentScrollView + com.apple.InterfaceBuilder.CocoaPlugin + BWTransparentScroller + com.apple.InterfaceBuilder.CocoaPlugin + + + + YES + + YES + + + YES + + + + + YES + + YES + + + YES + + + + 195 + + + + YES + + BWTransparentButton + NSButton + + IBProjectSource + BWTransparentButton.h + + + + BWTransparentButtonCell + NSButtonCell + + IBProjectSource + BWTransparentButtonCell.h + + + + BWTransparentCheckbox + NSButton + + IBProjectSource + BWTransparentCheckbox.h + + + + BWTransparentCheckboxCell + NSButtonCell + + IBProjectSource + BWTransparentCheckboxCell.h + + + + BWTransparentPopUpButton + NSPopUpButton + + IBProjectSource + BWTransparentPopUpButton.h + + + + BWTransparentPopUpButtonCell + NSPopUpButtonCell + + IBProjectSource + BWTransparentPopUpButtonCell.h + + + + BWTransparentScrollView + NSScrollView + + IBProjectSource + BWTransparentScrollView.h + + + + BWTransparentScroller + NSScroller + + IBProjectSource + BWTransparentScroller.h + + + + BWTransparentSlider + NSSlider + + IBProjectSource + BWTransparentSlider.h + + + + BWTransparentSliderCell + NSSliderCell + + IBProjectSource + BWTransparentSliderCell.h + + + + BWTransparentTableView + NSTableView + + IBProjectSource + BWTransparentTableView.h + + + + BWTransparentTableViewCell + NSTextFieldCell + + IBProjectSource + BWTransparentTableViewCell.h + + + + BWTransparentTextFieldCell + NSTextFieldCell + + IBProjectSource + BWTransparentTextFieldCell.h + + + + NSView + + IBProjectSource + NSView+BWAdditions.h + + + + + 0 + BWToolkit.xcodeproj + 3 + + diff --git a/Frameworks/BWToolkitFramework.framework/BWTransparentControlsLibrary.nib/keyedobjects.nib b/Frameworks/BWToolkitFramework.framework/BWTransparentControlsLibrary.nib/keyedobjects.nib new file mode 100644 index 00000000..c4e3e765 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/BWTransparentControlsLibrary.nib/keyedobjects.nib differ diff --git a/Frameworks/BWToolkitFramework.framework/BWTransparentPopUpButton.classdescription b/Frameworks/BWToolkitFramework.framework/BWTransparentPopUpButton.classdescription new file mode 100644 index 00000000..2d8850a5 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTransparentPopUpButton.classdescription @@ -0,0 +1,12 @@ +{ + Actions = { + // Define action descriptions here, for example + // "myAction:" = id; + }; + Outlets = { + // Define outlet descriptions here, for example + // myOutlet = NSView; + }; + ClassName = BWTransparentPopUpButton; + SuperClass = NSPopUpButton; +} diff --git a/Frameworks/BWToolkitFramework.framework/BWTransparentPopUpButton.h b/Frameworks/BWToolkitFramework.framework/BWTransparentPopUpButton.h new file mode 100644 index 00000000..9512c6f6 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTransparentPopUpButton.h @@ -0,0 +1,16 @@ +// +// BWTransparentPopUpButton.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface BWTransparentPopUpButton : NSPopUpButton +{ + +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWTransparentPopUpButton.m b/Frameworks/BWToolkitFramework.framework/BWTransparentPopUpButton.m new file mode 100644 index 00000000..ac574490 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTransparentPopUpButton.m @@ -0,0 +1,13 @@ +// +// BWTransparentPopUpButton.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWTransparentPopUpButton.h" + +@implementation BWTransparentPopUpButton + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWTransparentPopUpButtonCell.classdescription b/Frameworks/BWToolkitFramework.framework/BWTransparentPopUpButtonCell.classdescription new file mode 100644 index 00000000..89b50050 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTransparentPopUpButtonCell.classdescription @@ -0,0 +1,12 @@ +{ + Actions = { + // Define action descriptions here, for example + // "myAction:" = id; + }; + Outlets = { + // Define outlet descriptions here, for example + // myOutlet = NSView; + }; + ClassName = BWTransparentPopUpButtonCell; + SuperClass = NSPopUpButtonCell; +} diff --git a/Frameworks/BWToolkitFramework.framework/BWTransparentPopUpButtonCell.h b/Frameworks/BWToolkitFramework.framework/BWTransparentPopUpButtonCell.h new file mode 100644 index 00000000..03aa9cb3 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTransparentPopUpButtonCell.h @@ -0,0 +1,16 @@ +// +// BWTransparentPopUpButtonCell.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface BWTransparentPopUpButtonCell : NSPopUpButtonCell +{ + +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWTransparentPopUpButtonCell.m b/Frameworks/BWToolkitFramework.framework/BWTransparentPopUpButtonCell.m new file mode 100644 index 00000000..d1b7e38b --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTransparentPopUpButtonCell.m @@ -0,0 +1,174 @@ +// +// BWTransparentPopUpButtonCell.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWTransparentPopUpButtonCell.h" +#import "NSImage+BWAdditions.h" + +static NSImage *popUpFillN, *popUpFillP, *popUpRightN, *popUpRightP, *popUpLeftN, *popUpLeftP, *pullDownRightN, *pullDownRightP; +static NSColor *disabledColor, *enabledColor; + +@interface NSCell (BWTPUBCPrivate) +- (NSDictionary *)_textAttributes; +@end + +@interface BWTransparentPopUpButtonCell (BWTPUBCPrivate) +- (NSColor *)interiorColor; +@end + +@implementation BWTransparentPopUpButtonCell + ++ (void)initialize; +{ + NSBundle *bundle = [NSBundle bundleForClass:[BWTransparentPopUpButtonCell class]]; + + popUpFillN = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentPopUpFillN.tiff"]]; + popUpFillP = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentPopUpFillP.tiff"]]; + popUpRightN = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentPopUpRightN.tiff"]]; + popUpRightP = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentPopUpRightP.tiff"]]; + popUpLeftN = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentPopUpLeftN.tiff"]]; + popUpLeftP = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentPopUpLeftP.tiff"]]; + pullDownRightN = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentPopUpPullDownRightN.tif"]]; + pullDownRightP = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentPopUpPullDownRightP.tif"]]; + + enabledColor = [[NSColor whiteColor] retain]; + disabledColor = [[NSColor colorWithCalibratedWhite:0.6 alpha:1] retain]; +} + +- (void)drawBezelWithFrame:(NSRect)cellFrame inView:(NSView *)controlView +{ + cellFrame.size.height = popUpFillN.size.height; + + if ([self isHighlighted]) + { + if ([self pullsDown]) + NSDrawThreePartImage(cellFrame, popUpLeftP, popUpFillP, pullDownRightP, NO, NSCompositeSourceOver, 1, YES); + else + NSDrawThreePartImage(cellFrame, popUpLeftP, popUpFillP, popUpRightP, NO, NSCompositeSourceOver, 1, YES); + } + else + { + if ([self pullsDown]) + NSDrawThreePartImage(cellFrame, popUpLeftN, popUpFillN, pullDownRightN, NO, NSCompositeSourceOver, 1, YES); + else + NSDrawThreePartImage(cellFrame, popUpLeftN, popUpFillN, popUpRightN, NO, NSCompositeSourceOver, 1, YES); + } +} + +- (void)drawImageWithFrame:(NSRect)cellFrame inView:(NSView *)controlView +{ + NSImage *image = [self image]; + + if (image != nil) + { + [image setScalesWhenResized:NO]; + + if ([[image name] isEqualToString:@"NSActionTemplate"]) + [image setSize:NSMakeSize(10,10)]; + + NSImage *newImage = image; + + if ([image isTemplate]) + newImage = [image tintedImageWithColor:[self interiorColor]]; + + NSAffineTransform* xform = [NSAffineTransform transform]; + [xform translateXBy:0.0 yBy:cellFrame.size.height]; + [xform scaleXBy:1.0 yBy:-1.0]; + [xform concat]; + + [newImage drawInRect:[self imageRectForBounds:cellFrame] fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1]; + + NSAffineTransform* xform2 = [NSAffineTransform transform]; + [xform2 translateXBy:0.0 yBy:cellFrame.size.height]; + [xform2 scaleXBy:1.0 yBy:-1.0]; + [xform2 concat]; + } +} + +- (NSRect)imageRectForBounds:(NSRect)bounds; +{ + NSRect rect = [super imageRectForBounds:bounds]; + + rect.origin.y += 3; + + if ([self imagePosition] == NSImageOnly || [self imagePosition] == NSImageOverlaps || [self imagePosition] == NSImageAbove || [self imagePosition] == NSImageBelow) + { + rect.origin.x += 4; + } + else if ([self imagePosition] == NSImageRight) + { + rect.origin.x += 3; + } + else if ([self imagePosition] == NSImageLeft || [self imagePosition] == NSNoImage) + { + rect.origin.x -= 1; + } + + return rect; +} + +- (NSRect)titleRectForBounds:(NSRect)cellFrame +{ + NSRect titleRect = [super titleRectForBounds:cellFrame]; + + titleRect.origin.y -= 1; + titleRect.origin.x -= 2; + titleRect.size.width += 6; + + if ([self image] != nil) + { + if ([self imagePosition] == NSImageOnly || [self imagePosition] == NSImageOverlaps || [self imagePosition] == NSImageAbove || [self imagePosition] == NSImageBelow) + { + + } + else if ([self imagePosition] == NSImageRight) + { + if ([self alignment] == NSRightTextAlignment) + titleRect.origin.x -= 3; + } + else if ([self imagePosition] == NSImageLeft || [self imagePosition] == NSNoImage) + { + titleRect.origin.x += 2; + } + } + + return titleRect; +} + +- (NSDictionary *)_textAttributes +{ + NSMutableDictionary *attributes = [[[NSMutableDictionary alloc] init] autorelease]; + [attributes addEntriesFromDictionary:[super _textAttributes]]; + [attributes setObject:[NSFont systemFontOfSize:11] forKey:NSFontAttributeName]; + [attributes setObject:[self interiorColor] forKey:NSForegroundColorAttributeName]; + + return attributes; +} + +- (NSColor *)interiorColor +{ + NSColor *interiorColor; + + if ([self isEnabled]) + interiorColor = enabledColor; + else + interiorColor = disabledColor; + + return interiorColor; +} + +- (NSControlSize)controlSize +{ + return NSSmallControlSize; +} + +- (void)setControlSize:(NSControlSize)size +{ + +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWTransparentPopUpButtonIntegration.m b/Frameworks/BWToolkitFramework.framework/BWTransparentPopUpButtonIntegration.m new file mode 100644 index 00000000..ffa42e7d --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTransparentPopUpButtonIntegration.m @@ -0,0 +1,35 @@ +// +// BWTransparentPopUpIntegration.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import +#import "BWTransparentPopUpButton.h" + +@implementation BWTransparentPopUpButton ( BWTransparentPopUpButtonIntegration ) + +- (IBInset)ibLayoutInset +{ + IBInset inset; + inset.top = 4; + inset.bottom = 0; + inset.left = 1; + inset.right = 1; + + return inset; +} + +- (NSInteger)ibBaselineCount +{ + return 1; +} + +- (CGFloat)ibBaselineAtIndex:(NSInteger)index +{ + return 13; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWTransparentScrollView.classdescription b/Frameworks/BWToolkitFramework.framework/BWTransparentScrollView.classdescription new file mode 100644 index 00000000..1f58bc88 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTransparentScrollView.classdescription @@ -0,0 +1,12 @@ +{ + Actions = { + // Define action descriptions here, for example + // "myAction:" = id; + }; + Outlets = { + // Define outlet descriptions here, for example + // myOutlet = NSView; + }; + ClassName = BWTransparentScrollView; + SuperClass = NSScrollView; +} diff --git a/Frameworks/BWToolkitFramework.framework/BWTransparentScrollView.h b/Frameworks/BWToolkitFramework.framework/BWTransparentScrollView.h new file mode 100644 index 00000000..1deeed5c --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTransparentScrollView.h @@ -0,0 +1,16 @@ +// +// BWTransparentScrollView.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface BWTransparentScrollView : NSScrollView +{ + +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWTransparentScrollView.m b/Frameworks/BWToolkitFramework.framework/BWTransparentScrollView.m new file mode 100644 index 00000000..636e69aa --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTransparentScrollView.m @@ -0,0 +1,29 @@ +// +// BWTransparentScrollView.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWTransparentScrollView.h" +#import "BWTransparentScroller.h" + +@implementation BWTransparentScrollView + +- (id)initWithCoder:(NSCoder *)decoder; +{ + if ((self = [super initWithCoder:decoder]) != nil) + { + if ([self respondsToSelector:@selector(ibTester)] == NO) + [self setDrawsBackground:NO]; + } + return self; +} + ++ (Class)_verticalScrollerClass +{ + return [BWTransparentScroller class]; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWTransparentScrollViewIntegration.m b/Frameworks/BWToolkitFramework.framework/BWTransparentScrollViewIntegration.m new file mode 100644 index 00000000..6051b4f4 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTransparentScrollViewIntegration.m @@ -0,0 +1,29 @@ +// +// BWTransparentScrollViewIntegration.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import +#import "BWTransparentScrollView.h" + +@implementation BWTransparentScrollView ( BWTransparentScrollViewIntegration ) + +- (IBInset)ibLayoutInset +{ + IBInset inset; + inset.top = 0; + inset.bottom = 0; + inset.left = -1; + inset.right = -1; + + return inset; +} + +- (void)ibTester +{ +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWTransparentScroller.classdescription b/Frameworks/BWToolkitFramework.framework/BWTransparentScroller.classdescription new file mode 100644 index 00000000..52ce8716 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTransparentScroller.classdescription @@ -0,0 +1,12 @@ +{ + Actions = { + // Define action descriptions here, for example + // "myAction:" = id; + }; + Outlets = { + // Define outlet descriptions here, for example + // myOutlet = NSView; + }; + ClassName = BWTransparentScroller; + SuperClass = NSScroller; +} diff --git a/Frameworks/BWToolkitFramework.framework/BWTransparentScroller.h b/Frameworks/BWToolkitFramework.framework/BWTransparentScroller.h new file mode 100644 index 00000000..661e5fe2 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTransparentScroller.h @@ -0,0 +1,16 @@ +// +// BWTransparentScroller.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface BWTransparentScroller : NSScroller +{ + BOOL isVertical; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWTransparentScroller.m b/Frameworks/BWToolkitFramework.framework/BWTransparentScroller.m new file mode 100644 index 00000000..636aaffc --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTransparentScroller.m @@ -0,0 +1,251 @@ +// +// BWTransparentScroller.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWTransparentScroller.h" + +// Vertical scroller +static NSImage *knobTop, *knobVerticalFill, *knobBottom, *slotTop, *slotVerticalFill, *slotBottom; +static float verticalPaddingLeft = 0.0; +static float verticalPaddingRight = 1.0; +static float verticalPaddingTop = 2.0; +static float verticalPaddingBottom = 0.0; +static float minKnobHeight; + +// Horizontal scroller +static NSImage *knobLeft, *knobHorizontalFill, *knobRight, *slotLeft, *slotHorizontalFill, *slotRight; +static float horizontalPaddingLeft = 2.0; +static float horizontalPaddingRight = 2.0; +static float horizontalPaddingTop = 0.0; +static float horizontalPaddingBottom = 1.0; +static float minKnobWidth; + +static NSColor *backgroundColor; + +@interface BWTransparentScroller (BWTSPrivate) +- (void)drawKnobSlot; +@end + +@interface NSScroller (BWTSPrivate) +- (NSRect)_drawingRectForPart:(NSScrollerPart)aPart; +@end + +@implementation BWTransparentScroller + ++ (void)initialize +{ + NSBundle *bundle = [NSBundle bundleForClass:[BWTransparentScroller class]]; + + // Vertical scroller + knobTop = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentScrollerKnobTop.tif"]]; + knobVerticalFill = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentScrollerKnobVerticalFill.tif"]]; + knobBottom = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentScrollerKnobBottom.tif"]]; + slotTop = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentScrollerSlotTop.tif"]]; + slotVerticalFill = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentScrollerSlotVerticalFill.tif"]]; + slotBottom = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentScrollerSlotBottom.tif"]]; + + // Horizontal scroller + knobLeft = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentScrollerKnobLeft.tif"]]; + knobHorizontalFill = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentScrollerKnobHorizontalFill.tif"]]; + knobRight = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentScrollerKnobRight.tif"]]; + slotLeft = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentScrollerSlotLeft.tif"]]; + slotHorizontalFill = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentScrollerSlotHorizontalFill.tif"]]; + slotRight = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentScrollerSlotRight.tif"]]; + + backgroundColor = [[NSColor colorWithCalibratedWhite:0.13 alpha:0.855] retain]; + + minKnobHeight = knobTop.size.height + knobVerticalFill.size.height + knobBottom.size.height + 10; + minKnobWidth = knobLeft.size.width + knobHorizontalFill.size.width + knobRight.size.width + 10; +} + +- (id)initWithFrame:(NSRect)frameRect; +{ + if (self = [super initWithFrame:frameRect]) + { + [self setArrowsPosition:NSScrollerArrowsNone]; + + if ([self bounds].size.width / [self bounds].size.height < 1) + isVertical = YES; + else + isVertical = NO; + } + + return self; +} + +- (id)initWithCoder:(NSCoder *)decoder; +{ + if (self = [super initWithCoder:decoder]) + { + [self setArrowsPosition:NSScrollerArrowsNone]; + + if ([self bounds].size.width / [self bounds].size.height < 1) + isVertical = YES; + else + isVertical = NO; + } + + return self; +} + ++ (CGFloat)scrollerWidth +{ + return slotVerticalFill.size.width + verticalPaddingLeft + verticalPaddingRight; +} + ++ (CGFloat)scrollerWidthForControlSize:(NSControlSize)controlSize +{ + return slotVerticalFill.size.width + verticalPaddingLeft + verticalPaddingRight; +} + +- (void)drawRect:(NSRect)aRect; +{ + [backgroundColor set]; + NSRectFill([self bounds]); + + // Only draw if the slot is larger than the knob + if (isVertical && ([self bounds].size.height - verticalPaddingTop - verticalPaddingBottom + 1) > minKnobHeight) + { + [self drawKnobSlot]; + + if ([self knobProportion] > 0.0) + [self drawKnob]; + } + else if (!isVertical && ([self bounds].size.width - horizontalPaddingLeft - horizontalPaddingRight + 1) > minKnobWidth) + { + [self drawKnobSlot]; + + if ([self knobProportion] > 0.0) + [self drawKnob]; + } +} + +- (void)drawKnobSlot; +{ + NSRect slotRect = [self rectForPart:NSScrollerKnobSlot]; + + if (isVertical) + NSDrawThreePartImage(slotRect, slotTop, slotVerticalFill, slotBottom, YES, NSCompositeSourceOver, 1, NO); + else + NSDrawThreePartImage(slotRect, slotLeft, slotHorizontalFill, slotRight, NO, NSCompositeSourceOver, 1, NO); +} + +- (void)drawKnob; +{ + NSRect knobRect = [self rectForPart:NSScrollerKnob]; + + if (isVertical) + NSDrawThreePartImage(knobRect, knobTop, knobVerticalFill, knobBottom, YES, NSCompositeSourceOver, 1, NO); + else + NSDrawThreePartImage(knobRect, knobLeft, knobHorizontalFill, knobRight, NO, NSCompositeSourceOver, 1, NO); +} + +- (NSRect)_drawingRectForPart:(NSScrollerPart)aPart; +{ + // Call super even though we're not using its value (has some side effects we need) + [super _drawingRectForPart:aPart]; + + // Return our own rects rather than use the default behavior + return [self rectForPart:aPart]; +} + +- (NSRect)rectForPart:(NSScrollerPart)aPart; +{ + switch (aPart) + { + case NSScrollerNoPart: + return [self bounds]; + break; + case NSScrollerKnob: + { + NSRect knobRect; + NSRect slotRect = [self rectForPart:NSScrollerKnobSlot]; + + if (isVertical) + { + float knobHeight = roundf(slotRect.size.height * [self knobProportion]); + + if (knobHeight < minKnobHeight) + knobHeight = minKnobHeight; + + float knobY = slotRect.origin.y + roundf((slotRect.size.height - knobHeight) * [self floatValue]); + knobRect = NSMakeRect(verticalPaddingLeft, knobY, slotRect.size.width, knobHeight); + } + else + { + float knobWidth = roundf(slotRect.size.width * [self knobProportion]); + + if (knobWidth < minKnobWidth) + knobWidth = minKnobWidth; + + float knobX = slotRect.origin.x + roundf((slotRect.size.width - knobWidth) * [self floatValue]); + knobRect = NSMakeRect(knobX, horizontalPaddingTop, knobWidth, slotRect.size.height); + } + + return knobRect; + } + break; + case NSScrollerKnobSlot: + { + NSRect slotRect; + + if (isVertical) + slotRect = NSMakeRect(verticalPaddingLeft, verticalPaddingTop, [self bounds].size.width - verticalPaddingLeft - verticalPaddingRight, [self bounds].size.height - verticalPaddingTop - verticalPaddingBottom); + else + slotRect = NSMakeRect(horizontalPaddingLeft, horizontalPaddingTop, [self bounds].size.width - horizontalPaddingLeft - horizontalPaddingRight, [self bounds].size.height - horizontalPaddingTop - horizontalPaddingBottom); + + return slotRect; + } + break; + case NSScrollerIncrementLine: + return NSZeroRect; + break; + case NSScrollerDecrementLine: + return NSZeroRect; + break; + case NSScrollerIncrementPage: + { + NSRect incrementPageRect; + NSRect knobRect = [self rectForPart:NSScrollerKnob]; + NSRect slotRect = [self rectForPart:NSScrollerKnobSlot]; + NSRect decPageRect = [self rectForPart:NSScrollerDecrementPage]; + + if (isVertical) + { + float knobY = knobRect.origin.y + knobRect.size.height; + incrementPageRect = NSMakeRect(verticalPaddingLeft, knobY, knobRect.size.width, slotRect.size.height - knobRect.size.height - decPageRect.size.height); + } + else + { + float knobX = knobRect.origin.x + knobRect.size.width; + incrementPageRect = NSMakeRect(knobX, horizontalPaddingTop, (slotRect.size.width + horizontalPaddingLeft) - knobX, knobRect.size.height); + } + + return incrementPageRect; + } + break; + case NSScrollerDecrementPage: + { + NSRect decrementPageRect; + NSRect knobRect = [self rectForPart:NSScrollerKnob]; + + if (isVertical) + decrementPageRect = NSMakeRect(verticalPaddingLeft, verticalPaddingTop, knobRect.size.width, knobRect.origin.y - verticalPaddingTop); + else + decrementPageRect = NSMakeRect(horizontalPaddingLeft, horizontalPaddingTop, knobRect.origin.x - horizontalPaddingLeft, knobRect.size.height); + + return decrementPageRect; + } + break; + default: + break; + } + + return NSZeroRect; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWTransparentSlider.classdescription b/Frameworks/BWToolkitFramework.framework/BWTransparentSlider.classdescription new file mode 100644 index 00000000..572256f8 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTransparentSlider.classdescription @@ -0,0 +1,12 @@ +{ + Actions = { + // Define action descriptions here, for example + // "myAction:" = id; + }; + Outlets = { + // Define outlet descriptions here, for example + // myOutlet = NSView; + }; + ClassName = BWTransparentSlider; + SuperClass = NSSlider; +} diff --git a/Frameworks/BWToolkitFramework.framework/BWTransparentSlider.h b/Frameworks/BWToolkitFramework.framework/BWTransparentSlider.h new file mode 100644 index 00000000..51de73d6 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTransparentSlider.h @@ -0,0 +1,16 @@ +// +// BWTransparentSlider.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface BWTransparentSlider : NSSlider +{ + +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWTransparentSlider.m b/Frameworks/BWToolkitFramework.framework/BWTransparentSlider.m new file mode 100644 index 00000000..7440f1e8 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTransparentSlider.m @@ -0,0 +1,13 @@ +// +// BWTransparentSlider.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWTransparentSlider.h" + +@implementation BWTransparentSlider + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWTransparentSliderCell.classdescription b/Frameworks/BWToolkitFramework.framework/BWTransparentSliderCell.classdescription new file mode 100644 index 00000000..659b7270 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTransparentSliderCell.classdescription @@ -0,0 +1,12 @@ +{ + Actions = { + // Define action descriptions here, for example + // "myAction:" = id; + }; + Outlets = { + // Define outlet descriptions here, for example + // myOutlet = NSView; + }; + ClassName = BWTransparentSliderCell; + SuperClass = NSSliderCell; +} diff --git a/Frameworks/BWToolkitFramework.framework/BWTransparentSliderCell.h b/Frameworks/BWToolkitFramework.framework/BWTransparentSliderCell.h new file mode 100644 index 00000000..7c5e1466 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTransparentSliderCell.h @@ -0,0 +1,16 @@ +// +// BWTransparentSliderCell.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface BWTransparentSliderCell : NSSliderCell +{ + BOOL isPressed; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWTransparentSliderCell.m b/Frameworks/BWToolkitFramework.framework/BWTransparentSliderCell.m new file mode 100644 index 00000000..a08a1e57 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTransparentSliderCell.m @@ -0,0 +1,152 @@ +// +// BWTransparentSliderCell.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWTransparentSliderCell.h" + +@implementation BWTransparentSliderCell + +static NSImage *trackLeftImage, *trackFillImage, *trackRightImage, *thumbPImage, *thumbNImage, *triangleThumbNImage, *triangleThumbPImage; + ++ (void)initialize +{ + if([BWTransparentSliderCell class] == [self class]) + { + NSBundle *bundle = [NSBundle bundleForClass:[BWTransparentSliderCell class]]; + + trackLeftImage = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentSliderTrackLeft.tiff"]]; + trackFillImage = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentSliderTrackFill.tiff"]]; + trackRightImage = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentSliderTrackRight.tiff"]]; + thumbPImage = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentSliderThumbP.tiff"]]; + thumbNImage = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentSliderThumbN.tiff"]]; + triangleThumbNImage = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentSliderTriangleThumbN.tiff"]]; + triangleThumbPImage = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentSliderTriangleThumbP.tiff"]]; + } +} + +- (id)initWithCoder:(NSCoder *)decoder; +{ + self = [super initWithCoder:decoder]; + + [self setControlSize:NSSmallControlSize]; + isPressed = NO; + [super setTickMarkPosition:NSTickMarkBelow]; + + return self; +} + +- (void)drawBarInside:(NSRect)cellFrame flipped:(BOOL)flipped +{ + NSRect slideRect = cellFrame; + slideRect.size.height = [trackFillImage size].height; + if(cellFrame.size.height > slideRect.size.height) + slideRect.origin.y += roundf((cellFrame.size.height - slideRect.size.height) * 0.5f); + + slideRect.size.width -= 5; + slideRect.origin.x += 2; + + if ([self numberOfTickMarks] > 0) + { + slideRect.origin.y--; + slideRect.size.width++; + } + + CGFloat alpha = 1.0; + + if (![self isEnabled]) + alpha = 0.6; + + NSDrawThreePartImage(slideRect, trackLeftImage, trackFillImage, trackRightImage, NO, NSCompositeSourceOver, alpha, flipped); + + // Draw solid white on top of all of the ticks + if ([self numberOfTickMarks] > 0) + { + int i; + for (i=0; i < [self numberOfTickMarks]; i++) + { + NSRect tickRect = [self rectOfTickMarkAtIndex:i]; + [[NSColor whiteColor] set]; + NSRectFill(tickRect); + } + } +} + +- (void)drawKnob:(NSRect)rect +{ + NSImage *drawImage; + + if ([self numberOfTickMarks] == 0) + { + if (isPressed) + drawImage = thumbPImage; + else + drawImage = thumbNImage; + } + else + { + if (isPressed) + drawImage = triangleThumbPImage; + else + drawImage = triangleThumbNImage; + } + + NSPoint drawPoint; + drawPoint.x = rect.origin.x + roundf((rect.size.width - drawImage.size.width) / 2) - 1; + drawPoint.y = NSMaxY(rect) - roundf((rect.size.height - drawImage.size.height) / 2) + 2; + + if ([self numberOfTickMarks] > 0) + { + drawPoint.y -= 2; + drawPoint.x++; + } + + [drawImage compositeToPoint:drawPoint operation:NSCompositeSourceOver]; +} + +- (BOOL)_usesCustomTrackImage +{ + return YES; +} + +-(NSRect)knobRectFlipped:(BOOL)flipped +{ + NSRect rect = [super knobRectFlipped:flipped]; + if([self numberOfTickMarks] > 0){ + rect.size.height+=2; + return NSOffsetRect(rect, 0, flipped ? 2 : -2); + } + return rect; +} + +- (BOOL)startTrackingAt:(NSPoint)startPoint inView:(NSView *)controlView +{ + isPressed = YES; + return [super startTrackingAt:startPoint inView:controlView]; +} + +- (void)stopTracking:(NSPoint)lastPoint at:(NSPoint)stopPoint inView:(NSView *)controlView mouseIsUp:(BOOL)flag +{ + isPressed = NO; + [super stopTracking:(NSPoint)lastPoint at:(NSPoint)stopPoint inView:(NSView *)controlView mouseIsUp:(BOOL)flag]; +} + +- (void)setTickMarkPosition:(NSTickMarkPosition)position +{ + +} + +- (NSControlSize)controlSize +{ + return NSSmallControlSize; +} + +- (void)setControlSize:(NSControlSize)size +{ + +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWTransparentSliderIntegration.m b/Frameworks/BWToolkitFramework.framework/BWTransparentSliderIntegration.m new file mode 100644 index 00000000..49946f36 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTransparentSliderIntegration.m @@ -0,0 +1,35 @@ +// +// BWTransparentSliderIntegration.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import +#import "BWTransparentSlider.h" + + +@implementation BWTransparentSlider ( BWTransparentSliderIntegration ) + +- (IBInset)ibLayoutInset +{ + IBInset inset; + + inset.left = 2; + inset.top = 2; + inset.bottom = 3; + + if ([self numberOfTickMarks] == 0) + { + inset.right = 3; + } + else + { + inset.right = 2; + } + + return inset; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWTransparentTableView.classdescription b/Frameworks/BWToolkitFramework.framework/BWTransparentTableView.classdescription new file mode 100644 index 00000000..b5386dc7 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTransparentTableView.classdescription @@ -0,0 +1,12 @@ +{ + Actions = { + // Define action descriptions here, for example + // "myAction:" = id; + }; + Outlets = { + // Define outlet descriptions here, for example + // myOutlet = NSView; + }; + ClassName = BWTransparentTableView; + SuperClass = NSTableView; +} diff --git a/Frameworks/BWToolkitFramework.framework/BWTransparentTableView.h b/Frameworks/BWToolkitFramework.framework/BWTransparentTableView.h new file mode 100644 index 00000000..badebb05 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTransparentTableView.h @@ -0,0 +1,16 @@ +// +// BWTransparentTableView.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface BWTransparentTableView : NSTableView +{ + +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWTransparentTableView.m b/Frameworks/BWToolkitFramework.framework/BWTransparentTableView.m new file mode 100644 index 00000000..53fe23f9 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTransparentTableView.m @@ -0,0 +1,103 @@ +// +// BWTransparentTableView.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWTransparentTableView.h" +#import "BWTransparentTableViewCell.h" +#import "BWTransparentCheckboxCell.h" + +static NSColor *rowColor, *altRowColor, *highlightColor; + +@interface BWTransparentTableView (BWTTVPrivate) +- (void)addObject:(id)object toParent:(id)parent; +- (void)removeObject:(id)object; +@end + +@implementation BWTransparentTableView + ++ (void)initialize; +{ + rowColor = [[NSColor colorWithCalibratedWhite:0.13 alpha:0.855] retain]; + altRowColor = [[NSColor colorWithCalibratedWhite:0.16 alpha:0.855] retain]; + highlightColor = [[NSColor colorWithCalibratedWhite:(75.0 / 255.0) alpha:0.855] retain]; +} + +- (void)addTableColumn:(NSTableColumn *)aColumn +{ + [super addTableColumn:aColumn]; + + if ([[[aColumn dataCell] className] isEqualToString:@"NSTextFieldCell"]) + { + BWTransparentTableViewCell *cell = [[BWTransparentTableViewCell alloc] init]; + + [self removeObject:[aColumn dataCell]]; + [aColumn setDataCell:cell]; + [self addObject:cell toParent:aColumn]; + } +} + ++ (Class)cellClass +{ + return [BWTransparentTableViewCell class]; +} + +// We make this a no-op when there are no alt rows so that the background color is not drawn on top of the window +- (void)drawBackgroundInClipRect:(NSRect)clipRect +{ + if ([self usesAlternatingRowBackgroundColors]) + [super drawBackgroundInClipRect:clipRect]; +} + +// Color shown when a cell is edited +- (NSColor *)backgroundColor +{ + return rowColor; +} + +- (NSArray *)_alternatingRowBackgroundColors +{ + NSArray *colors = [NSArray arrayWithObjects:rowColor,altRowColor,nil]; + + return colors; +} + +- (NSColor *)_highlightColorForCell:(NSCell *)cell +{ + return nil; +} + +- (void)highlightSelectionInClipRect:(NSRect)theClipRect +{ + NSRange aVisibleRowIndexes = [self rowsInRect:theClipRect]; + NSIndexSet * aSelectedRowIndexes = [self selectedRowIndexes]; + int aRow = aVisibleRowIndexes.location; + int anEndRow = aRow + aVisibleRowIndexes.length; + + for (aRow; aRow < anEndRow; aRow++) + { + if([aSelectedRowIndexes containsIndex:aRow]) + { + NSRect aRowRect = [self rectOfRow:aRow]; + aRowRect.size.height--; + + [NSGraphicsContext saveGraphicsState]; + + [[NSGraphicsContext currentContext] setCompositingOperation:NSCompositeCopy]; + + NSColor *startColor = [NSColor colorWithCalibratedWhite:(85.0 / 255.0) alpha:0.855]; + NSColor *endColor = [NSColor colorWithCalibratedWhite:(70.0 / 255.0) alpha:0.855]; + + NSGradient *gradient = [[[NSGradient alloc] initWithStartingColor:startColor endingColor:endColor] autorelease]; + + [gradient drawInRect:aRowRect angle:90]; + + [NSGraphicsContext restoreGraphicsState]; + } + } +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWTransparentTableViewCell.classdescription b/Frameworks/BWToolkitFramework.framework/BWTransparentTableViewCell.classdescription new file mode 100644 index 00000000..952e877b --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTransparentTableViewCell.classdescription @@ -0,0 +1,12 @@ +{ + Actions = { + // Define action descriptions here, for example + // "myAction:" = id; + }; + Outlets = { + // Define outlet descriptions here, for example + // myOutlet = NSView; + }; + ClassName = BWTransparentTableViewCell; + SuperClass = NSTextFieldCell; +} diff --git a/Frameworks/BWToolkitFramework.framework/BWTransparentTableViewCell.h b/Frameworks/BWToolkitFramework.framework/BWTransparentTableViewCell.h new file mode 100644 index 00000000..ed55f0f0 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTransparentTableViewCell.h @@ -0,0 +1,16 @@ +// +// BWTransparentTableViewCell.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface BWTransparentTableViewCell : NSTextFieldCell +{ + BOOL mIsEditingOrSelecting; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWTransparentTableViewCell.m b/Frameworks/BWToolkitFramework.framework/BWTransparentTableViewCell.m new file mode 100644 index 00000000..33f13e02 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTransparentTableViewCell.m @@ -0,0 +1,85 @@ +// +// BWTransparentTableViewCell.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWTransparentTableViewCell.h" + +@implementation BWTransparentTableViewCell + +- (void)drawInteriorWithFrame:(NSRect)cellFrame inView:(NSView *)controlView +{ + if (![[self title] isEqualToString:@""]) + { + NSColor *textColor; + + if (!self.isHighlighted) + textColor = [NSColor colorWithCalibratedWhite:(198.0f / 255.0f) alpha:1]; + else + textColor = [NSColor whiteColor]; + + NSMutableDictionary *attributes = [[[NSMutableDictionary alloc] init] autorelease]; + [attributes addEntriesFromDictionary:[[self attributedStringValue] attributesAtIndex:0 effectiveRange:NULL]]; + [attributes setObject:textColor forKey:NSForegroundColorAttributeName]; + [attributes setObject:[NSFont systemFontOfSize:11] forKey:NSFontAttributeName]; + + NSMutableAttributedString *string = [[[NSMutableAttributedString alloc] initWithString:[self title] attributes:attributes] autorelease]; + [self setAttributedStringValue:string]; + } + + cellFrame.size.width -= 1; + cellFrame.origin.x += 1; + [super drawInteriorWithFrame:cellFrame inView:controlView]; +} + +#pragma mark RSVerticallyCenteredTextFieldCell +// RSVerticallyCenteredTextFieldCell courtesy of Daniel Jalkut +// http://www.red-sweater.com/blog/148/what-a-difference-a-cell-makes + +- (NSRect)drawingRectForBounds:(NSRect)theRect +{ + // Get the parent's idea of where we should draw + NSRect newRect = [super drawingRectForBounds:theRect]; + + // When the text field is being + // edited or selected, we have to turn off the magic because it screws up + // the configuration of the field editor. We sneak around this by + // intercepting selectWithFrame and editWithFrame and sneaking a + // reduced, centered rect in at the last minute. + if (mIsEditingOrSelecting == NO) + { + // Get our ideal size for current text + NSSize textSize = [self cellSizeForBounds:theRect]; + + // Center that in the proposed rect + float heightDelta = newRect.size.height - textSize.height; + if (heightDelta > 0) + { + newRect.size.height -= heightDelta; + newRect.origin.y += (heightDelta / 2); + } + } + + return newRect; +} + +- (void)selectWithFrame:(NSRect)aRect inView:(NSView *)controlView editor:(NSText *)textObj delegate:(id)anObject start:(NSInteger)selStart length:(NSInteger)selLength +{ + aRect = [self drawingRectForBounds:aRect]; + mIsEditingOrSelecting = YES; + [super selectWithFrame:aRect inView:controlView editor:textObj delegate:anObject start:selStart length:selLength]; + mIsEditingOrSelecting = NO; +} + +- (void)editWithFrame:(NSRect)aRect inView:(NSView *)controlView editor:(NSText *)textObj delegate:(id)anObject event:(NSEvent *)theEvent +{ + aRect = [self drawingRectForBounds:aRect]; + mIsEditingOrSelecting = YES; + [super editWithFrame:aRect inView:controlView editor:textObj delegate:anObject event:theEvent]; + mIsEditingOrSelecting = NO; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWTransparentTableViewIntegration.m b/Frameworks/BWToolkitFramework.framework/BWTransparentTableViewIntegration.m new file mode 100644 index 00000000..7dde9d28 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTransparentTableViewIntegration.m @@ -0,0 +1,32 @@ +// +// BWTransparentTableViewIntegration.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import +#import "BWTransparentTableView.h" + +@implementation BWTransparentTableView ( BWTransparentTableViewIntegration ) + +- (void)addObject:(id)object toParent:(id)parent +{ + IBDocument *document = [IBDocument documentForObject:parent]; + + [document addObject:object toParent:parent]; +} + +- (void)removeObject:(id)object +{ + IBDocument *document = [IBDocument documentForObject:object]; + + [document removeObject:object]; +} + +- (void)ibTester +{ +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWTransparentTextFieldCell.classdescription b/Frameworks/BWToolkitFramework.framework/BWTransparentTextFieldCell.classdescription new file mode 100644 index 00000000..7b827ae4 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTransparentTextFieldCell.classdescription @@ -0,0 +1,12 @@ +{ + Actions = { + // Define action descriptions here, for example + // "myAction:" = id; + }; + Outlets = { + // Define outlet descriptions here, for example + // myOutlet = NSView; + }; + ClassName = BWTransparentTextFieldCell; + SuperClass = NSTextFieldCell; +} diff --git a/Frameworks/BWToolkitFramework.framework/BWTransparentTextFieldCell.h b/Frameworks/BWToolkitFramework.framework/BWTransparentTextFieldCell.h new file mode 100644 index 00000000..e44b6cea --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTransparentTextFieldCell.h @@ -0,0 +1,16 @@ +// +// BWTransparentTextFieldCell.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface BWTransparentTextFieldCell : NSTextFieldCell +{ + +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWTransparentTextFieldCell.m b/Frameworks/BWToolkitFramework.framework/BWTransparentTextFieldCell.m new file mode 100644 index 00000000..d9c0fda4 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWTransparentTextFieldCell.m @@ -0,0 +1,42 @@ +// +// BWTransparentTextFieldCell.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWTransparentTextFieldCell.h" +#import "NSApplication+BWAdditions.h" + +static NSShadow *textShadow; + +@interface NSCell (BWTTFCPrivate) +- (NSDictionary *)_textAttributes; +@end + +@implementation BWTransparentTextFieldCell + ++ (void)initialize +{ + textShadow = [[NSShadow alloc] init]; + [textShadow setShadowOffset:NSMakeSize(0,-1)]; +} + +- (NSDictionary *)_textAttributes +{ + NSMutableDictionary *attributes = [[[NSMutableDictionary alloc] init] autorelease]; + [attributes addEntriesFromDictionary:[super _textAttributes]]; + [attributes setObject:[NSColor whiteColor] forKey:NSForegroundColorAttributeName]; + + if ([NSApplication isOnLeopard]) + [attributes setObject:[NSFont boldSystemFontOfSize:11] forKey:NSFontAttributeName]; + else + [attributes setObject:[NSFont systemFontOfSize:11] forKey:NSFontAttributeName]; + + [attributes setObject:textShadow forKey:NSShadowAttributeName]; + + return attributes; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWUnanchoredButton.h b/Frameworks/BWToolkitFramework.framework/BWUnanchoredButton.h new file mode 100644 index 00000000..03ab6211 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWUnanchoredButton.h @@ -0,0 +1,16 @@ +// +// BWUnanchoredButton.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface BWUnanchoredButton : NSButton +{ + NSPoint topAndLeftInset; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWUnanchoredButton.m b/Frameworks/BWToolkitFramework.framework/BWUnanchoredButton.m new file mode 100644 index 00000000..e0b5c39c --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWUnanchoredButton.m @@ -0,0 +1,40 @@ +// +// BWUnanchoredButton.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWUnanchoredButton.h" +#import "BWAnchoredButtonBar.h" +#import "NSView+BWAdditions.h" + +@implementation BWUnanchoredButton + +- (id)initWithCoder:(NSCoder *)decoder; +{ + if ((self = [super initWithCoder:decoder]) != nil) + { + if ([BWAnchoredButtonBar wasBorderedBar]) + topAndLeftInset = NSMakePoint(0, 0); + else + topAndLeftInset = NSMakePoint(1, 1); + } + return self; +} + +- (void)mouseDown:(NSEvent *)theEvent +{ + [self bringToFront]; + [super mouseDown:theEvent]; +} + +- (NSRect)frame +{ + NSRect frame = [super frame]; + frame.size.height = 22; + return frame; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWUnanchoredButtonCell.h b/Frameworks/BWToolkitFramework.framework/BWUnanchoredButtonCell.h new file mode 100644 index 00000000..8204cb0d --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWUnanchoredButtonCell.h @@ -0,0 +1,17 @@ +// +// BWUnanchoredButtonCell.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import +#import "BWAnchoredButtonCell.h" + +@interface BWUnanchoredButtonCell : BWAnchoredButtonCell +{ + +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWUnanchoredButtonCell.m b/Frameworks/BWToolkitFramework.framework/BWUnanchoredButtonCell.m new file mode 100644 index 00000000..8c8fc4d4 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWUnanchoredButtonCell.m @@ -0,0 +1,77 @@ +// +// BWUnanchoredButtonCell.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "BWUnanchoredButtonCell.h" +#import "BWUnanchoredButton.h" +#import "NSColor+BWAdditions.h" + +static NSColor *fillStop1, *fillStop2, *fillStop3, *fillStop4; +static NSColor *borderColor, *topBorderColor, *bottomInsetColor, *topInsetColor, *pressedColor; +static NSGradient *fillGradient; + +@interface BWAnchoredButtonCell (BWUBCPrivate) +- (void)drawTitleInFrame:(NSRect)cellFrame; +- (void)drawImageInFrame:(NSRect)cellFrame; +@end + +@implementation BWUnanchoredButtonCell + ++ (void)initialize; +{ + fillStop1 = [[NSColor colorWithCalibratedWhite:(251.0f / 255.0f) alpha:1] retain]; + fillStop2 = [[NSColor colorWithCalibratedWhite:(251.0f / 255.0f) alpha:1] retain]; + fillStop3 = [[NSColor colorWithCalibratedWhite:(236.0f / 255.0f) alpha:1] retain]; + fillStop4 = [[NSColor colorWithCalibratedWhite:(243.0f / 255.0f) alpha:1] retain]; + + fillGradient = [[NSGradient alloc] initWithColorsAndLocations: + fillStop1, (CGFloat)0.0, + fillStop2, (CGFloat)0.5, + fillStop3, (CGFloat)0.5, + fillStop4, (CGFloat)1.0, + nil]; + + topBorderColor = [[NSColor colorWithCalibratedWhite:(126.0f / 255.0f) alpha:1] retain]; + borderColor = [[NSColor colorWithCalibratedWhite:(151.0f / 255.0f) alpha:1] retain]; + + topInsetColor = [[NSColor colorWithCalibratedWhite:(0.0f / 255.0f) alpha:0.08] retain]; + bottomInsetColor = [[NSColor colorWithCalibratedWhite:(255.0f / 255.0f) alpha:0.54] retain]; + + pressedColor = [[NSColor colorWithCalibratedWhite:(0.0f / 255.0f) alpha:0.3] retain]; +} + + +- (void)drawWithFrame:(NSRect)cellFrame inView:(NSView *)controlView +{ + [fillGradient drawInRect:NSInsetRect(cellFrame, 0, 2) angle:90]; + + [topInsetColor drawPixelThickLineAtPosition:0 withInset:0 inRect:cellFrame inView:[self controlView] horizontal:YES flip:NO]; + [topBorderColor drawPixelThickLineAtPosition:1 withInset:0 inRect:cellFrame inView:[self controlView] horizontal:YES flip:NO]; + [borderColor drawPixelThickLineAtPosition:1 withInset:0 inRect:cellFrame inView:[self controlView] horizontal:YES flip:YES]; + [bottomInsetColor drawPixelThickLineAtPosition:0 withInset:0 inRect:cellFrame inView:[self controlView] horizontal:YES flip:YES]; + + [borderColor drawPixelThickLineAtPosition:0 withInset:2 inRect:cellFrame inView:[self controlView] horizontal:NO flip:YES]; + [borderColor drawPixelThickLineAtPosition:0 withInset:2 inRect:cellFrame inView:[self controlView] horizontal:NO flip:NO]; + + if ([self image] == nil) + { + NSRect titleRect = cellFrame; + titleRect.size.height -= 4; + [super drawTitleInFrame:titleRect]; + } + else + [super drawImageInFrame:cellFrame]; + + if ([self isHighlighted]) + { + [pressedColor set]; + NSRectFillUsingOperation(NSInsetRect(cellFrame,0,1), NSCompositeSourceOver); + } +} + + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWUnanchoredButtonContainer.h b/Frameworks/BWToolkitFramework.framework/BWUnanchoredButtonContainer.h new file mode 100644 index 00000000..73f1aa55 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWUnanchoredButtonContainer.h @@ -0,0 +1,16 @@ +// +// BWUnanchoredButtonContainer.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface BWUnanchoredButtonContainer : NSView +{ + +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWUnanchoredButtonContainer.m b/Frameworks/BWToolkitFramework.framework/BWUnanchoredButtonContainer.m new file mode 100644 index 00000000..11d7ad81 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWUnanchoredButtonContainer.m @@ -0,0 +1,15 @@ +// +// BWUnanchoredButtonContainer.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +// See the integration class + +#import "BWUnanchoredButtonContainer.h" + +@implementation BWUnanchoredButtonContainer + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWUnanchoredButtonContainerIntegration.m b/Frameworks/BWToolkitFramework.framework/BWUnanchoredButtonContainerIntegration.m new file mode 100644 index 00000000..d2750c5b --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWUnanchoredButtonContainerIntegration.m @@ -0,0 +1,52 @@ +// +// BWUnanchoredButtonContainerIntegration.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import +#import "BWUnanchoredButtonContainer.h" +#import "BWUnanchoredButton.h" + +@implementation BWUnanchoredButtonContainer ( BWUnanchoredButtonContainerIntegration ) + +- (NSSize)ibMinimumSize +{ + return NSMakeSize(45,22); +} + +- (NSSize)ibMaximumSize +{ + return NSMakeSize(45,22); +} + +- (BOOL)ibIsChildInitiallySelectable:(id)child +{ + return NO; +} + +- (NSArray *)ibDefaultChildren +{ + return [self subviews]; +} + +- (NSView *)ibDesignableContentView +{ + return self; +} + +- (IBInset)ibLayoutInset +{ + IBInset inset; + + inset.left = 0; + inset.top = 1; + inset.bottom = 1; + inset.right = 0; + + return inset; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/BWUnanchoredButtonIntegration.m b/Frameworks/BWToolkitFramework.framework/BWUnanchoredButtonIntegration.m new file mode 100644 index 00000000..8a86b052 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/BWUnanchoredButtonIntegration.m @@ -0,0 +1,45 @@ +// +// BWUnanchoredButtonIntegration.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import +#import "BWUnanchoredButton.h" + +@implementation BWUnanchoredButton ( BWUnanchoredButtonIntegration ) + +- (NSSize)ibMinimumSize +{ + return NSMakeSize(0,22); +} + +- (NSSize)ibMaximumSize +{ + return NSMakeSize(100000,22); +} + +- (IBInset)ibLayoutInset +{ + IBInset inset; + inset.bottom = 1; + inset.right = 0; + inset.top = 1; + inset.left = 0; + + return inset; +} + +- (NSInteger)ibBaselineCount +{ + return 1; +} + +- (CGFloat)ibBaselineAtIndex:(NSInteger)index +{ + return 15; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/ButtonBarPullDownArrow.pdf b/Frameworks/BWToolkitFramework.framework/ButtonBarPullDownArrow.pdf new file mode 100644 index 00000000..79350a27 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/ButtonBarPullDownArrow.pdf differ diff --git a/Frameworks/BWToolkitFramework.framework/English.lproj/BWToolkitLibrary.nib/designable.nib b/Frameworks/BWToolkitFramework.framework/English.lproj/BWToolkitLibrary.nib/designable.nib new file mode 100644 index 00000000..eb9ded44 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/English.lproj/BWToolkitLibrary.nib/designable.nib @@ -0,0 +1,2965 @@ + + + + 1050 + 10A380 + 731 + 1025.2 + 427.00 + + YES + + YES + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.IBSDKPlugin + com.brandonwalkin.BWToolkit + + + YES + 731 + 731 + 1.1 + + + + YES + + + + YES + com.apple.InterfaceBuilder.IBSDKPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.brandonwalkin.BWToolkit + + + YES + + YES + + + YES + + + + YES + + NSObject + + + FirstResponder + + + NSApplication + + + + 268 + + YES + + + 268 + {{418, 251}, {38, 20}} + + YES + + 68288064 + 272630784 + Label + + MarkerFelt-Thin + 15 + 16 + + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2NjY3AA + + + + 10 + + 549453824 + {38, 17} + + YES + + YES + + + + TU0AKgAACiBpdYP/aXWD/2l0gv9pdYL/aXWC/2l1g/9pdYL/aXWD/2l1gv9pdYL/aXWC/2l1gv9pdYP/ +aXSC/2l1gv9pdYP/aXWD/2l1g/9pdIL/aXWC/2l1gv9pdYP/aXWC/2l1g/9pdYL/aXWC/2l1gv9pdYL/ +aXWD/2l0gv9pdYL/aXWD/2l1g/9pdYP/aXSC/2l1gv9pdYL/aXWD/215hv9teIb/bXmG/255hv9teYb/ +bXiG/214hv9teYb/bXiG/215hv9ueYb/bXmG/214hv9teYb/bXmG/215hv9teYb/bXiG/215hv9ueYb/ +bXmG/214hv9teIb/bXmG/214hv9teYb/bnmG/215hv9teIb/bXmG/215hv9teYb/bXmG/214hv9teYb/ +bnmG/215hv9teIb/cXyJ/3F9iv9xfIr/cXyJ/3F8if9xfYr/cXyK/3F9iv9xfYr/cXyJ/3F9iv9xfYr/ +cXyK/3J9iv9xfYr/cXyJ/3F8if9xfYr/cXyK/3F8if9xfIn/cX2K/3F8iv9xfYr/cX2K/3F8if9xfYr/ +cX2K/3F8iv9yfYr/cX2K/3F8if9xfIn/cX2K/3F8iv9xfIn/cXyJ/3F9iv91gI3/dYCN/3WBjv91gI3/ +dYCN/3WAjf91gI3/dYCN/3WAjf91gY7/dYCN/3WAjf91gI3/dYCN/3WAjf91gY7/dYCN/3WAjf91gY7/ +dYCN/3WAjf91gI3/dYCN/3WAjf91gI3/dYGO/3WAjf91gI3/dYCN/3WAjf91gI3/dYGO/3WAjf91gI3/ +dYGO/3WAjf91gI3/dYCN/3eCj/93go//d4KP/3eCj/93go//d4KP/3iDkP93go//d4KP/3eCj/93g5D/ +d4KP/3eDj/93go//d4KP/3eCj/93go//d4KP/3eCj/93go//d4KP/3eCj/94g5D/d4KP/3eCj/93go// +d4OQ/3eCj/93g4//d4KP/3eCj/93go//d4KP/3eCj/93go//d4KP/3eCj/93go//e4aT/3uGk/97hpL/ +e4aT/3uGk/97hpL/e4aT/3qFkv97hpP/e4aT/3qFkv97hpL/e4aT/3uGkv97hpP/e4aT/3uGk/97hpP/ +e4aS/3uGk/97hpP/e4aS/3uGk/96hZL/e4aT/3uGk/96hZL/e4aS/3uGk/97hpL/e4aT/3uGk/97hpP/ +e4aT/3uGkv97hpP/e4aT/3uGkv9/ipf/f4qW/3+Kl/9/iZb/f4mW/3+Kl/9/ipb/f4qX/36Jlv9/ipb/ +f4qX/3+Jlv9/ipf/f4qW/3+Klv9+iZb/f4qX/3+Klv9/ipf/f4mW/3+Jlv9/ipf/f4qW/3+Kl/9+iZb/ +f4qW/3+Kl/9/iZb/f4qX/3+Klv9/ipb/fomW/3+Kl/9/ipb/f4qX/3+Jlv9/iZb/f4qX/4KNmf+CjZr/ +g42a/4KNmf+DjZr/g46a/4KNmv+DjZr/go2a/4OOmv+CjZr/g42a/4KNmf+CjZr/g46a/4ONmv+CjZn/ +go2a/4ONmv+CjZn/g42a/4OOmv+CjZr/g42a/4KNmv+Djpr/go2a/4ONmv+CjZn/go2a/4OOmv+DjZr/ +go2Z/4KNmv+DjZr/go2Z/4ONmv+Djpr/hI+b/4WPnP+FkJz/hY+c/4SPnP+Ej5v/hY+c/4WQnP+Ej5v/ +hI+c/4WPnP+Ej5z/hY+c/4WPnP+Ej5v/hY+c/4SPm/+Fj5z/hZCc/4WPnP+Ej5z/hI+b/4WPnP+FkJz/ +hI+b/4SPnP+Fj5z/hI+c/4WPnP+Fj5z/hI+b/4WPnP+Ej5v/hY+c/4WQnP+Fj5z/hI+c/4SPm/+Ikp// +iJOf/4iSn/+Ikp//iZOf/4mToP+Ikp//iJOf/4iSn/+Jk5//iJKf/4iSn/+Jk5//iJKf/4iTn/+Jk5// +iJKf/4iTn/+Ikp//iJKf/4mTn/+Jk6D/iJKf/4iTn/+Ikp//iZOf/4iSn/+Ikp//iZOf/4iSn/+Ik5// +iZOf/4iSn/+Ik5//iJKf/4iSn/+Jk5//iZOg/4yWov+Ml6P/jJaj/4yWo/+MlqL/jJaj/4yXo/+MlqL/ +jJej/4yWo/+MlqL/jZej/4yWo/+MlqL/jJej/4yWov+MlqL/jJej/4yWo/+MlqP/jJai/4yWo/+Ml6P/ +jJai/4yXo/+MlqP/jJai/42Xo/+MlqP/jJai/4yXo/+MlqL/jJai/4yXo/+MlqP/jJaj/4yWov+MlqP/ +kJqm/4+apv+Qmqb/j5mm/5Capv+Pmqb/kJqm/5Capv+Qmqb/j5mm/5Capv+Qmqb/j5mm/5Capv+Qmqb/ +kJqm/5Capv+Pmqb/kJqm/4+Zpv+Qmqb/j5qm/5Capv+Qmqb/kJqm/4+Zpv+Qmqb/kJqm/4+Zpv+Qmqb/ +kJqm/5Capv+Qmqb/j5qm/5Capv+Pmab/kJqm/4+apv+Unqr/k52p/5Odqf+Tnan/lJ6q/5Seqv+Unqr/ +lJ6q/5Odqf+Tnan/lJ6q/5Seqv+Tnan/lJ6q/5Odqf+Unqr/lJ6q/5Odqf+Tnan/k52p/5Seqv+Unqr/ +lJ6q/5Seqv+Tnan/k52p/5Seqv+Unqr/k52p/5Seqv+Tnan/lJ6q/5Seqv+Tnan/k52p/5Odqf+Unqr/ +lJ6q/5Wfq/+Wn6v/lZ+r/5agrP+Vn6v/lZ+r/5Wfq/+Vn6v/lZ+r/5agrP+Vn6v/lZ+r/5Wfq/+Vn6v/ +lqCs/5Wfq/+Vn6v/lp+r/5Wfq/+WoKz/lZ+r/5Wfq/+Vn6v/lZ+r/5Wfq/+WoKz/lZ+r/5Wfq/+Vn6v/ +lZ+r/5agrP+Vn6v/lZ+r/5afq/+Vn6v/lqCs/5Wfq/+Vn6v/maKu/5mjr/+Zoq7/maOu/5mjr/+Zo6// +maOv/5mjr/+Zo6//maOu/5mjr/+Zo6//maOv/5mjr/+Zo6//maOv/5mirv+Zo6//maKu/5mjrv+Zo6// +maOv/5mjr/+Zo6//maOv/5mjrv+Zo6//maOv/5mjr/+Zo6//maOv/5mjr/+Zoq7/maOv/5mirv+Zo67/ +maOv/5mjr/+dprL/nKay/52msv+cprL/naey/5ymsv+cprL/nKay/5ymsv+dp7L/nKay/52msv+cprL/ +naey/5ymsv+cprL/naay/5ymsv+dprL/nKay/52nsv+cprL/nKay/5ymsv+cprL/naey/5ymsv+dprL/ +nKay/52nsv+cprL/nKay/52msv+cprL/naay/5ymsv+dp7L/nKay/6Gqtv+gqrb/oKm1/6Cqtf+gqrX/ +oKq2/6Cqtv+hqrb/oKq1/6Cqtv+gqbX/oKq2/6Cqtv+gqbX/oKq1/6Gqtv+hqrb/oKq2/6Cptf+gqrX/ +oKq1/6Cqtv+gqrb/oaq2/6Cqtf+gqrb/oKm1/6Cqtv+gqrb/oKm1/6Cqtf+hqrb/oaq2/6Cqtv+gqbX/ +oKq1/6Cqtf+gqrb/AA4BAAADAAAAAQAmAAABAQADAAAAAQARAAABAgADAAAABAAACs4BAwADAAAAAQAB +AAABBgADAAAAAQACAAABEQAEAAAAAQAAAAgBEgADAAAAAQABAAABFQADAAAAAQAEAAABFgADAAAAAQAR +AAABFwAEAAAAAQAAChgBHAADAAAAAQABAAABUgADAAAAAQABAAABUwADAAAABAAACtaHcwAHAAAcZAAA +Ct4AAAAAAAgACAAIAAgAAQABAAEAAQAAHGRhcHBsAgAAAG1udHJSR0IgWFlaIAfZAAYADgATACAAIGFj +c3BBUFBMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD21gABAAAAANMtYXBwbEFhyMgVrP/cXJowzbS2 +c9sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEXJYWVoAAAFQAAAAFGdYWVoAAAFkAAAAFGJY +WVoAAAF4AAAAFHd0cHQAAAGMAAAAFGNoYWQAAAGgAAAALHJUUkMAAAHMAAAIDGdUUkMAAAnYAAAIDGJU +UkMAABHkAAAIDGFhcmcAABnwAAAAIGFhZ2cAABoQAAAAIGFhYmcAABowAAAAIHZjZ3QAABpQAAAAMG5k +aW4AABqAAAAAOGRlc2MAABq4AAAAZGRzY20AABscAAAA+m1tb2QAABwYAAAAKGNwcnQAABxAAAAAJFhZ +WiAAAAAAAAB5egAAQEgAAAJAWFlaIAAAAAAAAFZsAACqUwAAFG9YWVogAAAAAAAAJvAAABVlAAC8fVhZ +WiAAAAAAAADz2AABAAAAARYIc2YzMgAAAAAAAQu3AAAFlv//81cAAAcpAAD91///+7f///2mAAAD2gAA +wPZjdXJ2AAAAAAAABAAAAAAFAAoADwAUABkAHgAjACgALQAyADcAOwBAAEUASgBPAFQAWQBeAGMAaABt +AHIAdwB8AIEAhgCLAJAAlQCaAJ8ApACpAK4AsgC3ALwAwQDGAMsA0ADVANoA4ADlAOoA8AD1APsBAQEH +AQwBEgEYAR4BJQErATEBOAE+AUUBSwFSAVkBYAFmAW0BdQF8AYMBigGSAZkBoQGoAbABuAHAAcgB0AHY +AeAB6QHxAfoCAgILAhQCHAIlAi4CNwJAAkoCUwJcAmYCcAJ5AoMCjQKXAqECqwK1Ar8CygLUAt8C6gL0 +Av8DCgMVAyADKwM3A0IDTQNZA2UDcAN8A4gDlAOgA6wDuQPFA9ID3gPrA/gEBAQRBB4ELAQ5BEYEVARh +BG8EfASKBJgEpgS0BMIE0QTfBO4E/AULBRoFKAU3BUcFVgVlBXQFhAWTBaMFswXDBdMF4wXzBgMGFAYk +BjUGRQZWBmcGeAaJBpoGqwa9Bs4G4AbyBwMHFQcnBzkHTAdeB3AHgweWB6gHuwfOB+EH9AgICBsILwhC +CFYIagh+CJIIpgi6CM4I4wj3CQwJIQk2CUsJYAl1CYoJoAm1CcsJ4An2CgwKIgo5Ck8KZQp8CpIKqQrA +CtcK7gsFCx0LNAtLC2MLewuTC6sLwwvbC/MMDAwkDD0MVgxuDIcMoQy6DNMM7Q0GDSANOg1UDW4NiA2i +DbwN1w3xDgwOJw5CDl0OeA6TDq8Oyg7mDwIPHg86D1YPcg+OD6sPyA/kEAEQHhA7EFgQdhCTELEQzhDs +EQoRKBFGEWQRgxGhEcAR3xH+Eh0SPBJbEnoSmhK5EtkS+RMZEzkTWRN6E5oTuxPbE/wUHRQ+FF8UgRSi +FMQU5RUHFSkVSxVtFZAVshXVFfcWGhY9FmAWgxanFsoW7hcSFzUXWRd9F6IXxhfqGA8YNBhZGH0YoxjI +GO0ZExk4GV4ZhBmqGdAZ9hodGkMaahqQGrca3hsGGy0bVBt8G6MbyxvzHBscQxxsHJQcvRzmHQ4dNx1g +HYodsx3dHgYeMB5aHoQerh7YHwMfLR9YH4Mfrh/ZIAQgMCBbIIcgsyDeIQohNyFjIY8hvCHpIhUiQiJw +Ip0iyiL4IyUjUyOBI68j3SQMJDokaSSXJMYk9SUkJVQlgyWzJeImEiZCJnImoybTJwMnNCdlJ5Ynxyf4 +KCooWyiNKL4o8CkiKVUphym5KewqHypSKoUquCrrKx4rUiuGK7or7iwiLFYsiiy/LPQtKS1eLZMtyC39 +LjMuaS6eLtQvCy9BL3cvri/kMBswUjCJMMEw+DEwMWcxnzHXMg8ySDKAMrgy8TMqM2MznDPVNA80SDSC +NLw09jUwNWo1pTXfNho2VTaQNss3BjdCN343uTf1ODE4bTiqOOY5IzlgOZ052joXOlQ6kjrPOw07SzuJ +O8c8BjxEPIM8wj0BPUA9fz2/Pf4+Pj5+Pr4+/j8/P38/wEAAQEFAgkDEQQVBR0GIQcpCDEJOQpFC00MW +Q1hDm0PeRCFEZUSoROxFMEV0RbhF/EZARoVGykcOR1NHmUfeSCNIaUivSPVJO0mBScdKDkpVSptK4ksq +S3FLuEwATEhMkEzYTSBNaE2xTfpOQk6MTtVPHk9nT7FP+1BFUI9Q2VEkUW5RuVIEUk9SmlLlUzFTfFPI +VBRUYFStVPlVRlWSVd9WLFZ6VsdXFFdiV7BX/lhMWJpY6Vk4WYZZ1VokWnRaw1sTW2NbslwDXFNco1z0 +XURdlV3mXjdeiV7aXyxffl/QYCJgdGDHYRlhbGG/YhJiZWK5YwxjYGO0ZAhkXGSxZQVlWmWvZgRmWWav +ZwRnWmewaAZoXGiyaQlpX2m2ag1qZGq8axNra2vDbBtsc2zLbSNtfG3Vbi5uh27gbzpvk2/tcEdwoXD7 +cVZxsHILcmZywXMcc3hz03QvdIt053VDdaB1/HZZdrZ3E3dwd854K3iJeOd5RXmjegJ6YHq/ex57fXvc +fDx8m3z7fVt9u34bfnx+3H89f55//4BggMKBI4GFgeeCSYKrgw6DcIPThDaEmYT8hWCFw4YnhouG74dU +h7iIHYiBiOaJTImxihaKfIrii0iLrowUjHuM4o1Ija+OF45+juWPTY+1kB2QhZDukVaRv5IokpGS+pNk +k82UN5ShlQuVdZXglkqWtZcgl4uX95himM6ZOpmmmhKafprrm1ebxJwxnJ+dDJ15neeeVZ7DnzGfoKAP +oH2g7KFbocuiOqKqoxqjiqP6pGqk26VMpbymLqafpxCngqf0qGWo2KlKqbyqL6qiqxWriKv7rG+s461W +rcuuP66zryivnbARsIew/LFxseeyXbLTs0mzv7Q2tK21JLWbthK2ibcBt3m38bhpuOG5WrnSuku6xLs+ +u7e8MLyqvSS9nr4ZvpO/Dr+JwATAf8D6wXbB8cJtwunDZsPixF/E3MVZxdbGU8bRx07HzMhKyMnJR8nG +ykXKxMtDy8LMQszBzUHNwc5CzsLPQ8/D0ETQxtFH0cjSStLM007T0NRT1NbVWNXb1l7W4tdl1+nYbdjx +2XXZ+tp/2wPbiNwO3JPdGd2e3iTeqt8x37fgPuDF4Uzh0+Ja4uLjauPy5HrlAuWL5hPmnOcl56/oOOjC +6Uzp1upg6urrdev/7IrtFu2h7izuuO9E79DwXPDp8XXyAvKP8xzzqvQ39MX1U/Xh9m/2/veM+Bv4qvk5 ++cn6Wfro+3j8CPyZ/Sn9uv5L/tz/bmN1cnYAAAAAAAAEAAAAAAUACgAPABQAGQAeACMAKAAtADIANwA7 +AEAARQBKAE8AVABZAF4AYwBoAG0AcgB3AHwAgQCGAIsAkACVAJoAnwCkAKkArgCyALcAvADBAMYAywDQ +ANUA2gDgAOUA6gDwAPUA+wEBAQcBDAESARgBHgElASsBMQE4AT4BRQFLAVIBWQFgAWYBbQF1AXwBgwGK +AZIBmQGhAagBsAG4AcAByAHQAdgB4AHpAfEB+gICAgsCFAIcAiUCLgI3AkACSgJTAlwCZgJwAnkCgwKN +ApcCoQKrArUCvwLKAtQC3wLqAvQC/wMKAxUDIAMrAzcDQgNNA1kDZQNwA3wDiAOUA6ADrAO5A8UD0gPe +A+sD+AQEBBEEHgQsBDkERgRUBGEEbwR8BIoEmASmBLQEwgTRBN8E7gT8BQsFGgUoBTcFRwVWBWUFdAWE +BZMFowWzBcMF0wXjBfMGAwYUBiQGNQZFBlYGZwZ4BokGmgarBr0GzgbgBvIHAwcVBycHOQdMB14HcAeD +B5YHqAe7B84H4Qf0CAgIGwgvCEIIVghqCH4IkgimCLoIzgjjCPcJDAkhCTYJSwlgCXUJigmgCbUJywng +CfYKDAoiCjkKTwplCnwKkgqpCsAK1wruCwULHQs0C0sLYwt7C5MLqwvDC9sL8wwMDCQMPQxWDG4Mhwyh +DLoM0wztDQYNIA06DVQNbg2IDaINvA3XDfEODA4nDkIOXQ54DpMOrw7KDuYPAg8eDzoPVg9yD44Pqw/I +D+QQARAeEDsQWBB2EJMQsRDOEOwRChEoEUYRZBGDEaERwBHfEf4SHRI8ElsSehKaErkS2RL5ExkTORNZ +E3oTmhO7E9sT/BQdFD4UXxSBFKIUxBTlFQcVKRVLFW0VkBWyFdUV9xYaFj0WYBaDFqcWyhbuFxIXNRdZ +F30XohfGF+oYDxg0GFkYfRijGMgY7RkTGTgZXhmEGaoZ0Bn2Gh0aQxpqGpAatxreGwYbLRtUG3wboxvL +G/McGxxDHGwclBy9HOYdDh03HWAdih2zHd0eBh4wHloehB6uHtgfAx8tH1gfgx+uH9kgBCAwIFsghyCz +IN4hCiE3IWMhjyG8IekiFSJCInAinSLKIvgjJSNTI4EjryPdJAwkOiRpJJckxiT1JSQlVCWDJbMl4iYS +JkImciajJtMnAyc0J2UnlifHJ/goKihbKI0ovijwKSIpVSmHKbkp7CofKlIqhSq4KusrHitSK4Yruivu +LCIsViyKLL8s9C0pLV4tky3ILf0uMy5pLp4u1C8LL0Evdy+uL+QwGzBSMIkwwTD4MTAxZzGfMdcyDzJI +MoAyuDLxMyozYzOcM9U0DzRINII0vDT2NTA1ajWlNd82GjZVNpA2yzcGN0I3fje5N/U4MThtOKo45jkj +OWA5nTnaOhc6VDqSOs87DTtLO4k7xzwGPEQ8gzzCPQE9QD1/Pb89/j4+Pn4+vj7+Pz8/fz/AQABAQUCC +QMRBBUFHQYhBykIMQk5CkULTQxZDWEObQ95EIURlRKhE7EUwRXRFuEX8RkBGhUbKRw5HU0eZR95II0hp +SK9I9Uk7SYFJx0oOSlVKm0riSypLcUu4TABMSEyQTNhNIE1oTbFN+k5CToxO1U8eT2dPsU/7UEVQj1DZ +USRRblG5UgRST1KaUuVTMVN8U8hUFFRgVK1U+VVGVZJV31YsVnpWx1cUV2JXsFf+WExYmljpWThZhlnV +WiRadFrDWxNbY1uyXANcU1yjXPRdRF2VXeZeN16JXtpfLF9+X9BgImB0YMdhGWFsYb9iEmJlYrljDGNg +Y7RkCGRcZLFlBWVaZa9mBGZZZq9nBGdaZ7BoBmhcaLJpCWlfabZqDWpkarxrE2tra8NsG2xzbMttI218 +bdVuLm6HbuBvOm+Tb+1wR3ChcPtxVnGwcgtyZnLBcxxzeHPTdC90i3TndUN1oHX8dll2tncTd3B3zngr +eIl453lFeaN6Anpger97Hnt9e9x8PHybfPt9W327fht+fH7cfz1/nn//gGCAwoEjgYWB54JJgquDDoNw +g9OENoSZhPyFYIXDhieGi4bvh1SHuIgdiIGI5olMibGKFop8iuKLSIuujBSMe4zijUiNr44Xjn6O5Y9N +j7WQHZCFkO6RVpG/kiiSkZL6k2STzZQ3lKGVC5V1leCWSpa1lyCXi5f3mGKYzpk6maaaEpp+muubV5vE +nDGcn50MnXmd555VnsOfMZ+goA+gfaDsoVuhy6I6oqqjGqOKo/qkaqTbpUylvKYupp+nEKeCp/SoZajY +qUqpvKovqqKrFauIq/usb6zjrVaty64/rrOvKK+dsBGwh7D8sXGx57JdstOzSbO/tDa0rbUktZu2EraJ +twG3ebfxuGm44blaudK6S7rEuz67t7wwvKq9JL2evhm+k78Ov4nABMB/wPrBdsHxwm3C6cNmw+LEX8Tc +xVnF1sZTxtHHTsfMyErIyclHycbKRcrEy0PLwsxCzMHNQc3BzkLOws9Dz8PQRNDG0UfRyNJK0szTTtPQ +1FPU1tVY1dvWXtbi12XX6dht2PHZddn62n/bA9uI3A7ck90Z3Z7eJN6q3zHft+A+4MXhTOHT4lri4uNq +4/LkeuUC5YvmE+ac5yXnr+g46MLpTOnW6mDq6ut16//siu0W7aHuLO6470Tv0PBc8OnxdfIC8o/zHPOq +9Df0xfVT9eH2b/b+94z4G/iq+Tn5yfpZ+uj7ePwI/Jn9Kf26/kv+3P9uY3VydgAAAAAAAAQAAAAABQAK +AA8AFAAZAB4AIwAoAC0AMgA3ADsAQABFAEoATwBUAFkAXgBjAGgAbQByAHcAfACBAIYAiwCQAJUAmgCf +AKQAqQCuALIAtwC8AMEAxgDLANAA1QDaAOAA5QDqAPAA9QD7AQEBBwEMARIBGAEeASUBKwExATgBPgFF +AUsBUgFZAWABZgFtAXUBfAGDAYoBkgGZAaEBqAGwAbgBwAHIAdAB2AHgAekB8QH6AgICCwIUAhwCJQIu +AjcCQAJKAlMCXAJmAnACeQKDAo0ClwKhAqsCtQK/AsoC1ALfAuoC9AL/AwoDFQMgAysDNwNCA00DWQNl +A3ADfAOIA5QDoAOsA7kDxQPSA94D6wP4BAQEEQQeBCwEOQRGBFQEYQRvBHwEigSYBKYEtATCBNEE3wTu +BPwFCwUaBSgFNwVHBVYFZQV0BYQFkwWjBbMFwwXTBeMF8wYDBhQGJAY1BkUGVgZnBngGiQaaBqsGvQbO +BuAG8gcDBxUHJwc5B0wHXgdwB4MHlgeoB7sHzgfhB/QICAgbCC8IQghWCGoIfgiSCKYIugjOCOMI9wkM +CSEJNglLCWAJdQmKCaAJtQnLCeAJ9goMCiIKOQpPCmUKfAqSCqkKwArXCu4LBQsdCzQLSwtjC3sLkwur +C8ML2wvzDAwMJAw9DFYMbgyHDKEMugzTDO0NBg0gDToNVA1uDYgNog28DdcN8Q4MDicOQg5dDngOkw6v +DsoO5g8CDx4POg9WD3IPjg+rD8gP5BABEB4QOxBYEHYQkxCxEM4Q7BEKESgRRhFkEYMRoRHAEd8R/hId +EjwSWxJ6EpoSuRLZEvkTGRM5E1kTehOaE7sT2xP8FB0UPhRfFIEUohTEFOUVBxUpFUsVbRWQFbIV1RX3 +FhoWPRZgFoMWpxbKFu4XEhc1F1kXfReiF8YX6hgPGDQYWRh9GKMYyBjtGRMZOBleGYQZqhnQGfYaHRpD +GmoakBq3Gt4bBhstG1QbfBujG8sb8xwbHEMcbByUHL0c5h0OHTcdYB2KHbMd3R4GHjAeWh6EHq4e2B8D +Hy0fWB+DH64f2SAEIDAgWyCHILMg3iEKITchYyGPIbwh6SIVIkIicCKdIsoi+CMlI1MjgSOvI90kDCQ6 +JGkklyTGJPUlJCVUJYMlsyXiJhImQiZyJqMm0ycDJzQnZSeWJ8cn+CgqKFsojSi+KPApIilVKYcpuSns +Kh8qUiqFKrgq6yseK1Irhiu6K+4sIixWLIosvyz0LSktXi2TLcgt/S4zLmkuni7ULwsvQS93L64v5DAb +MFIwiTDBMPgxMDFnMZ8x1zIPMkgygDK4MvEzKjNjM5wz1TQPNEg0gjS8NPY1MDVqNaU13zYaNlU2kDbL +NwY3Qjd+N7k39TgxOG04qjjmOSM5YDmdOdo6FzpUOpI6zzsNO0s7iTvHPAY8RDyDPMI9AT1APX89vz3+ +Pj4+fj6+Pv4/Pz9/P8BAAEBBQIJAxEEFQUdBiEHKQgxCTkKRQtNDFkNYQ5tD3kQhRGVEqETsRTBFdEW4 +RfxGQEaFRspHDkdTR5lH3kgjSGlIr0j1STtJgUnHSg5KVUqbSuJLKktxS7hMAExITJBM2E0gTWhNsU36 +TkJOjE7VTx5PZ0+xT/tQRVCPUNlRJFFuUblSBFJPUppS5VMxU3xTyFQUVGBUrVT5VUZVklXfVixWelbH +VxRXYlewV/5YTFiaWOlZOFmGWdVaJFp0WsNbE1tjW7JcA1xTXKNc9F1EXZVd5l43Xole2l8sX35f0GAi +YHRgx2EZYWxhv2ISYmViuWMMY2BjtGQIZFxksWUFZVplr2YEZllmr2cEZ1pnsGgGaFxosmkJaV9ptmoN +amRqvGsTa2trw2wbbHNsy20jbXxt1W4ubodu4G86b5Nv7XBHcKFw+3FWcbByC3JmcsFzHHN4c9N0L3SL +dOd1Q3Wgdfx2WXa2dxN3cHfOeCt4iXjneUV5o3oCemB6v3see3173Hw8fJt8+31bfbt+G358ftx/PX+e +f/+AYIDCgSOBhYHngkmCq4MOg3CD04Q2hJmE/IVghcOGJ4aLhu+HVIe4iB2IgYjmiUyJsYoWinyK4otI +i66MFIx7jOKNSI2vjheOfo7lj02PtZAdkIWQ7pFWkb+SKJKRkvqTZJPNlDeUoZULlXWV4JZKlrWXIJeL +l/eYYpjOmTqZppoSmn6a65tXm8ScMZyfnQydeZ3nnlWew58xn6CgD6B9oOyhW6HLojqiqqMao4qj+qRq +pNulTKW8pi6mn6cQp4Kn9KhlqNipSqm8qi+qoqsVq4ir+6xvrOOtVq3Lrj+us68or52wEbCHsPyxcbHn +sl2y07NJs7+0NrSttSS1m7YStom3Abd5t/G4abjhuVq50rpLusS7Pru3vDC8qr0kvZ6+Gb6Tvw6/icAE +wH/A+sF2wfHCbcLpw2bD4sRfxNzFWcXWxlPG0cdOx8zISsjJyUfJxspFysTLQ8vCzELMwc1BzcHOQs7C +z0PPw9BE0MbRR9HI0krSzNNO09DUU9TW1VjV29Ze1uLXZdfp2G3Y8dl12fraf9sD24jcDtyT3Rndnt4k +3qrfMd+34D7gxeFM4dPiWuLi42rj8uR65QLli+YT5pznJeev6DjowulM6dbqYOrq63Xr/+yK7Rbtoe4s +7rjvRO/Q8Fzw6fF18gLyj/Mc86r0N/TF9VP14fZv9v73jPgb+Kr5OfnJ+ln66Pt4/Aj8mf0p/br+S/7c +/25wYXJhAAAAAAADAAAAAmZmAADypwAADVkAABPQAAALA3BhcmEAAAAAAAMAAAACZmYAAPKnAAANWQAA +E9AAAAsDcGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACwN2Y2d0AAAAAAAAAAEAAQAAAAAAAAAB +AAAAAQAAAAAAAAABAAAAAQAAAAAAAAABAABuZGluAAAAAAAAADAAAKPAAABXwAAASsAAAJ5AAAAmdwAA +E1sAAFBAAABUQAACMzMAAjMzAAIzM2Rlc2MAAAAAAAAACkNpbmVtYSBIRAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AABtbHVjAAAAAAAAABIAAAAMbmxOTAAAABIAAADoZGFESwAAABIAAADocGxQTAAAABIAAADoZW5VUwAA +ABIAAADobmJOTwAAABIAAADoZnJGUgAAABIAAADocHRCUgAAABIAAADocHRQVAAAABIAAADoemhDTgAA +ABIAAADoZXNFUwAAABIAAADoamFKUAAAABIAAADocnVSVQAAABIAAADoc3ZTRQAAABIAAADoemhUVwAA +ABIAAADoZGVERQAAABIAAADoZmlGSQAAABIAAADoaXRJVAAAABIAAADoa29LUgAAABIAAADoAEMAaQBu +AGUAbQBhACAASABEAABtbW9kAAAAAAAABhAAAJIcAgGxrcQpoIAAAAAAAAAAAAAAAAAAAAAAdGV4dAAA +AABDb3B5cmlnaHQgQXBwbGUsIEluYy4sIDIwMDkAA + + {{0, 0}, {38, 17}} + {{0, 0}, {38, 17}} + + + + + 3 + MCAwAA + + + + YES + YES + YES + + 1 + MSAxIDEAA + + + YES + + YES + NSColor + NSFont + NSOriginalFont + NSParagraphStyle + + + YES + + 3 + MAA + + + + + 4 + 2 + + + + + + 1 + MC4zMjk3MTQ5MjU1IDAuMzc5MjE3MjcxNSAwLjQzMzY3MzQ2OTQAA + + + 1 + MC41NjA2NDczNjY2IDAuNjA1Mzg4OTczNyAwLjY1ODE2MzI2NTMAA + + + 1 + MC40OTI1MzcxMzYyIDAuNTQ0OTk5MTczMyAwLjU5MTgzNjczNDcAA + + + + + + 268 + {{421, 45}, {177, 134}} + + + 1 + MC42NzU3Njg1MjI3IDAuNzIxOTQ4MTMwNiAwLjc2NTMwNjEyMjQAA + + + 1 + MC41MTM3NjcxODUyIDAuNTY4NDkwNTE3IDAuNjE3MzQ2OTM4OAA + + + 1 + MC42MTk2MDA4NjE0IDAuNjYxMTkyMDA1MSAwLjcxOTM4Nzc1NTEAA + + + 1 + MC41NTc2NjQ2NjM5IDAuNTk4ODkyNDg5OSAwLjY0Mjg1NzE0MjkAA + + + 1 + MC40Mjc4NDM2NjA5IDAuNDc5NDI1MTUwOSAwLjUyMDQwODE2MzMAA + + YES + YES + YES + 0.30000001192092896 + 0.0 + + + + 268 + + YES + + + 268 + + 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 + + + {{17, 28}, {46, 23}} + + YES + + 67239424 + 33554432 + + NSImage + Library-TexturedSlider + + + LucidaGrande + 13 + 1044 + + 0 + 2 + 0 + NO + + YES + + + {{325, 461}, {80, 80}} + + Textured Slider + 53C781D8-3B5C-4138-B642-034072DEADC0 + A textured variant of the standard slider + + A textured variant of the standard slider that includes commonly used indicators. Appropriate for placement in the window frame (toolbars and bottom bars). + + YES + + YES + NSFont + NSParagraphStyle + + + YES + + Helvetica + 12 + 16 + + + 4 + + + + + + Window Frame Elements + + + + + + 0 + NO + + + + 268 + {{325, 549}, {117, 17}} + + YES + + 67239488 + 272630784 + Textured Slider + + + + + 6 + System + controlTextColor + + + + + + + 12 + {{325, 547}, {282, 5}} + + {0, 0} + + 67239424 + 0 + Box + + + 6 + System + textBackgroundColor + + 3 + MQA + + + + 3 + MCAwLjgwMDAwMDAxAA + + + 3 + 2 + 0 + NO + + + + 268 + {{325, 429}, {124, 17}} + + YES + + 67239488 + 272630784 + Inset Label + + + + + + + + + 12 + {{325, 427}, {282, 5}} + + {0, 0} + + 67239424 + 0 + Box + + + + 3 + MCAwLjgwMDAwMDAxAA + + + 3 + 2 + 0 + NO + + + + 268 + + YES + + + 268 + + 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 + + + {{18, 30}, {44, 20}} + + YES + + 130560 + 33554432 + + NSImage + Library-InsetTextField + + 0 + 2 + 0 + NO + + YES + + + {{325, 341}, {80, 80}} + + Inset Label + 2688C80E-0AEA-4663-9008-4F743FA81A51 + Standard text field with an inset appearance + + Standard text field with an inset appearance. Use on dark or raised surfaces such as the window frame (toolbars and bottom bars). + + + Window Frame Elements + + + + + + 0 + NO + + + + 268 + {{20, 549}, {138, 17}} + + YES + + 67239488 + 272630784 + Preferences + + + + + + + + + 12 + {{20, 547}, {282, 5}} + + {0, 0} + + 67239424 + 0 + Box + + + + 3 + MCAwLjgwMDAwMDAxAA + + + 3 + 2 + 0 + NO + + + + 268 + {{418, 374}, {38, 14}} + + YES + + 68288064 + 272761856 + Label + + LucidaGrande + 11 + 3100 + + + + + + + + + 268 + {{413, 487}, {96, 21}} + + YES + + -2080244224 + 0 + + + + 100 + 0.0 + 50 + 0.0 + 0 + 1 + NO + NO + + + + + 268 + {{20, 429}, {214, 17}} + + YES + + 67239488 + 272630784 + Textured Buttons (all Apple stuff) + + + + + + + + + 12 + {{20, 427}, {282, 5}} + + {0, 0} + + 67239424 + 0 + Box + + + + 3 + MCAwLjgwMDAwMDAxAA + + + 3 + 2 + 0 + NO + + + + 268 + + YES + + + 292 + {{25, 27}, {29, 25}} + + YES + + -2080244224 + 134217728 + + + + -2033434369 + 163 + + NSImage + NSAddOnTexture + + + + 400 + 75 + + + + {{20, 341}, {80, 80}} + + Round Textured Button (Add) + 7FE8196F-9AD9-42A8-9B6C-B703C5587E92 + A standard Round Textured button with a large plus image. + + A standard Round Textured button with a large plus image. Appropriate for regular-size Round Textured buttons. For small-size buttons, use the NSAddTemplate image. + + + Window Frame Elements + + + + + + 0 + NO + + + + 268 + + YES + + + 292 + {{25, 28}, {29, 25}} + + YES + + -2080244224 + 134217728 + + + + -2033434369 + 163 + + NSImage + NSRemoveOnTexture + + + + 400 + 75 + + + + {{108, 341}, {80, 80}} + + Round Textured Button (Remove) + 20C1E0BD-DE16-44A5-B174-C86CE77CB4B5 + A standard Round Textured button with a large minus image. + + A standard Round Textured button with a large minus image. Appropriate for regular-size Round Textured buttons. For small-size buttons, use the NSRemoveTemplate image. + + + Window Frame Elements + + + + + + 0 + NO + + + + 268 + + YES + + + 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 + + + {{16, 27}, {48, 26}} + + YES + + 130560 + 33554432 + + NSImage + Library-SelectableToolbar + + 0 + 0 + 0 + YES + + YES + + + {{20, 461}, {80, 80}} + + Selectable Toolbar + 1228EAF2-6A18-4AEB-BE43-02E809D39677 + A toolbar with selectable items. + + A toolbar with selectable items. For use in preferences windows, tabbed sheets, and other windows with multiple tabs. + + + Other + + + + + + 0 + NO + + + + 268 + {{20, 309}, {214, 17}} + + YES + + 67239488 + 272630784 + Token Field + + + + + + + + + 12 + {{20, 307}, {282, 5}} + + {0, 0} + + 67239424 + 0 + Box + + + + 3 + MCAwLjgwMDAwMDAxAA + + + 3 + 2 + 0 + NO + + + + 268 + + YES + + + 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 + + + {{16, 29}, {48, 22}} + + YES + + 130560 + 33554432 + + NSImage + Library-TokenField + + 0 + 0 + 0 + YES + + YES + + + {{20, 221}, {80, 80}} + + Token Field + 562AAA23-F360-49A2-AA82-8E646AA21074 + Token field with a gradient appearance. + + Token field with a gradient appearance. + + + Other + + + + + + 0 + NO + + + + 268 + + YES + + YES + NSStringPboardType + + + {{108, 250}, {96, 22}} + + YES + + 341966336 + 0 + + LucidaGrande + 12 + 16 + + + YES + + + + 0.0 + 0 + + 2 + + + + 268 + {{20, 187}, {214, 17}} + + YES + + 67239488 + 272630784 + Hyperlink Button + + + + + + + + + 12 + {{20, 185}, {282, 5}} + + {0, 0} + + 67239424 + 0 + Box + + + + 3 + MCAwLjgwMDAwMDAxAA + + + 3 + 2 + 0 + NO + + + + 268 + + YES + + + 268 + {{25, 25}, {34, 23}} + + YES + + 67239424 + 134348800 + Link + + + -2033434369 + 162 + + + 400 + 75 + + + + {{20, 99}, {80, 80}} + + Hyperlink Button + BDA810CB-D174-486A-8689-B6B8DADCABCE + A button that opens a URL in the browser. + + A button that opens a URL in the browser. Text or an image can be used as a hyperlink. + + YES + + YES + NSFont + NSParagraphStyle + + + YES + + + 4 + 0.05000000074505806 + + YES + + 28 + + + 56 + + + 84 + + + 112 + + + 140 + + + 168 + + + 196 + + + 224 + + + 252 + + + 280 + + + 308 + + + 336 + + + + + + + Other + + + + + + 0 + NO + + + + 268 + {{325, 309}, {138, 17}} + + YES + + 67239488 + 272630784 + Styled Text Field + + + + + + + + + 12 + {{325, 307}, {128, 5}} + + {0, 0} + + 67239424 + 0 + Box + + + + 3 + MCAwLjgwMDAwMDAxAA + + + 3 + 2 + 0 + NO + + + + 268 + {{325, 187}, {138, 17}} + + YES + + 67239488 + 272630784 + Gradient Box + + + + + + + + + 12 + {{325, 185}, {128, 5}} + + {0, 0} + + 67239424 + 0 + Box + + + + 3 + MCAwLjgwMDAwMDAxAA + + + 3 + 2 + 0 + NO + + + + 268 + + YES + + + 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 + + + {{25, 31}, {29, 13}} + + YES + + 130560 + 33554432 + + NSImage + Library-StyledTextField + + 0 + 0 + 0 + YES + + YES + + + {{325, 221}, {80, 80}} + + Styled Text Field + 14FD297F-C8CA-4E25-9ECD-1CBDE7D2781A + A text field with a customizable gradient and shadow. + + A text field with a customizable gradient and shadow. + + + Other + + + + + + 0 + NO + + + + 268 + + YES + + + 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 + + + {{17, 15}, {48, 48}} + + YES + + 130560 + 33554432 + + NSImage + Library-GradientBox + + 0 + 0 + 0 + YES + + YES + + + {{325, 99}, {80, 80}} + + Gradient Box + 84808563-9092-468B-9958-81BD93D1E464 + A box with a gradient or solid appearance and options for border and inset lines. + + A box with a gradient or solid appearance and options for border and inset lines. + + + Other + + + + + + 0 + NO + + + {645, 589} + + NSView + + + 09D11707-F4A3-4FD5-970E-AC5832E91C2B + + YES + YES + YES + NO + 1 + 1 + + YES + + YES + 0D5950D1-D4A8-44C6-9DBC-251CFEF852E2 + 7E6A9228-C9F3-4F21-8054-E4BF3F2F6BA8 + 7ECC0489-6EC7-423A-A4F0-EB26A45193E0 + CE72C84A-FB66-447C-AEBB-C6E30C3A95F1 + NSToolbarFlexibleSpaceItem + NSToolbarSeparatorItem + NSToolbarSpaceItem + + + YES + + + 0D5950D1-D4A8-44C6-9DBC-251CFEF852E2 + + General + General + + + + NSImage + NSPreferencesGeneral + + + + {0, 0} + {0, 0} + YES + YES + -1 + YES + 0 + + + + 7E6A9228-C9F3-4F21-8054-E4BF3F2F6BA8 + + Advanced + Advanced + + + + NSImage + NSAdvanced + + + + {0, 0} + {0, 0} + YES + YES + -1 + YES + 0 + + + + 7ECC0489-6EC7-423A-A4F0-EB26A45193E0 + + Colors + Colors + + + + + + {0, 0} + {0, 0} + YES + YES + -1 + YES + 0 + + + + CE72C84A-FB66-447C-AEBB-C6E30C3A95F1 + + Fonts + Fonts + + + + + + {0, 0} + {0, 0} + YES + YES + -1 + YES + 0 + + + NSToolbarFlexibleSpaceItem + + Flexible Space + + + + + + {1, 5} + {20000, 32} + YES + YES + -1 + YES + 0 + + YES + YES + + + 1048576 + 2147483647 + + NSImage + NSMenuCheckmark + + + NSImage + NSMenuMixedState + + + + + NSToolbarSeparatorItem + + Separator + + + + + + {12, 5} + {12, 1000} + YES + YES + -1 + YES + 0 + + YES + YES + + + 1048576 + 2147483647 + + + + + + NSToolbarSpaceItem + + Space + + + + + + {32, 5} + {32, 32} + YES + YES + -1 + YES + 0 + + YES + YES + + + 1048576 + 2147483647 + + + + + + + + YES + + + + + + + + + + YES + + + + + + + + + + YES + + + draggedView + + + + 117 + + + + draggedView + + + + 244 + + + + draggedView + + + + 401 + + + + draggedView + + + + 402 + + + + representedObject + + + + 459 + + + + draggedView + + + + 496 + + + + draggedView + + + + 552 + + + + draggedView + + + + 562 + + + + + YES + + 0 + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 7 + + + YES + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Library Objects + + + 18 + + + YES + + + + + + 32 + + + + + 33 + + + YES + + + + + + 34 + + + + + 60 + + + YES + + + + + + 61 + + + + + 62 + + + + + 112 + + + YES + + + + + + 113 + + + YES + + + + + + 114 + + + + + 129 + + + YES + + + + + + 130 + + + + + 131 + + + + + 231 + + + YES + + + + + + 232 + + + + + 235 + + + YES + + + + + + 236 + + + + + 242 + + + YES + + + + + + 243 + + + + + 386 + + + YES + + + + + + 387 + + + + + 388 + + + + + 395 + + + YES + + + + + + 396 + + + YES + + + + + + 391 + + + YES + + + + + + 392 + + + + + 389 + + + YES + + + + + + 390 + + + + + 445 + + + YES + + + + + + + + + + + + 448 + + + + + 450 + + + + + 451 + + + + + 453 + + + + + 454 + + + + + 456 + + + YES + + + + + + 460 + + + YES + + + + + + 461 + + + + + 474 + + + + + 475 + + + + + 476 + + + YES + + + + + + 477 + + + + + 478 + + + + + 481 + + + YES + + + + + + 492 + + + YES + + + + + + 493 + + + + + 494 + + + YES + + + + + + 495 + + + + + 497 + + + YES + + + + + + 498 + + + + + 499 + + + + + 503 + + + YES + + + + + + 508 + + + YES + + + + + + 509 + + + + + 515 + + + YES + + + + + + 516 + + + + + 517 + + + YES + + + + + + 522 + + + + + 526 + + + YES + + + + + + 532 + + + YES + + + + + + 533 + + + + + 534 + + + + + 546 + + + + + 550 + + + YES + + + + + + 551 + + + + + 555 + + + YES + + + + + + 556 + + + + + 558 + + + YES + + + + + + 559 + + + + + + + YES + + YES + -3.IBPluginDependency + 112.IBPluginDependency + 113.CustomClassName + 113.IBPluginDependency + 114.IBPluginDependency + 129.IBPluginDependency + 130.IBPluginDependency + 131.IBPluginDependency + 18.IBPluginDependency + 18.notes + 18.showNotes + 231.IBPluginDependency + 232.IBPluginDependency + 235.IBPluginDependency + 236.IBPluginDependency + 242.CustomClassName + 242.IBPluginDependency + 243.CustomClassName + 243.IBPluginDependency + 32.IBPluginDependency + 33.IBPluginDependency + 34.IBPluginDependency + 386.IBPluginDependency + 387.IBPluginDependency + 388.IBPluginDependency + 389.IBPluginDependency + 390.IBPluginDependency + 391.IBPluginDependency + 392.IBPluginDependency + 395.IBPluginDependency + 396.IBPluginDependency + 445.CustomClassName + 445.IBEditorWindowLastContentRect + 445.IBPluginDependency + 453.IBPluginDependency + 454.IBPluginDependency + 456.IBPluginDependency + 460.IBPluginDependency + 461.IBPluginDependency + 474.CustomClassName + 474.IBPluginDependency + 475.CustomClassName + 475.IBPluginDependency + 476.IBPluginDependency + 477.IBPluginDependency + 478.IBPluginDependency + 481.IBPluginDependency + 492.IBPluginDependency + 493.IBPluginDependency + 494.CustomClassName + 494.IBPluginDependency + 495.CustomClassName + 495.IBPluginDependency + 497.IBPluginDependency + 498.IBPluginDependency + 499.IBPluginDependency + 503.IBPluginDependency + 508.CustomClassName + 508.IBPluginDependency + 509.CustomClassName + 509.IBPluginDependency + 515.IBPluginDependency + 516.IBPluginDependency + 517.IBPluginDependency + 522.IBPluginDependency + 526.IBPluginDependency + 532.IBPluginDependency + 533.IBPluginDependency + 534.IBPluginDependency + 546.IBPluginDependency + 558.IBPluginDependency + 559.IBPluginDependency + 60.IBPluginDependency + 61.IBPluginDependency + 62.IBPluginDependency + 7.IBEditorWindowLastContentRect + 7.IBPluginDependency + 7.IBUserGuides + 7.WindowOrigin + 7.editorWindowContentRectSynchronizationRect + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.IBSDKPlugin + BWInsetTextField + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.IBSDKPlugin + + SWYgeW91IHdvdWxkIGxpa2UgeW91ciB2aWV3IHRvIGFuaW1hdGUgZnJvbSBhIHNtYWxsLCBpY29uaWMg +cmVwcmVzZW50YXRpb24sIHRvIGEgZmluYWwgcmVwcmVzZW50YXRpb24sIGNvbm5lY3QgdGhpcyB2aWV3 +J3MgJ2RyYWdnZWRWaWV3JyBvdXRsZXQgYnkgY29udHJvbCBjbGlja2luZyBvbiBpdC4KCklmIHRoZSBv +YmplY3QgeW91IHdvdWxkIGxpa2UgZGVwb3NpdGVkIGFmdGVyIHRoZSBkcmFnLCBpcyBzb21ldGhpbmcg +b3RoZXIgdGhhbiB0aGlzIHZpZXcncyBzdWJ2aWV3LCBvciBkcmFnZ2VkVmlldywgdGhlbiB5b3Ugc2hv +dWxkIGNvbm5lY3QgdGhlIHJlcHJlc2VudGVkT2JqZWN0IG91dGxldCBvZiB0aGlzIHZpZXcgdG8gYW4g +b2JqZWN0IHRvIGRlcG9zaXQuA + + YES + + + YES + + + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + BWTexturedSlider + com.apple.InterfaceBuilder.CocoaPlugin + BWTexturedSliderCell + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + 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.IBSDKPlugin + BWSelectableToolbar + {{586, 760}, {616, 169}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.IBSDKPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + BWToolbarShowColorsItem + com.apple.InterfaceBuilder.CocoaPlugin + BWToolbarShowFontsItem + 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 + BWTokenField + com.apple.InterfaceBuilder.CocoaPlugin + BWTokenFieldCell + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.IBSDKPlugin + BWHyperlinkButton + com.apple.InterfaceBuilder.CocoaPlugin + BWHyperlinkButtonCell + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.IBSDKPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.IBSDKPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.brandonwalkin.BWToolkit + com.brandonwalkin.BWToolkit + com.brandonwalkin.BWToolkit + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{530, 337}, {645, 589}} + com.apple.InterfaceBuilder.CocoaPlugin + + YES + + {332, 343} + {{403, 401}, {264, 327}} + + + + YES + + + YES + + + + + YES + + + YES + + + + 564 + + + + YES + + BWGradientBox + NSView + + IBProjectSource + BWGradientBox.h + + + + BWHyperlinkButton + NSButton + + IBProjectSource + BWHyperlinkButton.h + + + + BWHyperlinkButtonCell + NSButtonCell + + IBProjectSource + BWHyperlinkButtonCell.h + + + + BWInsetTextField + NSTextField + + IBProjectSource + BWInsetTextField.h + + + + BWSelectableToolbar + NSToolbar + + IBProjectSource + BWSelectableToolbar.h + + + + BWSelectableToolbar + NSToolbar + + IBUserSource + + + + + BWStyledTextField + NSTextField + + IBProjectSource + BWStyledTextField.h + + + + BWStyledTextFieldCell + NSTextFieldCell + + IBProjectSource + BWStyledTextFieldCell.h + + + + BWTexturedSlider + NSSlider + + IBProjectSource + BWTexturedSlider.h + + + + BWTexturedSliderCell + NSSliderCell + + IBProjectSource + BWTexturedSliderCell.h + + + + BWTokenField + NSTokenField + + IBProjectSource + BWTokenField.h + + + + BWTokenFieldCell + NSTokenFieldCell + + IBProjectSource + BWTokenFieldCell.h + + + + BWToolbarShowColorsItem + NSToolbarItem + + IBProjectSource + BWToolbarShowColorsItem.h + + + + BWToolbarShowFontsItem + NSToolbarItem + + IBProjectSource + BWToolbarShowFontsItem.h + + + + NSApplication + + IBProjectSource + NSApplication+BWAdditions.h + + + + NSView + + IBProjectSource + NSView+BWAdditions.h + + + + + YES + + NSActionCell + NSCell + + IBFrameworkSource + AppKit.framework/Headers/NSActionCell.h + + + + NSApplication + NSResponder + + IBFrameworkSource + AppKit.framework/Headers/NSApplication.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSApplicationScripting.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSColorPanel.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSHelpManager.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSPageLayout.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSUserInterfaceItemSearching.h + + + + NSBox + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSBox.h + + + + NSButton + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSButton.h + + + + NSButtonCell + NSActionCell + + IBFrameworkSource + AppKit.framework/Headers/NSButtonCell.h + + + + NSCell + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSCell.h + + + + NSControl + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSControl.h + + + + NSFormatter + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSFormatter.h + + + + NSImageCell + NSCell + + IBFrameworkSource + AppKit.framework/Headers/NSImageCell.h + + + + NSImageView + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSImageView.h + + + + NSMenu + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSMenu.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSAccessibility.h + + + + NSObject + + + + NSObject + + + + NSObject + + + + NSObject + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSDictionaryController.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSDragging.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSFontManager.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSFontPanel.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSKeyValueBinding.h + + + + NSObject + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSNibLoading.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSOutlineView.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSPasteboard.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSSavePanel.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSTableView.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSToolbarItem.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSView.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSArchiver.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSClassDescription.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSError.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSFileManager.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueCoding.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueObserving.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyedArchiver.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSObject.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSObjectScripting.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSPortCoder.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSRunLoop.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptClassDescription.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptKeyValueCoding.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptObjectSpecifiers.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptWhoseTests.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSThread.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURL.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURLConnection.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURLDownload.h + + + + NSObject + + IBFrameworkSource + InterfaceBuilderKit.framework/Headers/IBObjectIntegration.h + + + + NSResponder + + IBFrameworkSource + AppKit.framework/Headers/NSInterfaceStyle.h + + + + NSResponder + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSResponder.h + + + + NSSlider + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSSlider.h + + + + NSSliderCell + NSActionCell + + IBFrameworkSource + AppKit.framework/Headers/NSSliderCell.h + + + + NSTextField + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSTextField.h + + + + NSTextFieldCell + NSActionCell + + IBFrameworkSource + AppKit.framework/Headers/NSTextFieldCell.h + + + + NSTokenField + NSTextField + + IBFrameworkSource + AppKit.framework/Headers/NSTokenField.h + + + + NSTokenFieldCell + NSTextFieldCell + + IBFrameworkSource + AppKit.framework/Headers/NSTokenFieldCell.h + + + + NSToolbar + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSToolbar.h + + + + NSToolbarItem + NSObject + + + + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSClipView.h + + + + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSMenuItem.h + + + + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSRulerView.h + + + + NSView + NSResponder + + + + NSView + + IBFrameworkSource + InterfaceBuilderKit.framework/Headers/IBViewIntegration.h + + + + + 0 + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + ../BWToolkit.xcodeproj + 3 + + + + + NSCachedImageRep + + + + diff --git a/Frameworks/BWToolkitFramework.framework/English.lproj/BWToolkitLibrary.nib/keyedobjects.nib b/Frameworks/BWToolkitFramework.framework/English.lproj/BWToolkitLibrary.nib/keyedobjects.nib new file mode 100644 index 00000000..26160135 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/English.lproj/BWToolkitLibrary.nib/keyedobjects.nib differ diff --git a/Frameworks/BWToolkitFramework.framework/English.lproj/InfoPlist.strings b/Frameworks/BWToolkitFramework.framework/English.lproj/InfoPlist.strings new file mode 100644 index 00000000..313c3de1 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/English.lproj/InfoPlist.strings differ diff --git a/Frameworks/BWToolkitFramework.framework/GradientSplitViewDimpleBitmap.tif b/Frameworks/BWToolkitFramework.framework/GradientSplitViewDimpleBitmap.tif new file mode 100644 index 00000000..52c9d818 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/GradientSplitViewDimpleBitmap.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/GradientSplitViewDimpleVector.pdf b/Frameworks/BWToolkitFramework.framework/GradientSplitViewDimpleVector.pdf new file mode 100644 index 00000000..2f430e3e Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/GradientSplitViewDimpleVector.pdf differ diff --git a/Frameworks/BWToolkitFramework.framework/GradientWellPattern.tif b/Frameworks/BWToolkitFramework.framework/GradientWellPattern.tif new file mode 100644 index 00000000..cca6408a Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/GradientWellPattern.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/Headers b/Frameworks/BWToolkitFramework.framework/Headers deleted file mode 120000 index a177d2a6..00000000 --- a/Frameworks/BWToolkitFramework.framework/Headers +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/Headers \ No newline at end of file diff --git a/Frameworks/BWToolkitFramework.framework/IBColor.h b/Frameworks/BWToolkitFramework.framework/IBColor.h new file mode 100644 index 00000000..d2f35a7a --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/IBColor.h @@ -0,0 +1,102 @@ +/* + * Generated by class-dump 3.1.2. + * + * class-dump is Copyright (C) 1997-1998, 2000-2001, 2004-2007 by Steve Nygard. + */ + +//#import "NSColor.h" + +@interface IBColor : NSColor +{ +} + ++ (void)setPreferredColor:(id)fp8 forName:(id)fp12; ++ (id)preferredColorForName:(id)fp8; ++ (id)bandSelectionBodyColor; ++ (id)viewSelectionColor; ++ (id)bandSelectionBorderColor; ++ (id)dragInsertionIndicatorColor; ++ (id)dragInsertionIndicatorFillColor; ++ (id)layoutRectColor; ++ (id)baselineColor; ++ (id)layoutInfoColor; ++ (id)boundsInfoColor; ++ (id)customViewColor; ++ (id)missingImageColor; ++ (id)connectionLineStrokeColor; ++ (id)connectionLineFillColor; ++ (id)connectionLineShadowColor; ++ (id)targetIdentifierColor; ++ (id)liveLayoutGuideColor; ++ (id)layoutGuideLabelFillColor; ++ (id)layoutGuideLabelFrameColor; ++ (id)notesBackgroundColor; ++ (id)paletteBackgroundColor; ++ (id)paletteTitleFillColor; ++ (id)paletteTitleColor; ++ (id)paletteTextColor; ++ (id)inspectorGearBackgroundColor; ++ (id)inspectorModeLightGradientColor; ++ (id)inspectorModeDarkGradientColor; ++ (id)inspectorSliceLightGradientColor; ++ (id)inspectorSliceDarkGradientColor; ++ (id)inspectorSliceBorderColor; ++ (id)inspectorSliceToneColor; ++ (id)inspectorModeSelectionToneColor; ++ (id)inspectorModePressedToneColor; ++ (id)inspectorModeSeparatorColor; ++ (id)slateScrollerBackgroundColor; ++ (id)slateScrollerKnobColor; ++ (id)slateScrollerTrackedKnobColor; ++ (id)slateScrollerTrackColor; ++ (id)slateScrollerButtonFillColor; ++ (id)slateScrollerButtonIconColor; ++ (id)slateScrollerButtonPressedIconColor; ++ (id)slateScrollerButtonDisabledIconColor; ++ (id)slateScrollerButtonDisabledFillColor; ++ (id)slateScrollerButtonPressedFillColor; ++ (id)connectionSliceTitleFillColor; ++ (id)menuDropTargetIndicatorColor; ++ (id)menuDarkDropTargetIndicatorColor; ++ (id)menuLightDropTargetIndicatorColor; ++ (id)slatePaletteButtonPressedColor; ++ (id)slateElementViewBackgroundColor; ++ (id)slateElementViewHighlightColor; ++ (id)slateElementViewPressedColor; ++ (id)slateElementViewSelectedColor; ++ (id)slateElementViewTextColor; ++ (id)slateLabelHighlightColor; ++ (id)paletteChooserOutlineColor; ++ (id)paletteChooserPressedColor; ++ (id)paletteChooserHighlightColor; ++ (id)containerCustomViewBackgroundColor; ++ (id)childlessCustomViewBackgroundColor; ++ (id)childlessCustomViewTextColor; ++ (id)containerCustomViewTextColor; ++ (id)customViewDarkTexturedBorderColor; ++ (id)customViewDarkBorderColor; ++ (id)customViewLightBorderColor; ++ (id)toolbarItemContainerFillColor; ++ (id)lightSpotlightColor; ++ (id)darkSpotlightColor; ++ (id)spotlightBorderColor; ++ (id)lightPurpleSpotlightColor; ++ (id)darkPurpleSpotlightColor; ++ (id)spotlightTextColor; ++ (id)lightestSlateColor; ++ (id)lighterSlateColor; ++ (id)lightSlateColor; ++ (id)slateColor; ++ (id)darkSlateColor; ++ (id)darkerSlateColor; ++ (id)darkestSlateColor; ++ (id)darkestSlateHUDBackgroundColor; ++ (id)darkerSlateHUDBackgroundColor; ++ (id)darkSlateHUDBackgroundColor; ++ (id)slateHUDBackgroundColor; ++ (id)lightSlateHUDBackgroundColor; ++ (id)slateWarningColor; ++ (id)darkSlateWarningColor; + +@end + diff --git a/Frameworks/BWToolkitFramework.framework/Info.plist b/Frameworks/BWToolkitFramework.framework/Info.plist new file mode 100644 index 00000000..220b9ba5 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/Info.plist @@ -0,0 +1,28 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + + CFBundleIdentifier + com.brandonwalkin.BWToolkit + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.2.1 + CFBundleSignature + ???? + CFBundleVersion + 1.2.1 + NSPrincipalClass + BWToolkit + + diff --git a/Frameworks/BWToolkitFramework.framework/Inspector-ButtonBarMode1.tif b/Frameworks/BWToolkitFramework.framework/Inspector-ButtonBarMode1.tif new file mode 100644 index 00000000..832f85fd Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/Inspector-ButtonBarMode1.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/Inspector-ButtonBarMode1Pressed.tif b/Frameworks/BWToolkitFramework.framework/Inspector-ButtonBarMode1Pressed.tif new file mode 100644 index 00000000..2eb547e5 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/Inspector-ButtonBarMode1Pressed.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/Inspector-ButtonBarMode2.tif b/Frameworks/BWToolkitFramework.framework/Inspector-ButtonBarMode2.tif new file mode 100644 index 00000000..100f2b30 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/Inspector-ButtonBarMode2.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/Inspector-ButtonBarMode2Pressed.tif b/Frameworks/BWToolkitFramework.framework/Inspector-ButtonBarMode2Pressed.tif new file mode 100644 index 00000000..3ce9a6bc Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/Inspector-ButtonBarMode2Pressed.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/Inspector-ButtonBarMode3.tif b/Frameworks/BWToolkitFramework.framework/Inspector-ButtonBarMode3.tif new file mode 100644 index 00000000..99e6eec2 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/Inspector-ButtonBarMode3.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/Inspector-ButtonBarMode3Pressed.tif b/Frameworks/BWToolkitFramework.framework/Inspector-ButtonBarMode3Pressed.tif new file mode 100644 index 00000000..d1f44d41 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/Inspector-ButtonBarMode3Pressed.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/Inspector-ButtonBarModeSelection.tif b/Frameworks/BWToolkitFramework.framework/Inspector-ButtonBarModeSelection.tif new file mode 100644 index 00000000..60858923 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/Inspector-ButtonBarModeSelection.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/Inspector-SplitViewArrowBlueLeft.tif b/Frameworks/BWToolkitFramework.framework/Inspector-SplitViewArrowBlueLeft.tif new file mode 100644 index 00000000..b87897f2 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/Inspector-SplitViewArrowBlueLeft.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/Inspector-SplitViewArrowBlueRight.tif b/Frameworks/BWToolkitFramework.framework/Inspector-SplitViewArrowBlueRight.tif new file mode 100644 index 00000000..9ec1e62e Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/Inspector-SplitViewArrowBlueRight.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/Inspector-SplitViewArrowRedFill.tif b/Frameworks/BWToolkitFramework.framework/Inspector-SplitViewArrowRedFill.tif new file mode 100644 index 00000000..7633130e Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/Inspector-SplitViewArrowRedFill.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/Inspector-SplitViewArrowRedLeft.tif b/Frameworks/BWToolkitFramework.framework/Inspector-SplitViewArrowRedLeft.tif new file mode 100644 index 00000000..8a347d18 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/Inspector-SplitViewArrowRedLeft.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/Inspector-SplitViewArrowRedRight.tif b/Frameworks/BWToolkitFramework.framework/Inspector-SplitViewArrowRedRight.tif new file mode 100644 index 00000000..7ab676ce Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/Inspector-SplitViewArrowRedRight.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/Inspector-SplitViewBackground.tiff b/Frameworks/BWToolkitFramework.framework/Inspector-SplitViewBackground.tiff new file mode 100644 index 00000000..92abe845 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/Inspector-SplitViewBackground.tiff differ diff --git a/Frameworks/BWToolkitFramework.framework/Library-AddMiniBottomBar.tif b/Frameworks/BWToolkitFramework.framework/Library-AddMiniBottomBar.tif new file mode 100644 index 00000000..36b5d728 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/Library-AddMiniBottomBar.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/Library-AddRegularBottomBar.tif b/Frameworks/BWToolkitFramework.framework/Library-AddRegularBottomBar.tif new file mode 100644 index 00000000..6ceb1fc4 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/Library-AddRegularBottomBar.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/Library-AddSheetBottomBar.tif b/Frameworks/BWToolkitFramework.framework/Library-AddSheetBottomBar.tif new file mode 100644 index 00000000..d989aa5e Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/Library-AddSheetBottomBar.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/Library-AddSmallBottomBar.tif b/Frameworks/BWToolkitFramework.framework/Library-AddSmallBottomBar.tif new file mode 100644 index 00000000..3379ff0a Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/Library-AddSmallBottomBar.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/Library-AnchoredButton.tif b/Frameworks/BWToolkitFramework.framework/Library-AnchoredButton.tif new file mode 100644 index 00000000..9c47851a Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/Library-AnchoredButton.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/Library-AnchoredButtonBar.tif b/Frameworks/BWToolkitFramework.framework/Library-AnchoredButtonBar.tif new file mode 100644 index 00000000..1e2fd214 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/Library-AnchoredButtonBar.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/Library-AnchoredPopUpButton.tif b/Frameworks/BWToolkitFramework.framework/Library-AnchoredPopUpButton.tif new file mode 100644 index 00000000..eddeb0ad Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/Library-AnchoredPopUpButton.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/Library-CustomView.tif b/Frameworks/BWToolkitFramework.framework/Library-CustomView.tif new file mode 100644 index 00000000..e093fac3 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/Library-CustomView.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/Library-GradientBox.tif b/Frameworks/BWToolkitFramework.framework/Library-GradientBox.tif new file mode 100644 index 00000000..b177651d Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/Library-GradientBox.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/Library-GradientSplitView.tif b/Frameworks/BWToolkitFramework.framework/Library-GradientSplitView.tif new file mode 100644 index 00000000..ac4b2ff2 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/Library-GradientSplitView.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/Library-HorizontalSplitView.tif b/Frameworks/BWToolkitFramework.framework/Library-HorizontalSplitView.tif new file mode 100644 index 00000000..cef2bae8 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/Library-HorizontalSplitView.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/Library-InsetTextField.tif b/Frameworks/BWToolkitFramework.framework/Library-InsetTextField.tif new file mode 100644 index 00000000..37fefc3c Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/Library-InsetTextField.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/Library-RemoveBottomBar.tif b/Frameworks/BWToolkitFramework.framework/Library-RemoveBottomBar.tif new file mode 100644 index 00000000..eefb1d0e Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/Library-RemoveBottomBar.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/Library-SelectableToolbar.tif b/Frameworks/BWToolkitFramework.framework/Library-SelectableToolbar.tif new file mode 100644 index 00000000..ae34b80e Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/Library-SelectableToolbar.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/Library-SheetController.tif b/Frameworks/BWToolkitFramework.framework/Library-SheetController.tif new file mode 100644 index 00000000..a7089a06 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/Library-SheetController.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/Library-ShowColors.tif b/Frameworks/BWToolkitFramework.framework/Library-ShowColors.tif new file mode 100644 index 00000000..7ec752ef Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/Library-ShowColors.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/Library-ShowFonts.tif b/Frameworks/BWToolkitFramework.framework/Library-ShowFonts.tif new file mode 100644 index 00000000..fd053bef Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/Library-ShowFonts.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/Library-StyledTextField.tif b/Frameworks/BWToolkitFramework.framework/Library-StyledTextField.tif new file mode 100644 index 00000000..2ab8d9d3 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/Library-StyledTextField.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/Library-TexturedAddButton.tif b/Frameworks/BWToolkitFramework.framework/Library-TexturedAddButton.tif new file mode 100644 index 00000000..c8f7d77f Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/Library-TexturedAddButton.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/Library-TexturedRemoveButton.tif b/Frameworks/BWToolkitFramework.framework/Library-TexturedRemoveButton.tif new file mode 100644 index 00000000..a89a2458 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/Library-TexturedRemoveButton.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/Library-TexturedSlider.tif b/Frameworks/BWToolkitFramework.framework/Library-TexturedSlider.tif new file mode 100644 index 00000000..a8f7a7c0 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/Library-TexturedSlider.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/Library-TokenField.tif b/Frameworks/BWToolkitFramework.framework/Library-TokenField.tif new file mode 100644 index 00000000..068f43ba Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/Library-TokenField.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/Library-ToolbarItem.tiff b/Frameworks/BWToolkitFramework.framework/Library-ToolbarItem.tiff new file mode 100644 index 00000000..ce706938 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/Library-ToolbarItem.tiff differ diff --git a/Frameworks/BWToolkitFramework.framework/Library-TransparentButton.tif b/Frameworks/BWToolkitFramework.framework/Library-TransparentButton.tif new file mode 100644 index 00000000..944945c3 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/Library-TransparentButton.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/Library-TransparentCheckbox.tif b/Frameworks/BWToolkitFramework.framework/Library-TransparentCheckbox.tif new file mode 100644 index 00000000..d6235dfb Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/Library-TransparentCheckbox.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/Library-TransparentCheckboxCell.tif b/Frameworks/BWToolkitFramework.framework/Library-TransparentCheckboxCell.tif new file mode 100644 index 00000000..7a79f888 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/Library-TransparentCheckboxCell.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/Library-TransparentLabel.tif b/Frameworks/BWToolkitFramework.framework/Library-TransparentLabel.tif new file mode 100644 index 00000000..7d15753f Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/Library-TransparentLabel.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/Library-TransparentPopUpButton.tif b/Frameworks/BWToolkitFramework.framework/Library-TransparentPopUpButton.tif new file mode 100644 index 00000000..215d122d Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/Library-TransparentPopUpButton.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/Library-TransparentSlider.tif b/Frameworks/BWToolkitFramework.framework/Library-TransparentSlider.tif new file mode 100644 index 00000000..0bab5b17 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/Library-TransparentSlider.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/Library-TransparentTableView.tif b/Frameworks/BWToolkitFramework.framework/Library-TransparentTableView.tif new file mode 100644 index 00000000..76b88fe0 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/Library-TransparentTableView.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/Library-TransparentTextView.tif b/Frameworks/BWToolkitFramework.framework/Library-TransparentTextView.tif new file mode 100644 index 00000000..78bbbca6 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/Library-TransparentTextView.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/Library-VerticalSplitView.tif b/Frameworks/BWToolkitFramework.framework/Library-VerticalSplitView.tif new file mode 100644 index 00000000..ea86f9f7 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/Library-VerticalSplitView.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/License.rtf b/Frameworks/BWToolkitFramework.framework/License.rtf new file mode 100644 index 00000000..8fa50837 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/License.rtf @@ -0,0 +1,16 @@ +{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf430 +{\fonttbl\f0\fnil\fcharset0 Verdana;} +{\colortbl;\red255\green255\blue255;\red73\green73\blue73;} +{\*\listtable{\list\listtemplateid1\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid1}} +{\*\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}} +\deftab720 +\pard\pardeftab720\sl400\sa280\ql\qnatural + +\f0\fs24 \cf2 Copyright (c) 2009, Brandon Walkin\uc0\u8232 All rights reserved.\ +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\ +\pard\tx220\tx720\pardeftab720\li720\fi-720\sl400\sa20\ql\qnatural +\ls1\ilvl0\cf2 {\listtext \'95 }Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\ +{\listtext \'95 }Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\ +{\listtext \'95 }Neither the name of the Brandon Walkin nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.\ +\pard\pardeftab720\sl400\sa280\ql\qnatural +\cf2 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.} \ No newline at end of file diff --git a/Frameworks/BWToolkitFramework.framework/NSApplication+BWAdditions.h b/Frameworks/BWToolkitFramework.framework/NSApplication+BWAdditions.h new file mode 100644 index 00000000..29ec9c8b --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/NSApplication+BWAdditions.h @@ -0,0 +1,15 @@ +// +// NSApplication+BWAdditions.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface NSApplication (BWAdditions) + ++ (BOOL)isOnLeopard; + +@end diff --git a/Frameworks/BWToolkitFramework.framework/NSApplication+BWAdditions.m b/Frameworks/BWToolkitFramework.framework/NSApplication+BWAdditions.m new file mode 100644 index 00000000..3071e585 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/NSApplication+BWAdditions.m @@ -0,0 +1,21 @@ +// +// NSApplication+BWAdditions.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "NSApplication+BWAdditions.h" + +@implementation NSApplication (BWAdditions) + ++ (BOOL)isOnLeopard +{ + SInt32 minorVersion, majorVersion; + Gestalt(gestaltSystemVersionMajor, &majorVersion); + Gestalt(gestaltSystemVersionMinor, &minorVersion); + return majorVersion == 10 && minorVersion == 5; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/NSColor+BWAdditions.h b/Frameworks/BWToolkitFramework.framework/NSColor+BWAdditions.h new file mode 100644 index 00000000..9f815c1f --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/NSColor+BWAdditions.h @@ -0,0 +1,16 @@ +// +// NSColor+BWAdditions.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface NSColor (BWAdditions) + +// Use this method to draw 1 px wide lines independent of scale factor. Handy for resolution independent drawing. Still needs some work - there are issues with drawing at the edges of views. +- (void)drawPixelThickLineAtPosition:(int)posInPixels withInset:(int)insetInPixels inRect:(NSRect)aRect inView:(NSView *)view horizontal:(BOOL)isHorizontal flip:(BOOL)shouldFlip; + +@end diff --git a/Frameworks/BWToolkitFramework.framework/NSColor+BWAdditions.m b/Frameworks/BWToolkitFramework.framework/NSColor+BWAdditions.m new file mode 100644 index 00000000..4482bd16 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/NSColor+BWAdditions.m @@ -0,0 +1,79 @@ +// +// NSColor+PixelWideLines.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "NSColor+BWAdditions.h" + +@implementation NSColor (BWAdditions) + +// Use this method to draw 1 px wide lines independent of scale factor. Handy for resolution independent drawing. Still needs some work - there are issues with drawing at the edges of views. +- (void)drawPixelThickLineAtPosition:(int)posInPixels withInset:(int)insetInPixels inRect:(NSRect)aRect inView:(NSView *)view horizontal:(BOOL)isHorizontal flip:(BOOL)shouldFlip +{ + // Convert the given rectangle from points to pixels + aRect = [view convertRectToBase:aRect]; + + // Round up the rect's values to integers + aRect = NSIntegralRect(aRect); + + // Add or subtract 0.5 so the lines are drawn within pixel bounds + if (isHorizontal) + { + if ([view isFlipped]) + aRect.origin.y -= 0.5; + else + aRect.origin.y += 0.5; + } + else + { + aRect.origin.x += 0.5; + } + + NSSize sizeInPixels = aRect.size; + + // Convert the rect back to points for drawing + aRect = [view convertRectFromBase:aRect]; + + // Flip the position so it's at the other side of the rect + if (shouldFlip) + { + if (isHorizontal) + posInPixels = sizeInPixels.height - posInPixels - 1; + else + posInPixels = sizeInPixels.width - posInPixels - 1; + } + + float posInPoints = posInPixels / [[NSScreen mainScreen] userSpaceScaleFactor]; + float insetInPoints = insetInPixels / [[NSScreen mainScreen] userSpaceScaleFactor]; + + // Calculate line start and end points + float startX, startY, endX, endY; + + if (isHorizontal) + { + startX = aRect.origin.x + insetInPoints; + startY = aRect.origin.y + posInPoints; + endX = aRect.origin.x + aRect.size.width - insetInPoints; + endY = aRect.origin.y + posInPoints; + } + else + { + startX = aRect.origin.x + posInPoints; + startY = aRect.origin.y + insetInPoints; + endX = aRect.origin.x + posInPoints; + endY = aRect.origin.y + aRect.size.height - insetInPoints; + } + + // Draw line + NSBezierPath *path = [NSBezierPath bezierPath]; + [path setLineWidth:0.0f]; + [path moveToPoint:NSMakePoint(startX,startY)]; + [path lineToPoint:NSMakePoint(endX,endY)]; + [self set]; + [path stroke]; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/NSCustomView.h b/Frameworks/BWToolkitFramework.framework/NSCustomView.h new file mode 100644 index 00000000..7e7eec19 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/NSCustomView.h @@ -0,0 +1,27 @@ +/* + * Generated by class-dump 3.1.2. + * + * class-dump is Copyright (C) 1997-1998, 2000-2001, 2004-2007 by Steve Nygard. + */ + +#import + +@class NSString; + +@interface NSCustomView : NSView +{ + NSString *className; + NSView *view; + id extension; +} + ++ (void)initialize; +- (id)initWithFrame:(NSRect)fp8; +- (void)dealloc; +- (void)finalize; +- (id)nibInstantiate; +- (void)encodeWithCoder:(id)fp8; +- (id)initWithCoder:(id)fp8; + +@end + diff --git a/Frameworks/BWToolkitFramework.framework/NSEvent+BWAdditions.h b/Frameworks/BWToolkitFramework.framework/NSEvent+BWAdditions.h new file mode 100644 index 00000000..d26a94ee --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/NSEvent+BWAdditions.h @@ -0,0 +1,19 @@ +// +// NSEvent+BWAdditions.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface NSEvent (BWAdditions) + ++ (BOOL)shiftKeyIsDown; ++ (BOOL)commandKeyIsDown; ++ (BOOL)optionKeyIsDown; ++ (BOOL)controlKeyIsDown; ++ (BOOL)capsLockKeyIsDown; + +@end diff --git a/Frameworks/BWToolkitFramework.framework/NSEvent+BWAdditions.m b/Frameworks/BWToolkitFramework.framework/NSEvent+BWAdditions.m new file mode 100644 index 00000000..97ce070a --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/NSEvent+BWAdditions.m @@ -0,0 +1,53 @@ +// +// NSEvent+BWAdditions.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "NSEvent+BWAdditions.h" + +@implementation NSEvent (BWAdditions) + ++ (BOOL)shiftKeyIsDown +{ + if ([[NSApp currentEvent] modifierFlags] & NSShiftKeyMask) + return YES; + + return NO; +} + ++ (BOOL)commandKeyIsDown +{ + if ([[NSApp currentEvent] modifierFlags] & NSCommandKeyMask) + return YES; + + return NO; +} + ++ (BOOL)optionKeyIsDown +{ + if ([[NSApp currentEvent] modifierFlags] & NSAlternateKeyMask) + return YES; + + return NO; +} + ++ (BOOL)controlKeyIsDown +{ + if ([[NSApp currentEvent] modifierFlags] & NSControlKeyMask) + return YES; + + return NO; +} + ++ (BOOL)capsLockKeyIsDown +{ + if ([[NSApp currentEvent] modifierFlags] & NSAlphaShiftKeyMask) + return YES; + + return NO; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/NSImage+BWAdditions.h b/Frameworks/BWToolkitFramework.framework/NSImage+BWAdditions.h new file mode 100644 index 00000000..af527dca --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/NSImage+BWAdditions.h @@ -0,0 +1,19 @@ +// +// NSImage+BWAdditions.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface NSImage (BWAdditions) + +// Draw a solid color over an image - taking into account alpha. Useful for coloring template images. +- (NSImage *)tintedImageWithColor:(NSColor *)tint; + +// Rotate an image 90 degrees clockwise or counterclockwise +- (NSImage *)rotateImage90DegreesClockwise:(BOOL)clockwise; + +@end diff --git a/Frameworks/BWToolkitFramework.framework/NSImage+BWAdditions.m b/Frameworks/BWToolkitFramework.framework/NSImage+BWAdditions.m new file mode 100644 index 00000000..eef2b972 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/NSImage+BWAdditions.m @@ -0,0 +1,83 @@ +// +// NSImage+BWAdditions.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "NSImage+BWAdditions.h" + +@implementation NSImage (BWAdditions) + +// Draw a solid color over an image - taking into account alpha. Useful for coloring template images. + +- (NSImage *)tintedImageWithColor:(NSColor *)tint +{ + NSSize size = [self size]; + NSRect imageBounds = NSMakeRect(0, 0, size.width, size.height); + + NSImage *copiedImage = [self copy]; + + [copiedImage lockFocus]; + + [tint set]; + NSRectFillUsingOperation(imageBounds, NSCompositeSourceAtop); + + [copiedImage unlockFocus]; + + return [copiedImage autorelease]; +} + +// Rotate an image 90 degrees clockwise or counterclockwise +// Code from http://swik.net/User:marc/Chipmunk+Ninja+Technical+Articles/Rotating+an+NSImage+object+in+Cocoa/zgha + +- (NSImage *)rotateImage90DegreesClockwise:(BOOL)clockwise +{ + NSImage *existingImage = self; + NSSize existingSize; + + /** + * Get the size of the original image in its raw bitmap format. + * The bestRepresentationForDevice: nil tells the NSImage to just + * give us the raw image instead of it's wacky DPI-translated version. + */ + existingSize.width = [[existingImage bestRepresentationForDevice:nil] pixelsWide]; + existingSize.height = [[existingImage bestRepresentationForDevice:nil] pixelsHigh]; + + NSSize newSize = NSMakeSize(existingSize.height, existingSize.width); + NSImage *rotatedImage = [[[NSImage alloc] initWithSize:newSize] autorelease]; + + [rotatedImage lockFocus]; + + /** + * Apply the following transformations: + * + * - bring the rotation point to the centre of the image instead of + * the default lower, left corner (0,0). + * - rotate it by 90 degrees, either clock or counter clockwise. + * - re-translate the rotated image back down to the lower left corner + * so that it appears in the right place. + */ + NSAffineTransform *rotateTF = [NSAffineTransform transform]; + NSPoint centerPoint = NSMakePoint(newSize.width / 2, newSize.height / 2); + + [rotateTF translateXBy: centerPoint.x yBy: centerPoint.y]; + [rotateTF rotateByDegrees: (clockwise) ? - 90 : 90]; + [rotateTF translateXBy: -centerPoint.y yBy: -centerPoint.x]; + [rotateTF concat]; + + /** + * We have to get the image representation to do its drawing directly, + * because otherwise the stupid NSImage DPI thingie bites us in the butt + * again. + */ + NSRect r1 = NSMakeRect(0, 0, newSize.height, newSize.width); + [[existingImage bestRepresentationForDevice:nil] drawInRect:r1]; + + [rotatedImage unlockFocus]; + + return rotatedImage; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/NSString+BWAdditions.h b/Frameworks/BWToolkitFramework.framework/NSString+BWAdditions.h new file mode 100644 index 00000000..fd09b453 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/NSString+BWAdditions.h @@ -0,0 +1,15 @@ +// +// NSString+BWAdditions.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface NSString (BWAdditions) + ++ (NSString *)randomUUID; + +@end diff --git a/Frameworks/BWToolkitFramework.framework/NSString+BWAdditions.m b/Frameworks/BWToolkitFramework.framework/NSString+BWAdditions.m new file mode 100644 index 00000000..31afeac1 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/NSString+BWAdditions.m @@ -0,0 +1,22 @@ +// +// NSString+BWAdditions.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "NSString+BWAdditions.h" + +@implementation NSString (BWAdditions) + ++ (NSString *)randomUUID +{ + CFUUIDRef uuidObj = CFUUIDCreate(nil); + NSString *newUUID = (NSString*)CFMakeCollectable(CFUUIDCreateString(nil, uuidObj)); + CFRelease(uuidObj); + + return [newUUID autorelease]; +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/NSTokenAttachment.h b/Frameworks/BWToolkitFramework.framework/NSTokenAttachment.h new file mode 100644 index 00000000..7f34df21 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/NSTokenAttachment.h @@ -0,0 +1,22 @@ +/* + * Generated by class-dump 3.1.2. + * + * class-dump is Copyright (C) 1997-1998, 2000-2001, 2004-2007 by Steve Nygard. + */ + +#import + +@interface NSTokenAttachment : NSTextAttachment +{ + id _delegate; +} + +- (id)initWithDelegate:(id)fp8; +- (void)encodeWithCoder:(id)fp8; +- (id)initWithCoder:(id)fp8; +- (id)attachmentCell; +- (id)delegate; +- (void)setDelegate:(id)fp8; + +@end + diff --git a/Frameworks/BWToolkitFramework.framework/NSTokenAttachmentCell.h b/Frameworks/BWToolkitFramework.framework/NSTokenAttachmentCell.h new file mode 100644 index 00000000..0f564f66 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/NSTokenAttachmentCell.h @@ -0,0 +1,52 @@ +/* + * Generated by class-dump 3.1.2. + * + * class-dump is Copyright (C) 1997-1998, 2000-2001, 2004-2007 by Steve Nygard. + */ + +#import + +@interface NSTokenAttachmentCell : NSTextAttachmentCell +{ + id _representedObject; + id _textColor; + id _reserved; + struct { + unsigned int _selected:1; + unsigned int _edgeStyle:2; + unsigned int _reserved:29; + } _tacFlags; +} + ++ (void)initialize; +- (id)initTextCell:(id)fp8; +- (id)init; +- (void)dealloc; +- (id)representedObject; +- (void)setRepresentedObject:(id)fp8; +- (int)interiorBackgroundStyle; +- (BOOL)_hasMenu; +- (id)tokenForegroundColor; +- (id)tokenBackgroundColor; +- (id)textColor; +- (void)setTextColor:(id)fp8; +- (id)pullDownImage; +- (id)menu; +- (NSSize)cellSizeForBounds:(NSRect)fp8; +- (NSSize)cellSize; +- (NSRect)drawingRectForBounds:(NSRect)fp8; +- (NSRect)titleRectForBounds:(NSRect)fp8; +- (NSRect)cellFrameForTextContainer:(id)fp8 proposedLineFragment:(NSRect)fp12 glyphPosition:(NSPoint)fp28 characterIndex:(unsigned int)fp36; +- (NSPoint)cellBaselineOffset; +- (NSRect)pullDownRectForBounds:(NSRect)fp8; +- (void)drawTokenWithFrame:(NSRect)fp8 inView:(id)fp24; +- (void)drawInteriorWithFrame:(NSRect)fp8 inView:(id)fp24; +- (void)drawWithFrame:(NSRect)fp8 inView:(id)fp24; +- (void)drawWithFrame:(NSRect)fp8 inView:(id)fp24 characterIndex:(unsigned int)fp28 layoutManager:(id)fp32; +- (void)encodeWithCoder:(id)fp8; +- (id)initWithCoder:(id)fp8; +- (BOOL)wantsToTrackMouseForEvent:(id)fp8 inRect:(NSRect)fp12 ofView:(id)fp28 atCharacterIndex:(unsigned int)fp32; +- (BOOL)trackMouse:(id)fp8 inRect:(NSRect)fp12 ofView:(id)fp28 atCharacterIndex:(unsigned int)fp32 untilMouseUp:(BOOL)fp36; + +@end + diff --git a/Frameworks/BWToolkitFramework.framework/NSView+BWAdditions.h b/Frameworks/BWToolkitFramework.framework/NSView+BWAdditions.h new file mode 100644 index 00000000..d8d65857 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/NSView+BWAdditions.h @@ -0,0 +1,15 @@ +// +// NSView+BWAdditions.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface NSView (BWAdditions) + +- (void)bringToFront; + +@end diff --git a/Frameworks/BWToolkitFramework.framework/NSView+BWAdditions.m b/Frameworks/BWToolkitFramework.framework/NSView+BWAdditions.m new file mode 100644 index 00000000..ede8b6b1 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/NSView+BWAdditions.m @@ -0,0 +1,31 @@ +// +// NSView+BWAdditions.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "NSView+BWAdditions.h" + +NSComparisonResult compareViews(id firstView, id secondView, id context); +NSComparisonResult compareViews(id firstView, id secondView, id context) +{ + if (firstView != context && secondView != context) {return NSOrderedSame;} + else + { + if (firstView == context) {return NSOrderedDescending;} + else {return NSOrderedAscending;} + } +} + +@implementation NSView (BWAdditions) + +- (void)bringToFront +{ + [[self superview] sortSubviewsUsingFunction:(NSComparisonResult (*)(id, id, void *))compareViews context:self]; +} + +@end + + diff --git a/Frameworks/BWToolkitFramework.framework/NSWindow+BWAdditions.h b/Frameworks/BWToolkitFramework.framework/NSWindow+BWAdditions.h new file mode 100644 index 00000000..c3523019 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/NSWindow+BWAdditions.h @@ -0,0 +1,16 @@ +// +// NSWindow+BWAdditions.h +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import + +@interface NSWindow (BWAdditions) + +- (void)resizeToSize:(NSSize)newSize animate:(BOOL)animateFlag; +- (BOOL)isTextured; + +@end diff --git a/Frameworks/BWToolkitFramework.framework/NSWindow+BWAdditions.m b/Frameworks/BWToolkitFramework.framework/NSWindow+BWAdditions.m new file mode 100644 index 00000000..e383455b --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/NSWindow+BWAdditions.m @@ -0,0 +1,41 @@ +// +// NSWindow+BWAdditions.m +// BWToolkit +// +// Created by Brandon Walkin (www.brandonwalkin.com) +// All code is provided under the New BSD license. +// + +#import "NSWindow+BWAdditions.h" + +@implementation NSWindow (BWAdditions) + +- (void)resizeToSize:(NSSize)newSize animate:(BOOL)animateFlag +{ + NSRect windowFrame; + windowFrame.origin.x = [self frame].origin.x; + + if ([self isSheet]) + { + float oldWidth = [self frame].size.width; + float newWidth = newSize.width; + + float difference = oldWidth - newWidth; + + windowFrame.origin.x += difference / 2; + } + + windowFrame.origin.y = [self frame].origin.y + [self frame].size.height - newSize.height; + windowFrame.size.width = newSize.width; + windowFrame.size.height = newSize.height; + + if (!NSIsEmptyRect(windowFrame)) + [self setFrame:windowFrame display:YES animate:animateFlag]; +} + +- (BOOL)isTextured +{ + return (([self styleMask] & NSTexturedBackgroundWindowMask) != 0); +} + +@end diff --git a/Frameworks/BWToolkitFramework.framework/NSWindow-NSTimeMachineSupport.h b/Frameworks/BWToolkitFramework.framework/NSWindow-NSTimeMachineSupport.h new file mode 100644 index 00000000..6980d0d3 --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/NSWindow-NSTimeMachineSupport.h @@ -0,0 +1,15 @@ +/* + * Generated by class-dump 3.1.2. + * + * class-dump is Copyright (C) 1997-1998, 2000-2001, 2004-2007 by Steve Nygard. + */ + +#import + +@interface NSWindow (NSTimeMachineSupport) +- (void)setTimeMachineDelegate:(id)fp8; +- (id)timeMachineDelegate; +- (void)setMovable:(BOOL)fp8; +- (BOOL)isMovable; +@end + diff --git a/Frameworks/BWToolkitFramework.framework/Release Notes.rtf b/Frameworks/BWToolkitFramework.framework/Release Notes.rtf new file mode 100644 index 00000000..1e19d31c --- /dev/null +++ b/Frameworks/BWToolkitFramework.framework/Release Notes.rtf @@ -0,0 +1,311 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1025\cocoasubrtf200 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;\f1\fnil\fcharset0 Monaco;} +{\colortbl;\red255\green255\blue255;\red100\green56\blue32;\red196\green26\blue22;} +{\*\listtable{\list\listtemplateid1\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid1} +{\list\listtemplateid2\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid101\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid2} +{\list\listtemplateid3\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid201\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid3} +{\list\listtemplateid4\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid301\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid4} +{\list\listtemplateid5\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid401\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid5} +{\list\listtemplateid6\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid501\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{hyphen\}}{\leveltext\leveltemplateid502\'01\uc0\u8259 ;}{\levelnumbers;}\fi-360\li1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{hyphen\}}{\leveltext\leveltemplateid503\'01\uc0\u8259 ;}{\levelnumbers;}\fi-360\li2160\lin2160 }{\listname ;}\listid6} +{\list\listtemplateid7\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid601\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid7} +{\list\listtemplateid8\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid701\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid8} +{\list\listtemplateid9\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid801\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid9} +{\list\listtemplateid10\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid901\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid10} +{\list\listtemplateid11\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1001\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid11} +{\list\listtemplateid12\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1101\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid12} +{\list\listtemplateid13\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1201\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid13} +{\list\listtemplateid14\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1301\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid14} +{\list\listtemplateid15\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1401\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid15} +{\list\listtemplateid16\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1501\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid16} +{\list\listtemplateid17\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1601\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid17} +{\list\listtemplateid18\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1701\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid18} +{\list\listtemplateid19\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1801\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid19} +{\list\listtemplateid20\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1901\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid20}} +{\*\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}{\listoverride\listid2\listoverridecount0\ls2}{\listoverride\listid3\listoverridecount0\ls3}{\listoverride\listid4\listoverridecount0\ls4}{\listoverride\listid5\listoverridecount0\ls5}{\listoverride\listid6\listoverridecount0\ls6}{\listoverride\listid7\listoverridecount0\ls7}{\listoverride\listid8\listoverridecount0\ls8}{\listoverride\listid9\listoverridecount0\ls9}{\listoverride\listid10\listoverridecount0\ls10}{\listoverride\listid11\listoverridecount0\ls11}{\listoverride\listid12\listoverridecount0\ls12}{\listoverride\listid13\listoverridecount0\ls13}{\listoverride\listid14\listoverridecount0\ls14}{\listoverride\listid15\listoverridecount0\ls15}{\listoverride\listid16\listoverridecount0\ls16}{\listoverride\listid17\listoverridecount0\ls17}{\listoverride\listid18\listoverridecount0\ls18}{\listoverride\listid19\listoverridecount0\ls19}{\listoverride\listid20\listoverridecount0\ls20}} +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural + +\f0\b\fs54 \cf0 BWToolkit +\fs36 \ + +\b0 Plugin for Interface Builder 3\ + +\b \ +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural + +\b0\fs30 \cf0 Version 1.2.1\ +June 18, 2009\ +Brandon Walkin\ +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural + +\fs32 \cf0 \ +\ +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural + +\b\fs36 \cf0 Installation +\b0\fs28 \ +\ +Step 1. Double click the BWToolkit.ibplugin file to load the plugin into Interface Builder\ +\ +Note: Interface Builder will reference this file rather than copy it to another location. Keep the .ibplugin file in a location where it won't be deleted.\ +\ +Step 2. In the Xcode project you want to use the plugin in:\ +\pard\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\li720\fi-720\ql\qnatural\pardirnatural +\ls1\ilvl0\cf0 {\listtext \'95 }Right click the Linked Frameworks folder and click Add -> Existing Frameworks. Select the BWToolkitFramework.framework directory.\ +\pard\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\li720\fi-720\ql\qnatural\pardirnatural +\ls2\ilvl0\cf0 {\listtext \'95 }Right click your target and click Add -> New Build Phase -> New Copy Files Build Phase. For destination, select Frameworks, leave the path field blank, and close the window.\ +\pard\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\li720\fi-720\ql\qnatural\pardirnatural +\ls3\ilvl0\cf0 {\listtext \'95 }Drag the BWToolkit framework from Linked Frameworks to the Copy Files build phase you just added.\ +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural +\cf0 \ +Note: You'll have to repeat step 2 for each project you want to use BWToolkit in.\ +\ +If you need to reference BWToolkit objects in your classes, you can import the main header like so:\ +\ +\pard\tx560\pardeftab560\ql\qnatural\pardirnatural + +\f1\fs24 \cf2 \CocoaLigature0 #import \cf3 +\f0\fs28 \cf0 \CocoaLigature1 \ +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural + +\fs32 \cf0 \ +\ +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural + +\b\fs36 \cf0 License\ +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural + +\b0\fs28 \cf0 \ +All source code is provided under the three clause BSD license. Attribution is appreciated but by no means required.\ +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural + +\fs32 \cf0 \ +\ +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural + +\b\fs36 \cf0 Contributing\ +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural + +\b0\fs28 \cf0 \ +Please email any patches to me at bwalkin@gmail.com. +\b\fs36 \ +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural + +\b0\fs32 \cf0 \ +\ +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural + +\b\fs36 \cf0 Compatibility\ +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural + +\b0\fs28 \cf0 \ +BWToolkit has been tested to work in IB 3.1.2 (677) and IB 3.2 (731). +\b\fs36 \ +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural + +\b0\fs32 \cf0 \ +\ +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural + +\b\fs36 \cf0 History\ +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural + +\b0\fs28 \cf0 \ +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural + +\b \cf0 1.2.1 - June 18, 2009\ +\pard\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\li720\fi-720\ql\qnatural\pardirnatural +\ls4\ilvl0 +\b0 \cf0 {\listtext \'95 }The gradient box, hyperlink button, and styled text field header files have been made public so they can be accessed from your classes. +\b \ +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural +\cf0 \ +1.2 - June 18, 2009\ +\pard\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\li720\fi-720\ql\qnatural\pardirnatural +\ls5\ilvl0 +\b0 \cf0 {\listtext \'95 }New Gradient Box with customizable border and inset lines\ +{\listtext \'95 }New Hyperlink Button that allows you to link text or images to URLs\ +{\listtext \'95 }New Styled Text Field that allows you to apply a gradient and a shadow to your text\ +{\listtext \'95 }Added support for Snow Leopard\ +{\listtext \'95 }The Anchored Button Bar can now live in the right-most split view pane. Just drag the bar in there and the resize handle will move over to the left side. \ +{\listtext \'95 }Rewrote Transparent Button and Transparent Pop-Up Button to support image alignment, text justification & truncation, and other standard cell functionality. A similar rewrite will be coming to the Anchored Button & Pop-Up Button soon.\ +{\listtext \'95 }Fixed an issue where some cells could "take over" other objects in your interface\ +\pard\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\li720\fi-720\ql\qnatural\pardirnatural +\ls5\ilvl0\cf0 {\listtext \'95 }Fixed an issue where some images in an Anchored Button & Pop-Up Button would draw upside-down\ +\pard\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\li720\fi-720\ql\qnatural\pardirnatural +\ls5\ilvl0\cf0 {\listtext \'95 }Sheet controller ivars can now be accessed and modified from outside the class\ +\pard\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\li720\fi-720\ql\qnatural\pardirnatural +\cf0 \'95 Fixed an issue where bottom bars would output warnings to the console\ + \'95 Fixed some memory leaks +\b \ +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural +\cf0 \ +1.1 - Feb 23, 2009\ +\pard\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\li720\fi-720\ql\qnatural\pardirnatural +\ls6\ilvl0 +\b0 \cf0 {\listtext \'95 }New BWSplitView with:\ +\pard\tx940\tx1440\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\li1440\fi-1440\ql\qnatural\pardirnatural +\ls6\ilvl1\cf0 {\listtext \uc0\u8259 }Customizable min and max sizes for subviews\ +{\listtext \uc0\u8259 }Ability to specify which subviews should and shouldn't resize through a control in the inspector (which just sets the subview's autoresizing mask)\ +{\listtext \uc0\u8259 }Collapsing functionality\ +\pard\tx1660\tx2160\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\li2160\fi-2160\ql\qnatural\pardirnatural +\ls6\ilvl2\cf0 {\listtext - }Double click divider to collapse\ +{\listtext - }Drag a divider past half of the subview's minimum width to collapse\ +{\listtext - }Animated collapse: hook a Toggle button up to the split view's toggleCollapse: action to collapse the subview configured as collapsible. The split view will synchronise its state with the button.\ +\pard\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\li720\fi-720\ql\qnatural\pardirnatural +\ls6\ilvl0\cf0 {\listtext \'95 }Removed all split view size constraint functionality from the anchored button bar since BWSplitView handles that now\ +{\listtext \'95 }Replaced the old colors and fonts icons with the new ones from iWork '09\ +{\listtext \'95 }Textured slider: fixed bug where certain areas on the slider weren't clickable, zoom buttons now send an action, and fine tuned mouse scrolling behavior (courtesy of Chris Liscio)\ +{\listtext \'95 }Selectable toolbar: fixed issue where a focus ring would stay visible on a tab change (courtesy of Duncan Wilcox)\ +{\listtext \'95 }Can now customize the font on BWTokenField in IB\ +{\listtext \'95 }Fixed various memory leaks\ +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural +\cf0 \ +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural + +\b \cf0 1.0.4 - Jan 20, 2009\ +\pard\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\li720\fi-720\ql\qnatural\pardirnatural +\ls7\ilvl0 +\b0 \cf0 {\listtext \'95 }Added ability to programmatically disable toolbar items in the selectable toolbar\ +{\listtext \'95 }Added a notification to the selectable toolbar that gets sent whenever a toolbar item has been clicked (see header for details)\ +{\listtext \'95 }Added main header file for easy importing\ +{\listtext \'95 }Fixed issue where the BWToolbarItem inspector wouldn't be updated with the item identifier +\b \ +\pard\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\li720\fi-720\ql\qnatural\pardirnatural +\ls8\ilvl0 +\b0 \cf0 {\listtext \'95 }There's been an API change in BWSheetController. The delegate method now gets passed the button that initiated the sheet close. This is helpful because in the event that there are multiple buttons hooked up to the messageDelegateAndCloseSheet: method, you can distinguish which button called the method and behave accordingly.\ +{\listtext \'95 }Fixed disabled appearance for BWAnchoredPopUpButton\ +{\listtext \'95 }Fixed a bug where a sheet not using BWSheetController could be moved around by its bottom bar\ +{\listtext \'95 }Fixed toolbar item memory leaks +\b \ +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural +\cf0 \ +1.0.3 - Dec 18, 2008\ +\pard\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\li720\fi-720\ql\qnatural\pardirnatural +\ls9\ilvl0 +\b0 \cf0 {\listtext \'95 }64-bit support (courtesy of Rob Rix)\ +{\listtext \'95 }Added disabled appearance and scroll wheel support to BWTexturedSlider\ +{\listtext \'95 }The selectable toolbar panes are now keyboard accessible\ +{\listtext \'95 }Anchored button bar now lets you provide your own delegate implementations for the split view (see the header for details)\ +{\listtext \'95 }Nearly all the headers have been made public\ +{\listtext \'95 }Fixed memory leaks\ +{\listtext \'95 }Minor bug fixes\ +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural + +\b \cf0 \ +1.0.2 - Nov 19, 2008 +\b0 \ +\pard\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\li720\fi-720\ql\qnatural\pardirnatural +\ls10\ilvl0\cf0 {\listtext \'95 }Added a toolbar item with a customizable item identifier\ +{\listtext \'95 }New methods in the BWSelectableToolbar header for programmatically setting the selected toolbar item\ +{\listtext \'95 }Reduced the file size of the framework by 40%\ +{\listtext \'95 }Made the headers for BWSelectableToolbar and BWSplitView public\ +{\listtext \'95 }Fixed a serious bug where IB would crash whenever a window that contained a selectable toolbar had certain properties modified (like whether it had a unified toolbar or could resize)\ +{\listtext \'95 }Fixed bug where if a window in IB with a bottom bar was closed and then opened, its bottom bar would disappear\ +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural + +\b \cf0 \ +1.0.1 - Nov 14, 2008 +\b0 \ +\pard\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\li720\fi-720\ql\qnatural\pardirnatural +\ls11\ilvl0\cf0 {\listtext \'95 }Added Garbage Collection compatibility. Will now compile in GC supported and GC required apps.\ +{\listtext \'95 }Minor bug fix\ +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural + +\b \cf0 \ +1.0 - Nov 13, 2008 +\b0 \ +\pard\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\li720\fi-720\ql\qnatural\pardirnatural +\ls12\ilvl0\cf0 {\listtext \'95 +\fs32 } +\fs28 Initial Release +\fs32 \ +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural +\cf0 \ +\ +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural + +\b\fs36 \cf0 Known Issues\ +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural + +\b0\fs28 \cf0 \ +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural + +\b \cf0 General\ +\pard\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\li720\fi-720\ql\qnatural\pardirnatural +\ls13\ilvl0 +\b0 \cf0 {\listtext \'95 }When you build your project, you may get a warning that says "Could not find object file...". It's harmless and you can ignore it. A fix is being worked on for a future release.\ +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural +\cf0 \ +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural + +\b \cf0 Selectable Toolbar\ +\pard\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\li720\fi-720\ql\qnatural\pardirnatural +\ls14\ilvl0 +\b0 \cf0 {\listtext \'95 }If your IB version is greater than 3.1.1 (672): Simulating is not supported for any document that has a selectable toolbar in it. The toolbar will not be able to save correctly and will be unusable. You will have to quit Interface Builder and restore to a previous version of the nib. Version control is highly recommended. You +\b must +\b0 back up your document on a consistent basis if you want to use this toolbar.\ +\pard\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\li720\fi-720\ql\qnatural\pardirnatural +\ls15\ilvl0\cf0 {\listtext \'95 }Interface Builder currently has a bug where a toolbar won't remember any changes to its configuration since an item was added to it. If you take a standard toolbar, rearrange some items in it or remove a few items, it will not remember that configuration when you save the document. To work around this problem, remove an item from the toolbar and add it back before you save the document.\ +{\listtext \'95 }Undo is not yet supported for active tab switching.\ +{\listtext \'95 }If you want your window with a selectable toolbar to have a bottom bar, drag the bottom bar item to the window like you would normally, but repeat this for each tab in the window.\ +{\listtext \'95 }When you re-order the items in the toolbar you'll have to reselect the toolbar for the "Active Tab" pop-up menu to reflect the new order.\ +{\listtext \'95 }Make sure, in the outline view, not to double click an item in one of the views in the window that is not nested in the window's current content view. Doing so will cause IB to crash. Instead, switch to the tab with the item, then double click it.\ +{\listtext \'95 }Use no more than one selectable toolbar per NIB/XIB. And no more than one document with a selectable toolbar should be open in IB at any particular time.\ +{\listtext \'95 }Removing the separator, space, or flexible space from the toolbar's allowed items will remove all items from the toolbar.\ +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural +\cf0 \ +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural + +\b \cf0 Split View\ +\pard\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\li720\fi-720\ql\qnatural\pardirnatural +\ls16\ilvl0 +\b0 \cf0 {\listtext \'95 }Split view attributes are not yet saved through the autosave name.\ +{\listtext \'95 }The toggle action can't uncollapse a subview that's been collapsed manually by dragging the divider.\ +{\listtext \'95 }For collapsing using the toggle action, there should only be 1 resizable subview in the split view other than the collapsible view (which can be either resizable or non-resizable).\ +{\listtext \'95 }Undo isn't fully supported.\ +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural +\cf0 \ +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural + +\b \cf0 Bottom Bars\ +\pard\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\li720\fi-720\ql\qnatural\pardirnatural +\ls17\ilvl0 +\b0 \cf0 {\listtext \'95 }When using the drag handles to resize certain controls positioned on a bottom bar, the window will take the click and will move while the control stays stationary. As a workaround, try holding the Control key while resizing the control. If that fails, resize it in the inspector.\ +{\listtext \'95 }Bottom bars must be added to the window's content view rather than any subview.\ +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural +\cf0 \ +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural + +\b \cf0 Anchored Button Bar\ +\pard\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\li720\fi-720\ql\qnatural\pardirnatural +\ls18\ilvl0 +\b0 \cf0 {\listtext \'95 }The inspector doesn't update when an undo action is called on a mode change. Just select the mode you want to use in the inspector.\ +{\listtext \'95 }The bar should have a slightly shorter height in the third mode.\ +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural +\cf0 \ +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural + +\b \cf0 Anchored Pop Up Button\ +\pard\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\li720\fi-720\ql\qnatural\pardirnatural +\ls19\ilvl0 +\b0 \cf0 {\listtext \'95 }Only the Pull Down type is available at the moment.\ +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural +\cf0 \ +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural + +\b \cf0 Transparent Scroll View +\b0 \ +\pard\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\li720\fi-720\ql\qnatural\pardirnatural +\ls20\ilvl0\cf0 {\listtext \'95 }Horizontal scrolling is not yet supported.\ +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural + +\fs32 \cf0 \ +\ +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural + +\b\fs36 \cf0 Acknowledgements\ +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural + +\b0\fs28 \cf0 \ +Thanks to Fraser Kuyvenhoven, Ali Lalani, Brent Gulanowski, and Jonathan Hess for giving me some assistance with this project.\ +} \ No newline at end of file diff --git a/Frameworks/BWToolkitFramework.framework/Resources b/Frameworks/BWToolkitFramework.framework/Resources deleted file mode 120000 index 953ee36f..00000000 --- a/Frameworks/BWToolkitFramework.framework/Resources +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/Resources \ No newline at end of file diff --git a/Frameworks/BWToolkitFramework.framework/TexturedSliderPhotoLarge.tif b/Frameworks/BWToolkitFramework.framework/TexturedSliderPhotoLarge.tif new file mode 100644 index 00000000..69c38f91 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/TexturedSliderPhotoLarge.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/TexturedSliderPhotoSmall.tif b/Frameworks/BWToolkitFramework.framework/TexturedSliderPhotoSmall.tif new file mode 100644 index 00000000..f5f644b3 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/TexturedSliderPhotoSmall.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/TexturedSliderSpeakerLoud.png b/Frameworks/BWToolkitFramework.framework/TexturedSliderSpeakerLoud.png new file mode 100644 index 00000000..d7e87f77 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/TexturedSliderSpeakerLoud.png differ diff --git a/Frameworks/BWToolkitFramework.framework/TexturedSliderSpeakerQuiet.png b/Frameworks/BWToolkitFramework.framework/TexturedSliderSpeakerQuiet.png new file mode 100644 index 00000000..5836a7af Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/TexturedSliderSpeakerQuiet.png differ diff --git a/Frameworks/BWToolkitFramework.framework/TexturedSliderThumbN.tiff b/Frameworks/BWToolkitFramework.framework/TexturedSliderThumbN.tiff new file mode 100644 index 00000000..064db7ac Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/TexturedSliderThumbN.tiff differ diff --git a/Frameworks/BWToolkitFramework.framework/TexturedSliderThumbP.tiff b/Frameworks/BWToolkitFramework.framework/TexturedSliderThumbP.tiff new file mode 100644 index 00000000..a62dc01e Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/TexturedSliderThumbP.tiff differ diff --git a/Frameworks/BWToolkitFramework.framework/TexturedSliderTrackFill.tiff b/Frameworks/BWToolkitFramework.framework/TexturedSliderTrackFill.tiff new file mode 100644 index 00000000..fe3105ad Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/TexturedSliderTrackFill.tiff differ diff --git a/Frameworks/BWToolkitFramework.framework/TexturedSliderTrackLeft.tiff b/Frameworks/BWToolkitFramework.framework/TexturedSliderTrackLeft.tiff new file mode 100644 index 00000000..0250746f Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/TexturedSliderTrackLeft.tiff differ diff --git a/Frameworks/BWToolkitFramework.framework/TexturedSliderTrackRight.tiff b/Frameworks/BWToolkitFramework.framework/TexturedSliderTrackRight.tiff new file mode 100644 index 00000000..4ac75734 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/TexturedSliderTrackRight.tiff differ diff --git a/Frameworks/BWToolkitFramework.framework/TokenFieldArrow.tif b/Frameworks/BWToolkitFramework.framework/TokenFieldArrow.tif new file mode 100644 index 00000000..6a6db9ac Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/TokenFieldArrow.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/TokenFieldHighlightedArrow.tif b/Frameworks/BWToolkitFramework.framework/TokenFieldHighlightedArrow.tif new file mode 100644 index 00000000..cb5d30d7 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/TokenFieldHighlightedArrow.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/ToolbarItemColors.tiff b/Frameworks/BWToolkitFramework.framework/ToolbarItemColors.tiff new file mode 100644 index 00000000..c8191661 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/ToolbarItemColors.tiff differ diff --git a/Frameworks/BWToolkitFramework.framework/ToolbarItemFonts.tiff b/Frameworks/BWToolkitFramework.framework/ToolbarItemFonts.tiff new file mode 100644 index 00000000..eeda1835 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/ToolbarItemFonts.tiff differ diff --git a/Frameworks/BWToolkitFramework.framework/TransparentButtonFillN.tiff b/Frameworks/BWToolkitFramework.framework/TransparentButtonFillN.tiff new file mode 100644 index 00000000..d5dda9f6 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/TransparentButtonFillN.tiff differ diff --git a/Frameworks/BWToolkitFramework.framework/TransparentButtonFillP.tiff b/Frameworks/BWToolkitFramework.framework/TransparentButtonFillP.tiff new file mode 100644 index 00000000..31237382 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/TransparentButtonFillP.tiff differ diff --git a/Frameworks/BWToolkitFramework.framework/TransparentButtonLeftN.tiff b/Frameworks/BWToolkitFramework.framework/TransparentButtonLeftN.tiff new file mode 100644 index 00000000..f346e2a9 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/TransparentButtonLeftN.tiff differ diff --git a/Frameworks/BWToolkitFramework.framework/TransparentButtonLeftP.tiff b/Frameworks/BWToolkitFramework.framework/TransparentButtonLeftP.tiff new file mode 100644 index 00000000..7d764aa2 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/TransparentButtonLeftP.tiff differ diff --git a/Frameworks/BWToolkitFramework.framework/TransparentButtonRightN.tiff b/Frameworks/BWToolkitFramework.framework/TransparentButtonRightN.tiff new file mode 100644 index 00000000..8fd41997 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/TransparentButtonRightN.tiff differ diff --git a/Frameworks/BWToolkitFramework.framework/TransparentButtonRightP.tiff b/Frameworks/BWToolkitFramework.framework/TransparentButtonRightP.tiff new file mode 100644 index 00000000..d000b4f2 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/TransparentButtonRightP.tiff differ diff --git a/Frameworks/BWToolkitFramework.framework/TransparentCheckboxOffN.tiff b/Frameworks/BWToolkitFramework.framework/TransparentCheckboxOffN.tiff new file mode 100644 index 00000000..61137927 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/TransparentCheckboxOffN.tiff differ diff --git a/Frameworks/BWToolkitFramework.framework/TransparentCheckboxOffP.tiff b/Frameworks/BWToolkitFramework.framework/TransparentCheckboxOffP.tiff new file mode 100644 index 00000000..2eebeed0 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/TransparentCheckboxOffP.tiff differ diff --git a/Frameworks/BWToolkitFramework.framework/TransparentCheckboxOnN.tiff b/Frameworks/BWToolkitFramework.framework/TransparentCheckboxOnN.tiff new file mode 100644 index 00000000..5642a498 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/TransparentCheckboxOnN.tiff differ diff --git a/Frameworks/BWToolkitFramework.framework/TransparentCheckboxOnP.tiff b/Frameworks/BWToolkitFramework.framework/TransparentCheckboxOnP.tiff new file mode 100644 index 00000000..71f11e25 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/TransparentCheckboxOnP.tiff differ diff --git a/Frameworks/BWToolkitFramework.framework/TransparentPopUpFillN.tiff b/Frameworks/BWToolkitFramework.framework/TransparentPopUpFillN.tiff new file mode 100644 index 00000000..26e948e7 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/TransparentPopUpFillN.tiff differ diff --git a/Frameworks/BWToolkitFramework.framework/TransparentPopUpFillP.tiff b/Frameworks/BWToolkitFramework.framework/TransparentPopUpFillP.tiff new file mode 100644 index 00000000..31237382 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/TransparentPopUpFillP.tiff differ diff --git a/Frameworks/BWToolkitFramework.framework/TransparentPopUpLeftN.tiff b/Frameworks/BWToolkitFramework.framework/TransparentPopUpLeftN.tiff new file mode 100644 index 00000000..fa4cb8a6 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/TransparentPopUpLeftN.tiff differ diff --git a/Frameworks/BWToolkitFramework.framework/TransparentPopUpLeftP.tiff b/Frameworks/BWToolkitFramework.framework/TransparentPopUpLeftP.tiff new file mode 100644 index 00000000..f402d79e Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/TransparentPopUpLeftP.tiff differ diff --git a/Frameworks/BWToolkitFramework.framework/TransparentPopUpPullDownRightN.tif b/Frameworks/BWToolkitFramework.framework/TransparentPopUpPullDownRightN.tif new file mode 100644 index 00000000..e280e2f5 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/TransparentPopUpPullDownRightN.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/TransparentPopUpPullDownRightP.tif b/Frameworks/BWToolkitFramework.framework/TransparentPopUpPullDownRightP.tif new file mode 100644 index 00000000..029d05ae Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/TransparentPopUpPullDownRightP.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/TransparentPopUpRightN.tiff b/Frameworks/BWToolkitFramework.framework/TransparentPopUpRightN.tiff new file mode 100644 index 00000000..9b9bcf58 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/TransparentPopUpRightN.tiff differ diff --git a/Frameworks/BWToolkitFramework.framework/TransparentPopUpRightP.tiff b/Frameworks/BWToolkitFramework.framework/TransparentPopUpRightP.tiff new file mode 100644 index 00000000..dbc14743 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/TransparentPopUpRightP.tiff differ diff --git a/Frameworks/BWToolkitFramework.framework/TransparentScrollerKnobBottom.tif b/Frameworks/BWToolkitFramework.framework/TransparentScrollerKnobBottom.tif new file mode 100644 index 00000000..6fe6c902 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/TransparentScrollerKnobBottom.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/TransparentScrollerKnobHorizontalFill.tif b/Frameworks/BWToolkitFramework.framework/TransparentScrollerKnobHorizontalFill.tif new file mode 100644 index 00000000..ad8e4b01 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/TransparentScrollerKnobHorizontalFill.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/TransparentScrollerKnobLeft.tif b/Frameworks/BWToolkitFramework.framework/TransparentScrollerKnobLeft.tif new file mode 100644 index 00000000..ef91486d Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/TransparentScrollerKnobLeft.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/TransparentScrollerKnobRight.tif b/Frameworks/BWToolkitFramework.framework/TransparentScrollerKnobRight.tif new file mode 100644 index 00000000..5a8707b5 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/TransparentScrollerKnobRight.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/TransparentScrollerKnobTop.tif b/Frameworks/BWToolkitFramework.framework/TransparentScrollerKnobTop.tif new file mode 100644 index 00000000..75e79458 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/TransparentScrollerKnobTop.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/TransparentScrollerKnobVerticalFill.tif b/Frameworks/BWToolkitFramework.framework/TransparentScrollerKnobVerticalFill.tif new file mode 100644 index 00000000..66fd2a53 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/TransparentScrollerKnobVerticalFill.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/TransparentScrollerSlotBottom.tif b/Frameworks/BWToolkitFramework.framework/TransparentScrollerSlotBottom.tif new file mode 100644 index 00000000..60f0d5fe Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/TransparentScrollerSlotBottom.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/TransparentScrollerSlotHorizontalFill.tif b/Frameworks/BWToolkitFramework.framework/TransparentScrollerSlotHorizontalFill.tif new file mode 100644 index 00000000..cd904d37 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/TransparentScrollerSlotHorizontalFill.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/TransparentScrollerSlotLeft.tif b/Frameworks/BWToolkitFramework.framework/TransparentScrollerSlotLeft.tif new file mode 100644 index 00000000..4bcd1a45 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/TransparentScrollerSlotLeft.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/TransparentScrollerSlotRight.tif b/Frameworks/BWToolkitFramework.framework/TransparentScrollerSlotRight.tif new file mode 100644 index 00000000..f9a5ab96 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/TransparentScrollerSlotRight.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/TransparentScrollerSlotTop.tif b/Frameworks/BWToolkitFramework.framework/TransparentScrollerSlotTop.tif new file mode 100644 index 00000000..799a1cbe Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/TransparentScrollerSlotTop.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/TransparentScrollerSlotVerticalFill.tif b/Frameworks/BWToolkitFramework.framework/TransparentScrollerSlotVerticalFill.tif new file mode 100644 index 00000000..3c72ef17 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/TransparentScrollerSlotVerticalFill.tif differ diff --git a/Frameworks/BWToolkitFramework.framework/TransparentSliderThumbN.tiff b/Frameworks/BWToolkitFramework.framework/TransparentSliderThumbN.tiff new file mode 100644 index 00000000..99d06785 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/TransparentSliderThumbN.tiff differ diff --git a/Frameworks/BWToolkitFramework.framework/TransparentSliderThumbP.tiff b/Frameworks/BWToolkitFramework.framework/TransparentSliderThumbP.tiff new file mode 100644 index 00000000..0ede44a4 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/TransparentSliderThumbP.tiff differ diff --git a/Frameworks/BWToolkitFramework.framework/TransparentSliderTrackFill.tiff b/Frameworks/BWToolkitFramework.framework/TransparentSliderTrackFill.tiff new file mode 100644 index 00000000..79fdd98b Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/TransparentSliderTrackFill.tiff differ diff --git a/Frameworks/BWToolkitFramework.framework/TransparentSliderTrackLeft.tiff b/Frameworks/BWToolkitFramework.framework/TransparentSliderTrackLeft.tiff new file mode 100644 index 00000000..e8a39382 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/TransparentSliderTrackLeft.tiff differ diff --git a/Frameworks/BWToolkitFramework.framework/TransparentSliderTrackRight.tiff b/Frameworks/BWToolkitFramework.framework/TransparentSliderTrackRight.tiff new file mode 100644 index 00000000..58c2b17d Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/TransparentSliderTrackRight.tiff differ diff --git a/Frameworks/BWToolkitFramework.framework/TransparentSliderTriangleThumbN.tiff b/Frameworks/BWToolkitFramework.framework/TransparentSliderTriangleThumbN.tiff new file mode 100644 index 00000000..14bad9e8 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/TransparentSliderTriangleThumbN.tiff differ diff --git a/Frameworks/BWToolkitFramework.framework/TransparentSliderTriangleThumbP.tiff b/Frameworks/BWToolkitFramework.framework/TransparentSliderTriangleThumbP.tiff new file mode 100644 index 00000000..c1e5d2a8 Binary files /dev/null and b/Frameworks/BWToolkitFramework.framework/TransparentSliderTriangleThumbP.tiff differ -- cgit v1.2.3