class GeModalDialog : GeDialog

{

	private:

		var dlg_result;



	public:

		GeModalDialog();



		Message(msg);

		Open(xpos,ypos);



		GetResult();

}



GeModalDialog::GetResult()

{

	return dlg_result;

}



GeModalDialog::Message(msg)

{

	switch (msg->GetId())

	{

		case BFM_CHECKCLOSE:

			if (dlg_result && _AddGadget(DIALOG_CHECKNUMBERS,0,"",0,0,0,0))

			{

				dlg_result = FALSE;

				return TRUE;

			}

			return FALSE;



		case BFM_ASKCLOSE:

			if (AskClose()) return TRUE;

			break;



		case BFM_ACTION:

		{

			var id = msg->GetInt(BFM_ACTION_ID);

			var res = Command(id,msg);



			if (id == IDC_OK || id == IDC_CANCEL)

			{

				dlg_result = (id==IDC_OK);

				Close();

			}

			return res;

		}

		break;

	}

	return super::Message(msg);

}



GeModalDialog::GeModalDialog()

{

	super(0);

	dlg_result = FALSE;

}



GeModalDialog::Open(xpos,ypos)

{

	dlg_result = FALSE;

	super::Open(FALSE,xpos,ypos);

	return dlg_result;

}



