#include "FrameArquivo.h"

//(*InternalHeaders(FrameArquivo)
#include <wx/settings.h>
#include <wx/string.h>
#include <wx/intl.h>
#include <wx/font.h>
#include <wx/bitmap.h>
#include <wx/image.h>
#include <wx/artprov.h>
//*)

#include <wx/filename.h>
#include <wx/control.h>
#include <wx/sizer.h>
#include <wx/statbox.h>
#include <sstream>
#include <iostream>
#include <iomanip>

#include "Principal.h"
#include "Arquivo.h"
#include "Utils.h"

//(*IdInit(FrameArquivo)
const long FrameArquivo::ID_GRID1 = wxNewId();
const long FrameArquivo::ID_TEXTCTRL12 = wxNewId();
const long FrameArquivo::ID_TEXTCTRL6 = wxNewId();
const long FrameArquivo::ID_TEXTCTRL7 = wxNewId();
const long FrameArquivo::ID_TEXTCTRL10 = wxNewId();
const long FrameArquivo::ID_TEXTCTRL11 = wxNewId();
const long FrameArquivo::ID_TEXTCTRL9 = wxNewId();
const long FrameArquivo::ID_TEXTCTRL8 = wxNewId();
const long FrameArquivo::ID_TEXTCTRL1 = wxNewId();
const long FrameArquivo::ID_TEXTCTRL16 = wxNewId();
const long FrameArquivo::ID_TEXTCTRL17 = wxNewId();
const long FrameArquivo::ID_TEXTCTRL18 = wxNewId();
const long FrameArquivo::ID_TEXTCTRL19 = wxNewId();
const long FrameArquivo::ID_TEXTCTRL20 = wxNewId();
const long FrameArquivo::ID_TEXTCTRL21 = wxNewId();
const long FrameArquivo::ID_TEXTCTRL22 = wxNewId();
const long FrameArquivo::ID_PANEL1 = wxNewId();
const long FrameArquivo::ID_TOOLBARITEM1 = wxNewId();
const long FrameArquivo::ID_TOOLBARITEM7 = wxNewId();
const long FrameArquivo::ID_TOOLBARITEM6 = wxNewId();
const long FrameArquivo::ID_TOOLBARITEM2 = wxNewId();
const long FrameArquivo::ID_TOOLBARITEM3 = wxNewId();
const long FrameArquivo::ID_TOOLBARITEM4 = wxNewId();
const long FrameArquivo::ID_TOOLBARITEM5 = wxNewId();
const long FrameArquivo::ID_TOOLBAR1 = wxNewId();
//*)

BEGIN_EVENT_TABLE(FrameArquivo,wxFrame)
	//(*EventTable(FrameArquivo)
	//*)
END_EVENT_TABLE()

FrameArquivo::FrameArquivo(wxWindow* parent,wxWindowID id,const wxPoint& pos,const wxSize& size)
{
	BuildContent(parent,id,pos,size);
}

void FrameArquivo::BuildContent(wxWindow* parent,wxWindowID id,const wxPoint& pos,const wxSize& size)
{
	//(*Initialize(FrameArquivo)
	wxBoxSizer* BoxSizer3;
	wxBoxSizer* BoxSizer7;
	wxBoxSizer* BoxSizer4;

	Create(parent, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxDEFAULT_FRAME_STYLE, _T("wxID_ANY"));
	SetClientSize(wxSize(1300,792));
	Grid1 = new wxGrid(this, ID_GRID1, wxPoint(0,400), wxSize(1300,376), wxRAISED_BORDER, _T("ID_GRID1"));
	Grid1->CreateGrid(0,15);
	Grid1->Disable();
	Grid1->Hide();
	Grid1->EnableEditing(true);
	Grid1->EnableGridLines(true);
	Grid1->SetLabelTextColour(wxColour(222,33,33));
	Grid1->SetColLabelValue(0, _("N"));
	Grid1->SetColLabelValue(1, _("X"));
	Grid1->SetColLabelValue(2, _("Y"));
	Grid1->SetColLabelValue(3, _("DSS"));
	Grid1->SetColLabelValue(4, _("DP"));
	Grid1->SetColLabelValue(5, _("US"));
	Grid1->SetColLabelValue(6, _("E1"));
	Grid1->SetColLabelValue(7, _("E2"));
	Grid1->SetColLabelValue(8, _("T1"));
	Grid1->SetColLabelValue(9, _("T2"));
	Grid1->SetColLabelValue(10, _("T3"));
	Grid1->SetColLabelValue(11, _("T4"));
	Grid1->SetColLabelValue(12, _("T5"));
	Grid1->SetColLabelValue(13, _("R2"));
	Grid1->SetColLabelValue(14, _("RMS"));
	Grid1->SetDefaultCellFont( Grid1->GetFont() );
	Grid1->SetDefaultCellTextColour( Grid1->GetForegroundColour() );
	Panel1 = new wxPanel(this, ID_PANEL1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL, _T("ID_PANEL1"));
	Panel1->SetFocus();
	BoxSizer1 = new wxBoxSizer(wxHORIZONTAL);
	BoxSizer2 = new wxBoxSizer(wxVERTICAL);
	StaticBoxSizer10 = new wxStaticBoxSizer(wxHORIZONTAL, Panel1, _("ENTRADA"));
	BoxSizer5 = new wxBoxSizer(wxHORIZONTAL);
	StaticBoxSizer8 = new wxStaticBoxSizer(wxHORIZONTAL, Panel1, _("N"));
	TextCtrl12 = new wxTextCtrl(Panel1, ID_TEXTCTRL12, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER, wxDefaultValidator, _T("ID_TEXTCTRL12"));
	TextCtrl12->SetMaxLength(15);
	StaticBoxSizer8->Add(TextCtrl12, 0, wxALL, 5);
	BoxSizer5->Add(StaticBoxSizer8, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
	StaticBoxSizer3 = new wxStaticBoxSizer(wxHORIZONTAL, Panel1, _("X"));
	TextCtrl6 = new wxTextCtrl(Panel1, ID_TEXTCTRL6, wxEmptyString, wxDefaultPosition, wxSize(60,100), wxTE_AUTO_SCROLL|wxTE_MULTILINE, wxDefaultValidator, _T("ID_TEXTCTRL6"));
	StaticBoxSizer3->Add(TextCtrl6, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
	BoxSizer5->Add(StaticBoxSizer3, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
	StaticBoxSizer4 = new wxStaticBoxSizer(wxHORIZONTAL, Panel1, _("Y"));
	TextCtrl7 = new wxTextCtrl(Panel1, ID_TEXTCTRL7, wxEmptyString, wxDefaultPosition, wxSize(60,100), wxTE_AUTO_SCROLL|wxTE_PROCESS_ENTER|wxTE_PROCESS_TAB|wxTE_MULTILINE, wxDefaultValidator, _T("ID_TEXTCTRL7"));
	StaticBoxSizer4->Add(TextCtrl7, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
	BoxSizer5->Add(StaticBoxSizer4, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
	StaticBoxSizer10->Add(BoxSizer5, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
	BoxSizer7 = new wxBoxSizer(wxVERTICAL);
	BoxSizer4 = new wxBoxSizer(wxHORIZONTAL);
	StaticBoxSizer6 = new wxStaticBoxSizer(wxHORIZONTAL, Panel1, _("DSS"));
	TextCtrl10 = new wxTextCtrl(Panel1, ID_TEXTCTRL10, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER, wxDefaultValidator, _T("ID_TEXTCTRL10"));
	TextCtrl10->SetMaxLength(15);
	StaticBoxSizer6->Add(TextCtrl10, 0, wxALL, 5);
	BoxSizer4->Add(StaticBoxSizer6, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
	StaticBoxSizer7 = new wxStaticBoxSizer(wxHORIZONTAL, Panel1, _("DP"));
	TextCtrl11 = new wxTextCtrl(Panel1, ID_TEXTCTRL11, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER, wxDefaultValidator, _T("ID_TEXTCTRL11"));
	TextCtrl11->SetMaxLength(15);
	StaticBoxSizer7->Add(TextCtrl11, 0, wxALL, 5);
	BoxSizer4->Add(StaticBoxSizer7, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
	BoxSizer7->Add(BoxSizer4, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
	BoxSizer3 = new wxBoxSizer(wxHORIZONTAL);
	StaticBoxSizer5 = new wxStaticBoxSizer(wxVERTICAL, Panel1, _("US"));
	TextCtrl9 = new wxTextCtrl(Panel1, ID_TEXTCTRL9, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER, wxDefaultValidator, _T("ID_TEXTCTRL9"));
	TextCtrl9->SetMaxLength(15);
	StaticBoxSizer5->Add(TextCtrl9, 0, wxALL, 5);
	BoxSizer3->Add(StaticBoxSizer5, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
	StaticBoxSizer11 = new wxStaticBoxSizer(wxHORIZONTAL, Panel1, _("E1"));
	TextCtrl8 = new wxTextCtrl(Panel1, ID_TEXTCTRL8, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER, wxDefaultValidator, _T("ID_TEXTCTRL8"));
	TextCtrl8->SetMaxLength(15);
	StaticBoxSizer11->Add(TextCtrl8, 0, wxALL, 5);
	BoxSizer3->Add(StaticBoxSizer11, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
	StaticBoxSizer12 = new wxStaticBoxSizer(wxHORIZONTAL, Panel1, _("E2"));
	TextCtrl1 = new wxTextCtrl(Panel1, ID_TEXTCTRL1, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER, wxDefaultValidator, _T("ID_TEXTCTRL1"));
	TextCtrl1->SetMaxLength(15);
	StaticBoxSizer12->Add(TextCtrl1, 0, wxALL, 5);
	BoxSizer3->Add(StaticBoxSizer12, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
	BoxSizer7->Add(BoxSizer3, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
	StaticBoxSizer10->Add(BoxSizer7, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
	BoxSizer2->Add(StaticBoxSizer10, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
	StaticBoxSizer1 = new wxStaticBoxSizer(wxHORIZONTAL, Panel1, _("RESULTADOS"));
	StaticBoxSizer2 = new wxStaticBoxSizer(wxHORIZONTAL, Panel1, _("T1"));
	TextCtrl16 = new wxTextCtrl(Panel1, ID_TEXTCTRL16, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER|wxTE_READONLY, wxDefaultValidator, _T("ID_TEXTCTRL16"));
	TextCtrl16->SetMaxLength(15);
	TextCtrl16->Disable();
	TextCtrl16->SetForegroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_MENUTEXT));
	TextCtrl16->SetBackgroundColour(wxColour(251,155,122));
	wxFont TextCtrl16Font(10,wxFONTFAMILY_DEFAULT,wxFONTSTYLE_NORMAL,wxFONTWEIGHT_BOLD,false,_T("Arial"),wxFONTENCODING_DEFAULT);
	TextCtrl16->SetFont(TextCtrl16Font);
	StaticBoxSizer2->Add(TextCtrl16, 0, wxALL, 5);
	StaticBoxSizer1->Add(StaticBoxSizer2, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
	StaticBoxSizer21 = new wxStaticBoxSizer(wxHORIZONTAL, Panel1, _("T2"));
	TextCtrl17 = new wxTextCtrl(Panel1, ID_TEXTCTRL17, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER|wxTE_READONLY, wxDefaultValidator, _T("ID_TEXTCTRL17"));
	TextCtrl17->SetMaxLength(15);
	TextCtrl17->Disable();
	TextCtrl17->SetForegroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_MENUTEXT));
	TextCtrl17->SetBackgroundColour(wxColour(251,155,122));
	wxFont TextCtrl17Font(10,wxFONTFAMILY_DEFAULT,wxFONTSTYLE_NORMAL,wxFONTWEIGHT_BOLD,false,_T("Arial"),wxFONTENCODING_DEFAULT);
	TextCtrl17->SetFont(TextCtrl17Font);
	StaticBoxSizer21->Add(TextCtrl17, 0, wxALL, 5);
	StaticBoxSizer1->Add(StaticBoxSizer21, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
	StaticBoxSizer22 = new wxStaticBoxSizer(wxHORIZONTAL, Panel1, _("T3"));
	TextCtrl18 = new wxTextCtrl(Panel1, ID_TEXTCTRL18, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER|wxTE_READONLY, wxDefaultValidator, _T("ID_TEXTCTRL18"));
	TextCtrl18->SetMaxLength(15);
	TextCtrl18->Disable();
	TextCtrl18->SetForegroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_MENUTEXT));
	TextCtrl18->SetBackgroundColour(wxColour(251,155,122));
	wxFont TextCtrl18Font(10,wxFONTFAMILY_DEFAULT,wxFONTSTYLE_NORMAL,wxFONTWEIGHT_BOLD,false,_T("Arial"),wxFONTENCODING_DEFAULT);
	TextCtrl18->SetFont(TextCtrl18Font);
	StaticBoxSizer22->Add(TextCtrl18, 0, wxALL, 5);
	StaticBoxSizer1->Add(StaticBoxSizer22, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
	StaticBoxSizer23 = new wxStaticBoxSizer(wxHORIZONTAL, Panel1, _("T4"));
	TextCtrl19 = new wxTextCtrl(Panel1, ID_TEXTCTRL19, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER|wxTE_READONLY, wxDefaultValidator, _T("ID_TEXTCTRL19"));
	TextCtrl19->SetMaxLength(15);
	TextCtrl19->Disable();
	TextCtrl19->SetForegroundColour(wxColour(0,0,0));
	TextCtrl19->SetBackgroundColour(wxColour(251,155,122));
	wxFont TextCtrl19Font(10,wxFONTFAMILY_DEFAULT,wxFONTSTYLE_NORMAL,wxFONTWEIGHT_BOLD,false,_T("Arial"),wxFONTENCODING_DEFAULT);
	TextCtrl19->SetFont(TextCtrl19Font);
	StaticBoxSizer23->Add(TextCtrl19, 0, wxALL, 5);
	StaticBoxSizer1->Add(StaticBoxSizer23, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
	StaticBoxSizer24 = new wxStaticBoxSizer(wxHORIZONTAL, Panel1, _("T5"));
	TextCtrl20 = new wxTextCtrl(Panel1, ID_TEXTCTRL20, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER|wxTE_READONLY, wxDefaultValidator, _T("ID_TEXTCTRL20"));
	TextCtrl20->SetMaxLength(15);
	TextCtrl20->Disable();
	TextCtrl20->SetForegroundColour(wxColour(0,0,0));
	TextCtrl20->SetBackgroundColour(wxColour(251,155,122));
	wxFont TextCtrl20Font(10,wxFONTFAMILY_DEFAULT,wxFONTSTYLE_NORMAL,wxFONTWEIGHT_BOLD,false,_T("Arial"),wxFONTENCODING_DEFAULT);
	TextCtrl20->SetFont(TextCtrl20Font);
	StaticBoxSizer24->Add(TextCtrl20, 0, wxALL, 5);
	StaticBoxSizer1->Add(StaticBoxSizer24, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
	StaticBoxSizer25 = new wxStaticBoxSizer(wxHORIZONTAL, Panel1, _("R2"));
	TextCtrl21 = new wxTextCtrl(Panel1, ID_TEXTCTRL21, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER|wxTE_READONLY, wxDefaultValidator, _T("ID_TEXTCTRL21"));
	TextCtrl21->SetMaxLength(15);
	TextCtrl21->Disable();
	TextCtrl21->SetForegroundColour(wxColour(0,0,0));
	TextCtrl21->SetBackgroundColour(wxColour(251,155,122));
	wxFont TextCtrl21Font(10,wxFONTFAMILY_DEFAULT,wxFONTSTYLE_NORMAL,wxFONTWEIGHT_BOLD,false,_T("Arial"),wxFONTENCODING_DEFAULT);
	TextCtrl21->SetFont(TextCtrl21Font);
	StaticBoxSizer25->Add(TextCtrl21, 0, wxALL, 5);
	StaticBoxSizer1->Add(StaticBoxSizer25, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
	StaticBoxSizer26 = new wxStaticBoxSizer(wxHORIZONTAL, Panel1, _("RMS"));
	TextCtrl22 = new wxTextCtrl(Panel1, ID_TEXTCTRL22, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER|wxTE_READONLY, wxDefaultValidator, _T("ID_TEXTCTRL22"));
	TextCtrl22->SetMaxLength(15);
	TextCtrl22->Disable();
	TextCtrl22->SetForegroundColour(wxColour(0,0,0));
	TextCtrl22->SetBackgroundColour(wxColour(251,155,122));
	wxFont TextCtrl22Font(10,wxFONTFAMILY_DEFAULT,wxFONTSTYLE_NORMAL,wxFONTWEIGHT_BOLD,false,_T("Arial"),wxFONTENCODING_DEFAULT);
	TextCtrl22->SetFont(TextCtrl22Font);
	StaticBoxSizer26->Add(TextCtrl22, 0, wxALL, 5);
	StaticBoxSizer1->Add(StaticBoxSizer26, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
	BoxSizer2->Add(StaticBoxSizer1, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
	BoxSizer1->Add(BoxSizer2, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
	Panel1->SetSizer(BoxSizer1);
	BoxSizer1->Fit(Panel1);
	BoxSizer1->SetSizeHints(Panel1);
	ToolBar1 = new wxToolBar(this, ID_TOOLBAR1, wxDefaultPosition, wxDefaultSize, wxTB_HORIZONTAL|wxNO_BORDER, _T("ID_TOOLBAR1"));
	ToolBarItem1 = ToolBar1->AddTool(ID_TOOLBARITEM1, _("Novo"), wxArtProvider::GetBitmap(wxART_MAKE_ART_ID_FROM_STR(_T("wxART_NEW")),wxART_TOOLBAR), wxNullBitmap, wxITEM_NORMAL, _("Novo"), wxEmptyString);
	ToolBarItem7 = ToolBar1->AddTool(ID_TOOLBARITEM7, _("Transportar"), wxArtProvider::GetBitmap(wxART_MAKE_ART_ID_FROM_STR(_T("wxART_COPY")),wxART_TOOLBAR), wxNullBitmap, wxITEM_NORMAL, _("Transportar"), wxEmptyString);
	ToolBarItem6 = ToolBar1->AddTool(ID_TOOLBARITEM6, _("Remover"), wxArtProvider::GetBitmap(wxART_MAKE_ART_ID_FROM_STR(_T("wxART_DELETE")),wxART_TOOLBAR), wxNullBitmap, wxITEM_NORMAL, wxEmptyString, wxEmptyString);
	ToolBarItem2 = ToolBar1->AddTool(ID_TOOLBARITEM2, _("Importar"), wxArtProvider::GetBitmap(wxART_MAKE_ART_ID_FROM_STR(_T("wxART_FILE_OPEN")),wxART_TOOLBAR), wxNullBitmap, wxITEM_NORMAL, _("Importar"), wxEmptyString);
	ToolBarItem3 = ToolBar1->AddTool(ID_TOOLBARITEM3, _("Exportar"), wxArtProvider::GetBitmap(wxART_MAKE_ART_ID_FROM_STR(_T("wxART_FILE_SAVE")),wxART_TOOLBAR), wxNullBitmap, wxITEM_NORMAL, _("Exportar"), wxEmptyString);
	ToolBarItem4 = ToolBar1->AddTool(ID_TOOLBARITEM4, _("Simular"), wxArtProvider::GetBitmap(wxART_MAKE_ART_ID_FROM_STR(_T("wxART_EXECUTABLE_FILE")),wxART_TOOLBAR), wxArtProvider::GetBitmap(wxART_MAKE_ART_ID_FROM_STR(_T("wxART_EXECUTABLE_FILE")),wxART_TOOLBAR), wxITEM_NORMAL, _("Simular"), wxEmptyString);
	ToolBar1->AddSeparator();
	ToolBarItem5 = ToolBar1->AddTool(ID_TOOLBARITEM5, _("Sair"), wxArtProvider::GetBitmap(wxART_MAKE_ART_ID_FROM_STR(_T("wxART_QUIT")),wxART_TOOLBAR), wxNullBitmap, wxITEM_NORMAL, _("Sair"), wxEmptyString);
	ToolBar1->Realize();
	SetToolBar(ToolBar1);
	FileDialog1 = new wxFileDialog(this, _("Select file"), wxEmptyString, wxEmptyString, _("*.dat"), wxFD_OPEN|wxFD_FILE_MUST_EXIST|wxFD_CHANGE_DIR, wxDefaultPosition, wxDefaultSize, _T("wxFileDialog"));
	FileDialog2 = new wxFileDialog(this, _("Select file"), wxEmptyString, wxEmptyString, _("*.dat"), wxFD_SAVE|wxFD_OVERWRITE_PROMPT|wxFD_CHANGE_DIR, wxDefaultPosition, wxDefaultSize, _T("wxFileDialog"));

	Connect(ID_GRID1,wxEVT_GRID_CELL_CHANGE,(wxObjectEventFunction)&FrameArquivo::OnGrid1CellChange);
	Connect(ID_TEXTCTRL12,wxEVT_COMMAND_TEXT_ENTER,(wxObjectEventFunction)&FrameArquivo::OnTextCtrl12Text);
	Connect(ID_TEXTCTRL12,wxEVT_COMMAND_TEXT_MAXLEN,(wxObjectEventFunction)&FrameArquivo::OnTextCtrl12Text);
	Connect(ID_TEXTCTRL6,wxEVT_COMMAND_TEXT_UPDATED,(wxObjectEventFunction)&FrameArquivo::OnTextCtrl6Text);
	Connect(ID_TEXTCTRL7,wxEVT_COMMAND_TEXT_ENTER,(wxObjectEventFunction)&FrameArquivo::OnTextCtrl7Text);
	Connect(ID_TEXTCTRL10,wxEVT_COMMAND_TEXT_ENTER,(wxObjectEventFunction)&FrameArquivo::OnTextCtrl10Text);
	Connect(ID_TEXTCTRL10,wxEVT_COMMAND_TEXT_MAXLEN,(wxObjectEventFunction)&FrameArquivo::OnTextCtrl10Text);
	Connect(ID_TEXTCTRL11,wxEVT_COMMAND_TEXT_ENTER,(wxObjectEventFunction)&FrameArquivo::OnTextCtrl11Text);
	Connect(ID_TEXTCTRL11,wxEVT_COMMAND_TEXT_MAXLEN,(wxObjectEventFunction)&FrameArquivo::OnTextCtrl11Text);
	Connect(ID_TEXTCTRL9,wxEVT_COMMAND_TEXT_ENTER,(wxObjectEventFunction)&FrameArquivo::OnTextCtrl9Text);
	Connect(ID_TEXTCTRL9,wxEVT_COMMAND_TEXT_MAXLEN,(wxObjectEventFunction)&FrameArquivo::OnTextCtrl9Text);
	Connect(ID_TEXTCTRL8,wxEVT_COMMAND_TEXT_ENTER,(wxObjectEventFunction)&FrameArquivo::OnTextCtrl8Text);
	Connect(ID_TEXTCTRL8,wxEVT_COMMAND_TEXT_MAXLEN,(wxObjectEventFunction)&FrameArquivo::OnTextCtrl8Text);
	Connect(ID_TEXTCTRL1,wxEVT_COMMAND_TEXT_ENTER,(wxObjectEventFunction)&FrameArquivo::OnTextCtrl1Text);
	Connect(ID_TEXTCTRL1,wxEVT_COMMAND_TEXT_MAXLEN,(wxObjectEventFunction)&FrameArquivo::OnTextCtrl1Text);
	Connect(ID_TEXTCTRL16,wxEVT_COMMAND_TEXT_ENTER,(wxObjectEventFunction)&FrameArquivo::OnTextCtrl1Text);
	Connect(ID_TEXTCTRL16,wxEVT_COMMAND_TEXT_MAXLEN,(wxObjectEventFunction)&FrameArquivo::OnTextCtrl1Text);
	Connect(ID_TEXTCTRL17,wxEVT_COMMAND_TEXT_ENTER,(wxObjectEventFunction)&FrameArquivo::OnTextCtrl1Text);
	Connect(ID_TEXTCTRL17,wxEVT_COMMAND_TEXT_MAXLEN,(wxObjectEventFunction)&FrameArquivo::OnTextCtrl1Text);
	Connect(ID_TEXTCTRL18,wxEVT_COMMAND_TEXT_ENTER,(wxObjectEventFunction)&FrameArquivo::OnTextCtrl1Text);
	Connect(ID_TEXTCTRL18,wxEVT_COMMAND_TEXT_MAXLEN,(wxObjectEventFunction)&FrameArquivo::OnTextCtrl1Text);
	Connect(ID_TEXTCTRL19,wxEVT_COMMAND_TEXT_ENTER,(wxObjectEventFunction)&FrameArquivo::OnTextCtrl1Text);
	Connect(ID_TEXTCTRL19,wxEVT_COMMAND_TEXT_MAXLEN,(wxObjectEventFunction)&FrameArquivo::OnTextCtrl1Text);
	Connect(ID_TEXTCTRL20,wxEVT_COMMAND_TEXT_ENTER,(wxObjectEventFunction)&FrameArquivo::OnTextCtrl1Text);
	Connect(ID_TEXTCTRL20,wxEVT_COMMAND_TEXT_MAXLEN,(wxObjectEventFunction)&FrameArquivo::OnTextCtrl1Text);
	Connect(ID_TEXTCTRL21,wxEVT_COMMAND_TEXT_ENTER,(wxObjectEventFunction)&FrameArquivo::OnTextCtrl1Text);
	Connect(ID_TEXTCTRL21,wxEVT_COMMAND_TEXT_MAXLEN,(wxObjectEventFunction)&FrameArquivo::OnTextCtrl1Text);
	Connect(ID_TEXTCTRL22,wxEVT_COMMAND_TEXT_ENTER,(wxObjectEventFunction)&FrameArquivo::OnTextCtrl1Text);
	Connect(ID_TEXTCTRL22,wxEVT_COMMAND_TEXT_MAXLEN,(wxObjectEventFunction)&FrameArquivo::OnTextCtrl1Text);
	Connect(wxID_ANY,wxEVT_CLOSE_WINDOW,(wxObjectEventFunction)&FrameArquivo::OnClose);
	//*)

	Connect(ID_TOOLBARITEM1,wxEVT_TOOL,(wxObjectEventFunction)&FrameArquivo::OnToolItem1);
	Connect(ID_TOOLBARITEM6,wxEVT_TOOL,(wxObjectEventFunction)&FrameArquivo::OnToolItem6);
	Connect(ID_TOOLBARITEM2,wxEVT_TOOL,(wxObjectEventFunction)&FrameArquivo::OnToolItem2);
	Connect(ID_TOOLBARITEM3,wxEVT_TOOL,(wxObjectEventFunction)&FrameArquivo::OnToolItem3);
	Connect(ID_TOOLBARITEM4,wxEVT_TOOL,(wxObjectEventFunction)&FrameArquivo::OnToolItem4);
	Connect(ID_TOOLBARITEM5,wxEVT_TOOL,(wxObjectEventFunction)&FrameArquivo::OnClose);

	int i,
        cols=Grid1->GetNumberCols();
    for (i=0; i<cols; ++i) {
        if (i==0)       Grid1->SetColFormatNumber(i);
        else if (i>2)   Grid1->SetColFormatFloat(i,CAMPO,PRECISAO);
    }
    //Grid1->Hide();
    //TextCtrl6->Connect(ID_TEXTCTRL6,wxEVT_KILL_FOCUS,(wxObjectEventFunction)&FrameArquivo::OnTextCtrl6Text, NULL, this);
    //TextCtrl7->Connect(ID_TEXTCTRL7,wxEVT_KILL_FOCUS,(wxObjectEventFunction)&FrameArquivo::OnTextCtrl7Text, NULL, this);

    limpaEntrada(this);

    // US
    *TextCtrl9 << 0.0;
    //E1
    *TextCtrl8 << 0.0;
    //E2
    *TextCtrl1 << 0.0;

    limpaSaida(this);

}

FrameArquivo::~FrameArquivo()
{
	//(*Destroy(FrameArquivo)
	//*)
}

void FrameArquivo::OnClose(wxCloseEvent& event)
{
    Destroy();
}

// Novo
void FrameArquivo::OnToolItem1(wxCommandEvent& event)
{
    int linha;
    Simulacao reg = {0,{},{},0.0,0.0,0.0,0.0};
    simul.push_back(reg);

    linha = limpaEntrada(Grid1);
    SetEntrada(Grid1, linha);
    iniciaCelulas(Grid1);
}

// Remover
void FrameArquivo::OnToolItem6(wxCommandEvent& event)
{
    int i;
    wxArrayInt linhas = Grid1->GetSelectedRows();

    for(i=0; i<linhas.size(); ++i) {
        Grid1->DeleteRows(linhas[i],1);
        simul.erase(simul.begin()+linhas[i]);
    }
}

// Importar
void FrameArquivo::OnToolItem2(wxCommandEvent& event)
{
    int linha, i;
    if(FileDialog1->ShowModal() == wxID_OK) {
        if (readArq(FileDialog1->GetPath().ToStdString())) {
            if (Grid1->GetNumberRows())
                Grid1->DeleteRows(0,Grid1->GetNumberRows());

            for (i=0; i < simul.size(); ++i) {
                linha = limpaEntrada(Grid1);
                SetEntrada(Grid1, linha);
                limpaSaida(Grid1, linha);
            }
            Grid1->AutoSizeRows();
            iniciaCelulas(Grid1);
            Grid1->Enable();
            Grid1->Show();
        }
    }
}

// Exportar
void FrameArquivo::OnToolItem3(wxCommandEvent& event)
{
    if(FileDialog2->ShowModal() == wxID_OK)
        saveArq(FileDialog2->GetPath().ToStdString());
}

// EXECUTAR
void FrameArquivo::OnToolItem4(wxCommandEvent& event)
{
    int i;
    wxArrayInt linhas = Grid1->GetSelectedRows();

    for(i=0; i<linhas.size(); ++i) {
        limpaSaida(Grid1, linhas[i]);
//        GetEntrada(Grid1, linhas[i]);
        regIdx = linhas[i];
        principal();
        SetSaida(Grid1, linhas[i]);

        Grid1->AutoSizeRows();
    }
}


void FrameArquivo::OnGrid1CellChange(wxGridEvent& event)
{
        GetEntrada(Grid1, event.GetRow());
}


// EXECUTAR
void FrameArquivo::OnButton2Click(wxCommandEvent& event)
{
    limpaSaida(this);
    principal();
    SetSaida(this);
}

// NOVO
void FrameArquivo::OnButton5Click(wxCommandEvent& event)
{
    limpaEntrada(this);
    limpaSaida(this);
}

// N
void FrameArquivo::OnTextCtrl12Text(wxCommandEvent& event)
{
    validaCampo(TextCtrl12, TextCtrl6, &simul[regIdx].N);
}

// X
void FrameArquivo::OnTextCtrl6Text(wxCommandEvent& event)
{
    procLista(TextCtrl6, TextCtrl7, simul[regIdx].X);
}

// Y
void FrameArquivo::OnTextCtrl7Text(wxCommandEvent& event)
{
    procLista(TextCtrl7, TextCtrl10, simul[regIdx].Y);
}

// DSS
void FrameArquivo::OnTextCtrl10Text(wxCommandEvent& event)
{
    validaCampo(TextCtrl10, TextCtrl11, &simul[regIdx].DSS);
}

// DP
void FrameArquivo::OnTextCtrl11Text(wxCommandEvent& event)
{
    validaCampo(TextCtrl11, TextCtrl9, &simul[regIdx].DP);
}

// US
void FrameArquivo::OnTextCtrl9Text(wxCommandEvent& event)
{
    validaCampo(TextCtrl9, TextCtrl8, &simul[regIdx].US);
}

// E1
void FrameArquivo::OnTextCtrl8Text(wxCommandEvent& event)
{
    validaCampo(TextCtrl8, TextCtrl1, &simul[regIdx].E1);
}

// E2
void FrameArquivo::OnTextCtrl1Text(wxCommandEvent& event)
{
    validaCampo(TextCtrl1, TextCtrl1, &simul[regIdx].E2);
    // Habilitar ou desabilitar botão de simuação no toolbar?
    // Button2->SetFocus();
}

