diff options
author | Luis Ibanez <luis.ibanez@kitware.com> | 2001-06-10 22:21:55 (GMT) |
---|---|---|
committer | Luis Ibanez <luis.ibanez@kitware.com> | 2001-06-10 22:21:55 (GMT) |
commit | b0befbde1ae69c8625af763b0bb757557345c15b (patch) | |
tree | df28cced72496b83329488e3bb3cb84dea32fa31 /Source/FLTKDialog/CMakeSetupGUIImplementation.cxx | |
parent | ad0019a740413ad270df38232ddcb31120c1b540 (diff) | |
download | CMake-b0befbde1ae69c8625af763b0bb757557345c15b.zip CMake-b0befbde1ae69c8625af763b0bb757557345c15b.tar.gz CMake-b0befbde1ae69c8625af763b0bb757557345c15b.tar.bz2 |
ENH: cpp renamed cxx. Copy of data to and from the GUI is working
Diffstat (limited to 'Source/FLTKDialog/CMakeSetupGUIImplementation.cxx')
-rw-r--r-- | Source/FLTKDialog/CMakeSetupGUIImplementation.cxx | 343 |
1 files changed, 343 insertions, 0 deletions
diff --git a/Source/FLTKDialog/CMakeSetupGUIImplementation.cxx b/Source/FLTKDialog/CMakeSetupGUIImplementation.cxx new file mode 100644 index 0000000..330e1ac --- /dev/null +++ b/Source/FLTKDialog/CMakeSetupGUIImplementation.cxx @@ -0,0 +1,343 @@ + +#include "CMakeSetupGUIImplementation.h" +#include "Fl/fl_file_chooser.H" +#include "Fl/filename.H" +#include "Fl/fl_ask.H" +#include "cstring" +#include "../cmCacheManager.h" +#include "../cmMakefile.h" +#include <iostream> + + + +/** + * Constructor + */ +CMakeSetupGUIImplementation +::CMakeSetupGUIImplementation() +{ +} + + + +/** + * Destructor + */ +CMakeSetupGUIImplementation +::~CMakeSetupGUIImplementation() +{ +} + + + + +/** + * Show the graphic interface + */ +void +CMakeSetupGUIImplementation +::Show( void ) +{ + dialogWindow->show(); +} + + + + + +/** + * Hide the graphic interface + */ +void +CMakeSetupGUIImplementation +::Close( void ) +{ + dialogWindow->hide(); +} + + + + + +/** + * Browse for the path to the sources + */ +void +CMakeSetupGUIImplementation +::BrowseForSourcePath( void ) +{ + const char * path = + fl_file_chooser( + "Path to Sources", + "", + sourcePathTextInput->value() ); + + if( !path ) + { + return; + } + + SetSourcePath( path ); + +} + + + + +/** + * Browse for the path to the binaries + */ +void +CMakeSetupGUIImplementation +::BrowseForBinaryPath( void ) +{ + const char * path = + fl_file_chooser( + "Path to Binaries", + "", + binaryPathTextInput->value() ); + + if( !path ) + { + return; + } + + SetBinaryPath( path ); + +} + + + + + +/** + * Set the source path + */ +void +CMakeSetupGUIImplementation +::SetSourcePath( const char * path ) +{ + if( VerifySourcePath( path ) ) + { + m_WhereSource = path; + sourcePathTextInput->value( path ); + } + +} + + + + +/** + * Set the binary path + */ +void +CMakeSetupGUIImplementation +::SetBinaryPath( const char * path ) +{ + + if( VerifyBinaryPath( path ) ) + { + m_WhereBuild = path; + binaryPathTextInput->value( path ); + } + + LoadCacheFromDiskToGUI(); + +} + + + +/** + * Verify the path to binaries + */ +bool +CMakeSetupGUIImplementation +::VerifyBinaryPath( const char * path ) +{ + + if( !path || strlen(path)==0 ) + { + fl_alert("Please select the path to the binaries"); + return false; + } + + + if( !filename_isdir( path ) ) + { + fl_alert("%s \n Doesn't exist or is not a directory",path); + return false; + } + + return true; +} + + + +/** + * Verify the path to sources + */ +bool +CMakeSetupGUIImplementation +::VerifySourcePath( const char * path ) +{ + + if( !path || strlen(path)==0 ) + { + fl_alert("Please select the path to the sources"); + return false; + } + + + if( !filename_isdir( path ) ) + { + fl_alert("%s \n Doesn't exist or is not a directory",path); + return false; + } + + return true; +} + + + + +/** + * Build the project files + */ +void +CMakeSetupGUIImplementation +::BuildProjectFiles( void ) +{ + + // Verify that source path is a valid directory + if( !VerifySourcePath( sourcePathTextInput->value() ) ) + { + return; + } + + // Verify that binary path is a valid directory + if( !VerifyBinaryPath( binaryPathTextInput->value() ) ) + { + return; + } + + SaveCacheFromGUI(); + + fl_message("Building project files ... please wait"); + +} + + + + +/** + * Load Cache from disk to GUI + */ +void +CMakeSetupGUIImplementation +::LoadCacheFromDiskToGUI( void ) +{ + + + if( m_WhereBuild != "" ) + { + cmCacheManager::GetInstance()->LoadCache( m_WhereBuild.c_str() ); + this->FillCacheGUIFromCacheManager(); + } +} + + +/** + * Save Cache from disk to GUI + */ +void +CMakeSetupGUIImplementation +::SaveCacheFromGUI( void ) +{ +} + + +/** + * Fill Cache GUI from cache manager + */ +void +CMakeSetupGUIImplementation +::FillCacheGUIFromCacheManager( void ) +{ + + // Prepare to add rows to the scroll + propertyListPack->begin(); + + const cmCacheManager::CacheEntryMap &cache = + cmCacheManager::GetInstance()->GetCacheMap(); + for(cmCacheManager::CacheEntryMap::const_iterator i = cache.begin(); + i != cache.end(); ++i) + { + const char* key = i->first.c_str(); + const cmCacheManager::CacheEntry& value = i->second; + + + switch(value.m_Type ) + { + case cmCacheManager::BOOL: + if(cmCacheManager::GetInstance()->IsOn(key)) + { + m_CacheEntriesList.AddProperty(key, + "ON", + value.m_HelpString.c_str(), + fltk::PropertyList::CHECKBOX,""); + } + else + { + m_CacheEntriesList.AddProperty(key, + "OFF", + value.m_HelpString.c_str(), + fltk::PropertyList::CHECKBOX,""); + } + break; + case cmCacheManager::PATH: + m_CacheEntriesList.AddProperty(key, + value.m_Value.c_str(), + value.m_HelpString.c_str(), + fltk::PropertyList::PATH,""); + break; + case cmCacheManager::FILEPATH: + m_CacheEntriesList.AddProperty(key, + value.m_Value.c_str(), + value.m_HelpString.c_str(), + fltk::PropertyList::FILE,""); + break; + case cmCacheManager::STRING: + m_CacheEntriesList.AddProperty(key, + value.m_Value.c_str(), + value.m_HelpString.c_str(), + fltk::PropertyList::EDIT,""); + break; + case cmCacheManager::INTERNAL: + break; + } + + } + + propertyListPack->end(); + propertyListPack->init_sizes(); + cacheValuesScroll->position( 0, 0 ); + + this->UpdateData(false); + +} + + +/** + * UpdateData + */ +void +CMakeSetupGUIImplementation +::UpdateData( bool option ) +{ + dialogWindow->redraw(); + Fl::check(); +} + + + |