| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 |
- /*============================================================================
- 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 cmCursesMainForm_h
- #define cmCursesMainForm_h
- #include "cmCursesStandardIncludes.h"
- #include "../cmState.h"
- #include "cmCursesForm.h"
- class cmCursesCacheEntryComposite;
- class cmCursesWidget;
- class cmake;
- /** \class cmCursesMainForm
- * \brief The main page of ccmake
- *
- * cmCursesMainForm is the main page of ccmake.
- */
- class cmCursesMainForm : public cmCursesForm
- {
- public:
- cmCursesMainForm(std::vector<std::string> const& args, int initwidth);
- ~cmCursesMainForm() CM_OVERRIDE;
- /**
- * Set the widgets which represent the cache entries.
- */
- void InitializeUI();
- /**
- * Handle user input.
- */
- void HandleInput() CM_OVERRIDE;
- /**
- * Display form. Use a window of size width x height, starting
- * at top, left.
- */
- void Render(int left, int top, int width, int height) CM_OVERRIDE;
- /**
- * Returns true if an entry with the given key is in the
- * list of current composites.
- */
- bool LookForCacheEntry(const std::string& key);
- enum
- {
- MIN_WIDTH = 65,
- MIN_HEIGHT = 6,
- IDEAL_WIDTH = 80,
- MAX_WIDTH = 512
- };
- /**
- * This method should normally be called only by the form. The only
- * exception is during a resize. The optional argument specifies the
- * string to be displayed in the status bar.
- */
- void UpdateStatusBar() CM_OVERRIDE { this->UpdateStatusBar(CM_NULLPTR); }
- virtual void UpdateStatusBar(const char* message);
- /**
- * Display current commands and their keys on the toolbar. This
- * method should normally called only by the form. The only
- * exception is during a resize. If the optional argument process is
- * specified and is either 1 (configure) or 2 (generate), then keys
- * will be displayed accordingly.
- */
- void PrintKeys(int process = 0);
- /**
- * During a CMake run, an error handle should add errors
- * to be displayed afterwards.
- */
- void AddError(const char* message, const char* title) CM_OVERRIDE;
- /**
- * Used to do a configure. If argument is specified, it does only the check
- * and not configure.
- */
- int Configure(int noconfigure = 0);
- /**
- * Used to generate
- */
- int Generate();
- /**
- * Used by main program
- */
- int LoadCache(const char* dir);
- /**
- * Progress callback
- */
- static void UpdateProgressOld(const char* msg, float prog, void*);
- static void UpdateProgress(const char* msg, float prog, void*);
- protected:
- cmCursesMainForm(const cmCursesMainForm& from);
- void operator=(const cmCursesMainForm&);
- // Copy the cache values from the user interface to the actual
- // cache.
- void FillCacheManagerFromUI();
- // Fix formatting of values to a consistent form.
- void FixValue(cmState::CacheEntryType type, const std::string& in,
- std::string& out) const;
- // Re-post the existing fields. Used to toggle between
- // normal and advanced modes. Render() should be called
- // afterwards.
- void RePost();
- // Remove an entry from the interface and the cache.
- void RemoveEntry(const char* value);
- // Jump to the cache entry whose name matches the string.
- void JumpToCacheEntry(const char* str);
- // Copies of cache entries stored in the user interface
- std::vector<cmCursesCacheEntryComposite*>* Entries;
- // Errors produced during last run of cmake
- std::vector<std::string> Errors;
- // Command line argumens to be passed to cmake each time
- // it is run
- std::vector<std::string> Args;
- // Message displayed when user presses 'h'
- // It is: Welcome + info about current entry + common help
- std::vector<std::string> HelpMessage;
- // Common help
- static const char* s_ConstHelpMessage;
- // Fields displayed. Includes labels, new entry markers, entries
- FIELD** Fields;
- // Where is source of current project
- std::string WhereSource;
- // Where is cmake executable
- std::string WhereCMake;
- // Number of entries shown (depends on mode -normal or advanced-)
- size_t NumberOfVisibleEntries;
- bool AdvancedMode;
- // Did the iteration converge (no new entries) ?
- bool OkToGenerate;
- // Number of pages displayed
- int NumberOfPages;
- int InitialWidth;
- cmake* CMakeInstance;
- std::string SearchString;
- std::string OldSearchString;
- bool SearchMode;
- };
- #endif // cmCursesMainForm_h
|