diff options
author | Duncan Ogilvie <mr.exodia.tpodt@gmail.com> | 2022-01-14 16:30:04 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2022-01-18 21:35:10 (GMT) |
commit | b97c12babbc87324b8005cf7e81640e1f3c0ecf6 (patch) | |
tree | 78d0c9be0754b219b4d07e15ff5c64f6ba0889e7 /Source/CursesDialog/cmCursesForm.cxx | |
parent | bf11dab49d4155c0c58e1048ee0ab082b692d5db (diff) | |
download | CMake-b97c12babbc87324b8005cf7e81640e1f3c0ecf6.zip CMake-b97c12babbc87324b8005cf7e81640e1f3c0ecf6.tar.gz CMake-b97c12babbc87324b8005cf7e81640e1f3c0ecf6.tar.bz2 |
ccmake: Refactor resizing logic into cmCursesForm
Diffstat (limited to 'Source/CursesDialog/cmCursesForm.cxx')
-rw-r--r-- | Source/CursesDialog/cmCursesForm.cxx | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/Source/CursesDialog/cmCursesForm.cxx b/Source/CursesDialog/cmCursesForm.cxx index bd65c4a..0c32964 100644 --- a/Source/CursesDialog/cmCursesForm.cxx +++ b/Source/CursesDialog/cmCursesForm.cxx @@ -2,6 +2,8 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmCursesForm.h" +#include <unistd.h> + cmsys::ofstream cmCursesForm::DebugFile; bool cmCursesForm::Debug = false; @@ -43,3 +45,23 @@ void cmCursesForm::LogMessage(const char* msg) cmCursesForm::DebugFile << msg << std::endl; } + +void cmCursesForm::HandleResize() +{ + endwin(); + if (initscr() == nullptr) { + static const char errmsg[] = "Error: ncurses initialization failed\n"; + auto r = write(STDERR_FILENO, errmsg, sizeof(errmsg) - 1); + static_cast<void>(r); + exit(1); + } + noecho(); /* Echo off */ + cbreak(); /* nl- or cr not needed */ + keypad(stdscr, true); /* Use key symbols as KEY_DOWN */ + refresh(); + int x; + int y; + getmaxyx(stdscr, y, x); + this->Render(1, 1, x, y); + this->UpdateStatusBar(); +} |