Commit 483e6dda authored by Luis Ibanez's avatar Luis Ibanez

Implementation of the virtual Callbacks declared in the GUI

parent 259b5ad9
#include "CMakeSetupGUIImplementation.h"
#include "Fl/fl_file_chooser.H"
#include "Fl/filename.H"
#include "Fl/fl_ask.H"
#include "cstring"
/**
* 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;
}
binaryPathTextInput->value( path );
}
/**
* Set the source path
*/
void
CMakeSetupGUIImplementation
::SetSourcePath( const char * path )
{
if( VerifySourcePath( path ) )
{
sourcePathTextInput->value( path );
}
}
/**
* Set the binary path
*/
void
CMakeSetupGUIImplementation
::SetBinaryPath( const char * path )
{
if( VerifyBinaryPath( path ) )
{
binaryPathTextInput->value( path );
}
}
/**
* 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;
}
fl_message("Building project files ... please wait");
}
#ifndef CMakeSetupGUIImplementation_h
#define CMakeSetupGUIImplementation_h
#include "CMakeSetupGUI.h"
/**
*
* 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 BuildProjectFiles( void );
virtual void BrowseForBinaryPath( void );
virtual void BrowseForSourcePath( void );
virtual void SetBinaryPath( const char * path );
virtual void SetSourcePath( const char * path );
virtual bool VerifyBinaryPath( const char * path );
virtual bool VerifySourcePath( const char * path );
};
#endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment