// Copyright (C) 2003 Daisuke Arai <darai@users.sourceforge.jp>
// Copyright (C) 2005 panacoran <panacoran@users.sourceforge.jp>
// 
// This program is part of Protra.
//
// Protra 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 3 of the License, or
// (at your option) any later version.
//
// 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.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, see <http://www.gnu.org/licenses/>.
// 
// $Id: Global.cs,v 1.3 2007-12-27 08:34:39 panacoran Exp $

using System;
using System.IO;
using System.Windows.Forms;

namespace Protra.Lib
{
	/// <summary>
	/// アプリケーション全体に使われる変数などを管理するクラスです。
	/// </summary>
	public class Global
	{
		/// <summary>
		/// アプリケーションを開始したアセンブリの存在するディレクトリ
		/// </summary>
		public static readonly string DirApp = Path.GetDirectoryName(Application.ExecutablePath);
		/// <summary>
		/// データファイルを保存するディレクトリ
		/// </summary>
		public static readonly string DirData = Path.Combine(DirApp, "data");
		/// <summary>
		/// グローバルキャッシュを保存するディレクトリ
		/// </summary>
		public static readonly string DirGlobalCache = Path.Combine(DirData, "global_cache");
		/// <summary>
		/// 設定ファイルを保存するディレクトリ
		/// </summary>
		public static readonly string DirConf = Path.Combine(DirApp, "conf");
		/// <summary>
		/// ライブラリプログラムを保存するディレクトリ
		/// </summary>
		public static readonly string DirLib = Path.Combine(DirApp, "lib");
		/// <summary>
		/// チャートプログラムを保存するディレクトリ
		/// </summary>
		public static readonly string DirChart = Path.Combine(DirApp, "chart");
		/// <summary>
		/// システムプログラムを保存するディレクトリ
		/// </summary>
		public static readonly string DirSystem = Path.Combine(DirApp, "system");
		/// <summary>
		/// 一時的な作業のためのファイルなどを置くディレクトリ
		/// </summary>
		public static readonly string DirTmp = Path.Combine(DirApp, "tmp");
		/// <summary>
		/// マニュアルを置くディレクトリ
		/// </summary>
		public static readonly string DirMan = Path.Combine(DirApp, "man");
		/// <summary>
		/// アプリケーションを開始したアセンブリのパス
		/// </summary>
		public static readonly string PathApp = Application.ExecutablePath;
		/// <summary>
		/// マニュアルのファイルへのパス
		/// </summary>
		public static readonly string PathMan = Path.Combine(DirMan, "index.html");
	}
}
