/* Copyright (c) 2004, Noah Sorscher
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 * 	¥ 	Redistributions of source code must retain the above copyright
 * 	notice, this list of conditions and the following disclaimer.
 * 	¥ 	Redistributions in binary form must reproduce the above copyright
 * 	notice, this list of conditions and the following disclaimer in the
 * 	documentation and/or other materials provided with the distribution.
 * 	¥ 	Neither the name of the Noah Sorscher nor the names of its
 * 	contributors may be used to endorse or promote products derived from
 * 	this software without specific prior written permission.
 * 
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
 * THE POSSIBILITY OF SUCH DAMAGE.
 */
/* tInit */

#import <Cocoa/Cocoa.h>
#import "tOutlineItem.h"
#import "iTableView.h"

@interface tInit : NSObject
{
    IBOutlet id addSeparateAudio, askMovies;
    IBOutlet id autoCols, autoComplete, acTable, brushedMetal,
                cacheText,
                chapSamples, chapScale;
    //IBOutlet id chapterButton;
    IBOutlet id chapters;
    IBOutlet id chapterTable, chapWin,
                commentText;
    IBOutlet id controller, customIcon, dontAnimate, doubleClick, editChapTimes, editDrawer, editWarning, exitPlay, exitMouse;
    IBOutlet id floatWindow, fontSize, fsAspect;
    IBOutlet id getTimepointButton, hides, highlightColor;
    IBOutlet id iconText, iconCheckbox, iconIndText, iconSelect, interval,
                lang;
    IBOutlet id mainWindow,
                numPerformers,
                openingWindow;
    //IBOutlet id model;
    //IBOutlet id openButton;
    IBOutlet id openSizeSwitch;
    IBOutlet id optAlbum,
                optAuthor,
                optComment,
                optCopy,
                optCreDate,
                optFName,
                optDesc,
                optDir, optIcon,
                optInfo,
                optMerge, optRating,
		optReduce,
                optPerf,
                optProd,
                optWrit,
                optGenre, optWebsite,
                pathLevels,
                placeHolder;
    IBOutlet id player;
    IBOutlet id playOn, prefsWindow;
    IBOutlet id rememberSwitch,
                rowColoring,
                saveBeep;
    IBOutlet id saveDirPath;
    IBOutlet id saveSizeRadio;
    IBOutlet id saveTypeRadio, scaleImportedChapters, scaleDVDChapters;
    IBOutlet id searchChapterSwitch,
                showController, skip, skipText;
                //textColor;
    IBOutlet id theSaveTable;
    IBOutlet id theTable, timeline, plTable,
                updateFilename, viewWindow,
                www;
    
    NSTimer *theTimer;
    NSArray *theBoolButtons, *theStringFields, *theDoubleFields;
    NSArray *theBoolKeys, *theStringKeys, *theDoubleKeys;
}

+ (void)initialize;

+ (BOOL)boolForKey:(NSString *)key;
+ (void)setBool:(BOOL)flag forKey:(NSString *)key;

+ (NSString *)stringForKey:(NSString *)key;
+ (void)setString:(NSString *)string forKey:(NSString *)key;

+ (double)doubleForKey:(NSString *)key;
+ (void)setDouble:(double)value forKey:(NSString *)key;

- (void)applicationDidBecomeActive:(NSNotification *)aNotification;
- (BOOL)applicationShouldHandleReopen:(NSApplication *)theApplication hasVisibleWindows:(BOOL)flag;

- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender;

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification;

- (void)savePrefs;

- (IBAction)editAutoComplete:(id)sender;
- (IBAction)acAdd:(id)sender;
- (IBAction)acRemove:(id)sender;
- (IBAction)setCache:(id)sender;

- (IBAction)defaultHLColor:(id)sender;

- (void)setBrushedMetal;

- (BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filename;

- (void)awakeFromNib;

- (BOOL)settingForKey:(NSString *)key;
- (void)setSetting:(BOOL)flag forKey:(NSString *)key;

- (NSString *)stringSettingForKey:(NSString *)key;
- (void)setStringSetting:(NSString *)string forKey:(NSString *)key;

- (double)doubleSettingForKey:(NSString *)key;
- (void)setDoubleSetting:(double)value forKey:(NSString *)key;

- (IBAction)newTimer:(id)sender;


- (id)outlineView:(NSOutlineView *)outlineView child:(int)index ofItem:(id)item;
- (BOOL)outlineView:(NSOutlineView *)outlineView isItemExpandable:(id)item;
- (int)outlineView:(NSOutlineView *)outlineView numberOfChildrenOfItem:(id)item;
- (id)outlineView:(NSOutlineView *)outlineView objectValueForTableColumn:(NSTableColumn *)tableColumn byItem:(id)item;
- (void)outlineView:(NSOutlineView *)outlineView setObjectValue:(id)object forTableColumn:(NSTableColumn *)tableColumn byItem:(id)item;

@end
