From 49bcc1ad51e25b0d7c08a2861b997a9d10cf6379 Mon Sep 17 00:00:00 2001 From: Bill Hoffman Date: Wed, 20 Mar 2002 13:16:16 -0500 Subject: [PATCH] ENH: remove fltk dialog as it is no longer supported --- CMakeLists.txt | 2 +- Source/CMakeLists.txt | 10 - Source/FLTKDialog/CMakeLists.txt | 38 - Source/FLTKDialog/CMakeSetupGUI.fl | 116 --- .../CMakeSetupGUIImplementation.cxx | 877 ------------------ .../FLTKDialog/CMakeSetupGUIImplementation.h | 83 -- Source/FLTKDialog/FLTKDialog.cxx | 41 - Source/FLTKDialog/FLTKDialog.dsp | 116 --- Source/FLTKDialog/FLTKPropertyItemRow.cxx | 386 -------- Source/FLTKDialog/FLTKPropertyItemRow.h | 83 -- Source/FLTKDialog/FLTKPropertyList.cxx | 184 ---- Source/FLTKDialog/FLTKPropertyList.h | 143 --- Source/FLTKDialog/Makefile.in | 60 -- 13 files changed, 1 insertion(+), 2138 deletions(-) delete mode 100644 Source/FLTKDialog/CMakeLists.txt delete mode 100644 Source/FLTKDialog/CMakeSetupGUI.fl delete mode 100644 Source/FLTKDialog/CMakeSetupGUIImplementation.cxx delete mode 100644 Source/FLTKDialog/CMakeSetupGUIImplementation.h delete mode 100644 Source/FLTKDialog/FLTKDialog.cxx delete mode 100644 Source/FLTKDialog/FLTKDialog.dsp delete mode 100644 Source/FLTKDialog/FLTKPropertyItemRow.cxx delete mode 100644 Source/FLTKDialog/FLTKPropertyItemRow.h delete mode 100644 Source/FLTKDialog/FLTKPropertyList.cxx delete mode 100644 Source/FLTKDialog/FLTKPropertyList.h delete mode 100644 Source/FLTKDialog/Makefile.in diff --git a/CMakeLists.txt b/CMakeLists.txt index 3b1441154..3661d0734 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -29,6 +29,6 @@ SET(EXECUTABLE_OUTPUT_PATH ${CMake_BINARY_DIR}/Source CACHE PATH "Where to put the executables for CMake" ) -INCLUDE_REGULAR_EXPRESSION("^(\\.\\./)?(cm|FLTK|CMake|form).*") +INCLUDE_REGULAR_EXPRESSION("^(\\.\\./)?(cm|CMake|form).*") diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt index a18d37634..3f4cdb776 100644 --- a/Source/CMakeLists.txt +++ b/Source/CMakeLists.txt @@ -1,13 +1,3 @@ -INCLUDE (${CMake_SOURCE_DIR}/Modules/FindFLTK.cmake) -IF(FLTK_LIBRARY) - IF(FLTK_INCLUDE_PATH) - OPTION(BUILD_FLTK_GUI "Build FLTK CMake GUI." "OFF") - IF(BUILD_FLTK_GUI) - SUBDIRS(FLTKDialog) - ENDIF(BUILD_FLTK_GUI) - ENDIF(FLTK_INCLUDE_PATH) -ENDIF(FLTK_LIBRARY) - SOURCE_FILES(SRCS cmake.cxx cmakewizard.cxx diff --git a/Source/FLTKDialog/CMakeLists.txt b/Source/FLTKDialog/CMakeLists.txt deleted file mode 100644 index 65f0dadd2..000000000 --- a/Source/FLTKDialog/CMakeLists.txt +++ /dev/null @@ -1,38 +0,0 @@ -SOURCE_FILES(SRCS -CMakeSetupGUIImplementation.cxx -FLTKDialog.cxx -FLTKPropertyItemRow.cxx -FLTKPropertyList.cxx -) - -SOURCE_FILES(FLTK_GUI_Files_SRCS -CMakeSetupGUI.fl -) - - -LINK_LIBRARIES(${FLTK_LIBRARY}) -IF(WIN32) - IF(NOT UNIX) - LINK_LIBRARIES(wsock32) - ENDIF(NOT UNIX) -ENDIF(WIN32) - - -IF(UNIX) - INCLUDE (${CMAKE_ROOT}/Modules/FindOpenGL.cmake) - LINK_LIBRARIES(${OPENGL_LIBRARY}) -ENDIF(UNIX) - -INCLUDE_DIRECTORIES(${FLTK_INCLUDE_PATH}) - - -ADD_EXECUTABLE(CMakeSetup SRCS) -FLTK_WRAP_UI(CMakeSetup FLTK_GUI_Files_SRCS) - -INSTALL_TARGETS (/bin CMakeSetup) - -IF(CMAKE_HAS_X) -LINK_LIBRARIES(-lXt -lm) -LINK_LIBRARIES(${CMAKE_X_LIBS}) -ADD_DEFINITIONS(${CMAKE_X_CFLAGS}) -ENDIF(CMAKE_HAS_X) diff --git a/Source/FLTKDialog/CMakeSetupGUI.fl b/Source/FLTKDialog/CMakeSetupGUI.fl deleted file mode 100644 index fedf2aaf9..000000000 --- a/Source/FLTKDialog/CMakeSetupGUI.fl +++ /dev/null @@ -1,116 +0,0 @@ -# data file for the Fltk User Interface Designer (fluid) -version 1.0009 -header_name {.h} -code_name {.cxx} -gridx 5 -gridy 5 -snap 3 -class CMakeSetupGUI {open -} { - Function {CMakeSetupGUI()} {open - } { - Fl_Window dialogWindow { - label CMakeSetupDialog - callback {recentSourceDirectoriesBrowser->hide(); -recentBinaryDirectoriesBrowser->hide();} - xywh {646 144 562 373} resizable visible - } { - Fl_Input sourcePathTextInput { - label {Where is the source code: } - callback {SetSourcePath( sourcePathTextInput->value() );} - xywh {219 15 200 20} labelsize 11 when 8 textsize 11 - } - Fl_Button {} { - label {Browse...} - callback {BrowseForSourcePath();} - xywh {453 14 65 22} shortcut 0x80073 labelsize 11 - } - Fl_Input binaryPathTextInput { - label {Where do you want to build the binaries: } - callback {SetBinaryPath( binaryPathTextInput->value() );} - xywh {219 50 200 20} labelsize 11 when 8 textsize 11 - } - Fl_Button {} { - label {Browse...} - callback {BrowseForBinaryPath();} - xywh {453 49 65 22} shortcut 0x80062 labelsize 11 - } - Fl_Button m_CancelButton { - label Cancel - callback {ClickOnCancel();} - xywh {390 332 100 23} shortcut 0x80071 labelsize 11 - } - Fl_Button m_ConfigureButton { - label Configure - callback {ClickOnConfigure();} - xywh {105 332 100 23} shortcut 0x8006d labelsize 11 - } - Fl_Group {} { - xywh {25 80 515 222} box ENGRAVED_BOX labelsize 11 align 0 resizable - } { - Fl_Scroll cacheValuesScroll { - label {Cache Values} open - xywh {40 98 485 190} type BOTH_ALWAYS box DOWN_FRAME labelsize 11 align 5 when 1 resizable - } { - Fl_Pack propertyListPack { - xywh {40 99 485 185} resizable - } {} - } - } - Fl_Box {} { - label {Right click on cache entries for additional options} - xywh {160 305 275 25} labelsize 11 - } - Fl_Button {} { - label {@\#2>} - callback {ShowRecentSourceDirectories();} - xywh {420 15 22 21} labeltype SYMBOL_LABEL - } - Fl_Button {} { - label {@\#2>} - callback {ShowRecentBinaryDirectories();} - xywh {420 50 22 21} labeltype SYMBOL_LABEL - } - Fl_Browser recentSourceDirectoriesBrowser { - callback {SelectOneRecentSourceDirectory();} - xywh {15 35 535 115} type Hold box BORDER_BOX hide - } - Fl_Browser recentBinaryDirectoriesBrowser { - callback {SelectOneRecentBinaryDirectory();} - xywh {15 70 535 115} type Hold box BORDER_BOX hide - } - Fl_Button m_OKButton { - label OK - callback {ClickOnOK();} selected - xywh {250 332 100 23} shortcut 0x8006d labelsize 11 - } - } - } - Function {~CMakeSetupGUI()} {} {} - Function {Close(void)} {return_type {virtual void} - } {} - Function {BrowseForSourcePath(void)} {return_type {virtual void} - } {} - Function {BrowseForBinaryPath(void)} {return_type {virtual void} - } {} - Function {Show(void)} {return_type {virtual void} - } {} - Function {SetBinaryPath(const char *)} {return_type {virtual bool} - } {} - Function {SetSourcePath(const char *)} {return_type {virtual bool} - } {} - Function {ShowRecentBinaryDirectories(void)} {return_type {virtual void} - } {} - Function {ShowRecentSourceDirectories(void)} {return_type {virtual void} - } {} - Function {SelectOneRecentBinaryDirectory(void)} {return_type {virtual void} - } {} - Function {SelectOneRecentSourceDirectory(void)} {return_type {virtual void} - } {} - Function {ClickOnConfigure(void)} {return_type {virtual void} - } {} - Function {ClickOnOK(void)} {return_type {virtual void} - } {} - Function {ClickOnCancel(void)} {return_type {virtual void} - } {} -} diff --git a/Source/FLTKDialog/CMakeSetupGUIImplementation.cxx b/Source/FLTKDialog/CMakeSetupGUIImplementation.cxx deleted file mode 100644 index 1fc5995fc..000000000 --- a/Source/FLTKDialog/CMakeSetupGUIImplementation.cxx +++ /dev/null @@ -1,877 +0,0 @@ -/*========================================================================= - - 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. - -=========================================================================*/ - -#include "CMakeSetupGUIImplementation.h" -#include "FL/fl_file_chooser.H" -#include "FL/filename.H" -#include "FL/fl_ask.H" -#include "../cmCacheManager.h" -#include "../cmMakefile.h" -#include -#include "FLTKPropertyList.h" -#include "FLTKPropertyItemRow.h" -#include "FL/fl_draw.H" -#include "../cmake.h" -#include "../cmMakefileGenerator.h" - -void FLTKMessageCallback(const char* message, const char* title, bool& nomore) -{ - std::string msg = message; - msg += "\nPress cancel to suppress any further messages."; - int choice = fl_choice( msg.c_str(), "Cancel","Ok",0); - if(choice==0) - { - nomore = true; - } -} - -/** - * Constructor - */ -CMakeSetupGUIImplementation -::CMakeSetupGUIImplementation():m_CacheEntriesList( this ) -{ - cmSystemTools::SetErrorCallback(FLTKMessageCallback); - m_BuildPathChanged = false; -} - - - -/** - * Destructor - */ -CMakeSetupGUIImplementation -::~CMakeSetupGUIImplementation() -{ -} - - - - -/** - * Show the graphic interface - */ -void -CMakeSetupGUIImplementation -::Show( void ) -{ - dialogWindow->show(); -} - - - - - -/** - * Hide the graphic interface - */ -void -CMakeSetupGUIImplementation -::Close( void ) -{ - SaveRecentDirectories(); - 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 path to executable. Used to get the path to CMake - */ -void -CMakeSetupGUIImplementation -::SetPathToExecutable( const char * path ) -{ - - char expandedPath[1024]; - filename_expand( expandedPath, path ); - - char absolutePath[1024]; - filename_absolute( absolutePath, expandedPath ); - - char * p = absolutePath + strlen( absolutePath ); - while( *p != '/' && *p != '\\' ) - { - p--; - } - p--; - while( *p != '/' && *p != '\\' ) - { - p--; - } - *p = '\0'; - - m_PathToExecutable = absolutePath; - -#if defined(_WIN32) - m_PathToExecutable += "/Debug/CMake.exe"; -#else - m_PathToExecutable += "/cmake"; -#endif - -} - - - -/** - * Set the source path - */ -bool -CMakeSetupGUIImplementation -::SetSourcePath( const char * path ) -{ - - if( !path || strlen(path)==0 ) - { - fl_alert("Please select the path to the sources"); - return false; - } - - std::string expandedAbsolutePath = ExpandPathAndMakeItAbsolute( path ); - - sourcePathTextInput->value( expandedAbsolutePath.c_str() ); - - if( VerifySourcePath( expandedAbsolutePath ) ) - { - m_WhereSource = expandedAbsolutePath; - return true; - } - - return false; - -} - - - - -/** - * Expand environment variables in the path and make it absolute - */ -std::string -CMakeSetupGUIImplementation -::ExpandPathAndMakeItAbsolute( const std::string & inputPath ) const -{ - - char expandedPath[3000]; - filename_expand( expandedPath, inputPath.c_str() ); - - char absolutePath[3000]; - filename_absolute( absolutePath, expandedPath ); - - std::string expandedAbsolutePath = absolutePath; - - return expandedAbsolutePath; - -} - - -/** - * Set the binary path - */ -bool -CMakeSetupGUIImplementation -::SetBinaryPath( const char * path ) -{ - - if( !path || strlen(path)==0 ) - { - fl_alert("Please select the path to the binaries"); - return false; - } - - std::string expandedAbsolutePath = ExpandPathAndMakeItAbsolute( path ); - - binaryPathTextInput->value( expandedAbsolutePath.c_str() ); - - if( !VerifyBinaryPath( expandedAbsolutePath.c_str() ) ) - { - return false; - } - - if( m_WhereBuild != expandedAbsolutePath ) - { - m_BuildPathChanged = true; - m_WhereBuild = expandedAbsolutePath; - m_CacheEntriesList.RemoveAll(); // remove data from other project - this->LoadCacheFromDiskToGUI(); - } - else - { - m_BuildPathChanged = false; - } - - return true; - -} - - - -/** - * Verify the path to binaries - */ -bool -CMakeSetupGUIImplementation -::VerifyBinaryPath( const std::string & path ) const -{ - - bool pathIsOK = false; - - if( filename_isdir( path.c_str() ) ) - { - pathIsOK = true; - } - else - { - int userWantsToCreateDirectory = - fl_ask("The directory \n %s \n Doesn't exist. Do you want to create it ?", - path.c_str() ); - - if( userWantsToCreateDirectory ) - { - std::string command = "mkdir "; - command += path; - system( command.c_str() ); - pathIsOK = true; - } - else - { - pathIsOK = false; - } - } - - return pathIsOK; - -} - - - -/** - * Verify the path to sources - */ -bool -CMakeSetupGUIImplementation -::VerifySourcePath( const std::string & path ) const -{ - - if( !filename_isdir( path.c_str() ) ) - { - fl_alert("The Source directory \n %s \n Doesn't exist or is not a directory", path.c_str() ); - return false; - } - - return true; -} - - - - -/** - * Build the project files - */ -void -CMakeSetupGUIImplementation -::RunCMake( bool generateProjectFiles ) -{ - - if(!cmSystemTools::FileExists( m_WhereBuild.c_str() )) - { - std::string message = - "Build directory does not exist, should I create it?\n\n" - "Directory: "; - message += m_WhereBuild; - int userWantToCreateDirectory = - fl_ask(message.c_str()); - if( userWantToCreateDirectory ) - { - cmSystemTools::MakeDirectory( m_WhereBuild.c_str() ); - } - else - { - fl_alert("Build Project aborted, nothing done."); - return; - } - } - - - // set the wait cursor - fl_cursor(FL_CURSOR_WAIT,FL_BLACK,FL_WHITE); - - - // save the current GUI values to the cache - this->SaveCacheFromGUI(); - - // Make sure we are working from the cache on disk - this->LoadCacheFromDiskToGUI(); - - UpdateListOfRecentDirectories(); - SaveRecentDirectories(); - - // create a cmake object - cmake make; - // create the arguments for the cmake object - std::vector args; - args.push_back( m_PathToExecutable.c_str() ); - std::string arg; - arg = "-H"; - arg += m_WhereSource; - args.push_back(arg); - arg = "-B"; - arg += m_WhereBuild; - args.push_back(arg); - arg = "-G"; - m_GeneratorChoiceString = "Unix Makefiles"; - arg += m_GeneratorChoiceString; - args.push_back(arg); - // run the generate process - if(make.Generate(args, generateProjectFiles) != 0) - { - cmSystemTools::Error( - "Error in generation process, project files may be invalid"); - cmSystemTools::ResetErrorOccuredFlag(); - } - // update the GUI with any new values in the caused by the - // generation process - this->LoadCacheFromDiskToGUI(); - - // path is up-to-date now - m_BuildPathChanged = false; - - - // put the cursor back - fl_cursor(FL_CURSOR_DEFAULT,FL_BLACK,FL_WHITE); - fl_message("Done !"); - -} - - - - -/** - * 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 ) -{ - this->FillCacheManagerFromCacheGUI(); - if( m_WhereBuild != "" ) - { - cmCacheManager::GetInstance()->SaveCache( - m_WhereBuild.c_str() ); - } -} - - -/** - * Fill Cache GUI from cache manager - */ -void -CMakeSetupGUIImplementation -::FillCacheGUIFromCacheManager( void ) -{ - int size = m_CacheEntriesList.GetItems().size(); - bool reverseOrder = false; - // if there are already entries in the cache, then - // put the new ones in the top, so they show up first - if(size) - { - reverseOrder = true; - } - - // all the current values are not new any more - std::set items = m_CacheEntriesList.GetItems(); - for(std::set::iterator i = items.begin(); - i != items.end(); ++i) - { - fltk::PropertyItem* item = *i; - item->m_NewValue = false; - } - // Prepare to add rows to the FLTK scroll/pack - propertyListPack->clear(); - propertyListPack->begin(); - - const cmCacheManager::CacheEntryMap &cache = - cmCacheManager::GetInstance()->GetCacheMap(); - if(cache.size() == 0) - { - m_OKButton->deactivate(); - } - else - { - m_OKButton->activate(); - } - - - - 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(cmSystemTools::IsOn(value.m_Value.c_str())) - { - m_CacheEntriesList.AddProperty(key, - "ON", - value.m_HelpString.c_str(), - fltk::PropertyList::CHECKBOX,"", - reverseOrder); - } - else - { - m_CacheEntriesList.AddProperty(key, - "OFF", - value.m_HelpString.c_str(), - fltk::PropertyList::CHECKBOX,"", - reverseOrder); - } - break; - case cmCacheManager::PATH: - m_CacheEntriesList.AddProperty(key, - value.m_Value.c_str(), - value.m_HelpString.c_str(), - fltk::PropertyList::PATH,"", - reverseOrder); - break; - case cmCacheManager::FILEPATH: - m_CacheEntriesList.AddProperty(key, - value.m_Value.c_str(), - value.m_HelpString.c_str(), - fltk::PropertyList::FILE,"", - reverseOrder); - break; - case cmCacheManager::STRING: - m_CacheEntriesList.AddProperty(key, - value.m_Value.c_str(), - value.m_HelpString.c_str(), - fltk::PropertyList::EDIT,"", - reverseOrder); - break; - case cmCacheManager::INTERNAL: - case cmCacheManager::STATIC: - // These entries should not be seen by the user - m_CacheEntriesList.RemoveProperty(key); - break; - } - - } - - // Add the old entry to the end of the pack - for(std::set::iterator i = items.begin(); - i != items.end(); ++i) - { - fltk::PropertyItem* item = *i; - if( !(item->m_NewValue) ) - { - new fltk::PropertyItemRow( item ); // GUI of the old property row - } - } - - propertyListPack->end(); - propertyListPack->init_sizes(); - cacheValuesScroll->position( 0, 0 ); - - propertyListPack->redraw(); - - Fl::check(); - - this->UpdateData(false); - -} - - -/** - * UpdateData - */ -void -CMakeSetupGUIImplementation -::UpdateData( bool option ) -{ - dialogWindow->redraw(); - Fl::check(); -} - - - -/** - * Fill cache manager from Cache GUI - */ -void -CMakeSetupGUIImplementation -::FillCacheManagerFromCacheGUI( void ) -{ - cmCacheManager::GetInstance()->GetCacheMap(); - std::set items = m_CacheEntriesList.GetItems(); - for(std::set::iterator i = items.begin(); - i != items.end(); ++i) - { - fltk::PropertyItem* item = *i; - cmCacheManager::CacheEntry *entry = - cmCacheManager::GetInstance()->GetCacheEntry( - (const char*)item->m_propName.c_str() ); - if (entry) - { - entry->m_Value = item->m_curValue; - } - if( item->m_Dirty ) - { - m_CacheEntriesList.SetDirty(); - } - } -} - - - - -/** - * Load Recent Directories - */ -void -CMakeSetupGUIImplementation -::LoadRecentDirectories( void ) -{ - std::string home = getenv("HOME"); - std::string filename = home + "/.cmakerc"; - - std::ifstream input; - input.open(filename.c_str()); - - if( input.fail() ) - { - // probably the file doesn't exist - return; - } - - m_RecentBinaryDirectories.clear(); - m_RecentSourceDirectories.clear(); - - std::string key; - std::string onedirectory; - - while( !input.eof() ) - { - input >> key; - - if( input.eof() ) break; - - if( key == "MostRecentSource" ) - { - input >> onedirectory; - m_WhereSource = onedirectory; - sourcePathTextInput->value( m_WhereSource.c_str() ); - } else - if( key == "MostRecentBinary" ) - { - input >> onedirectory; - m_WhereBuild = onedirectory; - binaryPathTextInput->value( m_WhereBuild.c_str() ); - LoadCacheFromDiskToGUI(); - } else - if( key == "Binary" ) - { - input >> onedirectory; - // insert is only done if the directory doesn't exist - m_RecentBinaryDirectories.insert( onedirectory ); - recentBinaryDirectoriesBrowser->add( - (onedirectory.c_str()), - (void*)(onedirectory.c_str()) ); - } else - if( key == "Source" ) - { - input >> onedirectory; - // insert is only done if the directory doesn't exist - m_RecentSourceDirectories.insert( onedirectory ); - recentSourceDirectoriesBrowser->add( - (onedirectory.c_str()), - (void*)(onedirectory.c_str()) ); - } - - } - - input.close(); -} - - - -/** - * Save Recent Directories - */ -void -CMakeSetupGUIImplementation -::SaveRecentDirectories( void ) -{ - std::string home = getenv("HOME"); - - if( home.empty() ) - { - return; - } - - std::string filename = home + "/.cmakerc"; - - std::ofstream output; - output.open(filename.c_str()); - - output << "MostRecentBinary " << m_WhereBuild << std::endl; - output << "MostRecentSource " << m_WhereSource << std::endl; - - // Save Recent binary directories - std::set< std::string >::iterator bindir = - m_RecentBinaryDirectories.begin(); - - while( bindir != m_RecentBinaryDirectories.end() ) - { - output << "Binary " << *bindir << std::endl; - bindir++; - } - - - // Save Recent source directories - std::set< std::string >::iterator srcdir = - m_RecentSourceDirectories.begin(); - - while( srcdir != m_RecentSourceDirectories.end() ) - { - output << "Source " << *srcdir << std::endl; - srcdir++; - } - -} - - -/** - * Show Recent Binary Directories - */ -void -CMakeSetupGUIImplementation -::ShowRecentBinaryDirectories( void ) -{ - if( recentBinaryDirectoriesBrowser->size() ) - { - recentBinaryDirectoriesBrowser->Fl_Widget::show(); - } -} - - -/** - * Show Recent Source Directories - */ -void -CMakeSetupGUIImplementation -::ShowRecentSourceDirectories( void ) -{ - if( recentSourceDirectoriesBrowser->size() ) - { - recentSourceDirectoriesBrowser->Fl_Widget::show(); - } -} - - -/** - * Select one Recent Binary Directory - */ -void -CMakeSetupGUIImplementation -::SelectOneRecentBinaryDirectory( void ) -{ - const int selected = recentBinaryDirectoriesBrowser->value(); - if( selected == 0 ) - { - return; - } - - m_WhereBuild = static_cast( - recentBinaryDirectoriesBrowser->data( selected )); - binaryPathTextInput->value( m_WhereBuild.c_str() ); - recentBinaryDirectoriesBrowser->Fl_Widget::hide(); - m_CacheEntriesList.RemoveAll(); // remove data from other project - LoadCacheFromDiskToGUI(); -} - - -/** - * Select one Recent Source Directory - */ -void -CMakeSetupGUIImplementation -::SelectOneRecentSourceDirectory( void ) -{ - const int selected = recentSourceDirectoriesBrowser->value(); - if( selected == 0 ) - { - return; - } - m_WhereSource = static_cast< char * >( - recentSourceDirectoriesBrowser->data( selected )); - sourcePathTextInput->value( m_WhereSource.c_str() ); - recentSourceDirectoriesBrowser->Fl_Widget::hide(); -} - - - -/** - * Update List of Recent Directories - */ -void -CMakeSetupGUIImplementation -::UpdateListOfRecentDirectories( void ) -{ - - // Update Recent binary directories - // insert is only done if the directory doesn't exist - m_RecentBinaryDirectories.insert( m_WhereBuild ); - - // Update Recent source directories - // insert is only done if the directory doesn't exist - m_RecentSourceDirectories.insert( m_WhereSource ); - -} - - - - - -/** - * Clicked on Configure Button - */ -void -CMakeSetupGUIImplementation -::ClickOnConfigure( void ) -{ - this->RunCMake(false); -} - - - - -/** - * Clicked on OK Button - */ -void -CMakeSetupGUIImplementation -::ClickOnOK( void ) -{ - m_CacheEntriesList.ClearDirty(); - this->RunCMake(true); - cmMakefileGenerator::UnRegisterGenerators(); - this->Close(); -} - - - - -/** - * Clicked on Cancel Button - */ -void -CMakeSetupGUIImplementation -::ClickOnCancel( void ) -{ - if(m_CacheEntriesList.IsDirty()) - { - int userWantsExitEvenThoughOptionsHaveChanged = - fl_ask("You have changed options but not rebuilt, \n" - "are you sure you want to exit?"); - if( userWantsExitEvenThoughOptionsHaveChanged ) - { - this->Close(); - } - } - else - { - this->Close(); - } - -} - - - - - diff --git a/Source/FLTKDialog/CMakeSetupGUIImplementation.h b/Source/FLTKDialog/CMakeSetupGUIImplementation.h deleted file mode 100644 index 83fac2f14..000000000 --- a/Source/FLTKDialog/CMakeSetupGUIImplementation.h +++ /dev/null @@ -1,83 +0,0 @@ -/*========================================================================= - - 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 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 bool SetBinaryPath( const char * path ); - virtual bool 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 ); - -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; - -}; - - -#endif diff --git a/Source/FLTKDialog/FLTKDialog.cxx b/Source/FLTKDialog/FLTKDialog.cxx deleted file mode 100644 index dedb2e414..000000000 --- a/Source/FLTKDialog/FLTKDialog.cxx +++ /dev/null @@ -1,41 +0,0 @@ -/*========================================================================= - - 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. - -=========================================================================*/ - -#include "CMakeSetupGUIImplementation.h" -#include "FL/Fl.H" -#include "FL/fl_ask.H" - -int main(int argc, char * argv[] ) -{ - - fl_message_font(FL_HELVETICA,11); - - CMakeSetupGUIImplementation * gui - = new CMakeSetupGUIImplementation; - - gui->SetPathToExecutable( argv[0] ); - gui->Show(); - gui->LoadRecentDirectories(); - gui->LoadCacheFromDiskToGUI(); - - Fl::run(); - - delete gui; - - return 0; - -} diff --git a/Source/FLTKDialog/FLTKDialog.dsp b/Source/FLTKDialog/FLTKDialog.dsp deleted file mode 100644 index d7c608c3e..000000000 --- a/Source/FLTKDialog/FLTKDialog.dsp +++ /dev/null @@ -1,116 +0,0 @@ -# Microsoft Developer Studio Project File - Name="FLTKDialog" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=FLTKDialog - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "FLTKDialog.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "FLTKDialog.mak" CFG="FLTKDialog - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "FLTKDialog - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "FLTKDialog - Win32 Debug" (based on "Win32 (x86) Console Application") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "FLTKDialog - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /W3 /GX /O2 /I "H:/usr/local/fltk" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 fltk.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 - -!ELSEIF "$(CFG)" == "FLTKDialog - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "FLTKDialog___Win32_Debug" -# PROP BASE Intermediate_Dir "FLTKDialog___Win32_Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "FLTKDialog___Win32_Debug" -# PROP Intermediate_Dir "FLTKDialog___Win32_Debug" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "H:/usr/local/fltk" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept -# ADD LINK32 fltk.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"H:/usr/local/fltk/lib/Debug" - -!ENDIF - -# Begin Target - -# Name "FLTKDialog - Win32 Release" -# Name "FLTKDialog - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=.\CMakeSetupGUI.cpp -# End Source File -# Begin Source File - -SOURCE=.\CMakeSetupGUIImplementation.cpp -# End Source File -# Begin Source File - -SOURCE=.\FLTKDialog.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=.\CMakeSetupGUI.h -# End Source File -# Begin Source File - -SOURCE=.\CMakeSetupGUIImplementation.h -# End Source File -# End Group -# Begin Group "Resource Files" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" -# End Group -# End Target -# End Project diff --git a/Source/FLTKDialog/FLTKPropertyItemRow.cxx b/Source/FLTKDialog/FLTKPropertyItemRow.cxx deleted file mode 100644 index b78c563f6..000000000 --- a/Source/FLTKDialog/FLTKPropertyItemRow.cxx +++ /dev/null @@ -1,386 +0,0 @@ -/*========================================================================= - - 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. - -=========================================================================*/ -#include "FLTKPropertyItemRow.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "../cmCacheManager.h" -#include "FLTKPropertyList.h" -#include "CMakeSetupGUIImplementation.h" -#include - - -namespace fltk { - - - -CMakeSetupGUIImplementation * PropertyItemRow::m_CMakeSetup = 0; - - - - -PropertyItemRow -::PropertyItemRow( PropertyItem * pItem ):Fl_Tile(0,0,10,10,"") -{ - - m_PropertyItem = pItem; - m_ItemValue = new ItemValue; - - const unsigned int fontsize = 11; - const unsigned int nameWidth = 200; - const unsigned int textWidth = 1400; - const unsigned int checkWidth = textWidth; - const unsigned int browseWidth = 20; - const unsigned int firstColumn = 0; - - const unsigned int secondColumn = nameWidth; - - const unsigned int rowHeight = 20; - - size( nameWidth + textWidth , rowHeight ); - - // Make the parent Fl_Pack widget at least a row wide. - parent()->size( nameWidth + textWidth , rowHeight ); - - m_NameButton = new - Fl_Button( firstColumn, 0, nameWidth, rowHeight, - m_PropertyItem->m_propName.c_str() ); - - m_NameButton->align( FL_ALIGN_CLIP | FL_ALIGN_LEFT | FL_ALIGN_INSIDE ); - m_NameButton->labelsize( fontsize ); - m_NameButton->box( FL_DOWN_BOX ); - m_NameButton->size( secondColumn, rowHeight ); - m_NameButton->callback( NameButtonCallback, (void *)m_PropertyItem ); - if( m_PropertyItem->m_NewValue ) - { - m_NameButton->color(FL_RED); - } - - switch( m_PropertyItem->m_nItemType ) - { - case PropertyList::COMBO: - { - break; - } - case PropertyList::EDIT: - { - - Fl_Input * input = new - Fl_Input( secondColumn, 0, textWidth ,rowHeight ,""); - input->value( m_PropertyItem->m_curValue.c_str() ); - input->textsize( fontsize ); - input->callback( InputTextCallback, (void *)m_PropertyItem ); - input->when( FL_WHEN_CHANGED ); - - break; - } - case PropertyList::COLOR: - { - Fl_Button * colorButton = new - Fl_Button( secondColumn, 0, textWidth ,rowHeight ,""); - colorButton->labelsize( fontsize ); - //colorButton->color(); - colorButton->callback( ColorSelectionCallback, (void *)m_PropertyItem ); - - break; - } - case PropertyList::FILE: - { - - Fl_Button * browseButton = new - Fl_Button( secondColumn, 0, browseWidth ,rowHeight ,"..."); - browseButton->labelsize( fontsize ); - - Fl_Input * input = new - Fl_Input( secondColumn+browseWidth, 0, textWidth ,rowHeight ,""); - input->value( m_PropertyItem->m_curValue.c_str() ); - input->textsize( fontsize ); - - m_ItemValue->m_InputText = input; - m_ItemValue->m_PropertyItem = m_PropertyItem; - - browseButton->callback( BrowsePathCallback, (void *)m_ItemValue ); - input->callback( InputTextCallback, m_PropertyItem ); - input->when( FL_WHEN_CHANGED ); - - break; - } - case PropertyList::CHECKBOX: - { - Fl_Button * button = new - Fl_Button( secondColumn, 0, checkWidth ,rowHeight ,""); - button->align( FL_ALIGN_INSIDE | FL_ALIGN_LEFT ); - button->callback( CheckButtonCallback, (void *)m_PropertyItem ); - - if( m_PropertyItem->m_curValue == "ON" ) - { - button->label(" ON "); - button->value(1); - } - else if( m_PropertyItem->m_curValue == "OFF" ) - { - button->label(" OFF "); - button->value(0); - } - button->type( FL_TOGGLE_BUTTON ); - button->labelsize( fontsize ); - break; - } - case PropertyList::PATH: - { - - Fl_Button * browseButton = new - Fl_Button( secondColumn, 0, browseWidth ,rowHeight ,"..."); - browseButton->labelsize( fontsize ); - - Fl_Input * input = new - Fl_Input( secondColumn+browseWidth, 0, textWidth ,rowHeight ,""); - input->value( m_PropertyItem->m_curValue.c_str() ); - input->textsize( fontsize ); - - m_ItemValue->m_InputText = input; - m_ItemValue->m_PropertyItem = m_PropertyItem; - - browseButton->callback( BrowsePathCallback, (void *)m_ItemValue ); - input->callback( InputTextCallback, (void *)m_PropertyItem ); - input->when( FL_WHEN_CHANGED ); - - break; - } - break; - default: - fl_alert("Unkown item type %d",m_PropertyItem->m_nItemType); - break; - } - - - end(); // Close the inclusion of widgets in the Tile object - -} - - - - - -PropertyItemRow::~PropertyItemRow( ) -{ - delete m_ItemValue; -} - - - -void PropertyItemRow -::SetCMakeSetupGUI( CMakeSetupGUIImplementation * cmakeSetup ) -{ - m_CMakeSetup = cmakeSetup; -} - - - -void -PropertyItemRow:: -NameButtonCallback( Fl_Widget * widget, void * data) -{ - Fl_Button * button = (Fl_Button *)widget; - PropertyItem * pItem = (PropertyItem *)data; - - static Fl_Menu_Button * popupMenu = 0; - if( !popupMenu ) - { - int lastMousePositionX = Fl::event_x(); - int lastMousePositionY = Fl::event_y(); - popupMenu = new Fl_Menu_Button(lastMousePositionX, - lastMousePositionY,100,200); - } - - popupMenu->type( Fl_Menu_Button::POPUP3 ); - popupMenu->add("Help|Remove|Properties..."); - popupMenu->popup(); - - typedef enum { - HELP=0, - REMOVE, - PROPERTIES - } MenuOptions; - - - switch( popupMenu->value() ) - { - case HELP: - fl_message( pItem->m_HelpString.c_str() ); - break; - case REMOVE: // Remove - { - const char * propertyName = pItem->m_propName.c_str(); - int answer = fl_ask( "Do you want to remove property %s", propertyName ); - if( answer == 1 ) - { - // Remove the entry from the cache - cmCacheManager::GetInstance()->RemoveCacheEntry( propertyName ); - // Get the parent: Fl_Tile that manages the whole row in the GUI - Fl_Group * parentGroup = dynamic_cast(button->parent()); - // Get the grandParent: Fl_Pack with the property list - Fl_Group * grandParentGroup = dynamic_cast( parentGroup->parent() ); - // Remove the row from the list - grandParentGroup->remove( *parentGroup ); - // Destroy the row - delete parentGroup; // Patricide... ? - // Redraw the list - grandParentGroup->redraw(); - FillCacheManagerFromCacheGUI(); - return; - } - break; - } - case PROPERTIES: // Properties - break; - } -} - - - -void -PropertyItemRow:: -FillCacheManagerFromCacheGUI( void ) -{ - if( m_CMakeSetup ) - { - m_CMakeSetup->FillCacheManagerFromCacheGUI(); - } -} - - - -void -PropertyItemRow:: -CheckButtonCallback( Fl_Widget * widget, void * data) -{ - Fl_Button * button = (Fl_Button *)widget; - PropertyItem * pItem = (PropertyItem *)data; - - int value = button->value(); - - if( value ) - { - button->label(" ON "); - pItem->m_curValue = "ON"; - } - else - { - button->label(" OFF "); - pItem->m_curValue = "OFF"; - } - - pItem->m_Dirty = true; - - button->redraw(); - - FillCacheManagerFromCacheGUI(); - -} - - - -void -PropertyItemRow:: -InputTextCallback( Fl_Widget * widget, void * data) -{ - Fl_Input * input = (Fl_Input *)widget; - PropertyItem * item = (PropertyItem *)data; - - item->m_curValue = input->value(); - - item->m_Dirty = true; - - FillCacheManagerFromCacheGUI(); - -} - - - -void -PropertyItemRow:: -ColorSelectionCallback( Fl_Widget * widget, void * data) -{ - Fl_Button * colorButton = (Fl_Button *)widget; - PropertyItem * propertyItem = (PropertyItem *)data; - - static Fl_Color colorIndex = FL_FREE_COLOR; - - unsigned char red = 0; - unsigned char blue = 0; - unsigned char green = 0; - fl_color_chooser("Please pick a color",red,green,blue); - char buffer[300]; - sprintf( buffer,"RGB(%d,%d,%d)", red, green, blue ); - propertyItem->m_curValue = buffer; - Fl::set_color( colorIndex, red, green, blue ); - colorButton->color( colorIndex ); - colorIndex = (Fl_Color)( colorIndex + 1 ); - if( colorIndex == FL_FREE_COLOR + FL_NUM_FREE_COLOR ) - { - fl_alert("Maximum number of free colors used, recycling..."); - colorIndex = FL_FREE_COLOR; - } - - propertyItem->m_Dirty = true; - - colorButton->redraw(); - - FillCacheManagerFromCacheGUI(); - -} - - - - - - -void -PropertyItemRow:: -BrowsePathCallback( Fl_Widget * widget, void * data) -{ - ItemValue * itemValue = (ItemValue *)data; - Fl_Input * inputText = itemValue->m_InputText; - PropertyItem * propertyItem = itemValue->m_PropertyItem; - - const char * newpath = - fl_file_chooser("Select a path","*", inputText->value() ); - - if( newpath ) - { - propertyItem->m_curValue = newpath; - inputText->value( newpath ); - } - - propertyItem->m_Dirty = true; - - FillCacheManagerFromCacheGUI(); - -} - - - - -} // end namespace fltk diff --git a/Source/FLTKDialog/FLTKPropertyItemRow.h b/Source/FLTKDialog/FLTKPropertyItemRow.h deleted file mode 100644 index 24bac6795..000000000 --- a/Source/FLTKDialog/FLTKPropertyItemRow.h +++ /dev/null @@ -1,83 +0,0 @@ -/*========================================================================= - - 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 FLTKPropertyItemRow_h -#define FLTKPropertyItemRow_h - -#include "FLTKPropertyList.h" - -#include -#include -#include - - -class CMakeSetupGUIImplementation; - - -namespace fltk { - - -/** - - Class to manage a GUI row corresponding to a property - - */ -class PropertyItemRow : public Fl_Tile -{ - - // Helper class for passing data to callbacks - struct ItemValue - { - PropertyItem * m_PropertyItem; - Fl_Input * m_InputText; - }; - - - public: - - PropertyItemRow( PropertyItem *); - ~PropertyItemRow(); - - private: - - PropertyItem * m_PropertyItem; - ItemValue * m_ItemValue; - Fl_Button * m_NameButton; - - static CMakeSetupGUIImplementation * m_CMakeSetup; - - static void CheckButtonCallback( Fl_Widget *, void *); - static void NameButtonCallback( Fl_Widget *, void *); - static void InputTextCallback( Fl_Widget *, void *); - static void BrowsePathCallback( Fl_Widget *, void *); - static void ColorSelectionCallback( Fl_Widget * widget, void * data); - - - static void FillCacheManagerFromCacheGUI( void ); - - public: - - static void SetCMakeSetupGUI( CMakeSetupGUIImplementation * ); -}; - - -} // end namespace fltk - - -#endif - - diff --git a/Source/FLTKDialog/FLTKPropertyList.cxx b/Source/FLTKDialog/FLTKPropertyList.cxx deleted file mode 100644 index 6913abe00..000000000 --- a/Source/FLTKDialog/FLTKPropertyList.cxx +++ /dev/null @@ -1,184 +0,0 @@ -/*========================================================================= - - 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. - -=========================================================================*/ -// FLTKPropertyList.cxx : implementation file -// - -#include "FLTKPropertyList.h" -#include "../cmCacheManager.h" -#include "FLTKPropertyItemRow.h" -#include "FL/filename.H" -#include "FL/fl_file_chooser.H" -#include "FL/Fl_Color_Chooser.H" -#include "FL/fl_ask.H" -#include "FL/Fl_Button.H" -#include "CMakeSetupGUIImplementation.h" - - -namespace fltk { - -///////////////////////////////////////////////////////////////////////////// -// PropertyList - -PropertyList::PropertyList( CMakeSetupGUIImplementation * cmakeSetup ) -{ - m_CMakeSetup = cmakeSetup; - PropertyItemRow::SetCMakeSetupGUI( cmakeSetup ); - m_Dirty = false; -} - - - -PropertyList::~PropertyList() -{ - for(std::set::iterator i = m_PropertyItems.begin(); - i != m_PropertyItems.end(); ++i) - { - delete *i; - } -} - - - - -int PropertyList::AddItem( std::string txt) -{ - int nIndex =0; - return nIndex; -} - - - -int PropertyList::AddPropItem(PropertyItem* pItem, bool reverseOrder) -{ - - int nIndex =0; - if(reverseOrder) - { - nIndex = 0; - } - else - { - nIndex = m_PropertyItems.size(); - } - - new PropertyItemRow( pItem ); // GUI of the new property row - - m_PropertyItems.insert(pItem); - - return nIndex; -} - - - -int PropertyList::AddProperty(const char* name, - const char* value, - const char* helpString, - int type, - const char* comboItems, - bool reverseOrder) -{ - - PropertyItem* pItem = 0; - for(int i =0; i < this->GetCount(); ++i) - { - PropertyItem* item = this->GetItem(i); - if(item->m_propName == name) - { - pItem = item; - if(pItem->m_curValue != value) - { - pItem->m_curValue = value; - pItem->m_HelpString = helpString; - Invalidate(); - } - return i; - } - } - // if it is not found, then create a new one - if(!pItem) - { - pItem = new PropertyItem(name, value, helpString, type, comboItems); - } - return this->AddPropItem(pItem,reverseOrder); -} - - -void PropertyList::RemoveProperty(const char* name) -{ - for(int i =0; i < this->GetCount(); ++i) - { - PropertyItem* pItem = (PropertyItem*) GetItemDataPtr(i); - if(pItem->m_propName == name) - { - m_PropertyItems.erase(pItem); - delete pItem; - return; - } - } -} - - - -void PropertyList::RemoveAll() -{ - int c = this->GetCount(); - for(int i =0; i < c; ++i) - { - PropertyItem* pItem = (PropertyItem*) GetItemDataPtr(0); - cmCacheManager::GetInstance()->RemoveCacheEntry(pItem->m_propName.c_str()); - m_PropertyItems.erase(pItem); - delete pItem; - } - Invalidate(); -} - - - -PropertyItem * PropertyList::GetItemDataPtr(int index) -{ - std::set::iterator it = m_PropertyItems.begin(); - for(int i=0; it != m_PropertyItems.end() && i::iterator it = m_PropertyItems.begin(); - for(int i=0; it != m_PropertyItems.end() && i - - -class CMakeSetupGUIImplementation; - - -namespace fltk { - - -///////////////////////////////////////////////////////////////////////////// -//PropertyList Items -class PropertyItem -{ -// Attributes -public: - std::string m_HelpString; - std::string m_propName; - std::string m_curValue; - int m_nItemType; - std::string m_cmbItems; - bool m_Removed; - bool m_NewValue; - bool m_Dirty; -public: - PropertyItem( std::string propName, - std::string curValue, - std::string helpString, - int nItemType, - std::string cmbItems ) - { - m_HelpString = helpString; - m_propName = propName; - m_curValue = curValue; - m_nItemType = nItemType; - m_cmbItems = cmbItems; - m_Removed = false; - m_NewValue = true; - m_Dirty = false; - } -}; - - - - - -///////////////////////////////////////////////////////////////////////////// -// PropertyList window - -class PropertyList -{ -// Construction -public: - enum ItemType - { - COMBO = 0, - EDIT, - COLOR, - FONT, - FILE, - CHECKBOX, - PATH - }; - - PropertyList( CMakeSetupGUIImplementation * ); - -// Attributes -public: - -// Operations -public: - int AddItem( std::string txt ); - int AddProperty(const char* name, - const char* value, - const char* helpString, - int type, - const char* comboItems, - bool reverseOrder); - void RemoveProperty(const char* name); - std::set & GetItems() - { - return m_PropertyItems; - } - - void InvalidateList(void); - void Invalidate(void) - { - // fltk redraw(); - } - - int GetCount(void) const - { - return m_PropertyItems.size(); - } - void OnButton(void); - void OnHelp(void); - void RemoveAll(); - PropertyItem* GetItem(int index); - PropertyItem* GetItemDataPtr(int m_curSel); - - void ClearDirty(void) { m_Dirty = false; } - void SetDirty(void) { m_Dirty = true; } - bool IsDirty(void) const { return m_Dirty; } - -// Implementation -public: - virtual ~PropertyList(); - -protected: - - int AddPropItem(PropertyItem* pItem,bool reverseOrder); - - std::set m_PropertyItems; - - CMakeSetupGUIImplementation * m_CMakeSetup; - - bool m_Dirty; - -}; - - -} // end namespace fltk - -#endif diff --git a/Source/FLTKDialog/Makefile.in b/Source/FLTKDialog/Makefile.in deleted file mode 100644 index 8ef6a2392..000000000 --- a/Source/FLTKDialog/Makefile.in +++ /dev/null @@ -1,60 +0,0 @@ -srcdir = @srcdir@ -VPATH = @srcdir@ - -FLTK_LIB_DIR = @FLTK_LIB_DIR@ -FLTK_INCLUDE_DIR = @FLTK_INCLUDE_DIR@ - -OPENGL_LIB_DIR = @OPENGL_LIB_DIR@ -OPENGL_INCLUDE_DIR = @OPENGL_INCLUDE_DIR@ - -CMAKE_CONFIG_DIR = @CMAKE_CONFIG_DIR@ -CXX = @CXX@ -CXXFLAGS = -DCMAKE_ROOT_DIR='"@CMAKE_ROOT_DIR@"' @CXXFLAGS@ -I${FLTK_INCLUDE_DIR} -DCMAKE_HAS_AUTOCONF -I${CMAKE_CONFIG_DIR}/Source - -LIBS = @LIBS@ -lfltk -lGL -L${FLTK_LIB_DIR} -L${OPENGL_LIB_DIR} - -.SUFFIXES: .cxx .java .class - -all: CMakeSetupGUI - -.cxx.o: - ${CXX} ${CXXFLAGS} -c $< -o $@ - - -OBJS = \ -CMakeSetupGUI.o \ -CMakeSetupGUIImplementation.o \ -FLTKDialog.o \ -FLTKPropertyItemRow.o \ -FLTKPropertyList.o \ -FLTKPropertyNameButtonWithHelp.o \ -../cmCableClassSet.o \ -../cmCacheManager.o \ -../cmCommands.o \ -../cmCustomCommand.o \ -../cmDirectory.o \ -../cmMakeDepend.o \ -../cmMakefile.o \ -../cmMakefileGenerator.o \ -../cmRegularExpression.o \ -../cmSourceFile.o \ -../cmSourceGroup.o \ -../cmSystemTools.o \ -../cmTarget.o \ -../cmUnixMakefileGenerator.o \ -../cmake.o - - -DEPENDS = $(srcdir)/*.h $(srcdir)/*.fl ../cmConfigure.h - -CMakeSetupGUI.o : $(DEPENDS) -CMakeSetupGUIImplementation.o : $(DEPENDS) -FLTKDialog.o : $(DEPENDS) -FLTKPropertyList.o : $(DEPENDS) -FLTKPropertyItemRow.o : $(DEPENDS) -FLTKPropertyNameButtonWithHelp.o : $(DEPENDS) - - -CMakeSetupGUI: ${OBJS} - ${CXX} ${OBJS} ${CXXFLAGS} ${LIBS} -o CMakeSetupGUI -