// == 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 { namespace CustomControls {

	public ref class TextureSetForm : TextureSetForm_Base {
	public:
		/*!	@brief 表示するテクスチャ画像パスを設定／入力された画像パスを取得します。

			入力がキャンセルされた時は空の文字列が返ります。
		*/ 
		property System::String^ ImagePath {
			System::String^ get() { return txtFilePath->Text; }
			void set( System::String^ value ) { txtFilePath->Text = value; RefreshDialog(); }
		}

		System::String^ InitialDirectory;

		/// @brief 表示するメッセージを取得、設定します。
		property System::String^ Message {
			System::String^ get() { return lblMsg->Text; }
			void set( System::String^ value ) { lblMsg->Text = value; }
		}

		/// @brief 画像サイズのU値を取得、設定します。
		property int U {
			int get() { return m_u; }
			void set ( int value ) { m_u = std::abs(value); RefreshDialog(); }
		}

		/// @brief 画像サイズのV値を取得、設定します。
		property int V {
			int get() { return m_v; }
			void set ( int value ) { m_v = std::abs(value); RefreshDialog(); }
		}

		TextureSetForm( const MQDocument doc ); ///< デフォルトコンストラクタ

	private:
		const MQDocument m_doc;
		int m_u, m_v;
		void RefreshDialog(); ///< メモリ上のデータで画面を更新する（元に戻す）

		System::Void btnCancel_Click(System::Object^ s, System::EventArgs^ e);
		System::Void btnOK_Click(System::Object^ s, System::EventArgs^ e);
		System::Void btnOpenFileDlg_Click(System::Object^ s, System::EventArgs^ e);
		System::Void txt_Validating( Object^ sender, System::ComponentModel::CancelEventArgs^ e );
		System::Void txt_InputChanged( System::Object^  sender, System::EventArgs^  e);
	};

}}