PipeBody.h
Upload User: kairuinn
Upload Date: 2009-02-07
Package Size: 2922k
Code Size: 2k
Category:

Graph program

Development Platform:

Visual C++

  1. #ifndef __PipeCommand__
  2. #define __PipeCommand__
  3. #include <list>
  4. #include <vector>
  5. class PipeCommand : public ICommander, public IContextMenuInterface
  6. {
  7. IApplicationInterface* m_app;
  8. private:
  9. IGetObjectsPanel*      m_get_main_object_panel;
  10. IGetObjectsPanel*      m_get_sub_objects_panel;
  11. IGetObjectsPanel*      m_get_pipe_profile;
  12. sgCObject*             m_first_obj;
  13. std::vector<sgCObject*>  m_otv;
  14. int                    m_step;
  15. CString m_message;
  16. SG_POINT               m_zero_point_on_cont;
  17. sgC2DObject*           m_pipe_cont;
  18. bool                   m_inQuestionRegime;
  19. std::list<SG_LINE>     m_object_lines;
  20. void                   FillObjectLinesList(sgCObject*);
  21. HO_CORRECT_PATHS_RES   GoodObjectForHole(const sgC2DObject* try_hole);
  22. public:
  23. PipeCommand(IApplicationInterface* appI);
  24. virtual ~PipeCommand();
  25. virtual void            Start() ;
  26. virtual bool            PreTranslateMessage(MSG* pMsg);
  27. virtual void            Draw();
  28. IContextMenuInterface*    GetContextMenuInterface() {return this;};
  29. virtual void            SendCommanderMessage(COMMANDER_MESSAGE, void*);
  30. private:
  31. virtual unsigned int    GetItemsCount();
  32. virtual void            GetItem(unsigned int, CString&);
  33. virtual void            GetItemState(unsigned int, bool&, bool&);
  34. virtual HBITMAP  GetItemBitmap(unsigned int);
  35. virtual void            Run(unsigned int);
  36. void            MouseMove(unsigned int,int,int);
  37. void            LeftClick(unsigned int,int,int);
  38. void            OnEnter();
  39. };
  40. #endif