//
//  Setup.h
//  X-BASIC'
//
//  Created by AIG-Soft on 2012/8/13
//  Copyright 2012-15 AIG-Soft. All rights reserved.
//

#import <Foundation/Foundation.h>
#include "fdef.h"

//-----------------------------------------------------------------------------

enum { // SETUPのバージョンごとの設定領域
	SET_SETUP_ALL=0,	// すべて
	SET_SETUP_V20,		// v2.0追加分
	SET_SETUP_V30,		// v3.0追加分
	SET_SETUP_V31,		// v3.1追加分
	SET_SETUP_V32,		// v3.2追加分
	// SETUPバージョン追加時はここに追加
};

// defaultsの辞書キー
#define keyBasicFile		@"basicFile"
#define	keyPathFlag			@"pathFlag"	// V1.3で未使用
#define keyFundefVarInt		@"fundefVarInt"
#define keyFsjis			@"fsjis"
#define keyFsprite			@"fsprite"	// v2.0
#define keyFX68				@"fX68"		// v3.0
#define keyFOlder			@"fOlder"	// v3.0
#define keyFErrorCodeFopen	@"ferrorCodeFopen"	// v3.1
#define keySz_str			@"sz_str"
#define keyFontSize			@"FontSize"
#define keyFontName			@"FontNameNo"
// 以下はRoot.plistにも記述されているので変更しないように
#define	keyFsound				@"fsound"
#define keyFdisplayDebugButton	@"fdisplayDebugButton"	// v3.20


#define PATH_NEWFILE		@".!"		// 新規作成の印;@""にすると、フルパスの最後が入ってしまうのでダメ
										// 〜/X-BASIC'.appなので@"X-BASIC'.app"

enum { // ferrorCodeFopenの設定値
	ErrorCodeFopenOLD=0,
	ErrorCodeFopenNEW,
};


enum { // fselectSourcesの値；そのままsegmentの値にする
	SOURCE_SELECT_BOTH=0,
	SOURCE_SELECT_EXTERNAL,	// 自作
	SOURCE_SELECT_INTERNAL,	// 内蔵
};

//-----------------------------------------------------------------------------

@interface Setup : NSObject
{
}

// 全体設定
@property (nonatomic,strong) NSString	*basicFile;		// フルパス名
@property (nonatomic,strong) NSString	*basicFileOnly;	// ファイル名のみ;内部でのみ利用
@property (nonatomic,strong) NSString	*fontName;		// 初期値；初期化をしないと反映されない
// 詳細はOPERATION_STATUS;variable.h参照
@property (nonatomic) BOOL		fundefVarInt;			// YES=未宣言変数を自動的にintで定義する , NO=エラーにする
@property (nonatomic) NSInteger	fsjis;					// FSJIS_*					v3.00で変更
@property (nonatomic) BOOL		fsprite;				// YES=スプライト関数が有効
@property (nonatomic) BOOL		fX68;					// YES=X68互換関数が有効		v3.00
@property (nonatomic) BOOL		fOlder;					// YES=表示をV3.0未満互換にする	v3.00
@property (nonatomic) NSInteger	ferrorCodeFopen;		// ErrorCodeFopenNEW=-1(新),ErrorCodeFopenOLD=旧(0)	; fopen()のエラーコード	v3.10	YES/NOでも行けそうだけど、念のためsegmentで設定するためint.
@property (nonatomic) NSInteger	sz_str;					// 1文字列長 ; EOSを含むバイト数。SZ_WORDの倍数であること
@property (nonatomic) CGFloat	fontSize;				// 初期値；初期化をしないと反映されない
@property (nonatomic) NSInteger	fselectSources;			// BASICソース選択での種別;これは起動毎に初期化するのでUserDefaultへの保存不要
// OS setup
@property (nonatomic) BOOL		fsound;					// こちらは操作のクリック音
@property (nonatomic) BOOL		fdisplayDebugButton;	// デバッグボタンを表示するかどうか	v3.20
// setter
- (void)setBasicFile:(NSString *)basicFile_;
//
- (void)setup2XBoperationStatus;
- (BOOL)loadSetup;
- (void)readSetupOuter;
- (void)saveSetup;

@end
