aboutsummaryrefslogtreecommitdiffstats
path: root/Frameworks
diff options
context:
space:
mode:
authorrowanbeentje <rowan@beent.je>2010-05-23 21:44:59 +0000
committerrowanbeentje <rowan@beent.je>2010-05-23 21:44:59 +0000
commitc661b409eaa0e29d9e012b79e7a66574a554817a (patch)
tree49b310ded9a226a66aa53444c9ba112824854f68 /Frameworks
parentb66006f3755c6a57dfc60d4133bc4dc4da0fef56 (diff)
downloadsequelpro-c661b409eaa0e29d9e012b79e7a66574a554817a.tar.gz
sequelpro-c661b409eaa0e29d9e012b79e7a66574a554817a.tar.bz2
sequelpro-c661b409eaa0e29d9e012b79e7a66574a554817a.zip
Initial implementation of tabs:
- Addition of PSMTabBar framework - Rework away from a document-based TableDocument - Support tabs throughout the application - Add menu items for creating tabs, and add support for dragging tabs to different windows
Diffstat (limited to 'Frameworks')
l---------Frameworks/PSMTabBar.framework/Headers1
l---------Frameworks/PSMTabBar.framework/PSMTabBar1
l---------Frameworks/PSMTabBar.framework/Resources1
-rw-r--r--Frameworks/PSMTabBar.framework/Versions/A/Headers/PSMOverflowPopUpButton.h28
-rw-r--r--Frameworks/PSMTabBar.framework/Versions/A/Headers/PSMRolloverButton.h29
-rw-r--r--Frameworks/PSMTabBar.framework/Versions/A/Headers/PSMTabBarCell.h117
-rw-r--r--Frameworks/PSMTabBar.framework/Versions/A/Headers/PSMTabBarControl.h235
-rw-r--r--Frameworks/PSMTabBar.framework/Versions/A/Headers/PSMTabBarController.h33
-rw-r--r--Frameworks/PSMTabBar.framework/Versions/A/Headers/PSMTabStyle.h57
-rwxr-xr-xFrameworks/PSMTabBar.framework/Versions/A/PSMTabBarbin0 -> 947884 bytes
-rw-r--r--Frameworks/PSMTabBar.framework/Versions/A/Resources/AdiumGradient.pngbin0 -> 93 bytes
-rw-r--r--Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabCloseDirty_Front.pngbin0 -> 292 bytes
-rw-r--r--Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabCloseDirty_Front_Pressed.pngbin0 -> 292 bytes
-rw-r--r--Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabCloseDirty_Front_Rollover.pngbin0 -> 297 bytes
-rw-r--r--Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabClose_Front.pngbin0 -> 307 bytes
-rw-r--r--Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabClose_Front_Pressed.pngbin0 -> 310 bytes
-rw-r--r--Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabClose_Front_Rollover.pngbin0 -> 317 bytes
-rw-r--r--Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabNew.pngbin0 -> 371 bytes
-rw-r--r--Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabNewPressed.pngbin0 -> 380 bytes
-rw-r--r--Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabNewRollover.pngbin0 -> 380 bytes
-rw-r--r--Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabsBackground.pngbin0 -> 380 bytes
-rw-r--r--Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabsDown.pngbin0 -> 192 bytes
-rw-r--r--Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabsDownGraphite.pngbin0 -> 240 bytes
-rw-r--r--Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabsDownNonKey.pngbin0 -> 182 bytes
-rw-r--r--Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabsSeparator.pngbin0 -> 159 bytes
-rw-r--r--Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabsSeparatorDown.pngbin0 -> 175 bytes
-rw-r--r--Frameworks/PSMTabBar.framework/Versions/A/Resources/Info.plist22
-rw-r--r--Frameworks/PSMTabBar.framework/Versions/A/Resources/TabClose_Dirty.pngbin0 -> 327 bytes
-rw-r--r--Frameworks/PSMTabBar.framework/Versions/A/Resources/TabClose_Dirty_Pressed.pngbin0 -> 320 bytes
-rw-r--r--Frameworks/PSMTabBar.framework/Versions/A/Resources/TabClose_Dirty_Rollover.pngbin0 -> 320 bytes
-rw-r--r--Frameworks/PSMTabBar.framework/Versions/A/Resources/TabClose_Front.pngbin0 -> 309 bytes
-rw-r--r--Frameworks/PSMTabBar.framework/Versions/A/Resources/TabClose_Front_Pressed.pngbin0 -> 310 bytes
-rw-r--r--Frameworks/PSMTabBar.framework/Versions/A/Resources/TabClose_Front_Rollover.pngbin0 -> 308 bytes
-rw-r--r--Frameworks/PSMTabBar.framework/Versions/A/Resources/TabNewMetal.pngbin0 -> 380 bytes
-rw-r--r--Frameworks/PSMTabBar.framework/Versions/A/Resources/TabNewMetalPressed.pngbin0 -> 380 bytes
-rw-r--r--Frameworks/PSMTabBar.framework/Versions/A/Resources/TabNewMetalRollover.pngbin0 -> 384 bytes
-rw-r--r--Frameworks/PSMTabBar.framework/Versions/A/Resources/overflowImage.pngbin0 -> 256 bytes
-rw-r--r--Frameworks/PSMTabBar.framework/Versions/A/Resources/overflowImagePressed.pngbin0 -> 250 bytes
-rw-r--r--Frameworks/PSMTabBar.framework/Versions/A/Resources/pi.pngbin0 -> 564 bytes
l---------Frameworks/PSMTabBar.framework/Versions/Current1
40 files changed, 525 insertions, 0 deletions
diff --git a/Frameworks/PSMTabBar.framework/Headers b/Frameworks/PSMTabBar.framework/Headers
new file mode 120000
index 00000000..a177d2a6
--- /dev/null
+++ b/Frameworks/PSMTabBar.framework/Headers
@@ -0,0 +1 @@
+Versions/Current/Headers \ No newline at end of file
diff --git a/Frameworks/PSMTabBar.framework/PSMTabBar b/Frameworks/PSMTabBar.framework/PSMTabBar
new file mode 120000
index 00000000..2ea343ab
--- /dev/null
+++ b/Frameworks/PSMTabBar.framework/PSMTabBar
@@ -0,0 +1 @@
+Versions/Current/PSMTabBar \ No newline at end of file
diff --git a/Frameworks/PSMTabBar.framework/Resources b/Frameworks/PSMTabBar.framework/Resources
new file mode 120000
index 00000000..953ee36f
--- /dev/null
+++ b/Frameworks/PSMTabBar.framework/Resources
@@ -0,0 +1 @@
+Versions/Current/Resources \ No newline at end of file
diff --git a/Frameworks/PSMTabBar.framework/Versions/A/Headers/PSMOverflowPopUpButton.h b/Frameworks/PSMTabBar.framework/Versions/A/Headers/PSMOverflowPopUpButton.h
new file mode 100644
index 00000000..19ce95f1
--- /dev/null
+++ b/Frameworks/PSMTabBar.framework/Versions/A/Headers/PSMOverflowPopUpButton.h
@@ -0,0 +1,28 @@
+//
+// PSMOverflowPopUpButton.h
+// PSMTabBarControl
+//
+// Created by John Pannell on 11/4/05.
+// Copyright 2005 Positive Spin Media. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+
+
+@interface PSMOverflowPopUpButton : NSPopUpButton {
+ NSImage *_PSMTabBarOverflowPopUpImage;
+ NSImage *_PSMTabBarOverflowDownPopUpImage;
+ BOOL _down;
+ BOOL _animatingAlternateImage;
+ NSTimer *_animationTimer;
+ CGFloat _animationValue;
+}
+
+//alternate image display
+- (BOOL)animatingAlternateImage;
+- (void)setAnimatingAlternateImage:(BOOL)flag;
+
+// archiving
+- (void)encodeWithCoder:(NSCoder *)aCoder;
+- (id)initWithCoder:(NSCoder *)aDecoder;
+@end
diff --git a/Frameworks/PSMTabBar.framework/Versions/A/Headers/PSMRolloverButton.h b/Frameworks/PSMTabBar.framework/Versions/A/Headers/PSMRolloverButton.h
new file mode 100644
index 00000000..d78b47c2
--- /dev/null
+++ b/Frameworks/PSMTabBar.framework/Versions/A/Headers/PSMRolloverButton.h
@@ -0,0 +1,29 @@
+//
+// PSMOverflowPopUpButton.h
+// NetScrape
+//
+// Created by John Pannell on 8/4/04.
+// Copyright 2004 Positive Spin Media. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+
+@interface PSMRolloverButton : NSButton
+{
+ NSImage *_rolloverImage;
+ NSImage *_usualImage;
+ NSTrackingRectTag _myTrackingRectTag;
+}
+
+// the regular image
+- (void)setUsualImage:(NSImage *)newImage;
+- (NSImage *)usualImage;
+
+// the rollover image
+- (void)setRolloverImage:(NSImage *)newImage;
+- (NSImage *)rolloverImage;
+
+// tracking rect for mouse events
+- (void)addTrackingRect;
+- (void)removeTrackingRect;
+@end \ No newline at end of file
diff --git a/Frameworks/PSMTabBar.framework/Versions/A/Headers/PSMTabBarCell.h b/Frameworks/PSMTabBar.framework/Versions/A/Headers/PSMTabBarCell.h
new file mode 100644
index 00000000..519c7ac4
--- /dev/null
+++ b/Frameworks/PSMTabBar.framework/Versions/A/Headers/PSMTabBarCell.h
@@ -0,0 +1,117 @@
+//
+// PSMTabBarCell.h
+// PSMTabBarControl
+//
+// Created by John Pannell on 10/13/05.
+// Copyright 2005 Positive Spin Media. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+#import "PSMTabBarControl.h"
+
+@class PSMTabBarControl;
+@class PSMProgressIndicator;
+
+@interface PSMTabBarCell : NSActionCell {
+ // sizing
+ NSRect _frame;
+ NSSize _stringSize;
+ NSInteger _currentStep;
+ BOOL _isPlaceholder;
+
+ // state
+ NSInteger _tabState;
+ NSTrackingRectTag _closeButtonTrackingTag; // left side tracking, if dragging
+ NSTrackingRectTag _cellTrackingTag; // right side tracking, if dragging
+ BOOL _closeButtonOver;
+ BOOL _closeButtonPressed;
+ PSMProgressIndicator *_indicator;
+ BOOL _isInOverflowMenu;
+ BOOL _hasCloseButton;
+ BOOL _isCloseButtonSuppressed;
+ BOOL _hasIcon;
+ BOOL _hasLargeImage;
+ NSInteger _count;
+ NSColor *_countColor;
+ BOOL _isEdited;
+}
+
+// creation/destruction
+- (id)initWithControlView:(PSMTabBarControl *)controlView;
+- (id)initPlaceholderWithFrame:(NSRect)frame expanded:(BOOL)value inControlView:(PSMTabBarControl *)controlView;
+- (void)dealloc;
+
+// accessors
+- (id)controlView;
+- (void)setControlView:(id)view;
+- (NSTrackingRectTag)closeButtonTrackingTag;
+- (void)setCloseButtonTrackingTag:(NSTrackingRectTag)tag;
+- (NSTrackingRectTag)cellTrackingTag;
+- (void)setCellTrackingTag:(NSTrackingRectTag)tag;
+- (CGFloat)width;
+- (NSRect)frame;
+- (void)setFrame:(NSRect)rect;
+- (void)setStringValue:(NSString *)aString;
+- (NSSize)stringSize;
+- (NSAttributedString *)attributedStringValue;
+- (NSInteger)tabState;
+- (void)setTabState:(NSInteger)state;
+- (NSProgressIndicator *)indicator;
+- (BOOL)isInOverflowMenu;
+- (void)setIsInOverflowMenu:(BOOL)value;
+- (BOOL)closeButtonPressed;
+- (void)setCloseButtonPressed:(BOOL)value;
+- (BOOL)closeButtonOver;
+- (void)setCloseButtonOver:(BOOL)value;
+- (BOOL)hasCloseButton;
+- (void)setHasCloseButton:(BOOL)set;
+- (void)setCloseButtonSuppressed:(BOOL)suppress;
+- (BOOL)isCloseButtonSuppressed;
+- (BOOL)hasIcon;
+- (void)setHasIcon:(BOOL)value;
+- (BOOL)hasLargeImage;
+- (void)setHasLargeImage:(BOOL)value;
+- (NSInteger)count;
+- (void)setCount:(NSInteger)value;
+- (NSColor *)countColor;
+- (void)setCountColor:(NSColor *)value;
+- (BOOL)isPlaceholder;
+- (void)setIsPlaceholder:(BOOL)value;
+- (NSInteger)currentStep;
+- (void)setCurrentStep:(NSInteger)value;
+- (BOOL)isEdited;
+- (void)setIsEdited:(BOOL)value;
+
+// component attributes
+- (NSRect)indicatorRectForFrame:(NSRect)cellFrame;
+- (NSRect)closeButtonRectForFrame:(NSRect)cellFrame;
+- (CGFloat)minimumWidthOfCell;
+- (CGFloat)desiredWidthOfCell;
+
+// drawing
+- (void)drawWithFrame:(NSRect)cellFrame inView:(NSView *)controlView;
+
+// tracking the mouse
+- (void)mouseEntered:(NSEvent *)theEvent;
+- (void)mouseExited:(NSEvent *)theEvent;
+
+// drag support
+- (NSImage *)dragImage;
+
+// archiving
+- (void)encodeWithCoder:(NSCoder *)aCoder;
+- (id)initWithCoder:(NSCoder *)aDecoder;
+
+@end
+
+@interface PSMTabBarControl (CellAccessors)
+
+- (id<PSMTabStyle>)style;
+
+@end
+
+@interface NSObject (IdentifierAccesors)
+
+- (NSImage *)largeImage;
+
+@end
diff --git a/Frameworks/PSMTabBar.framework/Versions/A/Headers/PSMTabBarControl.h b/Frameworks/PSMTabBar.framework/Versions/A/Headers/PSMTabBarControl.h
new file mode 100644
index 00000000..c61b92f4
--- /dev/null
+++ b/Frameworks/PSMTabBar.framework/Versions/A/Headers/PSMTabBarControl.h
@@ -0,0 +1,235 @@
+//
+// PSMTabBarControl.h
+// PSMTabBarControl
+//
+// Created by John Pannell on 10/13/05.
+// Copyright 2005 Positive Spin Media. All rights reserved.
+//
+
+/*
+ This view provides a control interface to manage a regular NSTabView. It looks and works like the tabbed browsing interface of many popular browsers.
+ */
+
+#import <Cocoa/Cocoa.h>
+
+#define PSMTabDragDidEndNotification @"PSMTabDragDidEndNotification"
+#define PSMTabDragDidBeginNotification @"PSMTabDragDidBeginNotification"
+
+#define kPSMTabBarControlHeight 22
+// internal cell border
+#define MARGIN_X 6
+#define MARGIN_Y 3
+// padding between objects
+#define kPSMTabBarCellPadding 4
+// fixed size objects
+#define kPSMMinimumTitleWidth 30
+#define kPSMTabBarIndicatorWidth 16.0
+#define kPSMTabBarIconWidth 16.0
+#define kPSMHideAnimationSteps 3.0
+
+// Value used in _currentStep to indicate that resizing operation is not in progress
+#define kPSMIsNotBeingResized -1
+
+// Value used in _currentStep when a resizing operation has just been started
+#define kPSMStartResizeAnimation 0
+
+@class PSMOverflowPopUpButton, PSMRolloverButton, PSMTabBarCell, PSMTabBarController;
+@protocol PSMTabStyle;
+
+typedef enum {
+ PSMTabBarHorizontalOrientation,
+ PSMTabBarVerticalOrientation
+} PSMTabBarOrientation;
+
+typedef enum {
+ PSMTabBarTearOffAlphaWindow,
+ PSMTabBarTearOffMiniwindow
+} PSMTabBarTearOffStyle;
+
+enum {
+ PSMTab_SelectedMask = 1 << 1,
+ PSMTab_LeftIsSelectedMask = 1 << 2,
+ PSMTab_RightIsSelectedMask = 1 << 3,
+ PSMTab_PositionLeftMask = 1 << 4,
+ PSMTab_PositionMiddleMask = 1 << 5,
+ PSMTab_PositionRightMask = 1 << 6,
+ PSMTab_PositionSingleMask = 1 << 7
+};
+
+@interface PSMTabBarControl : NSControl {
+
+ // control basics
+ NSMutableArray *_cells; // the cells that draw the tabs
+ IBOutlet NSTabView *tabView; // the tab view being navigated
+ PSMOverflowPopUpButton *_overflowPopUpButton; // for too many tabs
+ PSMRolloverButton *_addTabButton;
+ PSMTabBarController *_controller;
+
+ // Spring-loading.
+ NSTimer *_springTimer;
+ NSTabViewItem *_tabViewItemWithSpring;
+
+ // drawing style
+ id<PSMTabStyle> style;
+ BOOL _canCloseOnlyTab;
+ BOOL _disableTabClose;
+ BOOL _hideForSingleTab;
+ BOOL _showAddTabButton;
+ BOOL _sizeCellsToFit;
+ BOOL _useOverflowMenu;
+ BOOL _alwaysShowActiveTab;
+ BOOL _allowsScrubbing;
+ NSInteger _resizeAreaCompensation;
+ PSMTabBarOrientation _orientation;
+ BOOL _automaticallyAnimates;
+ NSTimer *_animationTimer;
+ PSMTabBarTearOffStyle _tearOffStyle;
+
+ // behavior
+ BOOL _allowsBackgroundTabClosing;
+ BOOL _selectsTabsOnMouseDown;
+
+ // vertical tab resizing
+ BOOL _allowsResizing;
+ BOOL _resizing;
+
+ // cell width
+ NSInteger _cellMinWidth;
+ NSInteger _cellMaxWidth;
+ NSInteger _cellOptimumWidth;
+
+ // animation for hide/show
+ NSInteger _currentStep;
+ BOOL _isHidden;
+ IBOutlet id partnerView; // gets resized when hide/show
+ BOOL _awakenedFromNib;
+ NSInteger _tabBarWidth;
+ NSTimer *_showHideAnimationTimer;
+
+ // drag and drop
+ NSEvent *_lastMouseDownEvent; // keep this for dragging reference
+ BOOL _didDrag;
+ BOOL _closeClicked;
+
+ // MVC help
+ IBOutlet id delegate;
+}
+
+// control characteristics
++ (NSBundle *)bundle;
+- (CGFloat)availableCellWidth;
+- (NSRect)genericCellRect;
+
+// control configuration
+- (PSMTabBarOrientation)orientation;
+- (void)setOrientation:(PSMTabBarOrientation)value;
+- (BOOL)canCloseOnlyTab;
+- (void)setCanCloseOnlyTab:(BOOL)value;
+- (BOOL)disableTabClose;
+- (void)setDisableTabClose:(BOOL)value;
+- (id<PSMTabStyle>)style;
+- (void)setStyle:(id <PSMTabStyle>)newStyle;
+- (NSString *)styleName;
+- (void)setStyleNamed:(NSString *)name;
+- (BOOL)hideForSingleTab;
+- (void)setHideForSingleTab:(BOOL)value;
+- (BOOL)showAddTabButton;
+- (void)setShowAddTabButton:(BOOL)value;
+- (NSInteger)cellMinWidth;
+- (void)setCellMinWidth:(NSInteger)value;
+- (NSInteger)cellMaxWidth;
+- (void)setCellMaxWidth:(NSInteger)value;
+- (NSInteger)cellOptimumWidth;
+- (void)setCellOptimumWidth:(NSInteger)value;
+- (BOOL)sizeCellsToFit;
+- (void)setSizeCellsToFit:(BOOL)value;
+- (BOOL)useOverflowMenu;
+- (void)setUseOverflowMenu:(BOOL)value;
+- (BOOL)allowsBackgroundTabClosing;
+- (void)setAllowsBackgroundTabClosing:(BOOL)value;
+- (BOOL)allowsResizing;
+- (void)setAllowsResizing:(BOOL)value;
+- (BOOL)selectsTabsOnMouseDown;
+- (void)setSelectsTabsOnMouseDown:(BOOL)value;
+- (BOOL)automaticallyAnimates;
+- (void)setAutomaticallyAnimates:(BOOL)value;
+- (BOOL)alwaysShowActiveTab;
+- (void)setAlwaysShowActiveTab:(BOOL)value;
+- (BOOL)allowsScrubbing;
+- (void)setAllowsScrubbing:(BOOL)value;
+- (PSMTabBarTearOffStyle)tearOffStyle;
+- (void)setTearOffStyle:(PSMTabBarTearOffStyle)tearOffStyle;
+
+// accessors
+- (NSTabView *)tabView;
+- (void)setTabView:(NSTabView *)view;
+- (id)delegate;
+- (void)setDelegate:(id)object;
+- (id)partnerView;
+- (void)setPartnerView:(id)view;
+
+// the buttons
+- (PSMRolloverButton *)addTabButton;
+- (PSMOverflowPopUpButton *)overflowPopUpButton;
+
+// tab information
+- (NSMutableArray *)representedTabViewItems;
+- (NSInteger)numberOfVisibleTabs;
+- (PSMTabBarCell *)lastVisibleTab;
+
+// special effects
+- (void)hideTabBar:(BOOL)hide animate:(BOOL)animate;
+- (BOOL)isTabBarHidden;
+- (BOOL)isAnimating;
+
+// internal bindings methods also used by the tab drag assistant
+- (void)bindPropertiesForCell:(PSMTabBarCell *)cell andTabViewItem:(NSTabViewItem *)item;
+- (void)removeTabForCell:(PSMTabBarCell *)cell;
+
+@end
+
+
+@interface NSObject (TabBarControlDelegateMethods)
+
+//Standard NSTabView methods
+- (BOOL)tabView:(NSTabView *)aTabView shouldCloseTabViewItem:(NSTabViewItem *)tabViewItem;
+- (void)tabView:(NSTabView *)aTabView didCloseTabViewItem:(NSTabViewItem *)tabViewItem;
+
+//"Spring-loaded" tabs methods
+- (NSArray *)allowedDraggedTypesForTabView:(NSTabView *)aTabView;
+- (void)tabView:(NSTabView *)aTabView acceptedDraggingInfo:(id <NSDraggingInfo>)draggingInfo onTabViewItem:(NSTabViewItem *)tabViewItem;
+
+//Contextual menu method
+- (NSMenu *)tabView:(NSTabView *)aTabView menuForTabViewItem:(NSTabViewItem *)tabViewItem;
+
+//Drag and drop methods
+- (BOOL)tabView:(NSTabView *)aTabView shouldDragTabViewItem:(NSTabViewItem *)tabViewItem fromTabBar:(PSMTabBarControl *)tabBarControl;
+- (BOOL)tabView:(NSTabView *)aTabView shouldDropTabViewItem:(NSTabViewItem *)tabViewItem inTabBar:(PSMTabBarControl *)tabBarControl;
+- (BOOL)tabView:(NSTabView *)aTabView shouldAllowTabViewItem:(NSTabViewItem *)tabViewItem toLeaveTabBar:(PSMTabBarControl *)tabBarControl;
+- (void)tabView:(NSTabView*)aTabView didDropTabViewItem:(NSTabViewItem *)tabViewItem inTabBar:(PSMTabBarControl *)tabBarControl;
+
+
+//Tear-off tabs methods
+- (NSImage *)tabView:(NSTabView *)aTabView imageForTabViewItem:(NSTabViewItem *)tabViewItem offset:(NSSize *)offset styleMask:(NSUInteger *)styleMask;
+- (PSMTabBarControl *)tabView:(NSTabView *)aTabView newTabBarForDraggedTabViewItem:(NSTabViewItem *)tabViewItem atPoint:(NSPoint)point;
+- (void)tabView:(NSTabView *)aTabView closeWindowForLastTabViewItem:(NSTabViewItem *)tabViewItem;
+
+//Overflow menu validation
+- (BOOL)tabView:(NSTabView *)aTabView validateOverflowMenuItem:(NSMenuItem *)menuItem forTabViewItem:(NSTabViewItem *)tabViewItem;
+- (void)tabView:(NSTabView *)aTabView tabViewItem:(NSTabViewItem *)tabViewItem isInOverflowMenu:(BOOL)inOverflowMenu;
+
+//tab bar hiding methods
+- (void)tabView:(NSTabView *)aTabView tabBarDidHide:(PSMTabBarControl *)tabBarControl;
+- (void)tabView:(NSTabView *)aTabView tabBarDidUnhide:(PSMTabBarControl *)tabBarControl;
+- (CGFloat)desiredWidthForVerticalTabBar:(PSMTabBarControl *)tabBarControl;
+
+//closing
+- (BOOL)tabView:(NSTabView *)aTabView disableTabCloseForTabViewItem:(NSTabViewItem *)tabViewItem;
+
+//tooltips
+- (NSString *)tabView:(NSTabView *)aTabView toolTipForTabViewItem:(NSTabViewItem *)tabViewItem;
+
+//accessibility
+- (NSString *)accessibilityStringForTabView:(NSTabView *)aTabView objectCount:(NSInteger)objectCount;
+
+@end
diff --git a/Frameworks/PSMTabBar.framework/Versions/A/Headers/PSMTabBarController.h b/Frameworks/PSMTabBar.framework/Versions/A/Headers/PSMTabBarController.h
new file mode 100644
index 00000000..c675b981
--- /dev/null
+++ b/Frameworks/PSMTabBar.framework/Versions/A/Headers/PSMTabBarController.h
@@ -0,0 +1,33 @@
+//
+// PSMTabBarController.h
+// PSMTabBarControl
+//
+// Created by Kent Sutherland on 11/24/06.
+// Copyright 2006 Kent Sutherland. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+
+@class PSMTabBarControl, PSMTabBarCell;
+
+@interface PSMTabBarController : NSObject {
+ PSMTabBarControl *_control;
+ NSMutableArray *_cellTrackingRects, *_closeButtonTrackingRects;
+ NSMutableArray *_cellFrames;
+ NSRect _addButtonRect;
+ NSMenu *_overflowMenu;
+}
+
+- (id)initWithTabBarControl:(PSMTabBarControl *)control;
+
+- (NSRect)addButtonRect;
+- (NSMenu *)overflowMenu;
+- (NSRect)cellTrackingRectAtIndex:(NSInteger)index;
+- (NSRect)closeButtonTrackingRectAtIndex:(NSInteger)index;
+- (NSRect)cellFrameAtIndex:(NSInteger)index;
+
+- (void)setSelectedCell:(PSMTabBarCell *)cell;
+
+- (void)layoutCells;
+
+@end
diff --git a/Frameworks/PSMTabBar.framework/Versions/A/Headers/PSMTabStyle.h b/Frameworks/PSMTabBar.framework/Versions/A/Headers/PSMTabStyle.h
new file mode 100644
index 00000000..23c826fa
--- /dev/null
+++ b/Frameworks/PSMTabBar.framework/Versions/A/Headers/PSMTabStyle.h
@@ -0,0 +1,57 @@
+//
+// PSMTabStyle.h
+// PSMTabBarControl
+//
+// Created by John Pannell on 2/17/06.
+// Copyright 2006 Positive Spin Media. All rights reserved.
+//
+
+/*
+Protocol to be observed by all style delegate objects. These objects handle the drawing responsibilities for PSMTabBarCell; once the control has been assigned a style, the background and cells draw consistent with that style. Design pattern and implementation by David Smith, Seth Willits, and Chris Forsythe, all touch up and errors by John P. :-)
+*/
+
+#import "PSMTabBarCell.h"
+#import "PSMTabBarControl.h"
+
+@protocol PSMTabStyle <NSObject>
+
+// identity
+- (NSString *)name;
+
+// control specific parameters
+- (CGFloat)leftMarginForTabBarControl;
+- (CGFloat)rightMarginForTabBarControl;
+- (CGFloat)topMarginForTabBarControl;
+- (void)setOrientation:(PSMTabBarOrientation)value;
+
+// add tab button
+- (NSImage *)addTabButtonImage;
+- (NSImage *)addTabButtonPressedImage;
+- (NSImage *)addTabButtonRolloverImage;
+
+// cell specific parameters
+- (NSRect)dragRectForTabCell:(PSMTabBarCell *)cell orientation:(PSMTabBarOrientation)orientation;
+- (NSRect)closeButtonRectForTabCell:(PSMTabBarCell *)cell withFrame:(NSRect)cellFrame;
+- (NSRect)iconRectForTabCell:(PSMTabBarCell *)cell;
+- (NSRect)indicatorRectForTabCell:(PSMTabBarCell *)cell;
+- (NSRect)objectCounterRectForTabCell:(PSMTabBarCell *)cell;
+- (CGFloat)minimumWidthOfTabCell:(PSMTabBarCell *)cell;
+- (CGFloat)desiredWidthOfTabCell:(PSMTabBarCell *)cell;
+- (CGFloat)tabCellHeight;
+
+// cell values
+- (NSAttributedString *)attributedObjectCountValueForTabCell:(PSMTabBarCell *)cell;
+- (NSAttributedString *)attributedStringValueForTabCell:(PSMTabBarCell *)cell;
+
+// drawing
+- (void)drawTabCell:(PSMTabBarCell *)cell;
+- (void)drawBackgroundInRect:(NSRect)rect;
+- (void)drawTabBar:(PSMTabBarControl *)bar inRect:(NSRect)rect;
+
+@end
+
+@interface PSMTabBarControl (StyleAccessors)
+
+- (NSMutableArray *)cells;
+
+@end
diff --git a/Frameworks/PSMTabBar.framework/Versions/A/PSMTabBar b/Frameworks/PSMTabBar.framework/Versions/A/PSMTabBar
new file mode 100755
index 00000000..107e6fab
--- /dev/null
+++ b/Frameworks/PSMTabBar.framework/Versions/A/PSMTabBar
Binary files differ
diff --git a/Frameworks/PSMTabBar.framework/Versions/A/Resources/AdiumGradient.png b/Frameworks/PSMTabBar.framework/Versions/A/Resources/AdiumGradient.png
new file mode 100644
index 00000000..d410a88a
--- /dev/null
+++ b/Frameworks/PSMTabBar.framework/Versions/A/Resources/AdiumGradient.png
Binary files differ
diff --git a/Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabCloseDirty_Front.png b/Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabCloseDirty_Front.png
new file mode 100644
index 00000000..77d22050
--- /dev/null
+++ b/Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabCloseDirty_Front.png
Binary files differ
diff --git a/Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabCloseDirty_Front_Pressed.png b/Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabCloseDirty_Front_Pressed.png
new file mode 100644
index 00000000..197ea95c
--- /dev/null
+++ b/Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabCloseDirty_Front_Pressed.png
Binary files differ
diff --git a/Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabCloseDirty_Front_Rollover.png b/Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabCloseDirty_Front_Rollover.png
new file mode 100644
index 00000000..2dfe5777
--- /dev/null
+++ b/Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabCloseDirty_Front_Rollover.png
Binary files differ
diff --git a/Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabClose_Front.png b/Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabClose_Front.png
new file mode 100644
index 00000000..02b72d39
--- /dev/null
+++ b/Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabClose_Front.png
Binary files differ
diff --git a/Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabClose_Front_Pressed.png b/Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabClose_Front_Pressed.png
new file mode 100644
index 00000000..f81125a0
--- /dev/null
+++ b/Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabClose_Front_Pressed.png
Binary files differ
diff --git a/Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabClose_Front_Rollover.png b/Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabClose_Front_Rollover.png
new file mode 100644
index 00000000..4f6b865f
--- /dev/null
+++ b/Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabClose_Front_Rollover.png
Binary files differ
diff --git a/Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabNew.png b/Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabNew.png
new file mode 100644
index 00000000..10a83705
--- /dev/null
+++ b/Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabNew.png
Binary files differ
diff --git a/Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabNewPressed.png b/Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabNewPressed.png
new file mode 100644
index 00000000..cb4dd10f
--- /dev/null
+++ b/Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabNewPressed.png
Binary files differ
diff --git a/Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabNewRollover.png b/Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabNewRollover.png
new file mode 100644
index 00000000..4d469f8a
--- /dev/null
+++ b/Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabNewRollover.png
Binary files differ
diff --git a/Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabsBackground.png b/Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabsBackground.png
new file mode 100644
index 00000000..b9cd1d0f
--- /dev/null
+++ b/Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabsBackground.png
Binary files differ
diff --git a/Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabsDown.png b/Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabsDown.png
new file mode 100644
index 00000000..6fed84c6
--- /dev/null
+++ b/Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabsDown.png
Binary files differ
diff --git a/Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabsDownGraphite.png b/Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabsDownGraphite.png
new file mode 100644
index 00000000..15bcc19c
--- /dev/null
+++ b/Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabsDownGraphite.png
Binary files differ
diff --git a/Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabsDownNonKey.png b/Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabsDownNonKey.png
new file mode 100644
index 00000000..df2c1365
--- /dev/null
+++ b/Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabsDownNonKey.png
Binary files differ
diff --git a/Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabsSeparator.png b/Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabsSeparator.png
new file mode 100644
index 00000000..be82692d
--- /dev/null
+++ b/Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabsSeparator.png
Binary files differ
diff --git a/Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabsSeparatorDown.png b/Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabsSeparatorDown.png
new file mode 100644
index 00000000..72b7878b
--- /dev/null
+++ b/Frameworks/PSMTabBar.framework/Versions/A/Resources/AquaTabsSeparatorDown.png
Binary files differ
diff --git a/Frameworks/PSMTabBar.framework/Versions/A/Resources/Info.plist b/Frameworks/PSMTabBar.framework/Versions/A/Resources/Info.plist
new file mode 100644
index 00000000..8b82536e
--- /dev/null
+++ b/Frameworks/PSMTabBar.framework/Versions/A/Resources/Info.plist
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleExecutable</key>
+ <string>PSMTabBar</string>
+ <key>CFBundleIdentifier</key>
+ <string>com.positivespinmedia.PSMTabBarFramework</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleName</key>
+ <string>PSMTabBar</string>
+ <key>CFBundlePackageType</key>
+ <string>FMWK</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleVersion</key>
+ <string>1.0</string>
+</dict>
+</plist>
diff --git a/Frameworks/PSMTabBar.framework/Versions/A/Resources/TabClose_Dirty.png b/Frameworks/PSMTabBar.framework/Versions/A/Resources/TabClose_Dirty.png
new file mode 100644
index 00000000..60a25ba3
--- /dev/null
+++ b/Frameworks/PSMTabBar.framework/Versions/A/Resources/TabClose_Dirty.png
Binary files differ
diff --git a/Frameworks/PSMTabBar.framework/Versions/A/Resources/TabClose_Dirty_Pressed.png b/Frameworks/PSMTabBar.framework/Versions/A/Resources/TabClose_Dirty_Pressed.png
new file mode 100644
index 00000000..978dc1c7
--- /dev/null
+++ b/Frameworks/PSMTabBar.framework/Versions/A/Resources/TabClose_Dirty_Pressed.png
Binary files differ
diff --git a/Frameworks/PSMTabBar.framework/Versions/A/Resources/TabClose_Dirty_Rollover.png b/Frameworks/PSMTabBar.framework/Versions/A/Resources/TabClose_Dirty_Rollover.png
new file mode 100644
index 00000000..7b8924da
--- /dev/null
+++ b/Frameworks/PSMTabBar.framework/Versions/A/Resources/TabClose_Dirty_Rollover.png
Binary files differ
diff --git a/Frameworks/PSMTabBar.framework/Versions/A/Resources/TabClose_Front.png b/Frameworks/PSMTabBar.framework/Versions/A/Resources/TabClose_Front.png
new file mode 100644
index 00000000..e7bf88e7
--- /dev/null
+++ b/Frameworks/PSMTabBar.framework/Versions/A/Resources/TabClose_Front.png
Binary files differ
diff --git a/Frameworks/PSMTabBar.framework/Versions/A/Resources/TabClose_Front_Pressed.png b/Frameworks/PSMTabBar.framework/Versions/A/Resources/TabClose_Front_Pressed.png
new file mode 100644
index 00000000..feaf7281
--- /dev/null
+++ b/Frameworks/PSMTabBar.framework/Versions/A/Resources/TabClose_Front_Pressed.png
Binary files differ
diff --git a/Frameworks/PSMTabBar.framework/Versions/A/Resources/TabClose_Front_Rollover.png b/Frameworks/PSMTabBar.framework/Versions/A/Resources/TabClose_Front_Rollover.png
new file mode 100644
index 00000000..865bd1fb
--- /dev/null
+++ b/Frameworks/PSMTabBar.framework/Versions/A/Resources/TabClose_Front_Rollover.png
Binary files differ
diff --git a/Frameworks/PSMTabBar.framework/Versions/A/Resources/TabNewMetal.png b/Frameworks/PSMTabBar.framework/Versions/A/Resources/TabNewMetal.png
new file mode 100644
index 00000000..be02d708
--- /dev/null
+++ b/Frameworks/PSMTabBar.framework/Versions/A/Resources/TabNewMetal.png
Binary files differ
diff --git a/Frameworks/PSMTabBar.framework/Versions/A/Resources/TabNewMetalPressed.png b/Frameworks/PSMTabBar.framework/Versions/A/Resources/TabNewMetalPressed.png
new file mode 100644
index 00000000..18118ec3
--- /dev/null
+++ b/Frameworks/PSMTabBar.framework/Versions/A/Resources/TabNewMetalPressed.png
Binary files differ
diff --git a/Frameworks/PSMTabBar.framework/Versions/A/Resources/TabNewMetalRollover.png b/Frameworks/PSMTabBar.framework/Versions/A/Resources/TabNewMetalRollover.png
new file mode 100644
index 00000000..b1308164
--- /dev/null
+++ b/Frameworks/PSMTabBar.framework/Versions/A/Resources/TabNewMetalRollover.png
Binary files differ
diff --git a/Frameworks/PSMTabBar.framework/Versions/A/Resources/overflowImage.png b/Frameworks/PSMTabBar.framework/Versions/A/Resources/overflowImage.png
new file mode 100644
index 00000000..2b762555
--- /dev/null
+++ b/Frameworks/PSMTabBar.framework/Versions/A/Resources/overflowImage.png
Binary files differ
diff --git a/Frameworks/PSMTabBar.framework/Versions/A/Resources/overflowImagePressed.png b/Frameworks/PSMTabBar.framework/Versions/A/Resources/overflowImagePressed.png
new file mode 100644
index 00000000..b3918b34
--- /dev/null
+++ b/Frameworks/PSMTabBar.framework/Versions/A/Resources/overflowImagePressed.png
Binary files differ
diff --git a/Frameworks/PSMTabBar.framework/Versions/A/Resources/pi.png b/Frameworks/PSMTabBar.framework/Versions/A/Resources/pi.png
new file mode 100644
index 00000000..4d598dc7
--- /dev/null
+++ b/Frameworks/PSMTabBar.framework/Versions/A/Resources/pi.png
Binary files differ
diff --git a/Frameworks/PSMTabBar.framework/Versions/Current b/Frameworks/PSMTabBar.framework/Versions/Current
new file mode 120000
index 00000000..8c7e5a66
--- /dev/null
+++ b/Frameworks/PSMTabBar.framework/Versions/Current
@@ -0,0 +1 @@
+A \ No newline at end of file