diff --git a/Icon.png b/Icon.png new file mode 100644 index 0000000..340f888 Binary files /dev/null and b/Icon.png differ diff --git a/MyThread.h b/MyThread.h new file mode 100644 index 0000000..6d68cf0 --- /dev/null +++ b/MyThread.h @@ -0,0 +1,24 @@ +#ifndef MYTHREAD_H +#define MYTHREAD_H + +#include +#include +#include "wx/socket.h" + +BEGIN_DECLARE_EVENT_TYPES() +DECLARE_EVENT_TYPE(wxEVT_READTHREAD, -1) +END_DECLARE_EVENT_TYPES() + + + +class MyThread : public wxThread +{ +public: + MyThread(wxEvtHandler* pParent); +private: + int m_param; + void* Entry(); +protected: + wxEvtHandler * m_pParent; +}; +#endif diff --git a/NewFrame.cpp b/NewFrame.cpp new file mode 100644 index 0000000..03f8cf6 --- /dev/null +++ b/NewFrame.cpp @@ -0,0 +1,1111 @@ +#include "NewFrame.h" +#include +#include +#include +#include +#include +#include "MyThread.h" + +#define RECV_BUFFER_LENGTH 1290 +wxDatagramSocket *sock; +wxIPV4address *addrPeer; +uint8_t receivedBuf[RECV_BUFFER_LENGTH]; +wxUint32 numRead = -1; +bool isRunning = false; + + +DEFINE_EVENT_TYPE(wxEVT_READTHREAD) +MyThread::MyThread(wxEvtHandler* pParent) : wxThread(wxTHREAD_DETACHED), m_pParent(pParent) +{ + //pass parameters into the thread + //addrLocal1 + //m_param = param; + //sock.SetRefData(s); +} +void* MyThread::Entry() +{ + wxCommandEvent evt(wxEVT_READTHREAD, GetId()); + //can be used to set some identifier for the data + memset(&receivedBuf[0], 0, sizeof(receivedBuf)); + isRunning = true; + sock->RecvFrom(*addrPeer, receivedBuf, RECV_BUFFER_LENGTH); + numRead = sock->LastCount(); + evt.SetInt(0); + isRunning = false; + //whatever data your thread calculated, to be returned to GUI + //evt.SetClientData((void*)temp); + wxPostEvent(m_pParent, evt); + return 0; +} + +MyThread *sockThread; + +class GcodeCommandClass +{ +private: + wxString cmd; + wxString params; +public: + GcodeCommandClass(wxString Command = "", wxString Parameters = "") + { + cmd = Command; + params = Parameters; + } + wxString getCommand() + { + return cmd; + } + wxString getParameter() + { + return params; + } + void setCommand(wxString Command) + { + cmd = Command; + } + void setParameter(wxString Parameters) + { + params = Parameters; + } + wxString getGcodeCmd(wxString Delimater = " ") + { + return cmd + Delimater + params; + } + bool isCmd(wxString Command) + { + if (cmd.CmpNoCase(Command) == 0) + return true; + return false; + } +}; + +GcodeCommandClass gcodeCmd; + +// -------------------------------------------------------------------------- +// resources +// -------------------------------------------------------------------------- + +// the application icon +//#ifndef wxHAS_IMAGES_IN_RESOURCES +//#include "../sample.xpm" +//#endif + +//(*IdInit(NewFrame) +const long NewFrame::ID_STATICBOX1 = wxNewId(); +const long NewFrame::ID_TEXTCTRL1 = wxNewId(); +const long NewFrame::ID_STATICTEXT1 = wxNewId(); +const long NewFrame::ID_BUTTON1 = wxNewId(); +const long NewFrame::ID_STATICTEXT2 = wxNewId(); +const long NewFrame::ID_STATICBOX2 = wxNewId(); +const long NewFrame::ID_BUTTON2 = wxNewId(); +const long NewFrame::ID_BUTTON3 = wxNewId(); +const long NewFrame::ID_BUTTON4 = wxNewId(); +const long NewFrame::ID_GAUGE1 = wxNewId(); +const long NewFrame::ID_STATICTEXT3 = wxNewId(); +const long NewFrame::ID_STATICBOX3 = wxNewId(); +const long NewFrame::ID_BUTTON5 = wxNewId(); +const long NewFrame::ID_BUTTON6 = wxNewId(); +const long NewFrame::ID_BUTTON7 = wxNewId(); +const long NewFrame::ID_BUTTON8 = wxNewId(); +const long NewFrame::ID_GAUGE2 = wxNewId(); +const long NewFrame::ID_LISTCTRL1 = wxNewId(); +const long NewFrame::ID_PANEL1 = wxNewId(); +const long NewFrame::ID_TIMER1 = wxNewId(); +const long NewFrame::ID_STATUSBAR1 = wxNewId(); +const long NewFrame::ID_TIMER2 = wxNewId(); +//*) + + +// -------------------------------------------------------------------------- +// constants +// -------------------------------------------------------------------------- + +// IDs for the controls and the menu commands + + +// -------------------------------------------------------------------------- +// event tables and other macros for wxWidgets +// -------------------------------------------------------------------------- + +wxBEGIN_EVENT_TABLE(NewFrame, wxFrame) +//(*EventTable(NewFrame) +//*) +EVT_COMMAND(wxID_ANY, wxEVT_READTHREAD, NewFrame::OnMyThread) +wxEND_EVENT_TABLE() + +wxIMPLEMENT_APP(MyApp); + +// ========================================================================== +// implementation +// ========================================================================== + +// -------------------------------------------------------------------------- +// the application class +// -------------------------------------------------------------------------- + + +bool MyApp::OnInit() +{ + if (!wxApp::OnInit()) + return false; + + // Create the main application window + NewFrame *frame = new NewFrame((wxFrame *)NULL, wxID_ANY, _("Photon Network Controller"), wxDefaultPosition, wxSize(300, 200)); + +#if defined(__WINDOWS__) + frame->SetIcon(wxICON(aaaa)); +#else + char path[ PATH_MAX ]; + char dest[PATH_MAX]; + memset(dest,0,sizeof(dest)); + pid_t pid = getpid(); + sprintf(path, "/proc/%d/exe", pid); + ssize_t PathLen = readlink( path, dest, PATH_MAX ); + if(PathLen!=-1) + frame->SetIcon(wxIcon(wxString::Format(wxT("%s.xpm"), dest))); +#endif // defined + + // Show it + frame->Show(true); + + // success + + return true; +} + +// -------------------------------------------------------------------------- +// main frame +// -------------------------------------------------------------------------- + +// frame constructor +NewFrame::NewFrame(wxFrame* parent, wxWindowID id, wxString title, const wxPoint& pos, const wxSize& size) +{ + // HICON hIcon; + // hIcon = LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(2)); + // SetClassLong(hWnd, GCL_HICON, (LONG) hIcon); // The new icon + // PostMessage (hWnd, WM_SETICON, ICON_BIG, (LPARAM) hIcon); + + //(*Initialize(NewFrame) + Create(parent, wxID_ANY, _("Photon Network Controller"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE|wxMINIMIZE_BOX, _T("wxID_ANY")); + #if defined(__WXGTK__) + SetClientSize(wxSize(334, 470)); + #else + SetClientSize(wxSize(334,491)); + #endif + Panel1 = new wxPanel(this, ID_PANEL1, wxPoint(224,320), wxSize(334,488), wxTAB_TRAVERSAL, _T("ID_PANEL1")); + StaticBox1 = new wxStaticBox(Panel1, ID_STATICBOX1, _("Connection Settings"), wxPoint(8,8), wxSize(320,80), 0, _T("ID_STATICBOX1")); + txtIP = new wxTextCtrl(Panel1, ID_TEXTCTRL1, _("192.168.1.222"), wxPoint(208,24), wxSize(112,21), 0, wxDefaultValidator, _T("ID_TEXTCTRL1")); + StaticText1 = new wxStaticText(Panel1, ID_STATICTEXT1, _("IP Address"), wxPoint(16,28), wxDefaultSize, 0, _T("ID_STATICTEXT1")); + btnConnect = new wxButton(Panel1, ID_BUTTON1, _("Connect"), wxPoint(235,54), wxSize(85,26), 0, wxDefaultValidator, _T("ID_BUTTON1")); + lblStatus = new wxStaticText(Panel1, ID_STATICTEXT2, _("Not Connected"), wxPoint(16,60), wxDefaultSize, 0, _T("ID_STATICTEXT2")); + StaticBox2 = new wxStaticBox(Panel1, ID_STATICBOX2, _("Print Status"), wxPoint(8,96), wxSize(320,112), 0, _T("ID_STATICBOX2")); + btnStart = new wxButton(Panel1, ID_BUTTON2, _("Start"), wxPoint(16,118), wxSize(85,26), 0, wxDefaultValidator, _T("ID_BUTTON2")); + btnPause = new wxButton(Panel1, ID_BUTTON3, _("Pause"), wxPoint(127,118), wxSize(85,26), 0, wxDefaultValidator, _T("ID_BUTTON3")); + btnStop = new wxButton(Panel1, ID_BUTTON4, _("Stop"), wxPoint(235,118), wxSize(85,26), 0, wxDefaultValidator, _T("ID_BUTTON4")); + PrintProgress = new wxGauge(Panel1, ID_GAUGE1, 1000, wxPoint(16,170), wxSize(304,24), 0, wxDefaultValidator, _T("ID_GAUGE1")); + lblPercentDone = new wxStaticText(Panel1, ID_STATICTEXT3, _("Percent Done"), wxPoint(16,152), wxDefaultSize, 0, _T("ID_STATICTEXT3")); + StaticBox3 = new wxStaticBox(Panel1, ID_STATICBOX3, _("Files"), wxPoint(8,216), wxSize(320,251), 0, _T("ID_STATICBOX3")); + btnDelete = new wxButton(Panel1, ID_BUTTON5, _("Delete"), wxPoint(16,392), wxSize(85,26), 0, wxDefaultValidator, _T("ID_BUTTON5")); + btnRefresh = new wxButton(Panel1, ID_BUTTON6, _("Refresh"), wxPoint(125,392), wxSize(85,26), 0, wxDefaultValidator, _T("ID_BUTTON6")); + btnUpload = new wxButton(Panel1, ID_BUTTON7, _("Upload"), wxPoint(235,392), wxSize(85,26), 0, wxDefaultValidator, _T("ID_BUTTON7")); + btnDownload = new wxButton(Panel1, ID_BUTTON8, _("Download"), wxPoint(235,432), wxSize(85,26), 0, wxDefaultValidator, _T("ID_BUTTON8")); + progressFile = new wxGauge(Panel1, ID_GAUGE2, 100, wxPoint(16,433), wxSize(212,24), 0, wxDefaultValidator, _T("ID_GAUGE2")); + ListCtrl1 = new wxListCtrl(Panel1, ID_LISTCTRL1, wxPoint(16,232), wxSize(304,152), wxLC_REPORT|wxLC_SINGLE_SEL|wxSUNKEN_BORDER, wxDefaultValidator, _T("ID_LISTCTRL1")); + PollTimer.SetOwner(this, ID_TIMER1); + StatusBar1 = new wxStatusBar(this, ID_STATUSBAR1, 0, _T("ID_STATUSBAR1")); + int __wxStatusBarWidths_1[1] = { -10 }; + int __wxStatusBarStyles_1[1] = { wxSB_NORMAL }; + StatusBar1->SetFieldsCount(1,__wxStatusBarWidths_1); + StatusBar1->SetStatusStyles(1,__wxStatusBarStyles_1); + SetStatusBar(StatusBar1); + WatchDogTimer.SetOwner(this, ID_TIMER2); + + Connect(ID_BUTTON1,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&NewFrame::OnbtnConnectClick); + Connect(ID_BUTTON2,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&NewFrame::OnbtnStartClick); + Connect(ID_BUTTON3,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&NewFrame::OnbtnPauseClick); + Connect(ID_BUTTON4,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&NewFrame::OnbtnStopClick); + Connect(ID_BUTTON5,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&NewFrame::OnbtnDeleteClick); + Connect(ID_BUTTON6,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&NewFrame::OnbtnRefreshClick); + Connect(ID_BUTTON7,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&NewFrame::OnbtnUploadClick); + Connect(ID_BUTTON8,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&NewFrame::OnbtnDownloadClick); + Connect(ID_TIMER1,wxEVT_TIMER,(wxObjectEventFunction)&NewFrame::OnPollTimerTrigger); + Connect(ID_TIMER2,wxEVT_TIMER,(wxObjectEventFunction)&NewFrame::OnWatchDogTimerTrigger); + //*) + setStatusMessages(_("Not Connected"), "", ""); +} + +wxString convertSize(size_t size) +{ + const char *SIZES[] = { _("Bytes"), _("KB"), _("MB"), _("GB") }; + unsigned int div = 0; + size_t rem = 0; + + while (size >= 1024 && div < (sizeof SIZES / sizeof *SIZES)) + { + rem = (size % 1024); + div++; + size /= 1024; + } + + double size_d = (float)size + (float)rem / 1024.0; + wxString result; + unsigned int FileSize = round(size_d); + result.Printf("%d %s", FileSize, SIZES[div]); + return result; +} + + +double getValue(wxString str, wxString prefix, double default_val, wxString ahead) +{ + try + { + int startIndex = 0; + if (ahead != "") + { + startIndex = str.Find(ahead); + if (startIndex != -1) + { + startIndex += ahead.Length(); + } + } + int index = str.substr(startIndex).Find(prefix); + if (index != wxNOT_FOUND) + { + index += prefix.Length(); + int length = 0; + //char* chArray = str.ToCharArray(); + char* chArray = (char*)malloc(sizeof(char)*(str.Length())); + strcpy(chArray, (const char*)str.mb_str(wxConvUTF8)); + for (unsigned int i = index; i < str.Length(); i++) + { + char ch = chArray[i]; + if (((ch < '0') || (ch > '9')) && ((ch != '.') && (ch != '-'))) + { + break; + } + length++; + } + if (length > 0) + { + double value; + if (!str.substr(index, length).ToDouble(&value)) + return -1; + else + return value; + } + return default_val; + } + return default_val; + } + catch (const std::runtime_error) + { + return default_val; + } +} + +double getValue(wxString str, wxString prefix, double default_val) +{ + return getValue(str, prefix, default_val, ""); +} + +NewFrame::~NewFrame() +{ + //(*Destroy(NewFrame) + //*) +} +void NewFrame::connectToPrinter(wxString hostname) +{ + wxIPV4address addrLocal; + addrLocal.Hostname(); + sock = new wxDatagramSocket(addrLocal); + //wxDatagramSocket sock(addrLocal); + if (!sock->IsOk()) + { + wxLogMessage("ERROR: failed to create UDP socket"); + return; + } + + + //wxIPV4address addrPeer; + free(addrPeer); + addrPeer = nullptr; + addrPeer = new wxIPV4address; + addrPeer->Hostname(hostname); + addrPeer->Service(3000); + isconnected = false; + startList = false; + endList = false; + fileCount = 0; + photonFile = nullptr; + photonFileName = wxEmptyString; + photonFilePath = wxEmptyString; + beforeByte = 0; + frameNum = 0; + numDownloadRetries = 0; + downloadStarted = false; + downloadFileLength = -1; + downloadFileCurrentLength = -1; + PollTimer.Stop(); + WatchDogTimer.Stop(); +} +void NewFrame::disconnectFromPrinter() +{ + if (isRunning) + { + sockThread->Kill(); + //free(sockThread); + sockThread = nullptr; + isRunning = false; + } + sock->Close(); + free(addrPeer); + addrPeer = nullptr; + isconnected = false; + startList = false; + endList = false; + fileCount = 0; + photonFile = nullptr; + photonFileName = wxEmptyString; + photonFilePath = wxEmptyString; + beforeByte = 0; + frameNum = 0; + numDownloadRetries = 0; + downloadStarted = false; + downloadFileLength = -1; + downloadFileCurrentLength = -1; + PollTimer.Stop(); + WatchDogTimer.Stop(); + setStatusMessages(_("Not Connected"), "", ""); + btnConnect->SetLabel(_("Connect")); + lblStatus->SetLabel(_("Not Connected")); + clearListControl(); + progressFile->SetValue(0); + PrintProgress->SetValue(0); +} +void NewFrame::setStatusMessages(wxString message1, wxString message2, wxString message3) +{ + if (message1 != "prev") + msges[0] = message1; + if (message2 != "prev") + msges[1] = message2; + if (message3 != "prev") + msges[2] = message3; + SetStatusText(msges[0] + " " + msges[1] + " " + msges[2], 0); +} +void NewFrame::sendCmdToPrinter(wxString cmd) +{ + memset(&receivedBuf[0], 0, sizeof(receivedBuf)); + wxUint32 sendSize = cmd.Length(); + char* tempBuffer = (char*)malloc(sizeof(char)*(2 + sendSize)); + strcpy(tempBuffer, (const char*)cmd.mb_str(wxConvUTF8)); // buf will now contain the command + tempBuffer[sendSize] = '\0'; + tempBuffer[sendSize + 1] = '\0'; + WatchDogTimer.Start(2000, true); + if (sock->SendTo(*addrPeer, tempBuffer, sendSize).LastCount() != sendSize) + { + wxMessageBox("ERROR: failed to send data"); + return; + } + free(tempBuffer); +} + +void NewFrame::sendCmdToPrinter(uint8_t* cmd, unsigned int sendSize) +{ + memset(&receivedBuf[0], 0, sizeof(receivedBuf)); + WatchDogTimer.Start(2000, true); + if (sock->SendTo(*addrPeer, cmd, sendSize).LastCount() != sendSize) + { + wxMessageBox("ERROR: failed to send data"); + return; + } +} + +void NewFrame::getAsyncReply() +{ + sockThread = new MyThread(this); + //free(sockThread); + //sockThread = thread; + sockThread->Create(); + sockThread->Run(); +} + +void NewFrame::getBlockingReply() +{ + memset(&receivedBuf[0], 0, sizeof(receivedBuf)); + numRead = sock->RecvFrom(*addrPeer, receivedBuf, sizeof(receivedBuf)).LastCount(); + WatchDogTimer.Stop(); +} + +void NewFrame::clearListControl() +{ + ListCtrl1->ClearAll(); + ListCtrl1->DeleteAllColumns(); + //The two lines below is only needed for GCC under windows. It works fine without this in all other OSes + ListCtrl1->~wxListCtrl(); + ListCtrl1 = new wxListCtrl(Panel1, ID_LISTCTRL1, wxPoint(16, 232), wxSize(304, 152), wxLC_REPORT | wxLC_SINGLE_SEL | wxSUNKEN_BORDER, wxDefaultValidator, _T("ID_LISTCTRL1")); + //Under Windows GCC the list fails to redraw after deleting items in it. The above workaround is the easiest way to fix that issue + //comment them out for better performance under other platforms +} + +void NewFrame::handleResponse() +{ + WatchDogTimer.Stop(); + if (gcodeCmd.isCmd("M4002")) //Gcode to read version info from printer + { + wxString tempStr = receivedBuf; + lblStatus->SetLabel(_("Connected")); + btnConnect->SetLabel(_("Disconnect")); + isconnected = true; + setStatusMessages(tempStr.substr(3).Trim(), "", ""); + isConnected = true; + while (sock->IsData()) //get rid of extra messages from the sockets buffer as it will confuse the program + getBlockingReply(); + updatefileList(); + } + else if (gcodeCmd.isCmd("M20")) //Gcode to read the filelist + { + wxString receivedText = receivedBuf; + receivedText.Trim(); + if (!receivedText.Contains("Begin file list")) + { + if (!startList) //if the file listing has not started then read again + { + getAsyncReply(); + } + else + { + if (!receivedText.Contains("End file list")) //File listing has not ended + { + wxStringTokenizer temp(receivedText, " "); + wxString temp1 = ""; + while (temp.HasMoreTokens()) + { + wxString token = temp.GetNextToken(); + temp1 = temp1 + token + " "; + if (temp.CountTokens() == 1) + break; + } + wxString token = temp.GetNextToken(); + + long value; + if (token.ToLong(&value)) + { + if (value > 0) + { + ListCtrl1->InsertItem(fileCount, wxString((char)(fileCount + 49))); + ListCtrl1->SetItem(fileCount, 1, temp1); + ListCtrl1->SetItem(fileCount, 2, convertSize(value)); + fileCount++; + } + } + else + { + ListCtrl1->InsertItem(fileCount, wxString((char)(fileCount + 49))); + ListCtrl1->SetItem(fileCount, 1, temp1); + ListCtrl1->SetItem(fileCount, 2, _("Unknown")); + fileCount++; + } + + getAsyncReply(); + } + else + { + startList = false; //File list ended don't read any more lines + endList = true; + } + } + } + else + { + startList = true; //File Listing just Started + endList = false; + clearListControl(); + ListCtrl1->AppendColumn(_("Num"), wxLIST_FORMAT_LEFT, 50); + ListCtrl1->AppendColumn(_("File Name"), wxLIST_FORMAT_LEFT, 175); + ListCtrl1->AppendColumn(_("Size"), wxLIST_FORMAT_LEFT, 75); + fileCount = 0; + getAsyncReply(); + } + if (endList) //Received end of file list in the last command so now clean up rest of the receive buffer + { + getBlockingReply(); + } + //else if (endList>=1) + //{ + //get rid of extra messages from the sockets buffer as it will confuse the program + //} + } + else if (gcodeCmd.isCmd("M6030")) //Gcode to Start Printing + { + ispaused = false; + isPrinting = true; + btnPause->Enable(); + btnStart->Disable(); + btnStop->Enable(); + gcodeCmd.setCommand("M27"); + gcodeCmd.setParameter(""); + beforeByte = 0; + frameNum = 0; + PollTimer.Start(1000); + setStatusMessages("prev", _("Printing"), ""); + PrintProgress->SetValue(0); + //wxMessageBox(wxString::Format(wxT("%s"), receivedText)); + } + else if (gcodeCmd.isCmd("M6032")) //Gcode to Download File + { + if (!downloadStarted) //If the download has not started do the following check + { + wxString receivedText = receivedBuf; + receivedText.Trim(); + wxString errorIfAny = isError(receivedText); + if (errorIfAny.Length() <= 0) //No error so we can proceed to the actual file download + { + downloadFileLength = getValue(receivedText, "L:", -1); + if (downloadFileLength>0) //it is a valid file with a positive file length + { + downloadStarted = true; //Se this flag that way you know the download has started and we need to process the incoming data. + } + else + { + gcodeCmd.setCommand("M22"); + sendCmdToPrinter(gcodeCmd.getCommand()); + getAsyncReply(); + } + } + else + { + if (numDownloadRetries == 0) //retry only once by sending a M22 + { + numDownloadRetries++; + gcodeCmd.setCommand("M22"); + sendCmdToPrinter(gcodeCmd.getCommand()); + getAsyncReply(); + } + else //It errored out after one retry just give up and show the error message + { + wxMessageBox(errorIfAny, _("Error"), wxICON_ERROR); + } + } + } + if (downloadStarted) //Download has started. Issue the M3000 command to start the download process + { + while (sock->IsData()) //get rid of extra messages from the sockets buffer as it will confuse the program + getBlockingReply(); + if (downloadFileCurrentLengthSetValue(0); + downloadFileCurrentLength = 0; + gcodeCmd.setCommand("M3000"); + sendCmdToPrinter(gcodeCmd.getCommand()); + getAsyncReply(); + } + else + { + gcodeCmd.setCommand("M22"); + sendCmdToPrinter(gcodeCmd.getCommand()); + getAsyncReply(); + } + } + //wxMessageBox(wxString::Format(wxT("%s"), receivedText)); + } + else if (gcodeCmd.isCmd("M3000")) //Gcode to start downlading data from the printer or request resend of corrupted data + { + if (downloadFileCurrentLength < downloadFileLength) //there is still more data left to be read + { + if ((numRead >= 6) && ((uint8_t)(receivedBuf[numRead - 1]) == 0x83)) + { + unsigned int maxValue = 0; + maxValue = (maxValue << 8) + receivedBuf[numRead - 3]; + maxValue = (maxValue << 8) + receivedBuf[numRead - 4]; + maxValue = (maxValue << 8) + receivedBuf[numRead - 5]; + maxValue = (maxValue << 8) + receivedBuf[numRead - 6]; + if (maxValue == downloadFileCurrentLength) + { + uint8_t checkSum = 0; // This is the checksum + for (unsigned int i = 0; i < (numRead - 2); i++) + checkSum = (uint8_t)(checkSum ^ receivedBuf[i]); + if (checkSum == receivedBuf[numRead - 2]) // if the calculated checksum is the same as the one we received from the printer + { + //Write this data to file + photonFile->Write(receivedBuf, numRead - 6); + downloadFileCurrentLength += numRead - 6; + progressFile->SetValue((int)((100 * downloadFileCurrentLength) / downloadFileLength)); + progressFile->Update(); + gcodeCmd.setCommand("M3000"); + sendCmdToPrinter(gcodeCmd.getCommand()); + getAsyncReply(); + + } + else //request resend + { + gcodeCmd.setCommand("M3001"); + gcodeCmd.setParameter(wxString('I') + wxString::Format(wxT("%lld"), downloadFileCurrentLength)); + sendCmdToPrinter(gcodeCmd.getGcodeCmd()); + getAsyncReply(); + } + } + else //request resend + { + gcodeCmd.setCommand("M3001"); + gcodeCmd.setParameter(wxString('I') + wxString::Format(wxT("%lld"), downloadFileCurrentLength)); + sendCmdToPrinter(gcodeCmd.getGcodeCmd()); + getAsyncReply(); + } + + } + else + { + downloadStarted = false; + numDownloadRetries++; + gcodeCmd.setCommand("M22"); + sendCmdToPrinter(gcodeCmd.getCommand()); + getAsyncReply(); + } + } + else + { + numDownloadRetries = 0; //just to ensure that it closes the file and updates the flag; + gcodeCmd.setCommand("M22"); + sendCmdToPrinter(gcodeCmd.getCommand()); + getAsyncReply(); + } + + //wxMessageBox(wxString::Format(wxT("%s"), receivedText)); + } + else if (gcodeCmd.isCmd("M22")) //Gcode to Stop downloading file + { + if (numDownloadRetries == 1) //Request file re download if and only if it's retry number 1. In case of no retry i.e. 0 finish the process and in case of more than one i.e. >1 just give up and show an error message + { + gcodeCmd.setCommand("M6032"); // The gcode parameter should be same as before which is the file name + sendCmdToPrinter(gcodeCmd.getGcodeCmd()); + getAsyncReply(); + } + else + { + photonFile->Flush(); + photonFile->Close(); + if (downloadFileCurrentLength >= downloadFileLength) + wxMessageBox(_("Download finished."), _("Information"), wxOK | wxICON_INFORMATION | wxCENTER); + else + wxMessageBox(_("Failed to download file. Please retry"), _("Warning"), wxOK | wxICON_EXCLAMATION | wxCENTER); + downloadStarted = false; + downloadFileLength = -1; + downloadFileCurrentLength = -1; + + } + //do Nothing + //wxMessageBox(wxString::Format(wxT("%s"), receivedText)); + } + else if (gcodeCmd.isCmd("M25")) //Gcode to Pause Printing + { + ispaused = true; + isPrinting = false; + btnPause->SetLabel(_("Resume")); + btnPause->Update(); + PollTimer.Stop(); + setStatusMessages("prev", _("Paused"), ""); + //wxMessageBox(wxString::Format(wxT("%s"), receivedText)); + } + else if (gcodeCmd.isCmd("M27")) //Gcode for getting print status + { + wxString receivedText = receivedBuf; + while (sock->IsData()) //get rid of extra messages from the sockets buffer as it will confuse the program + getBlockingReply(); + wxString errorIfAny = isError(receivedText); + if (errorIfAny.Length() <= 0) + { + wxStringTokenizer temp(receivedText.Trim(), " "); + wxString token; + while (temp.HasMoreTokens()) //get to the last token that is the received message. it should have the format bytes_printed/total_bytes + token = temp.GetNextToken(); + wxStringTokenizer temp1(token.Trim(), "/"); + unsigned long bytesPrinted = 0; + unsigned long totalBytes = 0; + temp1.GetNextToken().ToCULong(&bytesPrinted); + temp1.GetNextToken().ToCULong(&totalBytes); + if (beforeByte= 1000) + { + PollTimer.Stop(); + btnStart->Enable(); + btnStop->Disable(); + btnPause->Disable(); + setStatusMessages("prev", _("Print"), _("finished.")); + lblPercentDone->SetLabel(wxString(_("Percent Done : 100"))); + PrintProgress->SetValue(1000); + PrintProgress->Update(); + } + else + { + lblPercentDone->SetLabel(wxString(_("Percent Done : ")) + wxString::Format(wxT("%d"), (int)round(percentDone / 10))); + PrintProgress->SetValue((int)round(percentDone)); + PrintProgress->Update(); + setStatusMessages("prev", _("Printing"), wxString(_("Layer ")) + wxString::Format(wxT("%u"), frameNum)); + } + } + else + { + PollTimer.Stop(); + setStatusMessages("prev", _("Not Printing"), ""); + } + + //wxMessageBox(wxString::Format(wxT("%s"), receivedText),"Information",wxOK|wxICON_INFORMATION|wxCENTER); + } + else if (gcodeCmd.isCmd("M24")) //Gcode to resume Printing + { + ispaused = false; + isPrinting = true; + btnPause->SetLabel("Pause"); + btnPause->Update(); + gcodeCmd.setCommand("M27"); + gcodeCmd.setParameter(""); + PollTimer.Start(1000); + setStatusMessages("prev", _("Printing"), ""); + //wxMessageBox(wxString::Format(wxT("%s"), receivedText)); + } + else if (gcodeCmd.isCmd("M33")) //Stopping a print + { + wxString receivedText = receivedBuf; + while (sock->IsData()) //get rid of extra messages from the sockets buffer as it will confuse the program + getBlockingReply(); + wxString errorIfAny = isError(receivedText); + if (errorIfAny.Length() <= 0) + { + gcodeCmd.setCommand("M29"); + gcodeCmd.setParameter(""); + sendCmdToPrinter(gcodeCmd.getCommand()); + getAsyncReply(); + } + else + { + wxMessageBox(errorIfAny, _("Error"), wxICON_ERROR); + } + + + + } + else if (gcodeCmd.isCmd("M29")) //Stopping a print or a file upload + { + //gcodeCmd.setCommand("G90, G0"); + //gcodeCmd.setParameter("Z 150 F300"); + //sendCmdToPrinter(gcodeCmd.getGcodeCmd()); + wxString receivedText = receivedBuf; + if (receivedText.Length()>8) //Don't show the OK N:6 message that you get on stopping of a print + wxMessageBox(wxString::Format(wxT("%s"), receivedText), _("Information"), wxOK | wxICON_INFORMATION | wxCENTER); + else + { + setStatusMessages("prev", _("Stopped"), ""); + btnPause->Disable(); + btnStart->Enable(); + btnStop->Enable(); + ispaused = false; + isPrinting = false; + PollTimer.Stop(); + } + + while (sock->IsData()) //get rid of extra messages from the sockets buffer as it will confuse the program + getBlockingReply(); + updatefileList(); + + } + else if (gcodeCmd.isCmd("M30")) //Delete a file + { + //gcodeCmd.setCommand("G90, G0"); + //gcodeCmd.setParameter("Z 150 F300"); + //sendCmdToPrinter(gcodeCmd.getGcodeCmd()); + wxString receivedText = receivedBuf; + wxMessageBox(wxString::Format(wxT("%s"), receivedText), _("Information"), wxOK | wxICON_INFORMATION | wxCENTER); + while (sock->IsData()) //get rid of extra messages from the sockets buffer as it will confuse the program + getBlockingReply(); + updatefileList(); + } + else if (gcodeCmd.isCmd("M28")) //Uploading a File + { + wxString receivedText = receivedBuf; + //wxMessageBox(wxString::Format(wxT("%s"), receivedText)); + int chunckSize = 0x500; + uint8_t *buffer = (uint8_t*)malloc((chunckSize + 6) * sizeof(uint8_t)); + ssize_t index = 0; + if (receivedText.Find("resend") != wxNOT_FOUND) + { + long resend_index = getValue(receivedText, "resend ", -1); + photonFile->Seek(resend_index, wxFromStart); + } + if (photonFile->Tell() < photonFile->Length()) + { + unsigned int position = photonFile->Tell(); + index = photonFile->Read(buffer, chunckSize); + if (index != wxInvalidOffset) + { + uint8_t num8 = 0; + buffer[index] = (uint8_t)position & 0xFF; + buffer[index + 1] = (uint8_t)((position >> 8) & 0xFF); + buffer[index + 2] = (uint8_t)((position >> 16) & 0xFF); + buffer[index + 3] = (uint8_t)((position >> 24) & 0xFF); + for (int i = 0; i < (index + 4); i++) + { + num8 = (uint8_t)(num8 ^ buffer[i]); + } + buffer[index + 4] = num8; + buffer[index + 5] = 0x83; + sendCmdToPrinter(buffer, index + 6); + free(buffer); + progressFile->SetValue((int)((100 * photonFile->Tell()) / photonFile->Length())); + getAsyncReply(); + } + } + else + { + photonFile->Close(); + gcodeCmd.setCommand("M29"); + gcodeCmd.setParameter(""); + sendCmdToPrinter(gcodeCmd.getCommand()); + getAsyncReply(); + } + } +} +wxString NewFrame::isError(wxString response) +{ + if (response.Trim().substr(0, 6).Contains("Error:")) + { + wxStringTokenizer temp(response.Trim(), ":"); + wxString token; + while (temp.HasMoreTokens()) //get to the last token that is the error message + token = temp.GetNextToken(); + return token; + } + else + return ""; +} +void NewFrame::getVersion() +{ + gcodeCmd.setCommand("M4002"); + //receiver.Send(Encoding.ASCII.GetBytes(gcodeCmd), gcodeCmd.Length); + sendCmdToPrinter(gcodeCmd.getCommand()); + getAsyncReply(); + //wxString s = getBlockingReply(); + //return s.Trim().substr(3); +} +void NewFrame::updatefileList() +{ + gcodeCmd.setCommand("M20"); + fileCount = 0; + sendCmdToPrinter(gcodeCmd.getCommand()); + endList = false; + startList = false; + getAsyncReply(); +} +void NewFrame::OnbtnConnectClick(wxCommandEvent& event) +{ + //wxMessageBox(_("Connect to Printer\n"), _("About Connect"), wxOK | wxICON_INFORMATION, this); + if (!isconnected) //Connect to the printer if it not connected + { + connectToPrinter(txtIP->GetValue()); + getVersion(); + } + else + { + disconnectFromPrinter(); + } + + //wxLogMessage("received %s",s); + //sendCmdToPrinter("M27"); + //getAsyncReply(); + +} + +void NewFrame::OnbtnStartClick(wxCommandEvent& event) +{ + //wxMessageBox(_("Start a print\n"), _("About Start"), wxOK | wxICON_INFORMATION, this); + long lSelectedItem = ListCtrl1->GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED); + //wxMessageBox(wxString::Format(wxT("Sel = %d"), lSelectedItem)); + if (lSelectedItem != wxNOT_FOUND) + { + //wxMessageBox(ListCtrl1->GetItemText(lSelectedItem,1)); + //sprintf(gcodeCmd,"M6030 ':%s'",ListCtrl1->GetItemText(lSelectedItem,1).mb_str().data()); + gcodeCmd.setCommand("M6030"); + gcodeCmd.setParameter(wxString("\':") + ListCtrl1->GetItemText(lSelectedItem, 1).Trim() + wxString("\'")); + //wxMessageBox(wxString::Format(wxT("%s"), gcodeCmd.getGcodeCmd())); + sendCmdToPrinter(gcodeCmd.getGcodeCmd()); + getAsyncReply(); + } + else + { + wxMessageBox(_("Please select a file before starting a print."), _("Warning"), wxOK | wxICON_EXCLAMATION | wxCENTER); + } +} + +void NewFrame::OnbtnPauseClick(wxCommandEvent& event) +{ + //wxMessageBox(_("Pause a print\n"), _("About Pause"), wxOK | wxICON_INFORMATION, this); + PollTimer.Stop(); + if (ispaused) + { + gcodeCmd.setCommand("M24"); + } + else + { + gcodeCmd.setCommand("M25"); + } + sendCmdToPrinter(gcodeCmd.getCommand()); + getAsyncReply(); +} + +void NewFrame::OnbtnStopClick(wxCommandEvent& event) +{ + //wxMessageBox(_("Stop a print\n"), _("About Stop"), wxOK | wxICON_INFORMATION, this); + int answer = wxMessageBox(_("Want to stop the current print?"), _("Confirm"), wxYES_NO | wxICON_QUESTION | wxCENTER, this); + if (answer == wxYES) + { + PollTimer.Stop(); + gcodeCmd.setCommand("M33"); + gcodeCmd.setParameter("I5"); + sendCmdToPrinter(gcodeCmd.getGcodeCmd()); + getAsyncReply(); + } +} + +void NewFrame::OnbtnDeleteClick(wxCommandEvent& event) +{ + //wxMessageBox(_("Delete a file\n"), _("About Delete"), wxOK | wxICON_INFORMATION, this); + long lSelectedItem = ListCtrl1->GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED); + //wxMessageBox(wxString::Format(wxT("Sel = %d"), lSelectedItem)); + if (lSelectedItem != wxNOT_FOUND) + { + int answer = wxMessageBox(wxString(_("Are you sure you want to permanently delete ")) + ListCtrl1->GetItemText(lSelectedItem, 1).Trim() + wxString(_('?')), _("Confirm"), wxYES_NO | wxICON_QUESTION | wxCENTER, this); + if (answer == wxYES) + { + gcodeCmd.setCommand("M30"); + gcodeCmd.setParameter(ListCtrl1->GetItemText(lSelectedItem, 1).Trim()); + //wxMessageBox(wxString::Format(wxT("%s"), gcodeCmd.getGcodeCmd())); + sendCmdToPrinter(gcodeCmd.getGcodeCmd()); + getAsyncReply(); + } + } + else + { + wxMessageBox(_("Please select a file to delete."), _("Warning"), wxOK | wxICON_EXCLAMATION | wxCENTER); + } +} + +void NewFrame::OnbtnRefreshClick(wxCommandEvent& event) +{ + //wxMessageBox(_("Refresh file list\n"), _("About Refresh"), wxOK | wxICON_INFORMATION, this); + updatefileList(); + // gcodeCmd.setCommand("M27"); + // gcodeCmd.setParameter(""); + // sendCmdToPrinter(gcodeCmd.getCommand()); + // getAsyncReply(); +} + +void NewFrame::OnbtnUploadClick(wxCommandEvent& event) +{ + wxFileDialog *OpenDialog = new wxFileDialog(this, _("Choose a file to upload"), wxEmptyString, wxEmptyString, _("All files (*.*)|*.*"), wxFD_OPEN, wxDefaultPosition);//change the filter to .photon files + if (OpenDialog->ShowModal() == wxID_OK) // if the user click "Open" instead of "cancel" + { + photonFilePath = OpenDialog->GetPath(); + photonFileName = OpenDialog->GetFilename(); + photonFile = new wxFile(photonFilePath, wxFile::OpenMode::read); + gcodeCmd.setCommand("M28"); + gcodeCmd.setParameter(photonFileName); + progressFile->SetValue(0); + sendCmdToPrinter(gcodeCmd.getGcodeCmd()); + getAsyncReply(); + + //wxMessageBox(CurrentDocPath); + } +} + +void NewFrame::OnbtnDownloadClick(wxCommandEvent& event) +{ + long lSelectedItem = ListCtrl1->GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED); + if (lSelectedItem != wxNOT_FOUND) + { + wxFileDialog *SaveDialog = new wxFileDialog(this, _("Save downloaded file as . . ."), wxEmptyString, ListCtrl1->GetItemText(lSelectedItem, 1).Trim(), _("All files (*.*)|*.*"), wxFD_SAVE, wxDefaultPosition);//change the filter to .photon files + if (SaveDialog->ShowModal() == wxID_OK) // if the user click "Save" instead of "cancel" + { + downloadStarted = false; + downloadFileLength = -1; + downloadFileCurrentLength = -1; + progressFile->SetValue(0); + photonFilePath = SaveDialog->GetPath(); + photonFileName = SaveDialog->GetFilename(); + photonFile = new wxFile(photonFilePath, wxFile::OpenMode::write); + if (photonFile->IsOpened()) //if opening of the file succeded + { + gcodeCmd.setCommand("M6032"); + gcodeCmd.setParameter(wxString('\'') + ListCtrl1->GetItemText(lSelectedItem, 1).Trim() + wxString('\'')); + progressFile->SetValue(0); + sendCmdToPrinter(gcodeCmd.getGcodeCmd()); + getAsyncReply(); + } + else + { + wxMessageBox(_("Failed to write file. Make sure you have write access."), _("Error"), wxOK | wxICON_ERROR | wxCENTER); + } + } + } + else + { + wxMessageBox(_("Please select a file to download."), _("Warning"), wxOK | wxICON_EXCLAMATION | wxCENTER); + } + + +} + +void NewFrame::OnMyThread(wxCommandEvent& event) +{ + //wxLogMessage("Received %s, %d", receivedBuf, numRead); + handleResponse(); +} + +void NewFrame::OnPollTimerTrigger(wxTimerEvent& event) +{ + //wxMessageBox("Triggered"); + gcodeCmd.setCommand("M27"); + gcodeCmd.setParameter(""); + sendCmdToPrinter(gcodeCmd.getCommand()); + getAsyncReply(); +} + +void NewFrame::OnWatchDogTimerTrigger(wxTimerEvent& event) +{ + if (isRunning) + { + sockThread->Kill(); + //free(sockThread); + sockThread = nullptr; + isRunning = false; + sock->Close(); + free(addrPeer); + addrPeer = nullptr; + isconnected = false; + startList = false; + endList = false; + fileCount = 0; + photonFile = nullptr; + photonFileName = wxEmptyString; + photonFilePath = wxEmptyString; + beforeByte = 0; + frameNum = 0; + numDownloadRetries = 0; + downloadStarted = false; + downloadFileLength = -1; + downloadFileCurrentLength = -1; + PollTimer.Stop(); + WatchDogTimer.Stop(); + setStatusMessages(_("Not Connected"), "", ""); + btnConnect->SetLabel(_("Connect")); + lblStatus->SetLabel(_("Not Connected")); + clearListControl(); + progressFile->SetValue(0); + PrintProgress->SetValue(0); + wxMessageBox(_("Failed to receive any response from the printer in 2 Seconds.\nPlease try re-connecting"), _("Error"), wxOK | wxICON_ERROR | wxCENTER); + } +} diff --git a/NewFrame.h b/NewFrame.h new file mode 100644 index 0000000..31edfa3 --- /dev/null +++ b/NewFrame.h @@ -0,0 +1,145 @@ +// For compilers that support precompilation, includes "wx/wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ +# pragma hdrstop +#endif + +// for all others, include the necessary headers +#ifndef WX_PRECOMP +# include "wx/wx.h" +#endif +#include "wx/url.h" +#include "wx/sstream.h" +//(*Headers(NewFrame) +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +//*) +#include +// Define a new application type +class MyApp : public wxApp +{ +public: + virtual bool OnInit() wxOVERRIDE; +}; + +// Define a new frame type: this is going to be our main frame +class NewFrame : public wxFrame +{ +public: + + NewFrame(wxFrame* parent, wxWindowID id = wxID_ANY, const wxString Title = "", const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize); + virtual ~NewFrame(); + + //(*Declarations(NewFrame) + wxButton* btnConnect; + wxButton* btnDelete; + wxButton* btnDownload; + wxButton* btnPause; + wxButton* btnRefresh; + wxButton* btnStart; + wxButton* btnStop; + wxButton* btnUpload; + wxGauge* PrintProgress; + wxGauge* progressFile; + wxListCtrl* ListCtrl1; + wxPanel* Panel1; + wxStaticBox* StaticBox1; + wxStaticBox* StaticBox2; + wxStaticBox* StaticBox3; + wxStaticText* StaticText1; + wxStaticText* lblPercentDone; + wxStaticText* lblStatus; + wxStatusBar* StatusBar1; + wxTextCtrl* txtIP; + wxTimer PollTimer; + wxTimer WatchDogTimer; + //*) + + //static wxString[5] SizeSuffixes = { "bytes", "KB", "MB", "GB", "TB"}; + bool ispaused = false; + bool isPrinting = false; + double progressBefore = -9999; + int framenumber = 0; + bool isConnected = false; + int tickCount = 0; + wxString msges[3]; +protected: + + //(*Identifiers(NewFrame) + static const long ID_STATICBOX1; + static const long ID_TEXTCTRL1; + static const long ID_STATICTEXT1; + static const long ID_BUTTON1; + static const long ID_STATICTEXT2; + static const long ID_STATICBOX2; + static const long ID_BUTTON2; + static const long ID_BUTTON3; + static const long ID_BUTTON4; + static const long ID_GAUGE1; + static const long ID_STATICTEXT3; + static const long ID_STATICBOX3; + static const long ID_BUTTON5; + static const long ID_BUTTON6; + static const long ID_BUTTON7; + static const long ID_BUTTON8; + static const long ID_GAUGE2; + static const long ID_LISTCTRL1; + static const long ID_PANEL1; + static const long ID_TIMER1; + static const long ID_STATUSBAR1; + static const long ID_TIMER2; + //*) + +private: + + //(*Handlers(NewFrame) + void OnbtnConnectClick(wxCommandEvent& event); + void OnbtnStartClick(wxCommandEvent& event); + void OnbtnPauseClick(wxCommandEvent& event); + void OnbtnStopClick(wxCommandEvent& event); + void OnbtnDeleteClick(wxCommandEvent& event); + void OnbtnRefreshClick(wxCommandEvent& event); + void OnbtnUploadClick(wxCommandEvent& event); + void OnbtnDownloadClick(wxCommandEvent& event); + void OnPollTimerTrigger(wxTimerEvent& event); + void OnWatchDogTimerTrigger(wxTimerEvent& event); + //*) + void getAsyncReply(); + void OnMyThread(wxCommandEvent& event); + void getVersion(); + void getBlockingReply(); + void handleResponse(); + void sendCmdToPrinter(wxString); + void sendCmdToPrinter(uint8_t*, unsigned int); + void updatefileList(); + void connectToPrinter(wxString); + void disconnectFromPrinter(); + //void setStatusMessages(std::array); + void setStatusMessages(wxString, wxString, wxString); + wxString isError(wxString); + void clearListControl(); + bool isconnected = false; + bool startList = false; + bool endList = false; + int fileCount = 0; + wxFile* photonFile; + wxString photonFileName; + wxString photonFilePath; + unsigned int beforeByte = 0; + unsigned int frameNum = 0; + unsigned int numDownloadRetries = 0; + bool downloadStarted = false; + ssize_t downloadFileLength = -1; + ssize_t downloadFileCurrentLength = -1; + DECLARE_EVENT_TABLE() +}; + diff --git a/PhotonNetworkTool.sln b/PhotonNetworkTool.sln new file mode 100644 index 0000000..29aba3f --- /dev/null +++ b/PhotonNetworkTool.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.27428.2011 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PhotonNetworkTool", "PhotonNetworkTool.vcxproj", "{149DF993-556D-494C-B267-7D09EB73F1FF}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {149DF993-556D-494C-B267-7D09EB73F1FF}.Debug|x64.ActiveCfg = Debug|x64 + {149DF993-556D-494C-B267-7D09EB73F1FF}.Debug|x64.Build.0 = Debug|x64 + {149DF993-556D-494C-B267-7D09EB73F1FF}.Debug|x86.ActiveCfg = Debug|Win32 + {149DF993-556D-494C-B267-7D09EB73F1FF}.Debug|x86.Build.0 = Debug|Win32 + {149DF993-556D-494C-B267-7D09EB73F1FF}.Release|x64.ActiveCfg = Release|x64 + {149DF993-556D-494C-B267-7D09EB73F1FF}.Release|x64.Build.0 = Release|x64 + {149DF993-556D-494C-B267-7D09EB73F1FF}.Release|x86.ActiveCfg = Release|Win32 + {149DF993-556D-494C-B267-7D09EB73F1FF}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {A28D70B8-9441-4C29-90E4-CE4083FC08A0} + EndGlobalSection +EndGlobal diff --git a/PhotonNetworkTool.vcxproj b/PhotonNetworkTool.vcxproj new file mode 100644 index 0000000..66fcd3c --- /dev/null +++ b/PhotonNetworkTool.vcxproj @@ -0,0 +1,156 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 15.0 + {149DF993-556D-494C-B267-7D09EB73F1FF} + PhotonNetworkTool + 10.0.16299.0 + PhotonTool + + + + Application + true + v141 + MultiByte + + + Application + false + v141 + true + MultiByte + + + Application + true + v141 + MultiByte + + + Application + false + v141 + true + MultiByte + + + + + + + + + + + + + + + + + + + + + $(SolutionDir)MSVC\$(Platform)\$(Configuration)\ + MSVC\Obj\$(Configuration)\ + + + $(SolutionDir)MSVC\$(Platform)\$(Configuration)\ + MSVC\Obj\$(Configuration)\ + + + + Level3 + Disabled + true + true + F:\dev\wxwigets3.1.2\include;%(AdditionalIncludeDirectories) + WXUSINGDLL;%(PreprocessorDefinitions) + + + F:\dev\wxwigets3.1.2\lib\vc_x64_dll;%(AdditionalLibraryDirectories) + + + + + Level3 + Disabled + true + true + F:\dev\wxwigets3.1.2\lib\vc_x64_dll\mswud;F:\dev\wxwigets3.1.2\include;%(AdditionalIncludeDirectories) + WXUSINGDLL;%(PreprocessorDefinitions) + + + F:\dev\wxwigets3.1.2\lib\vc_x64_dll;%(AdditionalLibraryDirectories) + wxbase31ud.lib;wxmsw31ud_core.lib;wxbase31ud_net.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + true + true + F:\dev\wxwigets3.1.2\include;%(AdditionalIncludeDirectories) + WXUSINGDLL;%(PreprocessorDefinitions) + + + true + true + F:\dev\wxwigets3.1.2\lib\vc_x64_dll;%(AdditionalLibraryDirectories) + + + + + Level3 + MaxSpeed + true + true + true + true + F:\dev\wxwigets3.1.2\lib\vc_x64_dll\mswu;F:\dev\wxwigets3.1.2\include;%(AdditionalIncludeDirectories) + WXUSINGDLL;%(PreprocessorDefinitions) + + + true + true + F:\dev\wxwigets3.1.2\lib\vc_x64_dll;%(AdditionalLibraryDirectories) + wxbase31u.lib;wxmsw31u_core.lib;wxbase31u_net.lib;%(AdditionalDependencies) + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/PhotonNetworkTool.vcxproj.user b/PhotonNetworkTool.vcxproj.user new file mode 100644 index 0000000..be25078 --- /dev/null +++ b/PhotonNetworkTool.vcxproj.user @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/PhotonNetworkToolLinux.cbp b/PhotonNetworkToolLinux.cbp new file mode 100644 index 0000000..c7dba49 --- /dev/null +++ b/PhotonNetworkToolLinux.cbp @@ -0,0 +1,66 @@ + + + + + + diff --git a/PhotonNetworkToolLinux.mak b/PhotonNetworkToolLinux.mak new file mode 100644 index 0000000..3a3ad27 --- /dev/null +++ b/PhotonNetworkToolLinux.mak @@ -0,0 +1,90 @@ +#------------------------------------------------------------------------------# +# This makefile was generated by 'cbp2make' tool rev.147 # +#------------------------------------------------------------------------------# + + +WORKDIR = `pwd` + +CC = gcc +CXX = g++ +AR = ar +LD = g++ +WINDRES = windres + +INC = -I/usr/local/lib/wx/include/gtk3-unicode-3.1 -I/usr/local/include/wx-3.1 +CFLAGS = -Wall +RESINC = +LIBDIR = -L/usr/local/lib +LIB = +LDFLAGS = + +INC_DEBUG = $(INC) +CFLAGS_DEBUG = $(CFLAGS) -g +RESINC_DEBUG = $(RESINC) +RCFLAGS_DEBUG = $(RCFLAGS) +LIBDIR_DEBUG = $(LIBDIR) +LIB_DEBUG = $(LIB) +LDFLAGS_DEBUG = $(LDFLAGS) +OBJDIR_DEBUG = Unix/obj/Debug +DEP_DEBUG = +OUT_DEBUG = Unix/x64/Debug/PhotonTool + +INC_RELEASE = $(INC) +CFLAGS_RELEASE = $(CFLAGS) -O2 -DWXUSINGDLL -D_FILE_OFFSET_BITS=64 -D__WXGTK__ +RESINC_RELEASE = $(RESINC) +RCFLAGS_RELEASE = $(RCFLAGS) +LIBDIR_RELEASE = $(LIBDIR) +LIB_RELEASE = $(LIB)-lwx_baseu_net-3.1 -lwx_baseu-3.1 -lwx_gtk3u_core-3.1 -lpthread -lwx_gtk3u_adv-3.1 +LDFLAGS_RELEASE = $(LDFLAGS) -s +OBJDIR_RELEASE = Unix/obj/Release +DEP_RELEASE = +OUT_RELEASE = Unix/x64/Release/PhotonTool + +OBJ_DEBUG = $(OBJDIR_DEBUG)/NewFrame.o + +OBJ_RELEASE = $(OBJDIR_RELEASE)/NewFrame.o + +all: debug release + +clean: clean_debug clean_release + +before_debug: + test -d Unix/x64/Debug || mkdir -p Unix/x64/Debug + test -d $(OBJDIR_DEBUG) || mkdir -p $(OBJDIR_DEBUG) + +after_debug: + +debug: before_debug out_debug after_debug + +out_debug: before_debug $(OBJ_DEBUG) $(DEP_DEBUG) + $(LD) $(LIBDIR_DEBUG) -o $(OUT_DEBUG) $(OBJ_DEBUG) $(LDFLAGS_DEBUG) $(LIB_DEBUG) + +$(OBJDIR_DEBUG)/NewFrame.o: NewFrame.cpp + $(CXX) $(CFLAGS_DEBUG) $(INC_DEBUG) -c NewFrame.cpp -o $(OBJDIR_DEBUG)/NewFrame.o + +clean_debug: + rm -f $(OBJ_DEBUG) $(OUT_DEBUG) + rm -rf Unix/x64/Debug + rm -rf $(OBJDIR_DEBUG) + +before_release: + test -d Unix/x64/Release || mkdir -p Unix/x64/Release + test -d $(OBJDIR_RELEASE) || mkdir -p $(OBJDIR_RELEASE) + +after_release: + +release: before_release out_release after_release + +out_release: before_release $(OBJ_RELEASE) $(DEP_RELEASE) + $(LD) $(LIBDIR_RELEASE) -o $(OUT_RELEASE) $(OBJ_RELEASE) $(LDFLAGS_RELEASE) $(LIB_RELEASE) + +$(OBJDIR_RELEASE)/NewFrame.o: NewFrame.cpp + $(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c NewFrame.cpp -o $(OBJDIR_RELEASE)/NewFrame.o + +clean_release: + rm -f $(OBJ_RELEASE) $(OUT_RELEASE) + rm -rf Unix/x64/Release + rm -rf $(OBJDIR_RELEASE) + +.PHONY: before_debug after_debug clean_debug before_release after_release clean_release + diff --git a/PhotonNetworkToolMac.mak b/PhotonNetworkToolMac.mak new file mode 100644 index 0000000..5dfd9d4 --- /dev/null +++ b/PhotonNetworkToolMac.mak @@ -0,0 +1,90 @@ +#------------------------------------------------------------------------------# +# This makefile was generated by 'cbp2make' tool rev.147 # +#------------------------------------------------------------------------------# + + +WORKDIR = `pwd` + +CC = gcc +CXX = g++ -mmacosx-version-min=10.10 +AR = ar +LD = g++ +WINDRES = + +INC = -I/usr/local/lib/wx/include/osx_cocoa-unicode-3.1 -I/usr/local/include/wx-3.1 +CFLAGS = -Wall +RESINC = +LIBDIR = -L/usr/local/lib +LIB = +LDFLAGS = + +INC_DEBUG = $(INC) +CFLAGS_DEBUG = $(CFLAGS) -g +RESINC_DEBUG = $(RESINC) +RCFLAGS_DEBUG = $(RCFLAGS) +LIBDIR_DEBUG = $(LIBDIR) +LIB_DEBUG = $(LIB) +LDFLAGS_DEBUG = $(LDFLAGS) +OBJDIR_DEBUG = obj/Debug +DEP_DEBUG = +OUT_DEBUG = Mac/x64/Debug/PhotonTool + +INC_RELEASE = $(INC) +CFLAGS_RELEASE = $(CFLAGS) -O2 -arch x86_64 -fno-common -fvisibility=hidden -fvisibility-inlines-hidden -DWXUSINGDLL -D_FILE_OFFSET_BITS=64 -D__WXMAC__ -D__WXOSX__ -D__WXOSX_COCOA__ +RESINC_RELEASE = $(RESINC) +RCFLAGS_RELEASE = $(RCFLAGS) +LIBDIR_RELEASE = $(LIBDIR) +LIB_RELEASE = $(LIB)-framework IOKit -framework Carbon -framework Cocoa -framework AudioToolbox -framework System -framework OpenGL -lwx_osx_cocoau_xrc-3.1 -lwx_osx_cocoau_html-3.1 -lwx_osx_cocoau_qa-3.1 -lwx_osx_cocoau_core-3.1 -lwx_baseu_xml-3.1 -lwx_baseu_net-3.1 -lwx_baseu-3.1 +LDFLAGS_RELEASE = $(LDFLAGS) +OBJDIR_RELEASE = obj/Release +DEP_RELEASE = +OUT_RELEASE = Mac/x64/Release/PhotonTool + +OBJ_DEBUG = $(OBJDIR_DEBUG)/NewFrame.o + +OBJ_RELEASE = $(OBJDIR_RELEASE)/NewFrame.o + +all: debug release + +clean: clean_debug clean_release + +before_debug: + test -d Mac/x64/Debug || mkdir -p Mac/x64/Debug + test -d $(OBJDIR_DEBUG) || mkdir -p $(OBJDIR_DEBUG) + +after_debug: + +debug: before_debug out_debug after_debug + +out_debug: before_debug $(OBJ_DEBUG) $(DEP_DEBUG) + $(LD) $(LIBDIR_DEBUG) -o $(OUT_DEBUG) $(OBJ_DEBUG) $(LDFLAGS_DEBUG) $(LIB_DEBUG) + +$(OBJDIR_DEBUG)/NewFrame.o: NewFrame.cpp + $(CXX) $(CFLAGS_DEBUG) $(INC_DEBUG) -c NewFrame.cpp -o $(OBJDIR_DEBUG)/NewFrame.o + +clean_debug: + rm -f $(OBJ_DEBUG) $(OUT_DEBUG) + rm -rf Mac/x64/Debug + rm -rf $(OBJDIR_DEBUG) + +before_release: + test -d Mac/x64/Release || mkdir -p Mac/x64/Release + test -d $(OBJDIR_RELEASE) || mkdir -p $(OBJDIR_RELEASE) + +after_release: + +release: before_release out_release after_release + +out_release: before_release $(OBJ_RELEASE) $(DEP_RELEASE) + $(LD) $(LIBDIR_RELEASE) -o $(OUT_RELEASE) $(OBJ_RELEASE) $(LDFLAGS_RELEASE) $(LIB_RELEASE) + +$(OBJDIR_RELEASE)/NewFrame.o: NewFrame.cpp + $(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c NewFrame.cpp -o $(OBJDIR_RELEASE)/NewFrame.o + +clean_release: + rm -f $(OBJ_RELEASE) $(OUT_RELEASE) + rm -rf Mac/x64/Release + rm -rf $(OBJDIR_RELEASE) + +.PHONY: before_debug after_debug clean_debug before_release after_release clean_release + diff --git a/PhotonNetworkToolWindows.cbp b/PhotonNetworkToolWindows.cbp new file mode 100644 index 0000000..bfc59ee --- /dev/null +++ b/PhotonNetworkToolWindows.cbp @@ -0,0 +1,67 @@ + + + + + + diff --git a/PhotonNetworkToolWindows.depend b/PhotonNetworkToolWindows.depend new file mode 100644 index 0000000..fa9cfbf --- /dev/null +++ b/PhotonNetworkToolWindows.depend @@ -0,0 +1,1755 @@ +# depslib dependency file v1.0 +1564556819 source:f:\dev\wxwigettest\photontool\photonnetworktool\resources.rc + +1564999093 source:f:\dev\wxwigettest\photontool\photonnetworktool\newframe.cpp + "NewFrame.h" + + + + + + "MyThread.h" + +1564990830 f:\dev\wxwigettest\photontool\photonnetworktool\newframe.h + "wx/wxprec.h" + "wx/wx.h" + "wx/url.h" + "wx/sstream.h" + + + + + + + + + + + + +1564351495 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\wxprec.h + "wx/defs.h" + "wx/chartype.h" + "wx/msw/wrapwin.h" + "wx/msw/private.h" + "wx/msw/wrapcctl.h" + "wx/msw/wrapcdlg.h" + "wx/msw/missing.h" + "wx/wx.h" + +1564351488 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\defs.h + "wx/msw/winundef.h" + "wx/platform.h" + "wx/version.h" + "wx/dlimpexp.h" + + "wx/types.h" + "wx/debug.h" + "wx/windowid.h" + + "wx/qt/defs.h" + "wx/features.h" + +1564351497 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\winundef.h + +1564351491 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\platform.h + + + + "wx/android/config_android.h" + "wx/compiler.h" + "wx/setup.h" + "wx/msw/libraries.h" + "wx/msw/gccpriv.h" + + + "wx/chkconf.h" + +1564351487 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\compiler.h + +1564351486 f:\dev\wxwigets3.1.2\wxinstall\lib\wx\include\msw-unicode-3.1\wx\setup.h + +1564351497 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\libraries.h + +1564351497 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\gccpriv.h + "wx/msw/winver.h" + <_mingw.h> + + +1564351497 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\winver.h + +1564351487 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\chkconf.h + "wx/msw/chkconf.h" + "wx/gtk/chkconf.h" + "wx/gtk/chkconf.h" + "wx/osx/chkconf.h" + "wx/dfb/chkconf.h" + "wx/motif/chkconf.h" + "wx/x11/chkconf.h" + "wx/android/chkconf.h" + "wx/unix/chkconf.h" + "wx/univ/chkconf.h" + +1564351497 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\chkconf.h + +1564351494 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\version.h + "wx/cpp.h" + +1564351488 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\cpp.h + "wx/compiler.h" + +1564351488 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\dlimpexp.h + +1564351494 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\types.h + "wx/platform.h" + + + +1564351488 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\debug.h + + + "wx/chartype.h" + "wx/cpp.h" + "wx/dlimpexp.h" + +1564351487 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\chartype.h + "wx/types.h" + + + + + + + + + + + + +1564351505 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\windowid.h + +1564351489 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\features.h + +1564351498 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\wrapwin.h + "wx/platform.h" + "wx/msw/winver.h" + + + "wx/msw/winundef.h" + +1564351497 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\private.h + "wx/msw/wrapwin.h" + "wx/log.h" + "wx/window.h" + "wx/gdicmn.h" + "wx/colour.h" + +1564351491 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\log.h + "wx/defs.h" + "wx/cpp.h" + "wx/string.h" + "wx/strvararg.h" + "wx/arrstr.h" + + "wx/dynarray.h" + "wx/hashmap.h" + "wx/msgout.h" + "wx/thread.h" + "wx/iosfwrap.h" + "wx/generic/logg.h" + +1564351493 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\string.h + "wx/defs.h" + + + + + + + "wx/wxcrtbase.h" + "wx/strvararg.h" + "wx/buffer.h" + "wx/strconv.h" + "wx/stringimpl.h" + "wx/stringops.h" + "wx/unichar.h" + "wx/tls.h" + + "wx/iosfwrap.h" + "wx/crt.h" + +1564351495 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\wxcrtbase.h + "wx/chartype.h" + + + + + + + +1564351493 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\strvararg.h + "wx/platform.h" + "wx/cpp.h" + "wx/chartype.h" + "wx/strconv.h" + "wx/buffer.h" + "wx/unichar.h" + + + + "wx/stringimpl.h" + +1564351493 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\strconv.h + "wx/defs.h" + "wx/chartype.h" + "wx/buffer.h" + + "wx/fontenc.h" + +1564351487 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\buffer.h + "wx/defs.h" + "wx/wxcrtbase.h" + + +1564351489 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\fontenc.h + +1564351494 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\unichar.h + "wx/defs.h" + "wx/chartype.h" + "wx/stringimpl.h" + + + +1564351493 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\stringimpl.h + "wx/defs.h" + "wx/chartype.h" + "wx/wxcrtbase.h" + + "wx/beforestd.h" + + "wx/afterstd.h" + +1564351487 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\beforestd.h + +1564351486 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\afterstd.h + "wx/msw/winundef.h" + +1564351493 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\stringops.h + "wx/chartype.h" + "wx/stringimpl.h" + "wx/unichar.h" + "wx/buffer.h" + +1564351494 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\tls.h + "wx/defs.h" + "wx/msw/tls.h" + "wx/unix/tls.h" + + +1564351490 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\iosfwrap.h + + + "wx/msw/winundef.h" + +1564351488 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\crt.h + "wx/defs.h" + "wx/chartype.h" + "wx/wxcrt.h" + "wx/wxcrtvararg.h" + +1564351495 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\wxcrt.h + "wx/wxcrtbase.h" + "wx/string.h" + + +1564351495 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\wxcrtvararg.h + "wx/wxcrt.h" + "wx/strvararg.h" + "wx/string.h" + + +1564351487 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\arrstr.h + "wx/defs.h" + "wx/string.h" + "wx/dynarray.h" + + "wx/beforestd.h" + + "wx/afterstd.h" + +1564351488 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\dynarray.h + "wx/defs.h" + "wx/vector.h" + +1564351494 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\vector.h + "wx/defs.h" + + + "wx/scopeguard.h" + "wx/meta/movable.h" + "wx/meta/if.h" + "wx/beforestd.h" + + + "wx/afterstd.h" + +1564351511 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\scopeguard.h + "wx/defs.h" + "wx/except.h" + +1564351489 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\except.h + "wx/defs.h" + +1564351496 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\meta\movable.h + "wx/meta/pod.h" + "wx/string.h" + +1564351496 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\meta\pod.h + "wx/defs.h" + +1564351496 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\meta\if.h + "wx/defs.h" + +1564351490 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\hashmap.h + "wx/string.h" + "wx/wxcrt.h" + + + + + + +1564351491 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msgout.h + "wx/defs.h" + "wx/chartype.h" + "wx/strvararg.h" + +1564351493 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\thread.h + "wx/defs.h" + +1564351501 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\generic\logg.h + +1564351505 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\window.h + "wx/event.h" + "wx/list.h" + "wx/cursor.h" + "wx/font.h" + "wx/colour.h" + "wx/region.h" + "wx/utils.h" + "wx/intl.h" + "wx/validate.h" + "wx/palette.h" + "wx/accel.h" + "wx/access.h" + "wx/msw/window.h" + "wx/motif/window.h" + "wx/gtk/window.h" + "wx/gtk1/window.h" + "wx/x11/window.h" + "wx/dfb/window.h" + "wx/osx/window.h" + "wx/qt/window.h" + "wx/univ/window.h" + +1564351488 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\event.h + "wx/defs.h" + "wx/cpp.h" + "wx/object.h" + "wx/clntdata.h" + "wx/math.h" + "wx/gdicmn.h" + "wx/cursor.h" + "wx/mousestate.h" + "wx/dynarray.h" + "wx/thread.h" + "wx/tracker.h" + "wx/typeinfo.h" + "wx/any.h" + "wx/vector.h" + "wx/meta/convertible.h" + "wx/meta/removeref.h" + +1564351491 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\object.h + "wx/memory.h" + "wx/xti.h" + "wx/rtti.h" + "wx/xti2.h" + "wx/msw/msvcrt.h" + +1564351491 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\memory.h + "wx/defs.h" + "wx/string.h" + "wx/msgout.h" + + +1564351495 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\xti.h + "wx/defs.h" + "wx/xtitypes.h" + "wx/xtihandler.h" + +1564351495 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\xtitypes.h + "wx/defs.h" + "wx/string.h" + "wx/hashmap.h" + "wx/arrstr.h" + "wx/flags.h" + "wx/intl.h" + "wx/log.h" + + +1564351489 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\flags.h + +1564351490 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\intl.h + "wx/defs.h" + "wx/string.h" + "wx/translation.h" + "wx/fontenc.h" + "wx/language.h" + +1564351494 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\translation.h + "wx/defs.h" + "wx/string.h" + "wx/buffer.h" + "wx/language.h" + "wx/hashmap.h" + "wx/strconv.h" + "wx/scopedptr.h" + +1564351490 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\language.h + "wx/defs.h" + +1564351492 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\scopedptr.h + "wx/defs.h" + "wx/checkeddelete.h" + +1564351487 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\checkeddelete.h + "wx/cpp.h" + +1564351495 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\xtihandler.h + "wx/defs.h" + "wx/xti.h" + +1564351492 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\rtti.h + "wx/memory.h" + "wx/flags.h" + +1564351495 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\xti2.h + "wx/xtiprop.h" + "wx/xtictor.h" + +1564351495 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\xtiprop.h + "wx/defs.h" + "wx/xti.h" + "wx/any.h" + +1564351486 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\any.h + "wx/defs.h" + + "wx/string.h" + "wx/meta/if.h" + "wx/typeinfo.h" + "wx/list.h" + "wx/datetime.h" + "wx/variant.h" + +1564351494 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\typeinfo.h + "wx/defs.h" + + + +1564351490 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\list.h + "wx/defs.h" + "wx/object.h" + "wx/string.h" + "wx/vector.h" + "wx/beforestd.h" + + + + "wx/afterstd.h" + + +1564351488 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\datetime.h + "wx/defs.h" + + + "wx/longlong.h" + "wx/anystr.h" + "wx/dynarray.h" + +1564351491 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\longlong.h + "wx/defs.h" + "wx/string.h" + + "wx/iosfwrap.h" + + "wx/strvararg.h" + +1564351486 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\anystr.h + "wx/string.h" + +1564351494 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\variant.h + "wx/defs.h" + "wx/object.h" + "wx/string.h" + "wx/arrstr.h" + "wx/list.h" + "wx/cpp.h" + "wx/longlong.h" + "wx/datetime.h" + "wx/iosfwrap.h" + "wx/any.h" + +1564351495 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\xtictor.h + "wx/defs.h" + "wx/xti.h" + +1564351521 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\msvcrt.h + + + +1564351487 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\clntdata.h + "wx/defs.h" + "wx/string.h" + "wx/hashmap.h" + +1564351491 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\math.h + "wx/defs.h" + + + + + +1564351501 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\gdicmn.h + "wx/defs.h" + "wx/list.h" + "wx/string.h" + "wx/fontenc.h" + "wx/hashmap.h" + "wx/math.h" + +1564351500 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\cursor.h + "wx/gdiobj.h" + "wx/gdicmn.h" + "wx/msw/gdiimage.h" + "wx/msw/cursor.h" + "wx/motif/cursor.h" + "wx/gtk/cursor.h" + "wx/gtk1/cursor.h" + "wx/x11/cursor.h" + "wx/dfb/cursor.h" + "wx/osx/cursor.h" + "wx/qt/cursor.h" + "wx/utils.h" + +1564351508 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\gdiobj.h + "wx/object.h" + +1564351520 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\gdiimage.h + "wx/gdiobj.h" + "wx/gdicmn.h" + "wx/list.h" + +1564351519 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\cursor.h + +1564351494 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\utils.h + "wx/object.h" + "wx/list.h" + "wx/filefn.h" + "wx/hashmap.h" + "wx/versioninfo.h" + "wx/meta/implicitconversion.h" + "wx/gdicmn.h" + "wx/mousestate.h" + "wx/longlong.h" + "wx/platinfo.h" + + + + +1564351489 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\filefn.h + "wx/list.h" + "wx/arrstr.h" + + + + + + + + + + + + +1564351494 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\versioninfo.h + "wx/string.h" + +1564351496 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\meta\implicitconversion.h + "wx/defs.h" + "wx/meta/if.h" + +1564351491 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\mousestate.h + "wx/gdicmn.h" + "wx/kbdstate.h" + +1564351490 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\kbdstate.h + "wx/defs.h" + +1564351492 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\platinfo.h + "wx/string.h" + +1564351494 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\tracker.h + "wx/defs.h" + +1564351496 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\meta\convertible.h + +1564351496 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\meta\removeref.h + +1564351508 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\font.h + "wx/defs.h" + "wx/fontenc.h" + "wx/gdiobj.h" + "wx/gdicmn.h" + "wx/math.h" + "wx/msw/font.h" + "wx/motif/font.h" + "wx/gtk/font.h" + "wx/gtk1/font.h" + "wx/x11/font.h" + "wx/dfb/font.h" + "wx/osx/font.h" + "wx/qt/font.h" + +1564351520 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\font.h + "wx/gdicmn.h" + +1564351507 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\colour.h + "wx/defs.h" + "wx/gdiobj.h" + "wx/variant.h" + "wx/msw/colour.h" + "wx/motif/colour.h" + "wx/gtk/colour.h" + "wx/gtk1/colour.h" + "wx/generic/colour.h" + "wx/x11/colour.h" + "wx/osx/colour.h" + "wx/qt/colour.h" + +1564351518 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\colour.h + "wx/object.h" + +1564351511 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\region.h + "wx/gdiobj.h" + "wx/gdicmn.h" + "wx/msw/region.h" + "wx/gtk/region.h" + "wx/gtk1/region.h" + "wx/x11/region.h" + "wx/dfb/region.h" + "wx/osx/region.h" + "wx/qt/region.h" + +1564351522 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\region.h + +1564351505 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\validate.h + "wx/defs.h" + "wx/event.h" + +1564351503 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\palette.h + "wx/defs.h" + "wx/object.h" + "wx/gdiobj.h" + "wx/msw/palette.h" + "wx/x11/palette.h" + "wx/generic/paletteg.h" + "wx/osx/palette.h" + "wx/qt/palette.h" + +1564351521 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\palette.h + "wx/gdiobj.h" + +1564351506 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\accel.h + "wx/defs.h" + "wx/object.h" + "wx/generic/accel.h" + "wx/msw/accel.h" + "wx/motif/accel.h" + "wx/gtk/accel.h" + "wx/gtk1/accel.h" + "wx/osx/accel.h" + "wx/qt/accel.h" + +1564351501 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\generic\accel.h + +1564351518 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\accel.h + +1564351506 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\access.h + "wx/defs.h" + "wx/variant.h" + "wx/msw/ole/access.h" + +1564351521 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\ole\access.h + +1564351523 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\window.h + "wx/settings.h" + +1564351504 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\settings.h + "wx/colour.h" + "wx/font.h" + +1564351497 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\wrapcctl.h + "wx/msw/wrapwin.h" + + "wx/msw/missing.h" + +1564351521 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\missing.h + +1564351498 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\wrapcdlg.h + "wx/defs.h" + "wx/msw/wrapwin.h" + "wx/msw/private.h" + "wx/msw/missing.h" + + "wx/msw/winundef.h" + +1564351495 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\wx.h + "wx/defs.h" + "wx/object.h" + "wx/dynarray.h" + "wx/list.h" + "wx/hash.h" + "wx/string.h" + "wx/hashmap.h" + "wx/arrstr.h" + "wx/intl.h" + "wx/log.h" + "wx/event.h" + "wx/app.h" + "wx/utils.h" + "wx/stream.h" + "wx/memory.h" + "wx/math.h" + "wx/stopwatch.h" + "wx/timer.h" + "wx/module.h" + "wx/wxcrt.h" + "wx/wxcrtvararg.h" + "wx/window.h" + "wx/containr.h" + "wx/panel.h" + "wx/toplevel.h" + "wx/frame.h" + "wx/gdicmn.h" + "wx/gdiobj.h" + "wx/region.h" + "wx/bitmap.h" + "wx/image.h" + "wx/colour.h" + "wx/font.h" + "wx/dc.h" + "wx/dcclient.h" + "wx/dcmemory.h" + "wx/dcprint.h" + "wx/dcscreen.h" + "wx/button.h" + "wx/menuitem.h" + "wx/menu.h" + "wx/pen.h" + "wx/brush.h" + "wx/palette.h" + "wx/icon.h" + "wx/cursor.h" + "wx/dialog.h" + "wx/settings.h" + "wx/msgdlg.h" + "wx/dataobj.h" + "wx/control.h" + "wx/ctrlsub.h" + "wx/bmpbuttn.h" + "wx/checkbox.h" + "wx/checklst.h" + "wx/choice.h" + "wx/scrolbar.h" + "wx/stattext.h" + "wx/statbmp.h" + "wx/statbox.h" + "wx/listbox.h" + "wx/radiobox.h" + "wx/radiobut.h" + "wx/textctrl.h" + "wx/slider.h" + "wx/gauge.h" + "wx/scrolwin.h" + "wx/dirdlg.h" + "wx/toolbar.h" + "wx/combobox.h" + "wx/layout.h" + "wx/sizer.h" + "wx/statusbr.h" + "wx/choicdlg.h" + "wx/textdlg.h" + "wx/filedlg.h" + "wx/mdi.h" + "wx/validate.h" + "wx/valtext.h" + +1564351490 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\hash.h + "wx/defs.h" + "wx/string.h" + "wx/object.h" + +1564351486 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\app.h + "wx/event.h" + "wx/eventfilter.h" + "wx/build.h" + "wx/cmdargs.h" + "wx/init.h" + "wx/intl.h" + "wx/log.h" + "wx/unix/app.h" + "wx/msw/app.h" + "wx/motif/app.h" + "wx/dfb/app.h" + "wx/gtk/app.h" + "wx/gtk1/app.h" + "wx/x11/app.h" + "wx/osx/app.h" + "wx/qt/app.h" + "wx/univ/theme.h" + +1564351488 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\eventfilter.h + "wx/defs.h" + +1564351487 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\build.h + "wx/version.h" + +1564351487 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\cmdargs.h + "wx/arrstr.h" + +1564351490 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\init.h + "wx/defs.h" + "wx/chartype.h" + "wx/msw/init.h" + +1564351520 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\init.h + "wx/msw/wrapwin.h" + +1564351518 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\app.h + "wx/event.h" + "wx/icon.h" + +1564351503 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\icon.h + "wx/iconloc.h" + "wx/msw/icon.h" + "wx/motif/icon.h" + "wx/generic/icon.h" + "wx/generic/icon.h" + "wx/generic/icon.h" + "wx/generic/icon.h" + "wx/generic/icon.h" + "wx/generic/icon.h" + "wx/generic/icon.h" + "wx/variant.h" + +1564351490 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\iconloc.h + "wx/string.h" + +1564351520 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\icon.h + "wx/msw/gdiimage.h" + +1564351493 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\stream.h + "wx/defs.h" + + "wx/object.h" + "wx/string.h" + "wx/filefn.h" + +1564351493 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\stopwatch.h + "wx/defs.h" + "wx/longlong.h" + "wx/time.h" + +1564351493 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\time.h + "wx/longlong.h" + +1564351494 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\timer.h + "wx/defs.h" + "wx/object.h" + "wx/longlong.h" + "wx/event.h" + "wx/stopwatch.h" + "wx/utils.h" + +1564351491 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\module.h + "wx/object.h" + "wx/list.h" + "wx/arrstr.h" + "wx/dynarray.h" + +1564351488 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\containr.h + "wx/defs.h" + "wx/event.h" + +1564351503 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\panel.h + "wx/window.h" + "wx/containr.h" + "wx/univ/panel.h" + "wx/msw/panel.h" + "wx/generic/panelg.h" + +1564351522 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\panel.h + +1564351502 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\generic\panelg.h + "wx/bitmap.h" + +1564351506 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\bitmap.h + "wx/string.h" + "wx/gdicmn.h" + "wx/colour.h" + "wx/image.h" + "wx/variant.h" + "wx/msw/bitmap.h" + "wx/x11/bitmap.h" + "wx/gtk/bitmap.h" + "wx/gtk1/bitmap.h" + "wx/x11/bitmap.h" + "wx/dfb/bitmap.h" + "wx/osx/bitmap.h" + "wx/qt/bitmap.h" + "wx/generic/mask.h" + +1564351509 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\image.h + "wx/defs.h" + "wx/object.h" + "wx/string.h" + "wx/gdicmn.h" + "wx/hashmap.h" + "wx/arrstr.h" + "wx/stream.h" + "wx/variant.h" + "wx/imagbmp.h" + "wx/imagpng.h" + "wx/imaggif.h" + "wx/imagpcx.h" + "wx/imagjpeg.h" + "wx/imagtga.h" + "wx/imagtiff.h" + "wx/imagpnm.h" + "wx/imagxpm.h" + "wx/imagiff.h" + +1564351509 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\imagbmp.h + "wx/image.h" + +1564351509 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\imagpng.h + "wx/defs.h" + "wx/image.h" + "wx/versioninfo.h" + +1564351509 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\imaggif.h + "wx/image.h" + +1564351509 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\imagpcx.h + "wx/image.h" + +1564351509 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\imagjpeg.h + "wx/defs.h" + "wx/image.h" + "wx/versioninfo.h" + +1564351509 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\imagtga.h + "wx/image.h" + +1564351509 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\imagtiff.h + "wx/defs.h" + "wx/image.h" + "wx/versioninfo.h" + +1564351509 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\imagpnm.h + "wx/image.h" + +1564351509 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\imagxpm.h + "wx/image.h" + +1564351509 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\imagiff.h + "wx/image.h" + +1564351518 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\bitmap.h + "wx/msw/gdiimage.h" + "wx/math.h" + "wx/palette.h" + +1564351512 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\toplevel.h + "wx/nonownedwnd.h" + "wx/iconbndl.h" + "wx/weakref.h" + "wx/msw/toplevel.h" + "wx/gtk/toplevel.h" + "wx/gtk1/toplevel.h" + "wx/x11/toplevel.h" + "wx/dfb/toplevel.h" + "wx/osx/toplevel.h" + "wx/motif/toplevel.h" + "wx/qt/toplevel.h" + "wx/univ/toplevel.h" + +1564351510 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\nonownedwnd.h + "wx/window.h" + "wx/dfb/nonownedwnd.h" + "wx/gtk/nonownedwnd.h" + "wx/osx/nonownedwnd.h" + "wx/msw/nonownedwnd.h" + "wx/qt/nonownedwnd.h" + +1564351517 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\nonownedwnd.h + +1564351509 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\iconbndl.h + "wx/gdiobj.h" + "wx/gdicmn.h" + "wx/icon.h" + "wx/dynarray.h" + +1564351495 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\weakref.h + "wx/tracker.h" + "wx/meta/convertible.h" + "wx/meta/int2type.h" + +1564351496 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\meta\int2type.h + +1564351523 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\toplevel.h + "wx/weakref.h" + +1564351501 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\frame.h + "wx/toplevel.h" + "wx/statusbr.h" + "wx/univ/frame.h" + "wx/msw/frame.h" + "wx/gtk/frame.h" + "wx/gtk1/frame.h" + "wx/motif/frame.h" + "wx/osx/frame.h" + "wx/qt/frame.h" + +1564351505 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\statusbr.h + "wx/defs.h" + "wx/control.h" + "wx/list.h" + "wx/dynarray.h" + "wx/univ/statusbr.h" + "wx/msw/statusbar.h" + "wx/generic/statusbr.h" + "wx/osx/statusbr.h" + "wx/qt/statusbar.h" + "wx/generic/statusbr.h" + +1564351500 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\control.h + "wx/defs.h" + "wx/window.h" + "wx/gdicmn.h" + "wx/univ/control.h" + "wx/msw/control.h" + "wx/motif/control.h" + "wx/gtk/control.h" + "wx/gtk1/control.h" + "wx/osx/control.h" + "wx/qt/control.h" + +1564351519 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\control.h + "wx/dynarray.h" + +1564351522 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\statusbar.h + "wx/vector.h" + "wx/tooltip.h" + +1564351512 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\tooltip.h + "wx/defs.h" + "wx/msw/tooltip.h" + "wx/gtk/tooltip.h" + "wx/gtk1/tooltip.h" + "wx/osx/tooltip.h" + "wx/qt/tooltip.h" + +1564351523 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\tooltip.h + "wx/object.h" + "wx/gdicmn.h" + +1564351520 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\frame.h + +1564351500 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\dc.h + "wx/object.h" + "wx/intl.h" + "wx/colour.h" + "wx/font.h" + "wx/bitmap.h" + "wx/brush.h" + "wx/pen.h" + "wx/palette.h" + "wx/dynarray.h" + "wx/math.h" + "wx/image.h" + "wx/region.h" + "wx/affinematrix2d.h" + +1564351499 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\brush.h + "wx/defs.h" + "wx/object.h" + "wx/gdiobj.h" + "wx/gdicmn.h" + "wx/msw/brush.h" + "wx/x11/brush.h" + "wx/gtk/brush.h" + "wx/gtk1/brush.h" + "wx/dfb/brush.h" + "wx/osx/brush.h" + "wx/qt/brush.h" + +1564351518 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\brush.h + +1564351504 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\pen.h + "wx/gdiobj.h" + "wx/peninfobase.h" + "wx/msw/pen.h" + "wx/x11/pen.h" + "wx/gtk/pen.h" + "wx/gtk1/pen.h" + "wx/dfb/pen.h" + "wx/osx/pen.h" + "wx/qt/pen.h" + +1564351513 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\peninfobase.h + "wx/bitmap.h" + "wx/colour.h" + "wx/gdicmn.h" + +1564351522 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\pen.h + "wx/gdiobj.h" + "wx/gdicmn.h" + +1564351499 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\affinematrix2d.h + "wx/defs.h" + "wx/affinematrix2dbase.h" + +1564351499 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\affinematrix2dbase.h + "wx/defs.h" + "wx/geometry.h" + +1564351508 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\geometry.h + "wx/defs.h" + "wx/utils.h" + "wx/gdicmn.h" + "wx/math.h" + +1564351500 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\dcclient.h + "wx/dc.h" + +1564351500 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\dcmemory.h + "wx/dc.h" + "wx/bitmap.h" + +1564351500 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\dcprint.h + "wx/defs.h" + "wx/dc.h" + +1564351500 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\dcscreen.h + "wx/defs.h" + "wx/dc.h" + +1564351499 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\button.h + "wx/defs.h" + "wx/anybutton.h" + "wx/univ/button.h" + "wx/msw/button.h" + "wx/motif/button.h" + "wx/gtk/button.h" + "wx/gtk1/button.h" + "wx/osx/button.h" + "wx/qt/button.h" + +1564351499 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\anybutton.h + "wx/defs.h" + "wx/bitmap.h" + "wx/control.h" + "wx/univ/anybutton.h" + "wx/msw/anybutton.h" + "wx/gtk/anybutton.h" + "wx/osx/anybutton.h" + "wx/qt/anybutton.h" + +1564351518 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\anybutton.h + +1564351518 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\button.h + +1564351510 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\menuitem.h + "wx/defs.h" + "wx/object.h" + "wx/univ/menuitem.h" + "wx/msw/menuitem.h" + "wx/motif/menuitem.h" + "wx/gtk/menuitem.h" + "wx/gtk1/menuitem.h" + "wx/osx/menuitem.h" + "wx/qt/menuitem.h" + +1564351520 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\menuitem.h + "wx/bitmap.h" + "wx/ownerdrw.h" + +1564351510 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\ownerdrw.h + "wx/defs.h" + "wx/font.h" + "wx/colour.h" + "wx/msw/ownerdrw.h" + +1564351521 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\ownerdrw.h + +1564351503 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\menu.h + "wx/defs.h" + "wx/list.h" + "wx/window.h" + "wx/menuitem.h" + "wx/univ/menu.h" + "wx/msw/menu.h" + "wx/motif/menu.h" + "wx/gtk/menu.h" + "wx/gtk1/menu.h" + "wx/osx/menu.h" + "wx/qt/menu.h" + +1564351520 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\menu.h + "wx/accel.h" + "wx/dynarray.h" + "wx/arrstr.h" + +1564351500 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\dialog.h + "wx/toplevel.h" + "wx/containr.h" + "wx/sharedptr.h" + "wx/univ/dialog.h" + "wx/msw/dialog.h" + "wx/motif/dialog.h" + "wx/gtk/dialog.h" + "wx/gtk1/dialog.h" + "wx/osx/dialog.h" + "wx/qt/dialog.h" + +1564351492 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\sharedptr.h + "wx/defs.h" + "wx/atomic.h" + +1564351487 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\atomic.h + "wx/defs.h" + "wx/msw/wrapwin.h" + "libkern/OSAtomic.h" + + "wx/thread.h" + +1564351519 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\dialog.h + "wx/panel.h" + +1564351503 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msgdlg.h + "wx/defs.h" + "wx/dialog.h" + "wx/stockitem.h" + "wx/generic/msgdlgg.h" + "wx/msw/msgdlg.h" + "wx/motif/msgdlg.h" + "wx/gtk/msgdlg.h" + "wx/osx/msgdlg.h" + "wx/qt/msgdlg.h" + +1564351493 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\stockitem.h + "wx/defs.h" + "wx/chartype.h" + "wx/string.h" + "wx/accel.h" + +1564351501 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\generic\msgdlgg.h + +1564351521 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\msgdlg.h + +1564351507 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\dataobj.h + "wx/defs.h" + "wx/string.h" + "wx/bitmap.h" + "wx/list.h" + "wx/arrstr.h" + "wx/msw/ole/dataform.h" + "wx/motif/dataform.h" + "wx/gtk/dataform.h" + "wx/gtk1/dataform.h" + "wx/x11/dataform.h" + "wx/osx/dataform.h" + "wx/qt/dataform.h" + "wx/msw/ole/dataobj.h" + "wx/motif/dataobj.h" + "wx/x11/dataobj.h" + "wx/gtk/dataobj.h" + "wx/gtk1/dataobj.h" + "wx/osx/dataobj.h" + "wx/qt/dataobj.h" + "wx/msw/ole/dataobj2.h" + "wx/gtk/dataobj2.h" + "wx/gtk1/dataobj2.h" + "wx/x11/dataobj2.h" + "wx/motif/dataobj2.h" + "wx/osx/dataobj2.h" + "wx/qt/dataobj2.h" + +1564351521 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\ole\dataform.h + +1564351521 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\ole\dataobj.h + +1564351521 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\ole\dataobj2.h + +1564351500 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\ctrlsub.h + "wx/defs.h" + "wx/arrstr.h" + "wx/control.h" + + "wx/msw/ctrlsub.h" + "wx/motif/ctrlsub.h" + "wx/qt/ctrlsub.h" + +1564351519 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\ctrlsub.h + +1564351499 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\bmpbuttn.h + "wx/defs.h" + "wx/button.h" + "wx/univ/bmpbuttn.h" + "wx/msw/bmpbuttn.h" + "wx/motif/bmpbuttn.h" + "wx/gtk/bmpbuttn.h" + "wx/gtk1/bmpbuttn.h" + "wx/osx/bmpbuttn.h" + "wx/qt/bmpbuttn.h" + +1564351518 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\bmpbuttn.h + "wx/button.h" + "wx/bitmap.h" + "wx/brush.h" + +1564351499 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\checkbox.h + "wx/defs.h" + "wx/control.h" + "wx/univ/checkbox.h" + "wx/msw/checkbox.h" + "wx/motif/checkbox.h" + "wx/gtk/checkbox.h" + "wx/gtk1/checkbox.h" + "wx/osx/checkbox.h" + "wx/qt/checkbox.h" + +1564351518 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\checkbox.h + "wx/msw/ownerdrawnbutton.h" + +1564351521 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\ownerdrawnbutton.h + +1564351499 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\checklst.h + "wx/defs.h" + "wx/listbox.h" + "wx/univ/checklst.h" + "wx/msw/checklst.h" + "wx/motif/checklst.h" + "wx/gtk/checklst.h" + "wx/gtk1/checklst.h" + "wx/osx/checklst.h" + "wx/qt/checklst.h" + +1564351503 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\listbox.h + "wx/defs.h" + "wx/ctrlsub.h" + "wx/univ/listbox.h" + "wx/msw/listbox.h" + "wx/motif/listbox.h" + "wx/gtk/listbox.h" + "wx/gtk1/listbox.h" + "wx/osx/listbox.h" + "wx/qt/listbox.h" + +1564351520 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\listbox.h + "wx/dynarray.h" + +1564351524 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\checklst.h + +1564351499 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\choice.h + "wx/defs.h" + "wx/ctrlsub.h" + "wx/univ/choice.h" + "wx/msw/choice.h" + "wx/motif/choice.h" + "wx/gtk/choice.h" + "wx/gtk1/choice.h" + "wx/osx/choice.h" + "wx/qt/choice.h" + +1564351518 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\choice.h + +1564351504 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\scrolbar.h + "wx/defs.h" + "wx/control.h" + "wx/univ/scrolbar.h" + "wx/msw/scrolbar.h" + "wx/motif/scrolbar.h" + "wx/gtk/scrolbar.h" + "wx/gtk1/scrolbar.h" + "wx/osx/scrolbar.h" + "wx/qt/scrolbar.h" + +1564351522 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\scrolbar.h + +1564351505 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\stattext.h + "wx/defs.h" + "wx/control.h" + "wx/univ/stattext.h" + "wx/msw/stattext.h" + "wx/motif/stattext.h" + "wx/gtk/stattext.h" + "wx/gtk1/stattext.h" + "wx/osx/stattext.h" + "wx/qt/stattext.h" + +1564351523 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\stattext.h + +1564351505 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\statbmp.h + "wx/defs.h" + "wx/control.h" + "wx/bitmap.h" + "wx/icon.h" + "wx/univ/statbmp.h" + "wx/msw/statbmp.h" + "wx/motif/statbmp.h" + "wx/gtk/statbmp.h" + "wx/gtk1/statbmp.h" + "wx/osx/statbmp.h" + "wx/qt/statbmp.h" + +1564351522 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\statbmp.h + "wx/control.h" + "wx/icon.h" + "wx/bitmap.h" + +1564351505 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\statbox.h + "wx/defs.h" + "wx/control.h" + "wx/containr.h" + "wx/univ/statbox.h" + "wx/msw/statbox.h" + "wx/motif/statbox.h" + "wx/gtk/statbox.h" + "wx/gtk1/statbox.h" + "wx/osx/statbox.h" + "wx/qt/statbox.h" + +1564351522 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\statbox.h + "wx/compositewin.h" + +1564351499 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\compositewin.h + "wx/window.h" + "wx/containr.h" + +1564351504 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\radiobox.h + "wx/defs.h" + "wx/ctrlsub.h" + "wx/dynarray.h" + "wx/univ/radiobox.h" + "wx/msw/radiobox.h" + "wx/motif/radiobox.h" + "wx/gtk/radiobox.h" + "wx/gtk1/radiobox.h" + "wx/osx/radiobox.h" + "wx/qt/radiobox.h" + +1564351522 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\radiobox.h + "wx/statbox.h" + +1564351504 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\radiobut.h + "wx/defs.h" + "wx/control.h" + "wx/univ/radiobut.h" + "wx/msw/radiobut.h" + "wx/motif/radiobut.h" + "wx/gtk/radiobut.h" + "wx/gtk1/radiobut.h" + "wx/osx/radiobut.h" + "wx/qt/radiobut.h" + +1564351522 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\radiobut.h + "wx/msw/ownerdrawnbutton.h" + +1564351505 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\textctrl.h + "wx/defs.h" + "wx/control.h" + "wx/textentry.h" + "wx/dynarray.h" + "wx/gdicmn.h" + "wx/ioswrap.h" + "wx/x11/textctrl.h" + "wx/univ/textctrl.h" + "wx/msw/textctrl.h" + "wx/motif/textctrl.h" + "wx/gtk/textctrl.h" + "wx/gtk1/textctrl.h" + "wx/osx/textctrl.h" + "wx/qt/textctrl.h" + +1564351505 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\textentry.h + "wx/filefn.h" + "wx/gdicmn.h" + "wx/gtk/textentry.h" + "wx/osx/textentry.h" + "wx/msw/textentry.h" + "wx/motif/textentry.h" + "wx/qt/textentry.h" + +1564351523 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\textentry.h + +1564351490 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\ioswrap.h + "wx/beforestd.h" + + + "wx/afterstd.h" + "wx/msw/winundef.h" + +1564351523 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\textctrl.h + +1564351504 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\slider.h + "wx/defs.h" + "wx/control.h" + "wx/univ/slider.h" + "wx/msw/slider.h" + "wx/motif/slider.h" + "wx/gtk/slider.h" + "wx/gtk1/slider.h" + "wx/osx/slider.h" + "wx/qt/slider.h" + +1564351522 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\slider.h + +1564351501 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\gauge.h + "wx/defs.h" + "wx/control.h" + "wx/univ/gauge.h" + "wx/msw/gauge.h" + "wx/motif/gauge.h" + "wx/gtk/gauge.h" + "wx/gtk1/gauge.h" + "wx/osx/gauge.h" + "wx/qt/gauge.h" + +1564351520 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\gauge.h + +1564351504 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\scrolwin.h + "wx/panel.h" + "wx/gtk/scrolwin.h" + "wx/gtk1/scrolwin.h" + "wx/generic/scrolwin.h" + +1564351502 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\generic\scrolwin.h + "wx/recguard.h" + +1564351492 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\recguard.h + "wx/defs.h" + +1564351500 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\dirdlg.h + "wx/defs.h" + "wx/dialog.h" + "wx/generic/dirdlgg.h" + "wx/generic/dirdlgg.h" + "wx/msw/dirdlg.h" + "wx/gtk/dirdlg.h" + "wx/generic/dirdlgg.h" + "wx/osx/dirdlg.h" + "wx/generic/dirdlgg.h" + "wx/qt/dirdlg.h" + +1564351519 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\dirdlg.h + +1564351505 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\toolbar.h + "wx/defs.h" + "wx/tbarbase.h" + "wx/univ/toolbar.h" + "wx/msw/toolbar.h" + "wx/motif/toolbar.h" + "wx/gtk/toolbar.h" + "wx/gtk1/toolbar.h" + "wx/osx/toolbar.h" + "wx/qt/toolbar.h" + +1564351512 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\tbarbase.h + "wx/defs.h" + "wx/bitmap.h" + "wx/list.h" + "wx/control.h" + +1564351523 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\toolbar.h + "wx/dynarray.h" + "wx/imaglist.h" + +1564351509 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\imaglist.h + "wx/defs.h" + "wx/msw/imaglist.h" + "wx/generic/imaglist.h" + +1564351520 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\imaglist.h + "wx/bitmap.h" + +1564351499 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\combobox.h + "wx/defs.h" + "wx/textctrl.h" + "wx/ctrlsub.h" + "wx/textentry.h" + "wx/univ/combobox.h" + "wx/msw/combobox.h" + "wx/motif/combobox.h" + "wx/gtk/combobox.h" + "wx/gtk1/combobox.h" + "wx/osx/combobox.h" + "wx/qt/combobox.h" + +1564351519 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\combobox.h + "wx/choice.h" + "wx/textentry.h" + +1564351503 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\layout.h + "wx/object.h" + +1564351504 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\sizer.h + "wx/defs.h" + "wx/window.h" + +1564351499 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\choicdlg.h + "wx/defs.h" + "wx/generic/choicdgg.h" + +1564351501 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\generic\choicdgg.h + "wx/dynarray.h" + "wx/dialog.h" + +1564351505 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\textdlg.h + "wx/generic/textdlgg.h" + +1564351502 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\generic\textdlgg.h + "wx/defs.h" + "wx/dialog.h" + "wx/valtext.h" + "wx/textctrl.h" + +1564351505 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\valtext.h + "wx/defs.h" + "wx/validate.h" + +1564351500 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\filedlg.h + "wx/defs.h" + "wx/dialog.h" + "wx/arrstr.h" + "wx/generic/filedlgg.h" + "wx/msw/filedlg.h" + "wx/motif/filedlg.h" + "wx/gtk/filedlg.h" + "wx/gtk1/filedlg.h" + "wx/osx/filedlg.h" + "wx/qt/filedlg.h" + +1564351519 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\filedlg.h + +1564351503 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\mdi.h + "wx/defs.h" + "wx/frame.h" + "wx/menu.h" + "wx/generic/mdig.h" + "wx/msw/mdi.h" + "wx/gtk/mdi.h" + "wx/gtk1/mdi.h" + "wx/osx/mdi.h" + "wx/qt/mdi.h" + +1564351520 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\mdi.h + "wx/frame.h" + +1564351498 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\url.h + "wx/defs.h" + "wx/uri.h" + "wx/protocol/protocol.h" + "wx/protocol/http.h" + +1564351494 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\uri.h + "wx/defs.h" + "wx/object.h" + "wx/string.h" + "wx/arrstr.h" + +1564351498 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\protocol\protocol.h + "wx/defs.h" + "wx/object.h" + "wx/string.h" + "wx/stream.h" + "wx/socket.h" + +1564351498 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\socket.h + "wx/defs.h" + "wx/event.h" + "wx/sckaddr.h" + "wx/list.h" + +1564351498 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\sckaddr.h + "wx/defs.h" + "wx/string.h" + +1564351498 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\protocol\http.h + "wx/defs.h" + "wx/hashmap.h" + "wx/protocol/protocol.h" + "wx/buffer.h" + +1564351492 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\sstream.h + "wx/stream.h" + +1564351510 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\listctrl.h + "wx/defs.h" + "wx/listbase.h" + "wx/msw/listctrl.h" + "wx/qt/listctrl.h" + "wx/generic/listctrl.h" + +1564351510 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\listbase.h + "wx/colour.h" + "wx/font.h" + "wx/gdicmn.h" + "wx/event.h" + "wx/control.h" + "wx/itemattr.h" + "wx/systhemectrl.h" + +1564351513 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\itemattr.h + +1564351513 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\systhemectrl.h + "wx/defs.h" + +1564351520 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\msw\listctrl.h + "wx/textctrl.h" + "wx/dynarray.h" + "wx/vector.h" + +1564351489 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\file.h + "wx/defs.h" + "wx/string.h" + "wx/filefn.h" + "wx/convauto.h" + +1564351487 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\convauto.h + "wx/strconv.h" + "wx/fontenc.h" + +1564351494 f:\dev\wxwigets3.1.2\wxinstall\include\wx-3.1\wx\tokenzr.h + "wx/object.h" + "wx/string.h" + "wx/arrstr.h" + +1564858400 f:\dev\wxwigettest\photontool\photonnetworktool\mythread.h + + + "wx/socket.h" + diff --git a/PhotonTool.xpm b/PhotonTool.xpm new file mode 100644 index 0000000..30d2ba2 --- /dev/null +++ b/PhotonTool.xpm @@ -0,0 +1,146 @@ +/* XPM */ +static char *cb4rb_ajgn6[] = { +/* columns rows colors chars-per-pixel */ +"119 138 2 1 ", +" c None", +". c #6A6A6A", +/* pixels */ +" ", +" .... ", +" ....... ", +" .......... ", +" .............. ", +" .................. ", +" ..................... ", +" ........................ ", +" ............................ ", +" ................................ ", +" .................................. ", +" ...................................... ", +" .......................................... ", +" ............................................. ", +" ................................................ ", +" .................................................... ", +" ........................................................ ", +" ........................................................... ", +" .............................................................. ", +" .................................................................. ", +" ...................................................................... ", +" ......................................................................... ", +" ..................................... ..................................... ", +" ..................................... ..................................... ", +" ..................................... ..................................... ", +" .................................... ..................................... ", +" ..................................... ..................................... ", +" ..................................... ..................................... ", +" ..................................... .................................... ", +" ..................................... ..................................... ", +" ..................................... ..................................... ", +" ..................................... ..................................... ", +" ..................................... ..................................... ", +" ..................................... ..................................... ", +" ..................................... .....................................", +" ................................... ...................................", +" ................................. ..................................", +" ................................ ................................", +" .............................. ..............................", +" ............................ ............................", +" ........................... ...........................", +" ......................... .........................", +" ....................... .......................", +" ..................... ......................", +" .................... ....................", +" .................. .... ...................", +" .................. ........ ..................", +" .................. ........... ..................", +" .................. .............. ..................", +" .................. .................. ..................", +" .................. ...................... ..................", +" .................. ......................... ..................", +" .................. ............................ ..................", +" .................. ................................ ..................", +" .................. .................................... ..................", +" .................. ....................................... ..................", +" .................. .......................................... ..................", +" .................. .......................................... ..................", +" .................. .......................................... ..................", +" .................. .......................................... ..................", +" .................. .......................................... ..................", +" .................. .......................................... ..................", +" .................. .......................................... ..................", +" .................. .......................................... ..................", +" .................. .......................................... ..................", +" .................. .......................................... ..................", +" .................. .......................................... ..................", +" .................. .......................................... ..................", +" .................. .......................................... ..................", +" .................. .......................................... ..................", +" .................. .......................................... ..................", +" .................. .......................................... ..................", +" .................. .......................................... ..................", +" .................. .......................................... ..................", +" .................. .......................................... ..................", +" .................. .......................................... ..................", +" .................. ......................................... ..................", +" .................. ........................................ ..................", +" .................. ...................................... ..................", +" .................. .................................... ..................", +" .................. .................................. ..................", +" .................. ................................. ..................", +" .................. ............................... ..................", +" .................. ............................. ..................", +" .................. ............................ ..................", +" .................. .......................... ..................", +" .................. ........................ ..................", +" .................. ........................ ...................", +" .................. ........................ ....................", +" .................. ........................ ......................", +" .................. ........................ ........................", +" .................. ........................ ..........................", +" .................. ........................ ...........................", +" .................. ........................ .............................", +" .................. ........................ ...............................", +" .................. ........................ .................................", +" .................. ........................ ..................................", +" .................. ........................ ....................................", +" .................. ........................ ......................................", +" .................. ........................ ........................................", +" .................. ........................ .........................................", +" .................. ........................ ...........................................", +" .................. ........................ .............................................", +" .................. ........................ ............................................. ", +" ................ ........................ .............................................. ", +" .............. ........................ .............................................. ", +" ............. ........................ .............................................. ", +" ........... ........................ .............................................. ", +" ......... ........................ .............................................. ", +" ....... ..................................................................... ", +" ...... ................................................................... ", +" .... .................................................................. ", +" .. ................................................................ ", +" .............................................................. ", +" ............................................................ ", +" ........................................................... ", +" ......................................................... ", +" ....................................................... ", +" ...................................................... ", +" .................................................... ", +" .................................................. ", +" ................................................ ", +" ............................................... ", +" ............................................. ", +" ........................................... ", +" ......................................... ", +" ...................................... ", +" .................................. ", +" .............................. ", +" ........................... ", +" ........................ ", +" .................... ", +" ................ ", +" .............. ", +" .......... ", +" ...... ", +" ... ", +" " +}; diff --git a/Resources.rc b/Resources.rc new file mode 100644 index 0000000..03f0551 --- /dev/null +++ b/Resources.rc @@ -0,0 +1 @@ +aaaa ICON ppm.ico \ No newline at end of file diff --git a/ppm.icns b/ppm.icns new file mode 100644 index 0000000..ffb0b45 Binary files /dev/null and b/ppm.icns differ diff --git a/ppm.ico b/ppm.ico new file mode 100644 index 0000000..d12b5c0 Binary files /dev/null and b/ppm.ico differ diff --git a/wxsmith/NewFrame.wxs b/wxsmith/NewFrame.wxs new file mode 100644 index 0000000..af2c596 --- /dev/null +++ b/wxsmith/NewFrame.wxs @@ -0,0 +1,119 @@ + + + + Photon Network Controller + 334,491 + 0 + + + 224,320 + 334,488 + + + 8,8 + 320,80 + + + 192.168.1.222 + 208,24 + 112,21 + + + + 16,28 + + + + 235,54 + 85,26 + + + + + 16,60 + + + + 8,96 + 320,112 + + + + 16,118 + 85,26 + + + + + 127,118 + 85,26 + + + + + 235,118 + 85,26 + + + + 1000 + 16,170 + 304,24 + + + + 16,152 + + + + 8,216 + 320,251 + + + + 16,392 + 85,26 + + + + + 125,392 + 85,26 + + + + + 235,392 + 85,26 + + + + + 235,432 + 85,26 + + + + 16,433 + 212,24 + + + 16,232 + 304,152 + + + + + + + + 1 + -10 + wxSB_NORMAL + + + 1 + + + +