diff options
author | Berk Geveci <berk.geveci@kitware.com> | 2001-11-04 23:05:21 (GMT) |
---|---|---|
committer | Berk Geveci <berk.geveci@kitware.com> | 2001-11-04 23:05:21 (GMT) |
commit | 939d614978ff6772aae619bfbc3ef89e27b69f73 (patch) | |
tree | 0b6d52df9911a29a10d25afc7650cf7a1c5ba2f1 /Source/CursesDialog/cmCursesWidget.cxx | |
parent | ef74458b34dcf2d25b3948c535d59273c2307546 (diff) | |
download | CMake-939d614978ff6772aae619bfbc3ef89e27b69f73.zip CMake-939d614978ff6772aae619bfbc3ef89e27b69f73.tar.gz CMake-939d614978ff6772aae619bfbc3ef89e27b69f73.tar.bz2 |
Adding curses support.
Diffstat (limited to 'Source/CursesDialog/cmCursesWidget.cxx')
-rw-r--r-- | Source/CursesDialog/cmCursesWidget.cxx | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/Source/CursesDialog/cmCursesWidget.cxx b/Source/CursesDialog/cmCursesWidget.cxx new file mode 100644 index 0000000..55c9e76 --- /dev/null +++ b/Source/CursesDialog/cmCursesWidget.cxx @@ -0,0 +1,46 @@ +#include "cmCursesWidget.h" + +cmCursesWidget::cmCursesWidget(int width, int height, int left, int top) +{ + m_Field = new_field(height, width, top, left, 0, 0); + set_field_userptr(m_Field, reinterpret_cast<char*>(this)); + field_opts_off(m_Field, O_AUTOSKIP); +} + +cmCursesWidget::~cmCursesWidget() +{ + if (m_Field) + { + free_field(m_Field); + m_Field = 0; + } +} + +void cmCursesWidget::Move(int x, int y, bool isNewPage) +{ + if (!m_Field) + { + return; + } + + move_field(m_Field, y, x); + if (isNewPage) + { + set_new_page(m_Field, TRUE); + } + else + { + set_new_page(m_Field, FALSE); + } +} + +void cmCursesWidget::SetValue(const char* value) +{ + m_Value = value; + set_field_buffer(m_Field, 0, value); +} + +const char* cmCursesWidget::GetValue() +{ + return m_Value.c_str(); +} |