cmCursesWidget.cxx 798 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #include "cmCursesWidget.h"
  2. cmCursesWidget::cmCursesWidget(int width, int height, int left, int top)
  3. {
  4. m_Field = new_field(height, width, top, left, 0, 0);
  5. set_field_userptr(m_Field, reinterpret_cast<char*>(this));
  6. field_opts_off(m_Field, O_AUTOSKIP);
  7. }
  8. cmCursesWidget::~cmCursesWidget()
  9. {
  10. if (m_Field)
  11. {
  12. free_field(m_Field);
  13. m_Field = 0;
  14. }
  15. }
  16. void cmCursesWidget::Move(int x, int y, bool isNewPage)
  17. {
  18. if (!m_Field)
  19. {
  20. return;
  21. }
  22. move_field(m_Field, y, x);
  23. if (isNewPage)
  24. {
  25. set_new_page(m_Field, TRUE);
  26. }
  27. else
  28. {
  29. set_new_page(m_Field, FALSE);
  30. }
  31. }
  32. void cmCursesWidget::SetValue(const char* value)
  33. {
  34. m_Value = value;
  35. set_field_buffer(m_Field, 0, value);
  36. }
  37. const char* cmCursesWidget::GetValue()
  38. {
  39. return m_Value.c_str();
  40. }