/*
 *	IRC.app -- IRC client program for NEXTSTEP
 *	Copyright (C)1995 Norihiro Itoh
 *
 *	このソースはIRC.appの一部です。
 *	This file is part of IRC.app.
 *
 *	本プログラムはフリー・ソフトウェアです。あなたは、Free Software 
 *	Foundationが公表したGNU一般公有使用許諾の「バージョン２」或いは
 *	それ以降の各バージョンの中からいずれかを選択し、そのバージョンが
 *	定める条項に従って本プログラムを再頒布または変更することができま
 *	す。
 *	This program is free software; you can redistribute it and/or modify
 *	it under the terms of the GNU General Public License as published by
 *	the Free Software Foundation; either version 2 of the License, or
 *	(at your option) any later version.
 *
 *	本プログラムは有用とは思いますが、頒布にあたっては、市場性及び特
 *	定目的適合性についての暗黙の保証を含めて、いかなる保証も行ないま
 *	せん。詳細についてはGNU一般公有使用許諾書をお読みください。
 *	This program is distributed in the hope that it will be useful,
 *	but WITHOUT ANY WARRANTY; without even the implied warranty of
 *	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *	GNU General Public License for more details.
 *
 *	あなたは、本プログラムと一緒にGNU一般公有使用許諾の写しを受け取っ
 *	ているはずです。そうでない場合は、Free Software Foundation, Inc.,
 *	675 Mass Ave, Cambridge, MA 02139, USAへ手紙を書いてください。
 *	You should have received a copy of the GNU General Public License
 *	along with this program; if not, write to the Free Software
 *	Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 *
 *	作者のメールアドレス: nito@scorpio.bekkoame.or.jp
 *	Author's e-mail address: nito@scorpio.bekkoame.or.jp
 */	

#import "PreferenceManager.h"

@implementation PreferenceManager

- showPreference:sender
{
    if (window == nil) {
	if (![NXApp loadNibSection:"preference.nib" owner:self]) {
	    return nil;
	}
    }
    [self readDefaults];
    [window makeKeyAndOrderFront:nil];
    return self;
}

- selectFile:sender
{
    // NOT SUPPORTED YET
    return self;
}

- set:sender
{
    [self writeDefaults];
    if ([[NXApp chatManager] connect:nil]) {
	[window orderOut:self];
	[NXApp showChannelPanel:nil];
    } else {
    	NXBeep();
    }
    return self;
}

- cancel:sender
{
    [window orderOut:self];
    return self;
}

- readDefaults
{
    const char		*dvalue;

    if (dvalue = NXReadDefault([NXApp appName], "ServerName")) {
    	[server setStringValue:dvalue];
    }

    if (dvalue = NXReadDefault([NXApp appName], "ServerPort")) {
    	[port setStringValue:dvalue];
    }

    if (dvalue = NXReadDefault([NXApp appName], "NickName")) {
    	[nickName setStringValue:dvalue];
    }

    if (dvalue = NXReadDefault([NXApp appName], "MailAddress")) {
    	[mailAddress setStringValue:dvalue];
    }

    if (dvalue = NXReadDefault([NXApp appName], "RealName")) {
    	[realName setStringValue:dvalue];
    }

    if (dvalue = NXReadDefault([NXApp appName], "ExecFileName")) {
  	[execFile setStringValue:dvalue];
    }
    return self;
}

- writeDefaults
{
    NXWriteDefault([NXApp appName], "ServerName", [server stringValue]);
    NXWriteDefault([NXApp appName], "ServerPort", [port stringValue]);
    NXWriteDefault([NXApp appName], "NickName", [nickName stringValue]);
    NXWriteDefault([NXApp appName], "MailAddress", [mailAddress stringValue]);
    NXWriteDefault([NXApp appName], "RealName", [realName stringValue]);
//  not supported yet....
//  NXWriteDefault([NXApp appName], "ExecFileName", [execFile stringValue]);
    return self;
}

- (const char *)server;
{
    const char		*dvalue;

    if (dvalue = NXReadDefault([NXApp appName], "ServerName")) {
    	return dvalue;
    } else {
    	return NULL;
    }
}

- (const char *)port;
{
    const char		*dvalue;

    if (dvalue = NXReadDefault([NXApp appName], "ServerPort")) {
    	return dvalue;
    } else {
    	return NULL;
    }
}

- (const char *)nickName;
{
    const char		*dvalue;

    if (dvalue = NXReadDefault([NXApp appName], "NickName")) {
    	return dvalue;
    } else {
    	return NULL;
    }
}

- (const char *)mailAddress
{
    const char		*dvalue;

    if (dvalue = NXReadDefault([NXApp appName], "MailAddress")) {
    	return dvalue;
    } else {
    	return NULL;
    }
}

- (const char *)realName;
{
    const char		*dvalue;

    if (dvalue = NXReadDefault([NXApp appName], "RealName")) {
    	return dvalue;
    } else {
    	return NULL;
    }
}

- (const char *)execFile
{
    const char		*dvalue;

    if (dvalue = NXReadDefault([NXApp appName], "ExecFileName")) {
  	return dvalue;
    } else {
    	return NULL;
    }
}
@end
