diff --git a/AppKit/CPSegmentedControl.j b/AppKit/CPSegmentedControl.j index 99bafdfce..bc57454d4 100644 --- a/AppKit/CPSegmentedControl.j +++ b/AppKit/CPSegmentedControl.j @@ -115,8 +115,7 @@ CPSegmentSwitchTrackingMomentary = 2; /*! @ignore */ - (void)setSegments:(CPArray)segments { - [_segments removeAllObjects]; - [_themeStates removeAllObjects]; + [self removeSegmentsAtIndexes:[CPIndexSet indexSetWithIndexesInRange:CPMakeRange(0, [self segmentCount])]]; [self insertSegments:segments atIndexes:[CPIndexSet indexSetWithIndexesInRange:CPMakeRange(0, [segments count])]]; } @@ -135,6 +134,9 @@ CPSegmentSwitchTrackingMomentary = 2; [_segments insertObjects:segments atIndexes:indices]; [_themeStates insertObjects:newStates atIndexes:indices]; + + if (_selectedSegment >= [indices firstIndex]) + _selectedSegment += [indices count]; } /*! @ignore */ @@ -143,6 +145,16 @@ CPSegmentSwitchTrackingMomentary = 2; if ([indices count] == 0) return; + [indices enumerateIndexesUsingBlock:function(idx, stop) + { + [[_segments objectAtIndex:idx] setSelected:NO]; + }]; + + if ([indices containsIndex:_selectedSegment]) + _selectedSegment = -1; + else if ([indices lastIndex] < _selectedSegment) + _selectedSegment -= [indices count]; + [_segments removeObjectsAtIndexes:indices]; [_themeStates removeObjectsAtIndexes:indices]; } diff --git a/AppKit/CPTabView.j b/AppKit/CPTabView.j index ec145d802..cf4a43232 100644 --- a/AppKit/CPTabView.j +++ b/AppKit/CPTabView.j @@ -66,7 +66,7 @@ var CPTabViewDidSelectTabViewItemSelector = 1 << 1, CPSegmentedControl _tabs; CPBox _box; - CPNumber _selectedIndex; + CPTabViewItem _selectedTabViewItem; CPTabViewType _type; CPFont _font; @@ -79,9 +79,8 @@ var CPTabViewDidSelectTabViewItemSelector = 1 << 1, { if (self = [super initWithFrame:aFrame]) { - _items = [CPArray array]; - [self _init]; + _selectedTabViewItem = nil; [self setTabViewType:CPTopTabsBezelBorder]; } @@ -90,10 +89,9 @@ var CPTabViewDidSelectTabViewItemSelector = 1 << 1, - (void)_init { - _selectedIndex = CPNotFound; - - _tabs = [[CPSegmentedControl alloc] initWithFrame:CGRectMake(0, 0, 0, 0)]; + _tabs = [[CPSegmentedControl alloc] initWithFrame:CGRectMakeZero()]; [_tabs setHitTests:NO]; + [_tabs setSegments:[CPArray array]]; var height = [_tabs valueForThemeAttribute:@"min-size"].height; [_tabs setFrameSize:CGSizeMake(0, height)]; @@ -105,6 +103,11 @@ var CPTabViewDidSelectTabViewItemSelector = 1 << 1, [self addSubview:_tabs]; } +- (CPArray)items +{ + return [_tabs segments]; +} + // Adding and Removing Tabs /*! Adds a CPTabViewItem to the tab view. @@ -112,7 +115,7 @@ var CPTabViewDidSelectTabViewItemSelector = 1 << 1, */ - (void)addTabViewItem:(CPTabViewItem)aTabViewItem { - [self insertTabViewItem:aTabViewItem atIndex:[_items count]]; + [self insertTabViewItem:aTabViewItem atIndex:[self numberOfTabViewItems]]; } /*! @@ -122,15 +125,18 @@ var CPTabViewDidSelectTabViewItemSelector = 1 << 1, */ - (void)insertTabViewItem:(CPTabViewItem)aTabViewItem atIndex:(CPUInteger)anIndex { - [_items insertObject:aTabViewItem atIndex:anIndex]; + [self _insertTabViewItems:[aTabViewItem] atIndexes:[CPIndexSet indexSetWithIndex:anIndex]]; +} - [self _updateItems]; - [self _repositionTabs]; +- (void)_insertTabViewItems:(CPArray)tabViewItems atIndexes:(CPIndexSet)indexes +{ + [_tabs insertSegments:tabViewItems atIndexes:indexes]; + [tabViewItems makeObjectsPerformSelector:@selector(_setTabView:) withObject:self]; - [aTabViewItem _setTabView:self]; + [self tileWithChangedItem:[tabViewItems firstObject]]; + [self _reverseSetContent]; - if (_delegateSelectors & CPTabViewDidChangeNumberOfTabViewItemsSelector) - [_delegate tabViewDidChangeNumberOfTabViewItems:self]; + [self _sendDelegateTabViewDidChangeNumberOfTabViewItems]; } /*! @@ -139,23 +145,38 @@ var CPTabViewDidSelectTabViewItemSelector = 1 << 1, */ - (void)removeTabViewItem:(CPTabViewItem)aTabViewItem { - var count = [_items count]; - for (var i = 0; i < count; i++) - { - if ([_items objectAtIndex:i] === aTabViewItem) - { - [_items removeObjectAtIndex:i]; - break; - } - } + var idx = [[self items] indexOfObjectIdenticalTo:aTabViewItem]; - [self _updateItems]; - [self _repositionTabs]; + if (idx == CPNotFound) + return; + [_tabs removeSegmentsAtIndexes:[CPIndexSet indexSetWithIndex:idx]]; [aTabViewItem _setTabView:nil]; - if (_delegateSelectors & CPTabViewDidChangeNumberOfTabViewItemsSelector) - [_delegate tabViewDidChangeNumberOfTabViewItems:self]; + [self tileWithChangedItem:nil]; + [self _didRemoveTabViewItem:aTabViewItem atIndex:idx]; + [self _reverseSetContent]; + + [self _sendDelegateTabViewDidChangeNumberOfTabViewItems]; +} + +- (void)_didRemoveTabViewItem:(CPTabViewItem)aTabViewItem atIndex:(CPInteger)idx +{ + if ([self selectedIndexBinder]) + return; + + if (_selectedTabViewItem == aTabViewItem) + { + var didSelect = NO; + + if (idx > 0) + didSelect = [self selectTabViewItemAtIndex:idx - 1]; + else if ([self numberOfTabViewItems] > 0) + didSelect = [self selectTabViewItemAtIndex:0]; + + if (didSelect == NO) + _selectedTabViewItem == nil; + } } // Accessing Tabs @@ -166,7 +187,7 @@ var CPTabViewDidSelectTabViewItemSelector = 1 << 1, */ - (int)indexOfTabViewItem:(CPTabViewItem)aTabViewItem { - return [_items indexOfObjectIdenticalTo:aTabViewItem]; + return [[self items] indexOfObjectIdenticalTo:aTabViewItem]; } /*! @@ -176,11 +197,10 @@ var CPTabViewDidSelectTabViewItemSelector = 1 << 1, */ - (int)indexOfTabViewItemWithIdentifier:(CPString)anIdentifier { - for (var index = [_items count]; index >= 0; index--) - if ([[_items[index] identifier] isEqual:anIdentifier]) - return index; - - return CPNotFound; + return [[self items] indexOfObjectPassingTest:function(item, idx, stop) + { + [[item identifier] isEqual:anIdentifier]; + }]; } /*! @@ -189,7 +209,7 @@ var CPTabViewDidSelectTabViewItemSelector = 1 << 1, */ - (unsigned)numberOfTabViewItems { - return [_items count]; + return [[self items] count]; } /*! @@ -198,7 +218,7 @@ var CPTabViewDidSelectTabViewItemSelector = 1 << 1, */ - (CPTabViewItem)tabViewItemAtIndex:(CPUInteger)anIndex { - return [_items objectAtIndex:anIndex]; + return [[self items] objectAtIndex:anIndex]; } /*! @@ -207,7 +227,7 @@ var CPTabViewDidSelectTabViewItemSelector = 1 << 1, */ - (CPArray)tabViewItems { - return [_items copy]; // Copy? + return [[self items] copy]; // Copy? } // Selecting a Tab @@ -217,7 +237,7 @@ var CPTabViewDidSelectTabViewItemSelector = 1 << 1, */ - (void)selectFirstTabViewItem:(id)aSender { - if ([_items count] === 0) + if ([self numberOfTabViewItems] === 0) return; // throw? [self selectTabViewItemAtIndex:0]; @@ -229,10 +249,10 @@ var CPTabViewDidSelectTabViewItemSelector = 1 << 1, */ - (void)selectLastTabViewItem:(id)aSender { - if ([_items count] === 0) + if ([self numberOfTabViewItems] === 0) return; // throw? - [self selectTabViewItemAtIndex:[_items count] - 1]; + [self selectTabViewItemAtIndex:[self numberOfTabViewItems] - 1]; } /*! @@ -241,12 +261,12 @@ var CPTabViewDidSelectTabViewItemSelector = 1 << 1, */ - (void)selectNextTabViewItem:(id)aSender { - if (_selectedIndex === CPNotFound) + if (_selectedTabViewItem === nil) return; - var nextIndex = _selectedIndex + 1; + var nextIndex = [self indexOfTabViewItem:_selectedTabViewItem] + 1; - if (nextIndex === [_items count]) + if (nextIndex === [self numberOfTabViewItems]) // does nothing. According to spec at (http://developer.apple.com/mac/library/DOCUMENTATION/Cocoa/Reference/ApplicationKit/Classes/NSTabView_Class/Reference/Reference.html#//apple_ref/occ/instm/NSTabView/selectNextTabViewItem:) return; @@ -259,10 +279,10 @@ var CPTabViewDidSelectTabViewItemSelector = 1 << 1, */ - (void)selectPreviousTabViewItem:(id)aSender { - if (_selectedIndex === CPNotFound) + if (_selectedTabViewItem === nil) return; - var previousIndex = _selectedIndex - 1; + var previousIndex = [self indexOfTabViewItem:_selectedTabViewItem] - 1; if (previousIndex < 0) return; // does nothing. See above. @@ -285,22 +305,32 @@ var CPTabViewDidSelectTabViewItemSelector = 1 << 1, */ - (BOOL)selectTabViewItemAtIndex:(CPUInteger)anIndex { - if (anIndex === _selectedIndex) - return; + if (![self _selectTabViewItemAtIndex:anIndex]) + return NO; + //[self _reverseSetSelectedIndex]; + + return YES; +} + +- (BOOL)_selectTabViewItemAtIndex:(CPUInteger)anIndex +{ var aTabViewItem = [self tabViewItemAtIndex:anIndex]; + if (aTabViewItem == _selectedTabViewItem) + return NO; + if ((_delegateSelectors & CPTabViewShouldSelectTabViewItemSelector) && ![_delegate tabView:self shouldSelectTabViewItem:aTabViewItem]) return NO; if (_delegateSelectors & CPTabViewWillSelectTabViewItemSelector) [_delegate tabView:self willSelectTabViewItem:aTabViewItem]; - [_tabs selectSegmentWithTag:anIndex]; - [self _setSelectedIndex:anIndex]; + [_tabs setSelectedSegment:anIndex]; + _selectedTabViewItem = aTabViewItem; - if (_delegateSelectors & CPTabViewDidSelectTabViewItemSelector) - [_delegate tabView:self didSelectTabViewItem:aTabViewItem]; + [self _displayItemView:[aTabViewItem view]]; + [self _sendDelegateDidSelectTabViewItem:aTabViewItem]; return YES; } @@ -311,10 +341,7 @@ var CPTabViewDidSelectTabViewItemSelector = 1 << 1, */ - (CPTabViewItem)selectedTabViewItem { - if (_selectedIndex != CPNotFound) - return [_items objectAtIndex:_selectedIndex]; - - return nil; + return _selectedTabViewItem; } // Modifying the font @@ -375,6 +402,14 @@ var CPTabViewDidSelectTabViewItemSelector = 1 << 1, [self setNeedsLayout]; } +- (void)tileWithChangedItem:(CPTabViewItem)aTabViewItem +{ + var segment = aTabViewItem ? [self indexOfTabViewItem:aTabViewItem] : 0; + [_tabs tileWithChangedSegment:segment]; + + [self setNeedsLayout]; +} + - (void)layoutSubviews { // Even if CPTabView's autoresizesSubviews is NO, _tabs and _box has to be laid out. @@ -392,7 +427,6 @@ var CPTabViewDidSelectTabViewItemSelector = 1 << 1, [_box setFrame:CGRectMake(0, origin, CGRectGetWidth(aFrame), CGRectGetHeight(aFrame) - segmentedHeight / 2)]; - [self _updateItems]; [self _repositionTabs]; } } @@ -470,30 +504,23 @@ var CPTabViewDidSelectTabViewItemSelector = 1 << 1, [_tabs setCenter:CGPointMake(horizontalCenterOfSelf, verticalCenterOfTabs)]; } -- (void)_setSelectedIndex:(CPNumber)index +- (void)_displayItemView:(CPView)aView { - _selectedIndex = index; - [self _setContentViewFromItem:[_items objectAtIndex:_selectedIndex]]; + [_box setContentView:aView]; } -- (void)_setContentViewFromItem:(CPTabViewItem)anItem +// DELEGATE METHODS + +- (void)_sendDelegateDidSelectTabViewItem:(CPTabViewItem)aTabViewItem { - [_box setContentView:[anItem view]]; + if (_delegateSelectors & CPTabViewDidSelectTabViewItemSelector) + [_delegate tabView:self didSelectTabViewItem:aTabViewItem]; } -- (void)_updateItems +- (void)_sendDelegateTabViewDidChangeNumberOfTabViewItems { - var count = [_items count]; - [_tabs setSegmentCount:count]; - - for (var i = 0; i < count; i++) - { - [_tabs setLabel:[[_items objectAtIndex:i] label] forSegment:i]; - [_tabs setTag:i forSegment:i]; - } - - if (_selectedIndex === CPNotFound) - [self selectFirstTabViewItem:self]; + if (_delegateSelectors & CPTabViewDidChangeNumberOfTabViewItemsSelector) + [_delegate tabViewDidChangeNumberOfTabViewItems:self]; } @end @@ -515,12 +542,12 @@ var CPTabViewItemsKey = "CPTabViewItemsKey", _font = [aCoder decodeObjectForKey:CPTabViewFontKey]; [_tabs setFont:_font]; - _items = [aCoder decodeObjectForKey:CPTabViewItemsKey]; - [_items makeObjectsPerformSelector:@selector(_setTabView:) withObject:self]; + var items = [aCoder decodeObjectForKey:CPTabViewItemsKey] || [CPArray array]; + [self _insertTabViewItems:items atIndexes:[CPIndexSet indexSetWithIndexesInRange:CPMakeRange(0, [items count])]]; [self setDelegate:[aCoder decodeObjectForKey:CPTabViewDelegateKey]]; - self.selectOnAwake = [aCoder decodeObjectForKey:CPTabViewSelectedItemKey]; + _selectedTabViewItem = [aCoder decodeObjectForKey:CPTabViewSelectedItemKey]; _type = [aCoder decodeIntForKey:CPTabViewTypeKey]; } @@ -531,12 +558,13 @@ var CPTabViewItemsKey = "CPTabViewItemsKey", { // This cannot be run in initWithCoder because it might call selectTabViewItem:, which is // not safe to call before the views of the tab views items are fully decoded. - [self _updateItems]; - if (self.selectOnAwake) + if (_selectedTabViewItem) { - [self selectTabViewItem:self.selectOnAwake]; - delete self.selectOnAwake; + var idx = [self indexOfTabViewItem:_selectedTabViewItem]; + + if (idx !== CPNotFound) + [self selectTabViewItemAtIndex:idx]; } var type = _type; @@ -558,9 +586,7 @@ var CPTabViewItemsKey = "CPTabViewItemsKey", [aCoder encodeObject:_items forKey:CPTabViewItemsKey]; - var selected = [self selectedTabViewItem]; - if (selected) - [aCoder encodeObject:selected forKey:CPTabViewSelectedItemKey]; + [aCoder encodeConditionalObject:_selectedTabViewItem forKey:CPTabViewSelectedItemKey]; [aCoder encodeInt:_type forKey:CPTabViewTypeKey]; [aCoder encodeObject:_font forKey:CPTabViewFontKey]; diff --git a/AppKit/CPTabViewItem.j b/AppKit/CPTabViewItem.j index 922a1b51f..113a539f6 100644 --- a/AppKit/CPTabViewItem.j +++ b/AppKit/CPTabViewItem.j @@ -55,6 +55,7 @@ CPPressedTab = 2; { id _identifier; CPString _label; + CPInteger _tag @accessors(property=tag); CPView _view; CPView _auxiliaryView; @@ -114,8 +115,11 @@ CPPressedTab = 2; */ - (void)setLabel:(CPString)aLabel { + if ([aLabel isEqualToString:_label]) + return; + _label = aLabel; - [_tabView setNeedsLayout]; + [_tabView tileWithChangedItem:self]; } /*! @@ -187,7 +191,6 @@ CPPressedTab = 2; _view = aView; if ([_tabView selectedTabViewItem] == self) - [_tabView _setContentViewFromItem:self]; } /*! diff --git a/Tests/AppKit/CPTabViewTest.j b/Tests/AppKit/CPTabViewTest.j index 6d668742d..ad5b74550 100644 --- a/Tests/AppKit/CPTabViewTest.j +++ b/Tests/AppKit/CPTabViewTest.j @@ -39,6 +39,8 @@ [_tabView addTabViewItem:_tabItem1]; [_tabView addTabViewItem:_tabItem2]; + + [[CPRunLoop currentRunLoop] performSelectors]; } - (void)testCreate @@ -93,4 +95,46 @@ [self assertNull:[_tabItem1 tabView]]; } +- (void)testInsertTabViewItem +{ + [_tabView selectTabViewItem:_tabItem2]; + + [self assert:[_tabView numberOfTabViewItems] equals:2]; + [self assert:[_tabView selectedTabViewItem] equals:_tabItem2]; + + var tabItem3 = [[CPTabViewItem alloc] initWithIdentifier:@"insert"]; + [tabItem3 setLabel:@"insert"]; + [_tabView insertTabViewItem:tabItem3 atIndex:0]; + + [self assert:[_tabView numberOfTabViewItems] equals:3]; + [self assert:[_tabView selectedTabViewItem] equals:_tabItem2]; + [self assert:[_tabView indexOfTabViewItem:tabItem3] equals:0]; +} + +- (void)testRemoveSelectedTabViewItem +{ + [_tabView selectTabViewItem:_tabItem2]; + + [self assert:[_tabView numberOfTabViewItems] equals:2]; + [self assert:[_tabView selectedTabViewItem] equals:_tabItem2]; + + [_tabView removeTabViewItem:_tabItem2]; + + [self assert:[_tabView numberOfTabViewItems] equals:1]; + [self assert:[_tabView selectedTabViewItem] equals:_tabItem1]; +} + +- (void)testRemoveSelectedFirstTabViewItem +{ + [_tabView selectTabViewItem:_tabItem1]; + + [self assert:[_tabView numberOfTabViewItems] equals:2]; + [self assert:[_tabView selectedTabViewItem] equals:_tabItem1]; + + [_tabView removeTabViewItem:_tabItem1]; + + [self assert:[_tabView numberOfTabViewItems] equals:1]; + [self assert:[_tabView selectedTabViewItem] equals:_tabItem2]; +} + @end diff --git a/Tests/Manual/CPTabViewNib/Resources/MainMenu.xib b/Tests/Manual/CPTabViewNib/Resources/MainMenu.xib index 22f32b7e1..8cdb134dd 100644 --- a/Tests/Manual/CPTabViewNib/Resources/MainMenu.xib +++ b/Tests/Manual/CPTabViewNib/Resources/MainMenu.xib @@ -1,39 +1,36 @@ - + 1050 - 11D50 - 2166 - 1138.32 - 568.00 + 14C109 + 6751 + 1344.72 + 757.30 com.apple.InterfaceBuilder.CocoaPlugin - 2166 + 6751 - - YES - NSTabViewItem - NSView - NSWindowTemplate - NSTabView + + NSButton + NSButtonCell + NSCustomObject + NSSlider NSSliderCell + NSTabView + NSTabViewItem NSTextField NSTextFieldCell - NSSlider - NSButtonCell - NSButton - NSCustomObject - - - YES + NSView + NSWindowTemplate + + com.apple.InterfaceBuilder.CocoaPlugin - + PluginDependencyRecalculationVersion - - YES + NSApplication @@ -55,24 +52,20 @@ 274 - - YES + 286 - {{13, 40}, {454, 344}} + {{13, 40.000000383795708}, {454, 344}} - - - YES + 1 256 - - YES + 301 @@ -81,7 +74,7 @@ YES - -2080244224 + -2080374784 0 @@ -99,8 +92,9 @@ NO NO + NO - + {{10, 33}, {434, 298}} @@ -119,7 +113,7 @@ - 256 + 274 {{10, 33}, {434, 298}} @@ -134,8 +128,7 @@ 256 - - YES + 301 @@ -143,11 +136,11 @@ YES - -1804468671 + -1804599231 272630784 - LucidaGrande + YES 13 1044 @@ -172,8 +165,10 @@ + NO + 1 - + {{10, 33}, {434, 298}} @@ -181,26 +176,23 @@ - + 0 YES YES - - YES + - + 283 - {{478, 40}, {454, 344}} + {{478, 40.000000383795708}, {453.99999982220186, 344}} - - YES - + 0 YES @@ -212,11 +204,10 @@ {{594, 14}, {222, 17}} - _NS:3944 YES - 68288064 + 68157504 272630784 A Tab View Item Sould be Selected @@ -230,6 +221,8 @@ + NO + 1 @@ -241,21 +234,22 @@ _NS:687 YES - 67239424 + 67108864 134217728 Replace Current View _NS:687 - -2038284033 + -2038284288 129 200 25 + NO - + {950, 390} @@ -268,10 +262,9 @@ AppController - + - - YES + delegate @@ -328,116 +321,105 @@ 487 - + - - YES + 0 - - YES - + -2 - + File's Owner -1 - + First Responder -3 - + Application 371 - - YES + - - + + 372 - - YES + - + 450 - + 460 - - YES + - + 461 - - YES + - + 462 - - YES + - + 463 - - YES + - + 464 - - YES + - + 452 - - YES + - + @@ -448,10 +430,9 @@ 456 - - YES + - + @@ -462,18 +443,15 @@ 465 - - YES - + 475 - - YES + - + @@ -484,10 +462,9 @@ 479 - - YES + - + @@ -498,10 +475,9 @@ 488 - - YES + - + @@ -509,144 +485,115 @@ - - - - YES - - YES - -1.IBPluginDependency - -2.IBPluginDependency - -3.IBPluginDependency - 371.IBPluginDependency - 371.IBWindowTemplateEditedContentRect - 371.NSWindowTemplate.visibleAtLaunch - 372.IBPluginDependency - 450.IBPluginDependency - 452.IBPluginDependency - 453.IBPluginDependency - 456.IBPluginDependency - 457.IBPluginDependency - 460.IBPluginDependency - 461.IBPluginDependency - 462.IBPluginDependency - 463.IBPluginDependency - 464.IBPluginDependency - 465.IBPluginDependency - 475.IBPluginDependency - 476.IBPluginDependency - 479.IBPluginDependency - 480.IBPluginDependency - 488.IBPluginDependency - 489.IBPluginDependency - - - YES - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{209, 447}, {480, 360}} - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - 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 - - + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{209, 447}, {480, 360}} + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + 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 - - - + 489 - - YES + AppController NSObject - - changeView: - id - - - changeView: - + + id + id + id + + + changeView: id - - - YES - - YES - nibTabView - nibTabViewEmpty + + insertTabViewItem: + id - - YES - NSTabView - NSTabView + + removeTabViewItem: + id - - - YES - - YES - nibTabView - nibTabViewEmpty + + + NSButton + NSStepper + NSTabView + NSTabView + NSStepper + NSViewController + + + + fromViewController + NSButton - - YES - - nibTabView - NSTabView - - - nibTabViewEmpty - NSTabView - + + insertStepper + NSStepper - + + nibTabView + NSTabView + + + nibTabViewEmpty + NSTabView + + + removeStepper + NSStepper + + + viewController + NSViewController + + IBProjectSource - ./Classes/AppController.h + ../.XcodeSupport/AppController.h - + 0 IBCocoaFramework + NO com.apple.InterfaceBuilder.CocoaPlugin.macosx com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 - + YES 3 diff --git a/Tools/nib2cib/NSTabView.j b/Tools/nib2cib/NSTabView.j index 920cee8f9..bac46514c 100644 --- a/Tools/nib2cib/NSTabView.j +++ b/Tools/nib2cib/NSTabView.j @@ -35,9 +35,9 @@ _type = flags & 0x7; - _items = [aCoder decodeObjectForKey:@"NSTabViewItems"]; - _selectedIndex = [_items indexOfObject:[aCoder decodeObjectForKey:@"NSSelectedTabViewItem"]]; - _font = [aCoder decodeObjectForKey:@"NSFont"]; + _items = [aCoder decodeObjectForKey:@"NSTabViewItems"]; + _selectedTabViewItem = [aCoder decodeObjectForKey:@"NSSelectedTabViewItem"]; + _font = [aCoder decodeObjectForKey:@"NSFont"]; //_delegate = [aCoder decodeObjectForKey:@""];