summaryrefslogtreecommitdiffstats
path: root/Source/CursesDialog/cmCursesWidget.cxx
diff options
context:
space:
mode:
authorBerk Geveci <berk.geveci@kitware.com>2001-11-04 23:05:21 (GMT)
committerBerk Geveci <berk.geveci@kitware.com>2001-11-04 23:05:21 (GMT)
commit939d614978ff6772aae619bfbc3ef89e27b69f73 (patch)
tree0b6d52df9911a29a10d25afc7650cf7a1c5ba2f1 /Source/CursesDialog/cmCursesWidget.cxx
parentef74458b34dcf2d25b3948c535d59273c2307546 (diff)
downloadCMake-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.cxx46
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();
+}