Скачиваний:
12
Добавлен:
01.05.2014
Размер:
3.44 Кб
Скачать
// SketcherDoc.h : interface of the CSketcherDoc class
//
/////////////////////////////////////////////////////////////////////////////

#if !defined(AFX_SKETCHERDOC_H__623441AB_57EA_11D0_9257_00201834E2A3__INCLUDED_)
#define AFX_SKETCHERDOC_H__623441AB_57EA_11D0_9257_00201834E2A3__INCLUDED_

#include "Hash.h"
#include "utils.h"

class CSketcherDoc : public CDocument{
	protected: // create from serialization only
		CSketcherDoc();
		DECLARE_DYNCREATE(CSketcherDoc)

	// Attributes
	public:

	protected:
		COLORREF m_Color;		// Current drawing color
		WORD m_Element;			// Current element type
		CSize m_DocSize;        // Document size
		Hash<stringKey, CElement*> m_Hash;

	// Operations
	public:
		WORD GetElementType(){                     // Get the element type
			return m_Element;
		}

		COLORREF GetElementColor(){                // Get the element color
			return m_Color; 
		}

		Hash<stringKey, CElement*>::iterator& getHashIterator(){
			return m_Hash.getIterator();
		}

		Hash<stringKey, CElement*>::iterator getHashStart(){
			return m_Hash.begin();
		}

		Hash<stringKey, CElement*>::iterator getHashEnd(){
			return m_Hash.end();
		}

		Hash<stringKey, CElement*>::iterator findElement(string key){
			return m_Hash.find(stringKey(key));
		}

		bool AddElement(CElement* pElement, string key) {      // Add an element to the list
			pair<Hash<stringKey, CElement*>::iterator, bool> res = m_Hash.put(stringKey(key), pElement);
			return res.second;
		}

		CSize GetDocSize() {                      // Retrieve the document size
			return m_DocSize; 
		}

		void DeleteElement(string key);			 // Delete an element
		void SendToBack(CElement* pElement);      // Send element to start of list
		CRect GetDocExtent();                     // Get the bounding rectangle for the whole document

		// Overrides
		// ClassWizard generated virtual function overrides
		//{{AFX_VIRTUAL(CSketcherDoc)
		public:
		virtual BOOL OnNewDocument();
		virtual void Serialize(CArchive& ar);
		//}}AFX_VIRTUAL

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

	protected:

	// Generated message map functions
	protected:
		//{{AFX_MSG(CSketcherDoc)
		afx_msg void OnColorBlack();
		afx_msg void OnColorRed();
		afx_msg void OnElementLine();
		afx_msg void OnElementRectangle();
		afx_msg void OnUpdateColorBlack(CCmdUI* pCmdUI);
		afx_msg void OnUpdateElementLine(CCmdUI* pCmdUI);
		afx_msg void OnUpdateElementRectangle(CCmdUI* pCmdUI);
		afx_msg void OnUpdateColorBlue(CCmdUI* pCmdUI);
		afx_msg void OnColorBlue();
		afx_msg void OnElementText();
		afx_msg void OnUpdateElementText(CCmdUI* pCmdUI);
		afx_msg void OnElementTextintriangle();
		afx_msg void OnUpdateElementTextintriangle(CCmdUI* pCmdUI);
		afx_msg void OnElementTriangle();
		afx_msg void OnUpdateElementTriangle(CCmdUI* pCmdUI);
		afx_msg void OnUpdateColorGreen(CCmdUI* pCmdUI);
		afx_msg void OnColorGreen();
		//}}AFX_MSG
		DECLARE_MESSAGE_MAP()
};

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

//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_SKETCHERDOC_H__623441AB_57EA_11D0_9257_00201834E2A3__INCLUDED_)
Соседние файлы в папке Sketcher05