cmCursesCacheEntryComposite.cxx 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. #include "cmCursesCacheEntryComposite.h"
  2. #include "cmCursesStringWidget.h"
  3. #include "cmCursesLabelWidget.h"
  4. #include "cmCursesBoolWidget.h"
  5. #include "cmCursesPathWidget.h"
  6. #include "cmCursesFilePathWidget.h"
  7. #include "cmCursesDummyWidget.h"
  8. #include "../cmSystemTools.h"
  9. cmCursesCacheEntryComposite::cmCursesCacheEntryComposite(const char* key) :
  10. m_Key(key)
  11. {
  12. m_Label = new cmCursesLabelWidget(30, 1, 1, 1, key);
  13. m_IsNewLabel = new cmCursesLabelWidget(1, 1, 1, 1, " ");
  14. m_Entry = 0;
  15. }
  16. cmCursesCacheEntryComposite::cmCursesCacheEntryComposite(
  17. const char* key, const cmCacheManager::CacheEntry& value, bool isNew) :
  18. m_Key(key)
  19. {
  20. m_Label = new cmCursesLabelWidget(30, 1, 1, 1, key);
  21. if (isNew)
  22. {
  23. m_IsNewLabel = new cmCursesLabelWidget(1, 1, 1, 1, "*");
  24. }
  25. else
  26. {
  27. m_IsNewLabel = new cmCursesLabelWidget(1, 1, 1, 1, " ");
  28. }
  29. m_Entry = 0;
  30. switch ( value.m_Type )
  31. {
  32. case cmCacheManager::BOOL:
  33. m_Entry = new cmCursesBoolWidget(30, 1, 1, 1);
  34. if (cmSystemTools::IsOn(value.m_Value.c_str()))
  35. {
  36. static_cast<cmCursesBoolWidget*>(m_Entry)->SetValueAsBool(true);
  37. }
  38. else
  39. {
  40. static_cast<cmCursesBoolWidget*>(m_Entry)->SetValueAsBool(false);
  41. }
  42. break;
  43. case cmCacheManager::PATH:
  44. m_Entry = new cmCursesPathWidget(30, 1, 1, 1);
  45. static_cast<cmCursesPathWidget*>(m_Entry)->SetString(
  46. value.m_Value.c_str());
  47. break;
  48. case cmCacheManager::FILEPATH:
  49. m_Entry = new cmCursesFilePathWidget(30, 1, 1, 1);
  50. static_cast<cmCursesFilePathWidget*>(m_Entry)->SetString(
  51. value.m_Value.c_str());
  52. break;
  53. case cmCacheManager::STRING:
  54. m_Entry = new cmCursesStringWidget(30, 1, 1, 1);
  55. static_cast<cmCursesStringWidget*>(m_Entry)->SetString(
  56. value.m_Value.c_str());
  57. break;
  58. default:
  59. // TODO : put warning message here
  60. break;
  61. }
  62. }
  63. cmCursesCacheEntryComposite::~cmCursesCacheEntryComposite()
  64. {
  65. delete m_Label;
  66. delete m_IsNewLabel;
  67. delete m_Entry;
  68. }