//============================================================================== /// MAIN //============================================================================== int main(int argc, char *argv[]) { bool arduinoOnly = false; #ifdef ARDUINO_ONLY arduinoOnly = true; #endif #ifdef Q_OS_UNIX QApplication::setStyle("cleanlooks"); #endif QApplication app( argc, argv); QTranslator qt_translator; if ( qt_translator.load( ":tr/qt_ru.qm" )) { QApplication::installTranslator(&qt_translator); } Utils::AppInfo::setTitle("MKStudio"); Console::setMessageTypes( Console::AllTypes ); Console::setMessageTypes( Console::ModbusPacket, false ); InitDialog initdialog(0, arduinoOnly); if(!initdialog.portsFound()) { QMessageBox::critical(0, Utils::AppInfo::title(), "В системе не обнаружено последовательных портов ввода-вывода."); return 0; } if( initdialog.exec() != QDialog::Accepted ) return 0; AbstractSerialPortPtr port = initdialog.port(); if( !port->open() ) { QMessageBox::critical(0, Utils::AppInfo::title(), "Ошибка открытия порта.\n\n" "Возможно, что порт используется\n" "другим приложением." ); return 0; } QString portname = port->name(); QString portspeed = QString::number(port->speed()); if(portspeed=="0" ) portspeed.clear(); Utils::AppInfo::setTitle((QString("%1 %2 - MKStudio") + (arduinoOnly ? "-arduino" : "")).arg(portname).arg(portspeed)); MBMasterXMLPtr mbmaster(new MBMasterXML); mbmaster->setTransport( port ); mbmaster->setMaximumPacketLength( initdialog.sb_max_len->value() ); mbmaster->setTransactionDelay( initdialog.sb_tr_delay->value() ); mbmaster->setCycleTime( initdialog.sb_cycle_time->value() ); MainWindow mainwindow(mbmaster, arduinoOnly); mainwindow.show(); return QApplication::exec(); }
INT_PTR KeymapDataDlg::_proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch (uMsg) { case WM_INITDIALOG: m_hDlg = hWnd; initdialog(); break; case WM_COMMAND: switch (LOWORD(wParam)) { case IDOK: keymapData.Enable = true; return EndDialog(hWnd, IDOK); case IDCANCEL: return EndDialog(hWnd, IDCANCEL); case IDC_KEYMAP_BTN: if (HIWORD(wParam) == CBN_SELCHANGE) { keymapData.ButtonID = (vJoyButtonID)SendMessage((HWND)lParam, CB_GETCURSEL, 0, 0); } break; case IDC_INPUT: switch (HIWORD(wParam)) { case EN_CHANGE: { keymapData.GetState(); SetWindowText((HWND)lParam, keymapData.StrVal()); break; } default: return FALSE; } break; case IDC_POSTMESSAGE: { BOOL flag = FALSE; if (BST_CHECKED == SendMessage((HWND)lParam, BM_GETCHECK, 0, 0)) { flag = TRUE; } keymapData.usePostmessage = flag?true:false; EnableWindow(GetDlgItem(m_hDlg, IDC_FW_TEXT), flag); EnableWindow(GetDlgItem(m_hDlg, IDC_FINDWINDOW), flag); break; } case IDC_FINDWINDOW: { FindwindowDlg dlg; dlg.findwindow = keymapData.findWindow; if (dlg.Open(hWnd)) { //keymapData.findWindow.Val( dlg.findwindow.Val() ); keymapData.findWindow = dlg.findwindow; SetWindowText(GetDlgItem(m_hDlg, IDC_FW_TEXT), keymapData.findWindow.Val().c_str() ); } } break; } default: return FALSE; } return TRUE; }