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

// MainFrm.h : fugenMainFrame クラスの宣言およびインターフェイスの定義をします。

#if !defined(AFX_MAINFRM_H__714AD593_64D2_43C7_B7B2_B30608F87AEB__INCLUDED_)
#define AFX_MAINFRM_H__714AD593_64D2_43C7_B7B2_B30608F87AEB__INCLUDED_

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

#include "fugenStatusBar.h"
#include "CoolDialogBar.h"
#include "GLOutputDlg.h"

class fugenMainFrame : public CMDIFrameWnd
{
	DECLARE_DYNAMIC(fugenMainFrame)
public:
	fugenMainFrame();

// アトリビュート
public:

// オペレーション
public:
	void DockControlBarLeftOf(CControlBar* Bar, CControlBar* LeftOf);
	void PopupMenu(CPoint pt);
// オーバーライド
	// ClassWizard は仮想関数のオーバーライドを生成します。
	//{{AFX_VIRTUAL(fugenMainFrame)
	public:
	virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
	virtual BOOL PreTranslateMessage(MSG* pMsg);
	//}}AFX_VIRTUAL

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

	fugenStatusBar& status_bar(){return m_fugenStatusBar;};

protected:  // コントロール バー用メンバ
	fugenStatusBar   m_fugenStatusBar;
	CToolBar         m_wndStandardBar;
	CToolBar         m_wndGLBar;
	CToolBar         m_wndWndBar;

	CCoolDialogBar   m_wndPrmptBar;
	CGLOutputDlg     m_dlgPrmpt;

// 生成されたメッセージ マップ関数
protected:
	//{{AFX_MSG(fugenMainFrame)
	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
	afx_msg void OnClose();
	afx_msg LRESULT OnStatusMsg(WPARAM wParam, LPARAM lParam);
	//}}AFX_MSG

	afx_msg BOOL OnMDIWindowCmd(UINT nID);
	afx_msg void OnToolbarDropDown(NMHDR* pNMHDR, LRESULT* plRes);

	// 数値設定
	afx_msg void OnToolOption();
	afx_msg void OnUpdateToolOption(CCmdUI* pCmdUI);

	afx_msg void OnParamTessel();
	afx_msg void OnUpdateParamTessel(CCmdUI* pCmdUI);

	afx_msg void OnParamTolerance();
	afx_msg void OnUpdateParamTolerance(CCmdUI* pCmdUI);

	afx_msg void OnUpdateCoordInput(CCmdUI* pCmdUI);
	afx_msg LRESULT OnOutput(WPARAM wParam, LPARAM lParam);

	DECLARE_MESSAGE_MAP()

private:
	//! Load the positions and states of CControlBars.
	void LoadBarState(LPCTSTR lpszProfileName);

	BOOL LoadWindowPos();
	void SaveWindowPos() const;

	
	//Initialize the status bar after Create() and SetIndicators().
	//The design of the Status bar is as:
	// (*COMMAND_MSG,*COORD,*GRID,*ANGLE,ID_SEPARATOR).
	//width=(700,200,40,150,remainder)
	void InitStatusBar();

	friend class fugen;
};

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

#endif // !defined(AFX_MAINFRM_H__714AD593_64D2_43C7_B7B2_B30608F87AEB__INCLUDED_)
