// NameView.h : header file
//

/////////////////////////////////////////////////////////////////////////////
// CNameView view

#if !defined (CNAMEVIEW_H)
#	define CNAMEVIEW_H

class CNameView;

#include "childfrm.h"
#include "traceline.hpp"


class CNameView : public CView
{
protected:
	CNameView();           // protected constructor used by dynamic creation
	DECLARE_DYNCREATE(CNameView)

// Attributes
public:
	CChildFrame *myParent;
	CDC *displayMemory;

	Logical 
		ctrlPressed,
		shiftPressed;

	enum {
		NotActive,
		ResizeTrace,
		MoveTrace
	};

	int 
		firstSelect;
	int
		resizeSelect;
	int
		insertAt;
	int
		mouseMoveMode;

	HCURSOR
		sizeCursor,
		arrowCursor;

private:
	Logical windowActive;

// Operations
public:
	void Render(CRect placement);
	
	void SingleSelect(int selection);
	void MultiSelect(int selection);
	void RangeSelect(int selection);

	int FindSelection(CPoint point, Logical &resize);

	void Resize(CPoint point);
	void Move(CPoint point);

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CNameView)
	public:
	virtual void OnInitialUpdate();
	virtual BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext = NULL);
	protected:
	virtual void OnDraw(CDC* pDC);      // overridden to draw this view
	//}}AFX_VIRTUAL


// Implementation
protected:
	virtual ~CNameView();
#ifdef _DEBUG
	virtual void AssertValid() const;
	virtual void Dump(CDumpContext& dc) const;
#endif

	// Generated message map functions
protected:
	//{{AFX_MSG(CNameView)
	afx_msg void OnSize(UINT nType, int cx, int cy);
	afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
	afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
	afx_msg void OnMouseMove(UINT nFlags, CPoint point);
	afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
	afx_msg void OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags);
	afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
	afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////
#endif
