/********************************************************************/
/* Copyright (c) 2019 System fugen G.K. and Yuzi Mizuno             */
/* All rights reserved.                                             */
/********************************************************************/

#if !defined(AFX_GLCOORDDLG_H__3D0F9173_7088_4228_8A1A_67DE65E7488C__INCLUDED_)
#define AFX_GLCOORDDLG_H__3D0F9173_7088_4228_8A1A_67DE65E7488C__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include <stdafx.h>
#include "resource.h"
class MGPosition;

/////////////////////////////////////////////////////////////////////////////
// CGLCoordDlg ダイアログ

class CGLCoordDlg : public CDialog
{
// コンストラクション
public:
	CGLCoordDlg();

// ダイアログ データ
	//{{AFX_DATA(CGLCoordDlg)
	enum { IDD = IDD_INPUT_COORDINATE };
	int m_radio;
	CString m_str;
	//}}AFX_DATA

	enum Mode{
		CANCEL,         // 以下のどれでもない
		WORLD_ABS_3D,   // ワールド絶対直交座標
		WORLD_REL_3D,   // ワールド相対直交座標
		CPLANE_ABS_3D,  // CPlane 絶対直交座標
		CPLANE_REL_3D,  // CPlane 相対直交座標
		CPLANE_POLAR    // CPlane 極座標
	};

	// 相対位置を必要とする入力オプションを無効化する。
	// DoModal() の呼び出し前でないと呼べない。
	void DisableRelativeOptions(){ m_bDisableRelative = true;}

	// 前回入力座標をダイアログ上に表示させる
	void DisplayPrevInputCoord(const MGPosition& posRecent);
	
	// ラジオボタンによる指定の種類を返す
	Mode GetMode() const{ return m_mode; }

	virtual void OnCancel();
	virtual void OnOK();

	virtual BOOL OnInitDialog();

// オーバーライド
	// ClassWizard は仮想関数のオーバーライドを生成します。
	//{{AFX_VIRTUAL(CGLCoordDlg)
protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV サポート
	//}}AFX_VIRTUAL

// インプリメンテーション
protected:
#ifdef _DEBUG
	virtual void AssertValid() const;
	virtual void Dump(CDumpContext& dc) const;
#endif

	// 生成されたメッセージ マップ関数
	//{{AFX_MSG(CGLCoordDlg)
		// メモ: ClassWizard はこの位置にメンバ関数を追加します。
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()

private:
	Mode    m_mode;
	CString m_strPrevInput;
	bool    m_bDisableRelative;
	
	friend class MGLocateState;
public:
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ は前行の直前に追加の宣言を挿入します。

#endif // !defined(AFX_GLCOORDDLG_H__3D0F9173_7088_4228_8A1A_67DE65E7488C__INCLUDED_)
