//
//  LCViewController.h
//  LCToolkit
//
//  Created by Logan Collins on 7/19/10.
//  Copyright 2010 Logan Collins. All rights reserved.
//

#import <Cocoa/Cocoa.h>


@class LCNavigationController, LCNavigationItem;
@class LCTabBarController, LCTabBarItem;


/* LCViewController is a custom subclass of NSViewController that adds
 * many missing features from its iOS counterpart, such as support for
 * will/didAppear and will/didDisappear, navigation and tab bars
 */
@interface LCViewController : NSViewController {
@private
	NSImage *image;
	NSUndoManager *undoManager;
	
	LCNavigationController *navigationController;
	LCNavigationItem *navigationItem;
	
	LCTabBarController *tabBarController;
	LCTabBarItem *tabBarItem;
}

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil; // Designated initializer
- (id)initWithView:(NSView *)aView;

@property (copy) NSImage *image;
@property (retain) NSUndoManager *undoManager;

// Navigation controller
@property (readonly, retain) LCNavigationController *navigationController;
@property (readonly, retain) LCNavigationItem *navigationItem;

// Tab Bar controller
@property (readonly, retain) LCTabBarController *tabBarController;
@property (readonly, retain) LCTabBarItem *tabBarItem;

// View changes
- (void)viewWillAppear;
- (void)viewDidAppear;
- (void)viewWillDisappear;
- (void)viewDidDisappear;

@end
