//
//  Proteus_AppDelegate.h
//  Proteus
//
//  Created by Julian Cain on 2/15/10.
//  Copyright __MyCompanyName__ 2010 . All rights reserved.
//

#import <Cocoa/Cocoa.h>

#import <Purple/Purple.h>

@class BuddyController;
@class PreferencesWindowController;

@interface Proteus_AppDelegate : NSObject 
{
    NSWindow * window;
    
    NSPersistentStoreCoordinator * persistentStoreCoordinator;
    NSManagedObjectModel * managedObjectModel;
    NSManagedObjectContext * managedObjectContext;
    
    /**
     * The purple stack.
     */
    Purple * _purple;
    
    /**
     * The accounts.
     */
    NSMutableArray * _accounts;
    
    /**
     * The buddy controller.
     */
    BuddyController * _buddyController;
    
    /**
     * The preferences window controller.
     */
    PreferencesWindowController * _preferencesWindowController;
}

@property (nonatomic, retain) IBOutlet NSWindow *window;

@property (nonatomic, retain, readonly) NSPersistentStoreCoordinator *persistentStoreCoordinator;
@property (nonatomic, retain, readonly) NSManagedObjectModel *managedObjectModel;
@property (nonatomic, retain, readonly) NSManagedObjectContext *managedObjectContext;
@property (nonatomic, retain) Purple * purple;
@property (nonatomic, retain) NSMutableArray * accounts;
@property (nonatomic, retain) IBOutlet BuddyController * buddyController;
@property (nonatomic, retain) PreferencesWindowController * preferencesWindowController;

- (NSArray *)supportedProtocols;

- (IBAction)saveAction:sender;
- (IBAction)preferencesAction:sender;

@end
