/*-----------------------------------------------------------------------------
[名称]	MainFrame.h
[概要]	メインフレームクラスのヘッダ
[備考]	なし
[履歴]	2003-03-17	NC		新規作成(moralog)
-----------------------------------------------------------------------------*/
#if !defined(AFX_MAINFRM_H_INCLUDED_)
#define AFX_MAINFRM_H_INCLUDED_

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


//-----------------------------------------------------------------------------
// インクルード・不完全定義
//-----------------------------------------------------------------------------
#include "AAListView.h"
#include "LogFont.h"
class CAAListView;
class CCategoryTreeView;


/*-----------------------------------------------------------------------------
[名称]	メインフレームクラス
[用途]	アプリケーションの本体っぽい。
[備考]	なし。
-----------------------------------------------------------------------------*/
class CMainFrame : public CFrameWnd
{
	
protected: // シリアライズ機能のみから作成します。
	// 生成
	CMainFrame();
	DECLARE_DYNCREATE(CMainFrame)

	// 表示更新
	void ReflectView();

	// ツリーペイン取得
	CCategoryTreeView*		GetTreeView();

	// リストペイン取得
	CAAListView*	GetListView();

	// エディットペイン取得
	CEditView*		GetEditView();

	// リストペイン表示更新
	void ReflectListView();

	// エディットペイン表示更新
	void ReflectEditView();

	// AAの追加
	long AAAppend(
		const CString&	strName,
		const CString&	strAA
	);

// アトリビュート
protected:
	CSplitterWnd	m_wndHorizontalSplitter;	// 横分割スプリッタ [-] (-)
	CSplitterWnd	m_wndVirticalSplitter;		// 縦分割スプリッタ [-] (-)
	CLogFont		m_Font;						// EditView用フォント [-] (-)
	BOOL			m_bAlive;					// アプリケーションのやる気 [-] (TRUE:満々、FALSE:死にそう)
	UINT			m_uiMinMember;				// カテゴリ化最低アイテム数 [-] (1〜)
	UINT			m_uiNearPattern;			// 近似パターンとみなす閾値 [-] (1〜)
	HWND			m_hwndParent;				// 親ウィンドウ [-] (-)

public:

// オペレーション
public:
	// ビューの初期化
	void InitView();

	// カテゴリ化最低アイテム数設定
	void SetMinMember( UINT uiMinMenber ){ m_uiMinMember = uiMinMenber; };
	// 近似パターンとみなす閾値設定
	void SetNearPattern( UINT uiNearPattern ){ m_uiNearPattern = uiNearPattern; };
	// カテゴリ化最低アイテム数取得
	UINT GetMinMember(){ return( m_uiMinMember ); };
	// 近似パターンとみなす閾値取得
	UINT GetNearPattern(){ return( m_uiNearPattern ); };

// オーバーライド
	// ClassWizard は仮想関数のオーバーライドを生成します。
	//{{AFX_VIRTUAL(CMainFrame)
	public:
	virtual BOOL OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext);
	virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
	//}}AFX_VIRTUAL

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

protected:  // コントロール バー用メンバ
	CStatusBar  m_wndStatusBar;
	CToolBar    m_wndToolBar;

// 生成されたメッセージ マップ関数
protected:
	//{{AFX_MSG(CMainFrame)
	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
	afx_msg void OnViewFont();
	afx_msg void OnUpdateFileSave(CCmdUI* pCmdUI);
	afx_msg void OnClose();
	afx_msg void OnEditMarge();
	afx_msg void OnEditArrange();
	afx_msg void OnEditAppend();
	afx_msg void OnTreeCategorize();
	afx_msg void OnUpdateTreeAddnode(CCmdUI* pCmdUI);
	afx_msg void OnUpdateTreeCategorize(CCmdUI* pCmdUI);
	afx_msg void OnUpdateTreeDeletenode(CCmdUI* pCmdUI);
	afx_msg void OnUpdateListAddaa(CCmdUI* pCmdUI);
	afx_msg void OnUpdateListDeleteindex(CCmdUI* pCmdUI);
	afx_msg void OnUpdateListEditaa(CCmdUI* pCmdUI);
	afx_msg void OnUpdateShitarabianPaste(CCmdUI* pCmdUI);
	afx_msg void OnShitarabianPaste();
	afx_msg void OnUpdateEditMarge(CCmdUI* pCmdUI);
	afx_msg void OnUpdateEditArrange(CCmdUI* pCmdUI);
	afx_msg void OnUpdateEditAppend(CCmdUI* pCmdUI);
	afx_msg void OnUpdateFileSaveAs(CCmdUI* pCmdUI);
	afx_msg void OnShowWindow(BOOL bShow, UINT nStatus);
	afx_msg void OnHelpManual();
	afx_msg void OnHelpWeb();
	//}}AFX_MSG
	afx_msg void OnUpdateViewStyles(CCmdUI* pCmdUI);
	afx_msg void OnViewStyle(UINT nCommandID);
	DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////

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

#endif // !defined(AFX_MAINFRM_H_INCLUDED_)
