Files
cappuccino/Tests/Manual/CPTabViewNib/AppController.j
T
cacaodevandGitHub 0eb196e852 CPTabView: load tab view items asynchronously when possible (#2479)
When an item created with +tabViewItemWithViewController:, the view is loaded asynchronously

Manual test CPTabViewNib have been modified to show a tab view item
managed by a view controller. Any setup happens in
-viewDidAppear: because we cannot use any more the
tabView:didSelectTabViewItem: delegate method.
2016-10-20 17:24:18 +02:00

95 lines
2.5 KiB
Plaintext

/*
* AppController.j
* CPTabViewNib
*
* Created by Alexander Ljungberg on November 5, 2010.
* Copyright 2010, WireLoad, LLC All rights reserved.
*/
@import <AppKit/AppKit.j>
@import <Foundation/CPObject.j>
@import "TabViewController.j"
CPLogRegister(CPLogConsole);
@implementation AppController : CPObject
{
CPWindow theWindow; //this "outlet" is connected automatically by the Cib
@outlet CPTabView nibTabView;
@outlet CPTabView nibTabViewEmpty;
@outlet CPStepper insertStepper;
@outlet CPStepper removeStepper;
@outlet CPButton fromViewController;
}
- (IBAction)insertTabViewItem:(id)sender
{
var idx = [insertStepper objectValue];
var item = [[CPTabViewItem alloc] initWithIdentifier:@"Insert" + idx];
var view = [[CPView alloc] initWithFrame:CGRectMakeZero()];
[view setBackgroundColor:[CPColor randomColor]];
[item setView:view];
[item setLabel:@"Insert" + idx];
[nibTabView insertTabViewItem:item atIndex:idx];
}
- (IBAction)insertViewControllerTabViewItem:(id)sender
{
var ctl = [[TabViewController alloc] initWithCibName:@"TabViewItem" bundle:nil];
[ctl setTitle:@"View Controller"];
var item = [CPTabViewItem tabViewItemWithViewController:ctl];
[nibTabView insertTabViewItem:item atIndex:0];
}
- (IBAction)removeTabViewItem:(id)sender
{
var idx = [removeStepper intValue],
item = [nibTabView tabViewItemAtIndex:idx];
[nibTabView removeTabViewItem:item];
}
- (IBAction)changeView:(id)sender
{
var item = [nibTabView selectedTabViewItem];
var view = [[CPView alloc] initWithFrame:CGRectMakeZero()];
[view setBackgroundColor:[CPColor randomColor]];
[item setView:view];
}
- (void)awakeFromCib
{
[theWindow setFullPlatformWindow:YES];
/*
var item = [[CPTabViewItem alloc] initWithIdentifier:@"item"];
[item setLabel:@"item"];
[nibTabViewEmpty addTabViewItem:item];
*/
}
- (BOOL)tabView:(CPTabView)aTabView shouldSelectTabViewItem:(CPTabViewItem)tabViewItem
{
var result = ([tabViewItem identifier] != @"unselectable");
CPLog.debug(_cmd + [tabViewItem label] + " =" + result);
return result;
}
- (void)tabView:(CPTabView)tabView willSelectTabViewItem:(CPTabViewItem)tabViewItem
{
CPLog.debug(_cmd + [tabViewItem label]);
}
- (void)tabView:(CPTabView)aTabView didSelectTabViewItem:(CPTabViewItem)tabViewItem
{
CPLog.debug(_cmd + [tabViewItem label]);
}
- (void)tabViewDidChangeNumberOfTabViewItems:(CPTabView)tabView
{
CPLog.debug(_cmd + [tabView numberOfTabViewItems]);
}
@end