// BCGCBDotNetExampleView.h : interface of the CBCGCBDotNetExampleView class
//
/////////////////////////////////////////////////////////////////////////////

#if !defined(AFX_BCGCBDOTNETEXAMPLEVIEW_H__FBABDE53_0288_4B70_B327_62D17730D369__INCLUDED_)
#define AFX_BCGCBDOTNETEXAMPLEVIEW_H__FBABDE53_0288_4B70_B327_62D17730D369__INCLUDED_

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

class CBCGCBDotNetExampleDoc;
class CBCGCBDotNetExampleView;
class CUndoButton;
class CCustomEditCtrl;

class CBCGCBDotNetExampleView : public CBCGPEditView
{
	friend class CMyFindDlg;

protected: // create from serialization only
	CBCGCBDotNetExampleView();
	DECLARE_DYNCREATE(CBCGCBDotNetExampleView)

// Attributes
public:
	CBCGCBDotNetExampleDoc* GetDocument();

protected:
	CFont				m_Font;
	CCustomEditCtrl*	m_pEdit;

// Operations
public:

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CBCGCBDotNetExampleView)
	public:
	virtual void OnDraw(CDC* pDC);  // overridden to draw this view
	virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
	virtual void OnInitialUpdate();
	virtual BOOL OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo);
	//}}AFX_VIRTUAL

	virtual CBCGPEditCtrl* CreateEdit ();
	virtual void OnTextNotFound (LPCTSTR lpszFind);

// Implementation
public:
	virtual void AttachXMLSettings(const CString& strXMLFileName);
	virtual void GetUndoActions(CStringList& lstActions) const;
	virtual void GetRedoActions(CStringList& lstActions) const;

	void EnableIntelliSenseMode(BOOL bFl = TRUE);
	void DoUndo(CUndoButton* pUndoBtn);

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

protected:
	virtual BOOL UATToString(DWORD dwUAT, CString& strAction) const;

// Generated message map functions
protected:
	void ResetDefaultFont();
	CImageList m_imgList;

	//{{AFX_MSG(CBCGCBDotNetExampleView)
	afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
	afx_msg void OnEditTogglebookmark();
	afx_msg void OnRemoveAllBreakpoints();
	afx_msg void OnToggleBreakpoint();
	afx_msg void OnClearAllBookmarks();
	afx_msg void OnUpdateClearAllBookmarks(CCmdUI* pCmdUI);
	afx_msg void OnEditNextbookmark();
	afx_msg void OnEditPreviousbookmark();
	afx_msg void OnEditListmembers();
	afx_msg void OnEditIncreaseIdent();
	afx_msg void OnUpdateEditIncreaseIdent(CCmdUI* pCmdUI);
	afx_msg void OnEditDecreaseIdent();
	afx_msg void OnUpdateEditDecreaseIdent(CCmdUI* pCmdUI);
	afx_msg void OnUpdateEditListmembers(CCmdUI* pCmdUI);
	//}}AFX_MSG
	afx_msg void OnContextMenu(CWnd*, CPoint point);
	afx_msg void OnUpdateCaretPos(CCmdUI* pCmdUI);
	afx_msg void OnShowHint();
	afx_msg void OnFind();
	afx_msg void OnFindNext();
	afx_msg void OnFindPrev();
	afx_msg void OnUndoAction();
	afx_msg void OnUpdateUndoAction(CCmdUI* pCmdUI);
	DECLARE_MESSAGE_MAP()

private:
	BOOL m_bXMLSettings;
	
	void RestoreDefaultView(UINT uiExampleID = -1);
	BOOL RestoreDefaultData();
	virtual void GetUndoRedoActions(CStringList& lstActions, BOOL bUndo) const;
	void ResetFindCombo();
	void VerifyFindString(CBCGPToolbarComboBoxButton* pFindCombo, CString& strFindText);
};

#ifndef _DEBUG  // debug version in BCGDevStudioExampleView.cpp
inline CBCGCBDotNetExampleDoc* CBCGCBDotNetExampleView::GetDocument()
   { return (CBCGCBDotNetExampleDoc*)m_pDocument; }
#endif

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

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_BCGCBDOTNETEXAMPLEVIEW_H__FBABDE53_0288_4B70_B327_62D17730D369__INCLUDED_)
