#!/usr/bin/perl

use lib "c:/Programs/Perl/lib";
use lib "c:/Programs/Perl/TkPlot2/lib";
use lib "c:/Programs/Perl/TkPlot2/dlib";
use lib "d:/Programs/Perl/lib";
use lib "d:/Programs/Perl/TkPlot2/lib";
use lib "d:/Programs/Perl/TkPlot2/dlib";
use lib "$ENV{TkPerlDir}/lib";
use lib "$ENV{TkPerlDir}/TkPlot2/lib";
use lib "$ENV{TkPerlDir}/TkPlot2/dlib";

use strict;
#use warnings;
#use utf8;

use TkPlotApp2;
use OpticalSpectrumMultiLayersRT;

#use Jcode::Unicode;
#use Jcode::Unicode::NoXS;
#use encoding 'ja_JP.SJIS';
#use encoding 'utf8';
#binmode(STDERR,'encoding(ja_JP.SJIS)');

#===============================================
# Applicationクラス作製
#===============================================
my $App = new TkPlotApp2;
exit if($App->Initialize() < 0);

#===============================================
# 環境に合わせて変える必要がある
#===============================================
# Windows環境の場合のルートディレクトリィ
my $BaseDir = "D:\\Programs\\Perl\\TkPlot2";
# Linux環境の場合のルートディレクトリィ
my $home    = $ENV{'HOME'};
$BaseDir    = "$home/bin" if($App->OS() eq 'linux');

# 実行プログラム名（デフォルトでは$0から取得）
my $ProgramPath = $App->SpeculateProgramPath($0, $BaseDir);
print "Program Path: $ProgramPath\n";
my $Program = $App->Program();

my $Style = 'OpticalSpectrumMultiLayersRT';
# アプリケーション名
my $AppName  = "${Style}Plot";
$App->SetAppName($AppName);
#$App->SetAppName($Program);
# バージョン
$App->SetVersion("Ver 0.1");
# ウィンドウに表示するタイトル
my $AppTitle = "${Style}Plot 2010/pl";
$App->SetTitle($AppTitle);

#最後の引数を1にすると、IniFileが存在しないと強制終了する
my $IniFile     = $App->OpenIniFile($ProgramPath, 1);
my $IniFilePath = $App->IniFile()->IniFile();
print "IniFile Path: $IniFilePath\n";
my $MyDir = $IniFile->MyDir();

if($App->OS() eq 'MSWin32' and !$App->Debug()) {
#$App->FreeWin32Console();
}

#==========================================
# コマンドラインオプション読み込み
#==========================================
$App->AddArgument("--style",             "--style: Set style for specific data",                   '');
$App->AddArgument("--NoAutoLoadModules", "--NoAutoLoadModules=[0|1]: Suppress autoload modulesa",   0);
$App->AddArgument("--LoadModule",        "--LoadModule=ModulePath: Load module ModulePath specified by relative path", '');
$App->AddArgument("--WorkDir",           "--WorkDir=Dir: Read 'Dir' directory (ignore --ReadPrev", '');
$App->AddArgument("--ReadPrev",          "--ReadPrev   : Read previous Working Direcotry",          1);
$App->AddArgument("--FilePathPane",      "--FilePathPane=[TkPlot|Conventional]",             'TkPlot');
$App->AddArgument("--vertical",          "--vertial    : Align panes vertically",                   0);
$App->AddArgument("--help",              "--help       : Show this help",                          '');
#ここでは、引数エラーがあっても無視する。
#引数エラーはあとでチェック
$App->ReadArgs(0);
#exit 1 if($App->ReadArgs(0) != 1);
my $Args = $App->Args();

#==========================================
# Iniファイル読み込み
#==========================================
$App->ConfigureIniFileVariables();

#==========================================
# メイン
#==========================================
my $mw = OpticalSpectrumMultiLayersRT->new($App);
$App->CreateWindow($mw);

$mw->MainLoop();

exit;

#===============================================
# スクリプト終了
#===============================================
