#pragma once
#include "global.h"
#include "CMyTreeCtrl.h"
#include "CMyListBox.h"
#include "MyStructDef.h"
//世界编辑器 用来管理【地点】的设定
class CWorldEditor : public CDialog
{
	DECLARE_DYNAMIC(CWorldEditor)
	DECLARE_MESSAGE_MAP()
public:
	CWorldEditor(CWnd* pParent = nullptr);   // 标准构造函数
	virtual ~CWorldEditor();
	// 对话框数据
#ifdef AFX_DESIGN_TIME
	enum { IDD = IDD_CWORLDEDITOR };
#endif
	void* pMainEditor = nullptr;
	void UpdateContext();//更新内容
	////////////////////热键//////////////////
	HACCEL hAccel = nullptr;//热键
	BOOL PreTranslateMessage(MSG* pMsg) override;
protected:
	void DoDataExchange(CDataExchange* pDX) override;
	BOOL OnInitDialog() override;
	void OnCancel() override;
	void OnEnterKey();//空函数 阻止回车键退出
public:
	afx_msg void OnShowWindow(BOOL bShow, UINT nStatus);
	afx_msg void OnSize(UINT nType, int cx, int cy);
	afx_msg void OnAddPos();
	afx_msg void OnRenamePos();
	afx_msg void OnEditPosinfo();
	afx_msg void OnCopyPos();
	afx_msg void OnPastePos();
	afx_msg void OnCutPos();
	afx_msg void OnDeletePos();
	afx_msg void OnAddLabel();
	afx_msg void OnRenameLabel();
	afx_msg void OnDeleteLabel();
	afx_msg void OnTvnSelchangedTreePoslist(NMHDR* pNMHDR, LRESULT* pResult);
private:
	void UploadDB();
	//控件
	CStatic* static_posList;//地点列表
	CMyTreeCtrl tree_posList;
	CStatic* static_linkView;//连接视图
	CStatic* static_linkView_draw;//连接视图的绘制窗口
	CStatic* static_posInfo;//地点描述
	CEdit edit_posInfo;
	CStatic* static_set;//地点设定实现表
	CMyListBox listbox_set;
	//成员
	std::unordered_map<int, MyWorldSet> worldsetList;
	CString posCopyXML;//在拷贝中的地点板
};

