/*********************************************************/
//	MainFrm.H
//		Header File for ImageSDKLibrary Sample's MainFrame class.
//
//		This file defines the basic interface of Nikon File Library.
//
//		Copyright(c) 1999-2007, Nikon Corporation - All rights reserved.
/*********************************************************/
#pragma once
#include "NkILSampleDoc.h"
#include "NkILSampleSet1Dlg.h"
#include "NkILSampleSet2Dlg.h"
#include "NkILSamplePropertySheet.h"

class CMainFrame : public CFrameWnd
{

public:
	virtual BOOL PreCreateWindow(CREATESTRUCT& cs);

	virtual ~CMainFrame();
#ifdef _DEBUG
	virtual void AssertValid() const;
	virtual void Dump(CDumpContext& dc) const;
#endif

	void			ShowStatusBar( bool bDefault = false );
	unsigned long	GetFormat();
	void			SetFrameStrings( bool bDefault = false );
	void			DisplayAllDlg();
	void			DeleteAllDlg();

protected:
	CMainFrame();
	DECLARE_DYNCREATE(CMainFrame)

	afx_msg void	OnFileOpen();	
	afx_msg int		OnCreate(LPCREATESTRUCT lpCreateStruct);
	afx_msg void	OnClose();	
	afx_msg void	OnDropFiles(HDROP hDropInfo);
	// for ImageInfoDialog(Setting1 Dialog)
	afx_msg void	OnShowSet1Pane();
	afx_msg LRESULT	OnDeleteSettings1Dialog(UINT wParam, LONG lParam);
	afx_msg void	OnUpdateSet1Pane(CCmdUI *pCmdUI);
	afx_msg LRESULT OnGetSet1DlgData(UINT wParam, LONG lParam);
	// for RawAdustInfoDialog(Setting2 Dialog)
	afx_msg void	OnShowSet2Pane();
	afx_msg LRESULT	OnDeleteSettings2Dialog(UINT wParam, LONG lParam);
	afx_msg void	OnUpdateSet2Pane(CCmdUI *pCmdUI);
	afx_msg LRESULT OnGetSet2DlgData(UINT wParam, LONG lParam);
	// for others
	afx_msg void	OnShowInfoPane();
	afx_msg LRESULT	OnDeleteImageInfoDialog(UINT wParam, LONG lParam);
	afx_msg void	OnPreferenceDlg();
	afx_msg void	OnUpdateInfoPane( CCmdUI *pCmdUI );	
	afx_msg void	OnMenuSelect( UINT nItemID, UINT nFlags, HMENU hSysMenu );
	
	bool			OpenFile( CString strFilePath );	
	bool			SetSet2DlgInfo();
	bool			SetSet1DlgInfo();
	bool			SetInfoDlgInfo();

	DECLARE_MESSAGE_MAP()
	CStatusBar				m_wndStatusBar;
	CNkILSampleSet1Dlg*		m_pSet1Dlg;
	CNkILSampleSet2Dlg*		m_pSet2Dlg;
	CNkILSamplePropertySheet* m_pInfoDlg;
	CNkILSampleDoc*			m_pDoc;		

	CRect					m_Set1Rect;
};


