| /*========================================================================= |
| |
| Program: CMake - Cross-Platform Makefile Generator |
| Module: $RCSfile$ |
| Language: C++ |
| Date: $Date$ |
| Version: $Revision$ |
| |
| Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. |
| See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. |
| |
| This software is distributed WITHOUT ANY WARRANTY; without even |
| the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR |
| PURPOSE. See the above copyright notices for more information. |
| |
| =========================================================================*/ |
| #include "cmCursesBoolWidget.h" |
| #include "cmCursesMainForm.h" |
| |
| cmCursesBoolWidget::cmCursesBoolWidget(int width, int height, |
| int left, int top) : |
| cmCursesWidget(width, height, left, top) |
| { |
| this->Type = cmCacheManager::BOOL; |
| set_field_fore(this->Field, A_NORMAL); |
| set_field_back(this->Field, A_STANDOUT); |
| field_opts_off(this->Field, O_STATIC); |
| this->SetValueAsBool(false); |
| } |
| |
| bool cmCursesBoolWidget::HandleInput(int& key, cmCursesMainForm*, WINDOW* w) |
| { |
| |
| // 10 == enter |
| if (key == 10 || key == KEY_ENTER) |
| { |
| if (this->GetValueAsBool()) |
| { |
| this->SetValueAsBool(false); |
| } |
| else |
| { |
| this->SetValueAsBool(true); |
| } |
| |
| touchwin(w); |
| wrefresh(w); |
| return true; |
| } |
| else |
| { |
| return false; |
| } |
| |
| } |
| |
| void cmCursesBoolWidget::SetValueAsBool(bool value) |
| { |
| if (value) |
| { |
| this->SetValue("ON"); |
| } |
| else |
| { |
| this->SetValue("OFF"); |
| } |
| } |
| |
| bool cmCursesBoolWidget::GetValueAsBool() |
| { |
| if (this->Value == "ON") |
| { |
| return true; |
| } |
| else |
| { |
| return false; |
| } |
| } |