mirror of
https://github.com/cappuccino/cappuccino.git
synced 2026-08-25 04:57:03 +00:00
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.
95 lines
2.5 KiB
Plaintext
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
|