]> Creatis software - crea.git/blob - appli/creaNewProject/creaNewProject.cpp
no message
[crea.git] / appli / creaNewProject / creaNewProject.cpp
1 #include <creaWx.h>
2 #include <wx/dirdlg.h>
3 class myApp : public wxApp
4 {
5 public:
6   bool OnInit( );
7   int  OnExit() { return true; }
8 };
9
10 IMPLEMENT_APP(myApp);
11 CREA_WXMAIN_WITH_CONSOLE
12
13 bool myApp::OnInit( )
14 {        
15   wxApp::OnInit();
16 #ifdef __WXGTK__
17   //See http://www.wxwindows.org/faqgtk.htm#locale
18   setlocale(LC_NUMERIC, "C");
19 #endif
20    wxInitAllImageHandlers();
21
22    wxString dir = wxDirSelector(_T("Select directory in which to create the project"), _T(""), wxDD_DEFAULT_STYLE | wxDD_DIR_MUST_EXIST );
23                                 
24    if (dir.IsEmpty()) return false;
25
26    wxString name = wxGetTextFromUser(_T("Enter project name"),
27                                      _T("creaNewProject"),
28                                      _T("New"));
29    if (name.IsEmpty()) return false;
30    
31 #if(_WIN32)
32    std::string command("creaNewProject.bat ");
33     std::string command1("creaSed.exe ");
34         std::string command2("del ");
35         
36         command += "\"" + crea::wx2std(dir) + "\" \"" + crea::wx2std(name) + "\"";
37         command1 += "\"" + crea::wx2std(dir)+"\\"+crea::wx2std(name)+"\\CMakeLists.txt.in\" " + "PROJECT_NAME " + crea::wx2std(name) + "> \"" + crea::wx2std(dir)+"\\"+crea::wx2std(name)+"\\CMakeLists.txt\"";
38         command2 += "\"" + crea::wx2std(dir)+"\\"+crea::wx2std(name)+"\\CMakeLists.txt.in\"";
39         if ( ! system ( command.c_str() ) )
40         {
41                 
42                 system ( command1.c_str() );
43                 system ( command2.c_str() );
44                 wxMessageBox(_T("Done !"),_T("creaNewProject"),
45                                          wxOK | wxICON_INFORMATION);
46         }
47         else 
48         {
49                 wxString err(_T("An error occured while running '"));
50                 err +=  crea::std2wx(command) + _T("'");
51                 wxMessageBox(err,_T("creaNewProject"),wxOK | wxICON_ERROR);      
52         }       
53 #else
54    std::string command("creaNewProject.sh ");
55         command += "\"" + crea::wx2std(dir) + "\"" +" " + crea::wx2std(name);
56         if ( ! system ( command.c_str() ) )
57         {
58                 wxMessageBox(_T("Done !"),_T("creaNewProject"),
59                                          wxOK | wxICON_INFORMATION);
60         }
61         else 
62         {
63                 wxString err(_T("An error occured while running '"));
64                 err +=  crea::std2wx(command) + _T("'");
65                 wxMessageBox(err,_T("creaNewProject"),wxOK | wxICON_ERROR);      
66         }
67         
68 #endif
69    command += "\"" + crea::wx2std(dir) + "\" \"" + crea::wx2std(name) + "\"";
70    command1 += "\"" + crea::wx2std(dir)+"\\"+crea::wx2std(name)+"\\CMakeLists.txt.in\" " + "PROJECT_NAME " + crea::wx2std(name) + "> \"" + crea::wx2std(dir)+"\\"+crea::wx2std(name)+"\\CMakeLists.txt\"";
71    command2 += "\"" + crea::wx2std(dir)+"\\"+crea::wx2std(name)+"\\CMakeLists.txt.in\"";
72    if ( ! system ( command.c_str() ) )
73      {
74                  
75                  system ( command1.c_str() );
76                  system ( command2.c_str() );
77        wxMessageBox(_T("Done !"),_T("creaNewProject"),
78                     wxOK | wxICON_INFORMATION);
79      }
80    else 
81      {
82        wxString err(_T("An error occured while running '"));
83        err +=  crea::std2wx(command) + _T("'");
84        wxMessageBox(err,_T("creaNewProject"),wxOK | wxICON_ERROR);      
85      }
86
87    return false;
88 }
89