// == LICENSE INFORMATION ==
/*
 * First author tiritomato 2013.
 * This program is distributed under the GNU General Public License(GPL).
 * support blog (Japanese only) http://d.hatena.ne.jp/tiri_tomato/
 */
// == LICENSE INFORMATION ==

#pragma once

namespace UVTexIntegra {

	//! @addtogroup UVTexIntegra名前空間
	//! @{

	//! @brief プラグイン全体の設定情報を取得するためのインターフェースです。
	//! @details 基本的に読み取り用ですが、一部のメンバは設定できます。
	//! とくに、MainEditFormの外にプロパティをまとめて公開するために定義されます。
	//! 多くのメンバはXML保存フォーマットと対応しますが、必ずしも対応するものではありません。
	public interface class IConfig : Scripting::IBakeTextureConfig {
		
		//! @brief カンバスモードを取得します。
		property UVTexIntegra::CanvasMode CanvasMode { UVTexIntegra::CanvasMode get(); }
		
		//! @brief 読み取り用のドキュメント情報を取得します。
		property IDocumentFormat^ Document { IDocumentFormat^ get(); }

		//! @brief メインウィンドウサイズを取得します
		property System::Drawing::Size FormSize { System::Drawing::Size get(); }

		//! @brief グリッド解像度を取得します。
		property int GridResolution { int get(); }

		//! @brief テクスチャ設定ダイアログのサイズを設定/取得します。
		property System::Drawing::Size TextureSetFormSize
		{
			System::Drawing::Size get();
			void set(System::Drawing::Size);
		}

	};

	//! @}
}