/*========================================================================= Program: Insight Segmentation & Registration Toolkit Module: $RCSfile$ Language: C++ Date: $Date$ Version: $Revision$ Copyright (c) 2002 Insight Consortium. All rights reserved. See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm 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. =========================================================================*/ #ifndef CMakeSetupGUIImplementation_h #define CMakeSetupGUIImplementation_h #include "CMakeSetupGUI.h" #include "FLTKPropertyList.h" #include /** * * This class implements the virtual methods * declared in the GUI interface * */ class cmake; class CMakeSetupGUIImplementation : public CMakeSetupGUI { public: CMakeSetupGUIImplementation(); virtual ~CMakeSetupGUIImplementation(); virtual void Close( void ); virtual void Show( void ); virtual void UpdateData( bool option ); virtual void BrowseForBinaryPath( void ); virtual void BrowseForSourcePath( void ); virtual void SetBinaryPath( const char * path ); virtual void SetSourcePath( const char * path ); virtual void SaveCacheFromGUI( void ); virtual void LoadCacheFromDiskToGUI( void ); virtual void FillCacheGUIFromCacheManager( void ); virtual void FillCacheManagerFromCacheGUI( void ); virtual void SetPathToExecutable( const char * path ); virtual void LoadRecentDirectories(void); virtual void SaveRecentDirectories(void); virtual void ShowRecentBinaryDirectories(void); virtual void ShowRecentSourceDirectories(void); virtual void SelectOneRecentSourceDirectory(void); virtual void SelectOneRecentBinaryDirectory(void); virtual void UpdateListOfRecentDirectories(void); virtual void ClickOnConfigure(void); virtual void ClickOnOK(void); virtual void ClickOnCancel(void); virtual void RunCMake( bool generateProjectFiles ); cmake *GetCMakeInstance() {return m_CMakeInstance; } private: virtual bool VerifyBinaryPath( const std::string & path ) const; virtual bool VerifySourcePath( const std::string & path ) const; virtual std::string ExpandPathAndMakeItAbsolute( const std::string & inputPath ) const; private: fltk::PropertyList m_CacheEntriesList; std::string m_WhereBuild; std::string m_WhereSource; std::string m_PathToExecutable; std::string m_GeneratorChoiceString; bool m_BuildPathChanged; std::set< std::string > m_RecentBinaryDirectories; std::set< std::string > m_RecentSourceDirectories; cmake *m_CMakeInstance; }; #endif