summaryrefslogtreecommitdiffstats
path: root/Source/FLTKDialog/CMakeSetupGUIImplementation.cxx
diff options
context:
space:
mode:
authorLuis Ibanez <luis.ibanez@kitware.com>2001-06-10 22:21:55 (GMT)
committerLuis Ibanez <luis.ibanez@kitware.com>2001-06-10 22:21:55 (GMT)
commitb0befbde1ae69c8625af763b0bb757557345c15b (patch)
treedf28cced72496b83329488e3bb3cb84dea32fa31 /Source/FLTKDialog/CMakeSetupGUIImplementation.cxx
parentad0019a740413ad270df38232ddcb31120c1b540 (diff)
downloadCMake-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.cxx343
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();
+}
+
+
+