diff --git a/AppKit/CPTabViewItem.j b/AppKit/CPTabViewItem.j index 113a539f6..3bec89bd1 100644 --- a/AppKit/CPTabViewItem.j +++ b/AppKit/CPTabViewItem.j @@ -24,6 +24,7 @@ @import "CPView.j" @class CPTabView +@class CPViewControler /* The tab is currently selected. @@ -72,6 +73,17 @@ CPPressedTab = 2; float _width @accessors(property=width); } +/* + +*/ ++ (CPTabViewItem)tabViewItemWithViewController:(CPViewController)aViewController +{ + var item = [[CPTabViewItem alloc] init]; + [item setViewController:aViewController]; + + return item; +} + - (id)init { return [self initWithIdentifier:@""]; @@ -191,6 +203,7 @@ CPPressedTab = 2; _view = aView; if ([_tabView selectedTabViewItem] == self) + [_tabView _displayItemView:_view]; } /*! @@ -198,6 +211,9 @@ CPPressedTab = 2; */ - (CPView)view { + if (!_view && _viewController) + return [_viewController view]; // The view controller loads here. + return _view; } @@ -236,6 +252,27 @@ CPPressedTab = 2; _tabView = aView; } +/*! + Sets the specified view controller for the tab view item. + @param aViewController an instance of CPViewController. +*/ +- (void)setViewController:(CPViewController)aViewController +{ + _viewController = aViewController; + + var identifier = [aViewController cibName], + title = [_viewController title]; + + if (identifier) + _identifier = identifier; + + if (title) + [self setLabel:title]; + + if ([_tabView selectedTabViewItem] == self) + [_tabView _displayItemView:[_viewController view]]; +} + @end var CPTabViewItemIdentifierKey = "CPTabViewItemIdentifierKey",