UICONT.CPP
上传用户:yatsl7111
上传日期:2007-01-08
资源大小:1433k
文件大小:2k
源码类别:

图形图象

开发平台:

Visual C++

  1. //*******************************************************************************
  2. // COPYRIGHT NOTES
  3. // ---------------
  4. // You may use this source code, compile or redistribute it as part of your application 
  5. // for free. You cannot redistribute it as a part of a software development 
  6. // library without the agreement of the author. If the sources are 
  7. // distributed along with the application, you should leave the original 
  8. // copyright notes in the source code without any changes.
  9. // This code can be used WITHOUT ANY WARRANTIES at your own risk.
  10. // 
  11. // For the latest updates to this code, check this site:
  12. // http://www.masmex.com 
  13. // after Sept 2000
  14. // 
  15. // Copyright(C) 2000 Philip Oldaker <email: philip@masmex.com>
  16. //*******************************************************************************
  17. #include "stdafx.h"
  18. #include "UIData.h"
  19. #include "UICont.h"
  20. #ifdef _DEBUG
  21. #undef THIS_FILE
  22. static char BASED_CODE THIS_FILE[] = __FILE__;
  23. #endif
  24. /////////////////////////////////////////////////////////////////////////////
  25. // CListObList
  26. IMPLEMENT_SERIAL(CUIObjList, CObList, 0)
  27. CUIObjList::CUIObjList()
  28. {
  29. }
  30. CUIObjList::~CUIObjList()
  31. {
  32.     DeleteAll();
  33. }
  34. /////////////////////////////////////////////////////////////////////////////
  35. // CListObList commands
  36. // Delete al objects in the list
  37. void CUIObjList::DeleteAll()
  38. {
  39.   while(!IsEmpty()) 
  40.   {
  41. CUIListCtrlData* ptr = RemoveHead();
  42. if (ptr->GetAutoDelete())
  43. {
  44. CObject *p =(CObject*)ptr->GetExtData();
  45. ASSERT_KINDOF(CObject,p);
  46. delete p;
  47. }
  48. delete ptr;
  49.   }
  50. }
  51. // Add a new object to the end of the list
  52. void CUIObjList::Append(CUIListCtrlData* pListObj)
  53. {
  54.   ASSERT(pListObj);
  55.   ASSERT(pListObj->IsKindOf(RUNTIME_CLASS(CUIListCtrlData)));
  56.   POSITION pos = CObList::AddTail(pListObj);
  57. }
  58. // Remove an object from the list but don't delete it
  59. BOOL CUIObjList::Remove(CUIListCtrlData* pListObj)
  60. {
  61.   POSITION pos = Find(pListObj);
  62.   if (!pos) 
  63. return FALSE;
  64.   RemoveAt(pos);
  65.   return TRUE;
  66. }