///////////////////////////////////////////////////////////////////////////////// // // This file is part of SACAMOS, cable models for EMI simulations in SPICE. // It was developed by the University of Nottingham and the Netherlands Aerospace // Centre (NLR) for ESA under contract number 4000112765/14/NL/HK. // // Copyright (C) 2015 - 2018 University of Nottingham // // SACAMOS is free software: you can redistribute it and/or modify it under the // terms of the GNU General Public License as published by the Free Software // Foundation, either version 3 of the License, or (at your option) any later // version. // // SACAMOS is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY // or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License // for more details. // // A copy of the GNU General Public License version 3 can be found in the // file GNU_GPL_v3 in the root or at . // // wxWidgets is currently licenced under the "wxWindows Library Licence". // A copy of the wxWindows Library Licence, Version 3.1 can be found in the file // wxWindows_Library_Licence_v3-1 in the root or at: // // // The University of Nottingham can be contacted at: ggiemr@nottingham.ac.uk // // File Contents: // // NAME // UTILITIES.cpp // // DESCRIPTION // Utility Functions: // // check_is_empty check if input field is left blank // check_is numeric: check if input parameters are numerical values // check_is_numeric_list: check if input is space delimited numerical list // check_is_positive: check if input is >0 // check_is_greater_than: check if arguement1 is > than arguement2 // check_is_less_than: check if arguement1 is < than arguement2 // clean_temp_files clean up run folder // // AUTHOR(S) // Steve Greedy // ///////////////////////////////////////////////////////////////////////////////// #include "UTILITIES.h" void check_is_empty(wxTextCtrl *TxtBox, int *IsError) { if (TxtBox->GetValue() == "") { TxtBox->SetBackgroundColour(wxColor(255,153,153)); TxtBox->SetFocus(); *IsError = 1; } } void check_is_numeric(wxTextCtrl *TxtBox, int *IsError) { char* non_numeric = NULL; wxString input = TxtBox->GetValue(); (void) strtod(input, &non_numeric); if (*IsError == 0) { TxtBox->SetBackgroundColour("WHITE"); TxtBox->Refresh(); } if (*non_numeric || *IsError == 1) { TxtBox->SetBackgroundColour(wxColor(255,153,153)); TxtBox->SetFocus(); *IsError = 1; } } void check_is_numeric_list(wxTextCtrl *TxtBox, int *IsError) { char* non_numeric = NULL; wxString input = TxtBox->GetValue(); TxtBox->SetBackgroundColour("WHITE"); TxtBox->Refresh(); wxStringTokenizer tokenizer(input, " "); while ( tokenizer.HasMoreTokens()) { wxString token = tokenizer.GetNextToken(); (void) strtod(token, &non_numeric); if (*non_numeric) { TxtBox->SetBackgroundColour(wxColor(255,153,153)); TxtBox->SetFocus(); *IsError = 1; } } } void check_is_positive (wxTextCtrl *TxtBox, int *IsError) { double value_tb; wxString contents_tb; contents_tb = TxtBox->GetValue(); contents_tb.ToDouble(&value_tb); if (value_tb < 0 ) { TxtBox->SetBackgroundColour(wxColor(255,153,153)); TxtBox->SetFocus(); *IsError = 1; } } void check_is_less_than (wxTextCtrl *TxtBox1, wxTextCtrl *TxtBox2, int *IsError) { double value_tb1, value_tb2; wxString contents_tb1, contents_tb2; contents_tb1 = TxtBox1->GetValue(); contents_tb2 = TxtBox2->GetValue(); contents_tb1.ToDouble(&value_tb1); contents_tb2.ToDouble(&value_tb2); if (value_tb1 < value_tb2) { TxtBox1->SetBackgroundColour(wxColor(255,153,153)); TxtBox1->SetFocus(); *IsError = 1; } } void check_is_greater_than (wxTextCtrl *TxtBox1, wxTextCtrl *TxtBox2, int *IsError) { double value_tb1, value_tb2; wxString contents_tb1, contents_tb2; contents_tb1 = TxtBox1->GetValue(); contents_tb2 = TxtBox2->GetValue(); contents_tb1.ToDouble(&value_tb1); contents_tb2.ToDouble(&value_tb2); if (value_tb1 > value_tb2) { TxtBox1->SetBackgroundColour(wxColor(255,153,153)); TxtBox1->SetFocus(); *IsError = 1; } } void check_filename_valid(wxTextCtrl *TxtBox, int *IsError) { wxFileName fname(TxtBox->GetValue()); TxtBox->SetBackgroundColour("WHITE"); TxtBox->Refresh(); if (!fname.IsOk()) { TxtBox->SetBackgroundColour(wxColor(255,153,153)); TxtBox->SetFocus(); *IsError = 1; } } void clean_temp_files() { wxString file, pattern; pattern = "*.msh.vtk"; file = wxFindFirstFile(pattern); while ( !file.empty()) { wxRemoveFile(file); file = wxFindNextFile(); } pattern = "*.msh"; file = wxFindFirstFile(pattern); while ( !file.empty()) { wxRemoveFile(file); file = wxFindNextFile(); } pattern = "*.geo"; file = wxFindFirstFile(pattern); while ( !file.empty()) { wxRemoveFile(file); file = wxFindNextFile(); } pattern = "*.dat"; file = wxFindFirstFile(pattern); while ( !file.empty()) { wxRemoveFile(file); file = wxFindNextFile(); } pattern = "*.bnd"; file = wxFindFirstFile(pattern); while ( !file.empty()) { wxRemoveFile(file); file = wxFindNextFile(); } pattern = "*.pos"; file = wxFindFirstFile(pattern); while ( !file.empty()) { wxRemoveFile(file); file = wxFindNextFile(); } pattern = "run_status"; file = wxFindFirstFile(pattern); while ( !file.empty()) { wxRemoveFile(file); file = wxFindNextFile(); } }