#!/usr/bin/perl -w

#Start: use TkLibraries
use lib "D:/Programs/Perl/lib";
use lib "D:/Programs/Perl/TkEditor";
#End: use TkLibraries

use strict;
#use warnings;

use MyTk::MyTkApplication;
use TkEditorWindow;

#===============================================
# Applicationクラス作製
#===============================================
my $App = new MyTkApplication;
exit if($App->Initialize() < 0);

#===============================================
# 環境に合わせて変える必要がある
#===============================================
# 実行プログラム名（デフォルトでは$0から取得）
	my $Program = $App->Program();
# アプリケーション名
	$App->SetAppName($Program);
# バージョン
	$App->SetVersion("Ver 0.1");
# ウィンドウに表示するタイトル
	$App->SetTitle("TkEditor 2006/pl");

#===============================================
# 環境設定
#===============================================
my $ProgramPath = $App->SpeculateProgramPath($0, '');
$App->print("Program Path: $ProgramPath\n");

#最後の引数を1にすると、IniFileが存在しないと強制終了する
my $IniFile = $App->OpenIniFile($ProgramPath, 1);
my $IniFilePath = $App->IniFile()->IniFile();
$App->print("IniFile Path: $IniFilePath\n");
my $MyDir = $IniFile->MyDir();

if($App->OS() eq 'MSWin32' and !$App->Debug()) {
#	$App->FreeWin32Console();
}

#==========================================
# コマンドラインオプション読み込み
#==========================================
$App->AddArgument("--help",       "--help    : Show this help");
#ここでは、引数エラーがあっても無視する。
#引数エラーはあとでチェック
exit 1 if($App->ReadArgs(1) != 1);
my $Args = $App->Args();

#==========================================
# Iniファイル読み込み
#==========================================
#$App->ConfigureIniFileVariables();
&ConfigureIniFileVariables($App);

#==========================================
# Document, MainWindowの作成と設定
# デフォルトでは、App->ConnectDocument($doc)と
# App->CreateWindow($mw)を呼び出すだけ
#==========================================
#$App->ConnectDocument(MyDocument->new());
$App->CreateWindow(TkEditorWindow->new());

#==========================================
# メインループ
# デフォルトでは、App->MainLoop()を呼び出すだけ
#==========================================
$App->MainLoop();

exit;

#===============================================
# スクリプト終了
#===============================================

sub ConfigureIniFileVariables
{
	my ($App) = @_;
	$App->AddIniFileVariable("\\Preferences\\EditorPath",   "EditorPath",   "notepad.exe");
	$App->AddIniFileVariable("\\Preferences\\StartAppPath", "StartAppPath", "");
	$App->AddIniFileVariable("\\Preferences\\Debug",        "Debug");
	$App->AddIniFileVariable("\\TextBox\\Font",             "TextBoxFont",  "times,10.5,normal");
	$App->AddIniFileVariable("\\Preferences\\WorkDir",      "WorkDir");
	$App->AddIniFileVariable("\\Preferences\\geometry",     "geometry");
	$App->AddIniFileVariable("\\Preferences\\FileMask",     "FileMask",     ".*");
	$App->ReadSetting();
}


__END__

:EndOfPerl
