MyList.cpp
上传用户:wenshuihe
上传日期:2007-01-14
资源大小:10k
文件大小:2k
源码类别:

BREW编程

开发平台:

Visual C++

  1. // List.cpp: implementation of the CList class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #include "MyList.h"
  5. //////////////////////////////////////////////////////////////////////
  6. // Construction/Destruction
  7. //////////////////////////////////////////////////////////////////////
  8. CList::CList(): m_pFront(NULL)
  9. {
  10. }
  11. CList::~CList()
  12. {
  13. CNode *pn = NULL;
  14. while(m_pFront)
  15. {
  16. pn = m_pFront;
  17. m_pFront = m_pFront->next;
  18. pn->next = NULL;
  19. delete pn;
  20. }
  21. }
  22. boolean CList::insert(CShape *ps)
  23. {
  24. if(m_pFront == NULL)
  25. {
  26. m_pFront = new CNode(ps);
  27. return (m_pFront != NULL);
  28. }
  29. CNode *pn = m_pFront;
  30. while(pn->next)
  31. pn = pn->next;
  32. pn->next = new CNode(ps);
  33. return (pn->next != NULL);
  34. }
  35. boolean CList::mt()
  36. {
  37. return (m_pFront == NULL);
  38. }
  39. boolean CList::update(IShell *pIShell)
  40. {
  41. IGraphics *pg = NULL;
  42. if(ISHELL_CreateInstance(pIShell,AEECLSID_GRAPHICS,(void**)&pg) != SUCCESS)
  43. return FALSE;
  44. IGRAPHICS_SetBackground(pg,255,255,255);
  45. IGRAPHICS_ClearViewport(pg);
  46. IGRAPHICS_SetFillMode(pg, TRUE);
  47. IGRAPHICS_SetPaintMode(pg, AEE_PAINT_COPY);
  48. CNode *pn = m_pFront;
  49. while(pn)
  50. {
  51. IGRAPHICS_SetColor(pg, pn->dat->getClr()->getr(), pn->dat->getClr()->getg(),
  52. pn->dat->getClr()->getb(), 1);
  53. IGRAPHICS_SetFillColor(pg, pn->dat->getClr()->getr(), pn->dat->getClr()->getg(),
  54. pn->dat->getClr()->getb(), 1);
  55. if(!pn->dat->draw(pg))
  56. return FALSE;
  57. pn = pn->next;
  58. }
  59. IGRAPHICS_Update(pg);
  60. IGRAPHICS_Release(pg);
  61. return TRUE;
  62. }
  63. void* CList::operator new(size_t sz)
  64. {
  65. return MALLOC(sz);
  66. }
  67. void CList::operator delete(void *p)
  68. {
  69. FREE(p);
  70. }