FIXED: missing return stmt in -indexOfTabViewItemWithIdenfier;

Refactored delegate notifications.
CPTabViewItem style.

Tests: All delegate methods are tested in CPTabViewNib manual test.
This commit is contained in:
cacaodev
2015-05-07 22:35:02 +02:00
parent 88f7b30128
commit db9e649f6e
2 changed files with 31 additions and 18 deletions
+18 -5
View File
@@ -203,7 +203,7 @@ var CPTabViewDidSelectTabViewItemSelector = 1 << 1,
{
return [[self items] indexOfObjectPassingTest:function(item, idx, stop)
{
[[item identifier] isEqual:anIdentifier];
return [[item identifier] isEqual:anIdentifier];
}];
}
@@ -325,16 +325,15 @@ var CPTabViewDidSelectTabViewItemSelector = 1 << 1,
if (aTabViewItem == _selectedTabViewItem)
return NO;
if ((_delegateSelectors & CPTabViewShouldSelectTabViewItemSelector) && ![_delegate tabView:self shouldSelectTabViewItem:aTabViewItem])
if (![self _sendDelegateShouldSelectTabViewItem:aTabViewItem])
return NO;
if (_delegateSelectors & CPTabViewWillSelectTabViewItemSelector)
[_delegate tabView:self willSelectTabViewItem:aTabViewItem];
[self _sendDelegateWillSelectTabViewItem:aTabViewItem];
[_tabs setSelectedSegment:anIndex];
_selectedTabViewItem = aTabViewItem;
[self _displayItemView:[aTabViewItem view]];
[self _sendDelegateDidSelectTabViewItem:aTabViewItem];
return YES;
@@ -516,6 +515,20 @@ var CPTabViewDidSelectTabViewItemSelector = 1 << 1,
// DELEGATE METHODS
- (BOOL)_sendDelegateShouldSelectTabViewItem:(CPTabViewItem)aTabViewItem
{
if (_delegateSelectors & CPTabViewShouldSelectTabViewItemSelector)
return [_delegate tabView:self shouldSelectTabViewItem:aTabViewItem];
return YES;
}
- (void)_sendDelegateWillSelectTabViewItem:(CPTabViewItem)aTabViewItem
{
if (_delegateSelectors & CPTabViewWillSelectTabViewItemSelector)
[_delegate tabView:self willSelectTabViewItem:aTabViewItem];
}
- (void)_sendDelegateDidSelectTabViewItem:(CPTabViewItem)aTabViewItem
{
if (_delegateSelectors & CPTabViewDidSelectTabViewItemSelector)
+13 -13
View File
@@ -24,7 +24,7 @@
@import "CPView.j"
@class CPTabView
@class CPViewControler
@class CPViewController
/*
The tab is currently selected.
@@ -54,23 +54,23 @@ CPPressedTab = 2;
*/
@implementation CPTabViewItem : CPObject
{
id _identifier;
CPString _label;
CPInteger _tag @accessors(property=tag);
id _identifier;
CPString _label;
CPInteger _tag @accessors(property=tag);
CPView _view;
CPView _auxiliaryView;
CPView _view;
CPView _auxiliaryView;
CPTabView _tabView;
unsigned _tabState; // Looks like it is not yet implemented
CPTabView _tabView;
unsigned _tabState; // Looks like it is not yet implemented
CPImage _image @accessors(property=image);
CPImage _image @accessors(property=image);
CPViewController _viewController @accessors(getter=viewController);
BOOL _enabled @accessors(property=enabled);
BOOL _selected @accessors(property=selected);
CGRect _tabRect @accessors(property=frame);
float _width @accessors(property=width);
BOOL _enabled @accessors(property=enabled);
BOOL _selected @accessors(property=selected);
CGRect _tabRect @accessors(property=frame);
float _width @accessors(property=width);
}
/*