cfglist.cpp 928 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #include <precomp.h>
  2. #include "cfglist.h"
  3. #include <bfc/ptrlist.h>
  4. void CfgList::addItem(CfgItem *cfgitem)
  5. {
  6. if (cfgitem == NULL ||
  7. cfgitem->getGuid() == INVALID_GUID ||
  8. list.haveItem(cfgitem)) return;
  9. viewer_addViewItem(cfgitem);
  10. list.addItem(cfgitem);
  11. cfgitem->onRegister(); // recurses children
  12. }
  13. void CfgList::delItem(CfgItem *cfgitem)
  14. {
  15. if (cfgitem == NULL || !list.haveItem(cfgitem)) return;
  16. list.removeItem(cfgitem);
  17. viewer_delViewItem(cfgitem);
  18. cfgitem->onDeregister(); // recurses children
  19. }
  20. int CfgList::getNumItems()
  21. {
  22. return list.getNumItems();
  23. }
  24. CfgItem *CfgList::enumItem(int n)
  25. {
  26. return list[n];
  27. }
  28. CfgItem *CfgList::getByGuid(GUID g)
  29. {
  30. if (g == INVALID_GUID) return NULL;
  31. foreach(list)
  32. if (list.getfor()->getGuid() == g) return list.getfor();
  33. endfor
  34. return NULL;
  35. }
  36. int CfgList::viewer_onItemDeleted(CfgItem *item)
  37. {
  38. list.removeItem(item);
  39. return 1;
  40. }