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

#include "mgModelessDialogue.h"
class MGCommandBase;
class INamedTargetTool;

/// 名前付きビュー・名前付き作業平面ダイアログのスーパークラス。
class CGLNamedTargetDlg : public mgModelessDialogue{

	CListCtrl m_list;
	CImageList m_img;

public:
	// コンストラクション
	CGLNamedTargetDlg(MGCommandBase* tool);

// オーバーライド
	//{{AFX_VIRTUAL(CGLNamedTargetDlg)
protected:
	virtual void DoDataExchange(CDataExchange* pDX);
	//}}AFX_VIRTUAL

protected:
	virtual INamedTargetTool * getNamedTargetTool() = 0;
	virtual CString GetInputDlgTitle() const = 0;
	virtual CString GetInputDlgLabelSave() const = 0;
	virtual CString GetInputDlgLabelRename() const = 0;
	virtual void LoadBitmap(CBitmap& bmp) const = 0;

	// 生成されたメッセージ マップ関数
	//{{AFX_MSG(CGLNamedTargetDlg)
	virtual BOOL OnInitDialog();
	afx_msg void OnItemChanged(NMHDR* pNMHDR, LRESULT* pResult);
	afx_msg void OnBtnSave();
	afx_msg void OnBtnRestore();
	afx_msg void OnBtnDelete();
	afx_msg void OnBtnRename();
	//}}AFX_MSG

private:
	int GetCurItem() const;
	void UpdateControls();

	DECLARE_MESSAGE_MAP()
};
