cmCursesBoolWidget.cxx 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. #include "cmCursesBoolWidget.h"
  2. #include "cmCursesMainForm.h"
  3. cmCursesBoolWidget::cmCursesBoolWidget(int width, int height,
  4. int left, int top) :
  5. cmCursesWidget(width, height, left, top)
  6. {
  7. m_Type = cmCacheManager::BOOL;
  8. set_field_fore(m_Field, A_NORMAL);
  9. set_field_back(m_Field, A_STANDOUT);
  10. field_opts_off(m_Field, O_STATIC);
  11. this->SetValueAsBool(false);
  12. }
  13. bool cmCursesBoolWidget::HandleInput(int& key, cmCursesMainForm* fm, WINDOW* w)
  14. {
  15. FORM* form = fm->GetForm();
  16. // 10 == enter
  17. if (key == 10 || key == KEY_ENTER)
  18. {
  19. if (this->GetValueAsBool())
  20. {
  21. this->SetValueAsBool(false);
  22. }
  23. else
  24. {
  25. this->SetValueAsBool(true);
  26. }
  27. touchwin(w);
  28. wrefresh(w);
  29. return true;
  30. }
  31. else
  32. {
  33. return false;
  34. }
  35. }
  36. void cmCursesBoolWidget::SetValueAsBool(bool value)
  37. {
  38. if (value)
  39. {
  40. this->SetValue("ON");
  41. }
  42. else
  43. {
  44. this->SetValue("OFF");
  45. }
  46. }
  47. bool cmCursesBoolWidget::GetValueAsBool()
  48. {
  49. if (m_Value == "ON")
  50. {
  51. return true;
  52. }
  53. else
  54. {
  55. return false;
  56. }
  57. }