//------------------------------------------------------------------
//	FormClosing の発生の際に終了をキャンセルする処理を
//	サポートする static クラス
//
//		作成者：三上直樹，2022/02/03 作成，©三上直樹 2022
//------------------------------------------------------------------

using System.Windows.Forms;

namespace Mikami.Application
{
	public static class ClosingCancel
	{
		// シリアルポートがオープンでなければ直ちに false を返し，他の処理は行わない
		// 閉じるのをキャンセルする場合に true を返す
		public static bool Ok(MySerialPort sp, FormClosingEventArgs e)
		{
			if (!sp.IsOpen) return false;

			DialogResult result =
				MessageBox.Show("終了してもいいですか？", "終了の確認",
								MessageBoxButtons.YesNo,
								MessageBoxIcon.Information);
			if (result == DialogResult.No)
				e.Cancel = true;	// 閉じるのをキャンセルする
			else
			{
				sp.Break();
				sp.Close();
			}

			return e.Cancel;
		}
	}
}
