Commit a399f76b182951e505ab1a164354e5aafaf54668

Authored by Steve Greedy
1 parent 9d10a2ba

SW Updates

1. Auto update notification
2. Additional logging
Misc Bug fixes: Bundle builder, spice model builder
GUI/SW1/SRC/BUNDLEBLDR.cpp
@@ -173,7 +173,7 @@ BUNDLEBLDR::BUNDLEBLDR(wxWindow* parent,wxWindowID id,const wxPoint& pos,const w @@ -173,7 +173,7 @@ BUNDLEBLDR::BUNDLEBLDR(wxWindow* parent,wxWindowID id,const wxPoint& pos,const w
173 Panel4 = new wxPanel(Notebook1, ID_PANEL4, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL, _T("ID_PANEL4")); 173 Panel4 = new wxPanel(Notebook1, ID_PANEL4, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL, _T("ID_PANEL4"));
174 FlexGridSizer4 = new wxFlexGridSizer(0, 2, 0, 0); 174 FlexGridSizer4 = new wxFlexGridSizer(0, 2, 0, 0);
175 FlexGridSizer4->AddGrowableCol(1); 175 FlexGridSizer4->AddGrowableCol(1);
176 - CheckBox1 = new wxCheckBox(Panel4, ID_CHECKBOX1, _("Use Ground Plane"), wxDefaultPosition, wxSize(154,13), 0, wxDefaultValidator, _T("ID_CHECKBOX1")); 176 + CheckBox1 = new wxCheckBox(Panel4, ID_CHECKBOX1, _("Use Ground Plane"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_CHECKBOX1"));
177 CheckBox1->SetValue(false); 177 CheckBox1->SetValue(false);
178 FlexGridSizer4->Add(CheckBox1, 1, wxALL|wxALIGN_LEFT, 5); 178 FlexGridSizer4->Add(CheckBox1, 1, wxALL|wxALIGN_LEFT, 5);
179 StaticText2 = new wxStaticText(Panel4, ID_STATICTEXT2, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT2")); 179 StaticText2 = new wxStaticText(Panel4, ID_STATICTEXT2, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT2"));
@@ -183,7 +183,7 @@ BUNDLEBLDR::BUNDLEBLDR(wxWindow* parent,wxWindowID id,const wxPoint& pos,const w @@ -183,7 +183,7 @@ BUNDLEBLDR::BUNDLEBLDR(wxWindow* parent,wxWindowID id,const wxPoint& pos,const w
183 FlexGridSizer4->SetSizeHints(Panel4); 183 FlexGridSizer4->SetSizeHints(Panel4);
184 Panel5 = new wxPanel(Notebook1, ID_PANEL5, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL, _T("ID_PANEL5")); 184 Panel5 = new wxPanel(Notebook1, ID_PANEL5, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL, _T("ID_PANEL5"));
185 FlexGridSizer5 = new wxFlexGridSizer(0, 2, 0, 0); 185 FlexGridSizer5 = new wxFlexGridSizer(0, 2, 0, 0);
186 - CheckBox2 = new wxCheckBox(Panel5, ID_CHECKBOX2, _("Use Laplace"), wxDefaultPosition, wxSize(95,24), 0, wxDefaultValidator, _T("ID_CHECKBOX2")); 186 + CheckBox2 = new wxCheckBox(Panel5, ID_CHECKBOX2, _("Use Laplace"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_CHECKBOX2"));
187 CheckBox2->SetValue(false); 187 CheckBox2->SetValue(false);
188 FlexGridSizer5->Add(CheckBox2, 1, wxALL, 5); 188 FlexGridSizer5->Add(CheckBox2, 1, wxALL, 5);
189 ComboBox1 = new wxComboBox(Panel5, ID_COMBOBOX1, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, 0, 0, wxDefaultValidator, _T("ID_COMBOBOX1")); 189 ComboBox1 = new wxComboBox(Panel5, ID_COMBOBOX1, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, 0, 0, wxDefaultValidator, _T("ID_COMBOBOX1"));
@@ -287,6 +287,7 @@ BUNDLEBLDR::BUNDLEBLDR(wxWindow* parent,wxWindowID id,const wxPoint& pos,const w @@ -287,6 +287,7 @@ BUNDLEBLDR::BUNDLEBLDR(wxWindow* parent,wxWindowID id,const wxPoint& pos,const w
287 TextCtrl8 = new wxTextCtrl(this, ID_TEXTCTRL8, _("0.030"), wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER, wxDefaultValidator, _T("ID_TEXTCTRL8")); 287 TextCtrl8 = new wxTextCtrl(this, ID_TEXTCTRL8, _("0.030"), wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER, wxDefaultValidator, _T("ID_TEXTCTRL8"));
288 BoxSizer4->Add(TextCtrl8, 4, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); 288 BoxSizer4->Add(TextCtrl8, 4, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
289 SpinButton1 = new wxSpinButton(this, ID_SPINBUTTON1, wxDefaultPosition, wxDefaultSize, wxSP_VERTICAL|wxSP_ARROW_KEYS, _T("ID_SPINBUTTON1")); 289 SpinButton1 = new wxSpinButton(this, ID_SPINBUTTON1, wxDefaultPosition, wxDefaultSize, wxSP_VERTICAL|wxSP_ARROW_KEYS, _T("ID_SPINBUTTON1"));
  290 + SpinButton1->SetValue(50);
290 SpinButton1->SetRange(0, 100); 291 SpinButton1->SetRange(0, 100);
291 BoxSizer4->Add(SpinButton1, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); 292 BoxSizer4->Add(SpinButton1, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
292 StaticBoxSizer1->Add(BoxSizer4, 1, wxALL|wxALIGN_RIGHT, 5); 293 StaticBoxSizer1->Add(BoxSizer4, 1, wxALL|wxALIGN_RIGHT, 5);
@@ -335,24 +336,16 @@ void BUNDLEBLDR::OnListboxRDown(wxMouseEvent& event) @@ -335,24 +336,16 @@ void BUNDLEBLDR::OnListboxRDown(wxMouseEvent& event)
335 336
336 strMessage = "Are you sure you wish to delete: "; 337 strMessage = "Are you sure you wish to delete: ";
337 strMessage = strMessage << strItem; 338 strMessage = strMessage << strItem;
338 - // We have an item in the list to delete - shall we confirm? 339 + // Confirm cable component deletion?
339 wxMessageDialog bb_ConfirmDelete (this, strMessage, _("Please confirm delete") ,wxYES_NO|wxCENTRE,wxDefaultPosition ); 340 wxMessageDialog bb_ConfirmDelete (this, strMessage, _("Please confirm delete") ,wxYES_NO|wxCENTRE,wxDefaultPosition );
340 341
341 bb_ConfirmDelete.ShowModal(); 342 bb_ConfirmDelete.ShowModal();
342 343
343 - //int RetVal = bb_ConfirmDelete.GetReturnCode();  
344 -  
345 - //if ( RetVal == wxID_YES )  
346 - //{  
347 - // Delete the item 'item' from the linked list  
348 - removeElement(item);  
349 - PopulateListControl();  
350 - // And repopulate the listbox (clear it first!)  
351 -  
352 - //}  
353 - 344 + removeElement(item);
  345 + PopulateListControl();
354 } 346 }
355 else 347 else
  348 +
356 wxMessageBox(_T("No Cable SELECTED"),_("Remove Cable Component")); 349 wxMessageBox(_T("No Cable SELECTED"),_("Remove Cable Component"));
357 350
358 event.Skip(); 351 event.Skip();
@@ -380,9 +373,8 @@ void BUNDLEBLDR::removeElement(int ItemIndex) @@ -380,9 +373,8 @@ void BUNDLEBLDR::removeElement(int ItemIndex)
380 373
381 Bundle *Current = bundle_root; 374 Bundle *Current = bundle_root;
382 Bundle *Previous = Current; 375 Bundle *Previous = Current;
383 - //Bundle *Next = bundle_root->next;  
384 376
385 - // Otherwise we look through the list for the item 377 + // Look through the list for the item
386 int i = 0; 378 int i = 0;
387 while( (Current!= NULL) && (i < ItemIndex) ) 379 while( (Current!= NULL) && (i < ItemIndex) )
388 { 380 {
@@ -464,8 +456,6 @@ void BUNDLEBLDR::OnTreeSelectionChanged(wxTreeEvent&amp; evt) @@ -464,8 +456,6 @@ void BUNDLEBLDR::OnTreeSelectionChanged(wxTreeEvent&amp; evt)
464 456
465 }; 457 };
466 458
467 - winPLACE_CABLE->Destroy();  
468 -  
469 ListBox1->Append(File_FullName); 459 ListBox1->Append(File_FullName);
470 460
471 Button1->Enable(); 461 Button1->Enable();
@@ -495,14 +485,6 @@ void BUNDLEBLDR::OnCheckListBox1Toggled(wxCommandEvent&amp; event) @@ -495,14 +485,6 @@ void BUNDLEBLDR::OnCheckListBox1Toggled(wxCommandEvent&amp; event)
495 485
496 void BUNDLEBLDR::OnPanel1Paint(wxPaintEvent& event) 486 void BUNDLEBLDR::OnPanel1Paint(wxPaintEvent& event)
497 { 487 {
498 -// double maxDimension;  
499 -//  
500 -// wxString maxXY = TextCtrl8->GetValue();  
501 -//  
502 -// maxXY.ToDouble(&maxDimension);  
503 -//  
504 -// FormatPanel(maxDimension);  
505 -  
506 DrawPanel(); 488 DrawPanel();
507 } 489 }
508 490
@@ -1466,7 +1448,7 @@ void BUNDLEBLDR::OnButton2Click(wxCommandEvent&amp; event) @@ -1466,7 +1448,7 @@ void BUNDLEBLDR::OnButton2Click(wxCommandEvent&amp; event)
1466 RUN_STATUS *run_status_bundle = new RUN_STATUS(this); 1448 RUN_STATUS *run_status_bundle = new RUN_STATUS(this);
1467 run_status_bundle->ShowModal(); 1449 run_status_bundle->ShowModal();
1468 1450
1469 - //Button1->Enable(); 1451 + Button1->Enable();
1470 1452
1471 if (CheckBox2->GetValue()) 1453 if (CheckBox2->GetValue())
1472 { 1454 {
@@ -1496,13 +1478,12 @@ void BUNDLEBLDR::OnButton2Click(wxCommandEvent&amp; event) @@ -1496,13 +1478,12 @@ void BUNDLEBLDR::OnButton2Click(wxCommandEvent&amp; event)
1496 file = wxFindNextFile(); 1478 file = wxFindNextFile();
1497 } 1479 }
1498 CheckBox3->Enable(); 1480 CheckBox3->Enable();
1499 -  
1500 } 1481 }
1501 } 1482 }
1502 1483
1503 void BUNDLEBLDR::OnButton3Click(wxCommandEvent& event) 1484 void BUNDLEBLDR::OnButton3Click(wxCommandEvent& event)
1504 { 1485 {
1505 - PopulateTheDirectoryTree(PathToMOD); 1486 + //PopulateTheDirectoryTree(PathToMOD);
1506 //clean up directory 1487 //clean up directory
1507 clean_temp_files(); 1488 clean_temp_files();
1508 Close(); 1489 Close();
GUI/SW1/SRC/LOGGER.cpp
@@ -70,5 +70,5 @@ void Logger::logHelper(const std::string&amp; inMessage, const std::string&amp; inLogLev @@ -70,5 +70,5 @@ void Logger::logHelper(const std::string&amp; inMessage, const std::string&amp; inLogLev
70 strftime (tCurrentTime,80,"%X",tTimeNow); 70 strftime (tCurrentTime,80,"%X",tTimeNow);
71 71
72 mOutputStream << tCurrentTime <<"\t"; 72 mOutputStream << tCurrentTime <<"\t";
73 - mOutputStream << inLogLevel << ": \t" << inMessage << endl; 73 + mOutputStream << inLogLevel << ": \t" << inMessage << endl;
74 } 74 }
GUI/SW1/SRC/PLACE_CABLE.cpp
@@ -93,8 +93,8 @@ PLACE_CABLE::PLACE_CABLE(wxWindow* parent,wxWindowID id,const wxPoint&amp; pos,const @@ -93,8 +93,8 @@ PLACE_CABLE::PLACE_CABLE(wxWindow* parent,wxWindowID id,const wxPoint&amp; pos,const
93 StaticBoxSizer1->SetSizeHints(this); 93 StaticBoxSizer1->SetSizeHints(this);
94 94
95 Connect(ID_TEXTCTRL1,wxEVT_COMMAND_TEXT_UPDATED,(wxObjectEventFunction)&PLACE_CABLE::OnTextCtrl1Text); 95 Connect(ID_TEXTCTRL1,wxEVT_COMMAND_TEXT_UPDATED,(wxObjectEventFunction)&PLACE_CABLE::OnTextCtrl1Text);
96 - Connect(ID_TEXTCTRL2,wxEVT_COMMAND_TEXT_UPDATED,(wxObjectEventFunction)&PLACE_CABLE::OnTextCtrl2Text);  
97 - Connect(ID_TEXTCTRL3,wxEVT_COMMAND_TEXT_UPDATED,(wxObjectEventFunction)&PLACE_CABLE::OnTextCtrl3Text); 96 + Connect(ID_TEXTCTRL1,wxEVT_COMMAND_TEXT_UPDATED,(wxObjectEventFunction)&PLACE_CABLE::OnTextCtrl2Text);
  97 + Connect(ID_TEXTCTRL1,wxEVT_COMMAND_TEXT_UPDATED,(wxObjectEventFunction)&PLACE_CABLE::OnTextCtrl3Text);
98 Connect(ID_BUTTON1,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&PLACE_CABLE::OnButton1Click); 98 Connect(ID_BUTTON1,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&PLACE_CABLE::OnButton1Click);
99 Connect(ID_BUTTON2,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&PLACE_CABLE::OnButton2Click); 99 Connect(ID_BUTTON2,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&PLACE_CABLE::OnButton2Click);
100 //*) 100 //*)
GUI/SW1/SRC/SPICEMODEL.cpp
@@ -622,3 +622,4 @@ void SPICEMODEL::OnNotebook1PageChanged1(wxNotebookEvent&amp; event) @@ -622,3 +622,4 @@ void SPICEMODEL::OnNotebook1PageChanged1(wxNotebookEvent&amp; event)
622 void SPICEMODEL::OnTextCtrl13Text1(wxCommandEvent& event) 622 void SPICEMODEL::OnTextCtrl13Text1(wxCommandEvent& event)
623 { 623 {
624 } 624 }
  625 +
GUI/SW1/SRC/SPICEMODEL.h
@@ -219,6 +219,7 @@ class SPICEMODEL: public wxDialog @@ -219,6 +219,7 @@ class SPICEMODEL: public wxDialog
219 void OnNotebook1PageChanged1(wxNotebookEvent& event); 219 void OnNotebook1PageChanged1(wxNotebookEvent& event);
220 void OnTextCtrl13Text1(wxCommandEvent& event); 220 void OnTextCtrl13Text1(wxCommandEvent& event);
221 void OnInit(wxInitDialogEvent& event); 221 void OnInit(wxInitDialogEvent& event);
  222 + void OnNotebook1PageChanged2(wxNotebookEvent& event);
222 //*) 223 //*)
223 224
224 void PopulateTheDirectoryTree ( wxString); 225 void PopulateTheDirectoryTree ( wxString);
GUI/SW1/SRC/SW1_GUIApp.cpp
@@ -64,7 +64,6 @@ bool SW1_GUIApp::OnInit() @@ -64,7 +64,6 @@ bool SW1_GUIApp::OnInit()
64 64
65 string updatemessage; 65 string updatemessage;
66 66
67 -  
68 Logger::instance().log(Date, Logger::kLogLevelHeader); 67 Logger::instance().log(Date, Logger::kLogLevelHeader);
69 Logger::instance().log("", Logger::kLogLevelHeader); 68 Logger::instance().log("", Logger::kLogLevelHeader);
70 Logger::instance().log("SACAMOS STARTED", Logger::kLogLevelHeader); 69 Logger::instance().log("SACAMOS STARTED", Logger::kLogLevelHeader);
@@ -98,8 +97,49 @@ bool SW1_GUIApp::OnInit() @@ -98,8 +97,49 @@ bool SW1_GUIApp::OnInit()
98 97
99 BuildFile.Close(); 98 BuildFile.Close();
100 99
  100 + wxString os_version = wxGetOsDescription();
  101 +
  102 + wxStringTokenizer tokenizer(os_version, " ");
  103 +
  104 + wxString os_type = tokenizer.GetNextToken();
  105 +
  106 + //(*AppInitialize
  107 + bool wxsOK = true;
  108 + wxInitAllImageHandlers();
  109 +
  110 +
  111 + if ( wxsOK )
  112 + {
  113 + SW1_GUIFrame* Frame = new SW1_GUIFrame(0);
  114 +
  115 + // Display splash screen
  116 +
  117 + if (splashimage.LoadFile("resources/Sacamos_About.png", wxBITMAP_TYPE_PNG))
  118 + {
  119 + wxSplashScreen *splashscrn = new wxSplashScreen(splashimage,
  120 + wxSPLASH_CENTRE_ON_SCREEN|wxSPLASH_TIMEOUT,
  121 + 2000, Frame, wxID_ANY, wxDefaultPosition, wxDefaultSize,
  122 + wxSIMPLE_BORDER|wxSTAY_ON_TOP);
  123 + }
  124 +
  125 + if (os_type=="Windows")
  126 + {
  127 + wxYield();
  128 + wxSleep(2);
  129 + Frame->Show(true);
  130 + }
  131 + else
  132 + {
  133 + Frame->Show(true);
  134 + wxYield();
  135 + wxSleep(2);
  136 + }
  137 +
  138 + }
  139 + //*)
  140 +
101 // Compare current version against latest release version 141 // Compare current version against latest release version
102 - Logger::instance().log("Checking for Software Update...", Logger::kLogLevelHeader); 142 + Logger::instance().log("Checking for Software Update...", Logger::kLogLevelInfo);
103 143
104 wxHTTP checkupdate; 144 wxHTTP checkupdate;
105 145
@@ -129,7 +169,7 @@ bool SW1_GUIApp::OnInit() @@ -129,7 +169,7 @@ bool SW1_GUIApp::OnInit()
129 else 169 else
130 { 170 {
131 //fail silently & log event 171 //fail silently & log event
132 - Logger::instance().log("Could not connect to SACAMOS Repository", Logger::kLogLevelError); 172 + Logger::instance().log("Could not connect to SACAMOS Repository", Logger::kLogLevelInfo);
133 } 173 }
134 174
135 checkupdate.Close(); 175 checkupdate.Close();
@@ -161,37 +201,11 @@ bool SW1_GUIApp::OnInit() @@ -161,37 +201,11 @@ bool SW1_GUIApp::OnInit()
161 wxString myString(updatemessage); 201 wxString myString(updatemessage);
162 wxMessageBox(updatemessage,"Please Update"); 202 wxMessageBox(updatemessage,"Please Update");
163 203
  204 + Logger::instance().log("SACAMOS Update Available", Logger::kLogLevelInfo);
  205 +
164 } 206 }
165 } 207 }
166 208
167 - // Display splash screen  
168 -// wxBitmap splashimage;  
169 -//  
170 -// wxImage::AddHandler(new wxPNGHandler);  
171 -//  
172 -// splashimage.LoadFile(_T("resources/Sacamos_About.png"), wxBITMAP_TYPE_PNG);  
173 -//  
174 -// wxSplashScreen *splashscrn = new wxSplashScreen(splashimage,  
175 -// wxSPLASH_CENTRE_ON_SCREEN|wxSPLASH_TIMEOUT,  
176 -// 0, NULL, -1, wxDefaultPosition, wxDefaultSize,  
177 -// wxSIMPLE_BORDER|wxSTAY_ON_TOP);  
178 -//  
179 -// wxYield();  
180 -// wxSleep(2);  
181 -// splashscrn->Destroy();  
182 -  
183 - //(*AppInitialize  
184 - bool wxsOK = true;  
185 - wxInitAllImageHandlers();  
186 -  
187 -  
188 - if ( wxsOK )  
189 - {  
190 - SW1_GUIFrame* Frame = new SW1_GUIFrame(0);  
191 - Frame->Show();  
192 - SetTopWindow(Frame);  
193 - }  
194 - //*)  
195 209
196 return wxsOK; 210 return wxsOK;
197 211
GUI/SW1/SRC/SW1_GUIApp.h
@@ -65,10 +65,11 @@ class SW1_GUIApp : public wxApp @@ -65,10 +65,11 @@ class SW1_GUIApp : public wxApp
65 public: 65 public:
66 virtual bool OnInit(); 66 virtual bool OnInit();
67 67
68 - std::string SACAMOS_V_NUMBER = "SPICE_CABLE_MODEL_BUILDER_version=\"v2.1.0\""; 68 + wxBitmap splashimage;
  69 +
  70 + std::string SACAMOS_V_NUMBER = "SPICE_CABLE_MODEL_BUILDER_version=\"v3.1.0\"";
69 std::string SACAMOS_V_DATE = "SPICE_CABLE_MODEL_BUILDER_date=\"16th April 2018\""; 71 std::string SACAMOS_V_DATE = "SPICE_CABLE_MODEL_BUILDER_date=\"16th April 2018\"";
70 72
71 - //SPICE_CABLE_MODEL_BUILDER_date="16th April 2018"  
72 }; 73 };
73 74
74 #endif // SW1_GUIAPP_H 75 #endif // SW1_GUIAPP_H
GUI/SW1/SRC/SW1_GUIMain.cpp
@@ -332,22 +332,22 @@ void SW1_GUIFrame::OnCreateMOD(wxCommandEvent&amp; event) @@ -332,22 +332,22 @@ void SW1_GUIFrame::OnCreateMOD(wxCommandEvent&amp; event)
332 folder = PathToMOD + separator + "CABLE"; 332 folder = PathToMOD + separator + "CABLE";
333 dirName = folder; 333 dirName = folder;
334 if (!wxDirExists(dirName)) 334 if (!wxDirExists(dirName))
335 - wxMkdir(dirName, 0); 335 + wxMkdir(dirName, wxS_DIR_DEFAULT);
336 336
337 folder = PathToMOD + separator +"BUNDLE"; 337 folder = PathToMOD + separator +"BUNDLE";
338 dirName = folder; 338 dirName = folder;
339 if (!wxDirExists(dirName)) 339 if (!wxDirExists(dirName))
340 - wxMkdir(dirName, 0); 340 + wxMkdir(dirName, wxS_DIR_DEFAULT);
341 341
342 folder = PathToMOD + separator +"SPICE"; 342 folder = PathToMOD + separator +"SPICE";
343 dirName = folder; 343 dirName = folder;
344 if (!wxDirExists(dirName)) 344 if (!wxDirExists(dirName))
345 - wxMkdir(dirName, 0); 345 + wxMkdir(dirName, wxS_DIR_DEFAULT);
346 346
347 folder = PathToMOD + separator +"SPICE" + separator + "SYMBOL"; 347 folder = PathToMOD + separator +"SPICE" + separator + "SYMBOL";
348 dirName = folder; 348 dirName = folder;
349 if (!wxDirExists(dirName)) 349 if (!wxDirExists(dirName))
350 - wxMkdir(dirName, 0); 350 + wxMkdir(dirName, wxS_DIR_DEFAULT);
351 351
352 wxMenuBar* MenuBar1 = GetMenuBar(); 352 wxMenuBar* MenuBar1 = GetMenuBar();
353 MenuBar1->EnableTop(MenuBar1->FindMenu(_("&Cable Model")),true); 353 MenuBar1->EnableTop(MenuBar1->FindMenu(_("&Cable Model")),true);
GUI/SW1/SRC/resources/Sacamos_About.png

35.8 KB | W: | H:

36.6 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin