/*============================================================================ CMake - Cross Platform Makefile Generator Copyright 2000-2009 Kitware, Inc., Insight Software Consortium Distributed under the OSI-approved BSD License (the "License"); see accompanying file Copyright.txt for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the License for more information. ============================================================================*/ #ifndef cmCursesForm_h #define cmCursesForm_h #include "../cmStandardIncludes.h" #include "cmCursesStandardIncludes.h" #include class cmCursesForm { public: cmCursesForm(); virtual ~cmCursesForm(); // Description: // Handle user input. virtual void HandleInput() = 0; // Description: // Display form. virtual void Render(int left, int top, int width, int height) = 0; // Description: // This method should normally called only by the form. // The only exception is during a resize. virtual void UpdateStatusBar() = 0; // Description: // During a CMake run, an error handle should add errors // to be displayed afterwards. virtual void AddError(const char*, const char*) {} // Description: // Turn debugging on. This will create ccmakelog.txt. static void DebugStart(); // Description: // Turn debugging off. This will close ccmakelog.txt. static void DebugEnd(); // Description: // Write a debugging message. static void LogMessage(const char* msg); // Description: // Return the FORM. Should be only used by low-level methods. FORM* GetForm() { return this->Form; } static cmCursesForm* CurrentForm; protected: static cmsys::ofstream DebugFile; static bool Debug; cmCursesForm(const cmCursesForm& form); void operator=(const cmCursesForm&); FORM* Form; }; #endif // cmCursesForm_h