#include #include #include #include #include #include #include #include char MainWindow::szClassName[]="Aladin"; char MainWindow::szMenuName[]="mainMenu"; MainWindow::MainWindow() { mPaintHandler.setCallback(this,&MainWindow::paintHandler); mDestroyHandler.setCallback(this,&MainWindow::destroyHandler); mCommandHandler.setCallback(this,&MainWindow::commandHandler); mKeyDownHandler.setCallback(this,&MainWindow::keyDownHandler); mSizeHandler.setCallback(this,&MainWindow::sizeHandler); mCreateHandler.setCallback(this,&MainWindow::createHandler); mTimerHandler.setCallback(this,&MainWindow::timerHandler); mSetFocusHandler.setCallback(this,&MainWindow::setFocusHandler); mCloseHandler.setCallback(this,&MainWindow::closeHandler); insertHandlers(); registerClass(); ::CreateWindow(szClassName,szClassName, WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX|WS_MAXIMIZEBOX|WS_DLGFRAME|WS_CLIPCHILDREN|WS_VISIBLE, CW_USEDEFAULT,CW_USEDEFAULT, InitialWidth,InitialHeight, NULL,NULL,processInstance(),(LPSTR)this); show(SW_SHOW); update(); } MainWindow::~MainWindow() { destroy(); } void MainWindow::insertHandlers(void) { insertHandler(VectorHandler::DestroyHandler,&mDestroyHandler); insertHandler(VectorHandler::PaintHandler,&mPaintHandler); insertHandler(VectorHandler::CommandHandler,&mCommandHandler); insertHandler(VectorHandler::SizeHandler,&mSizeHandler); insertHandler(VectorHandler::KeyDownHandler,&mKeyDownHandler); insertHandler(VectorHandler::CreateHandler,&mCreateHandler); insertHandler(VectorHandler::TimerHandler,&mTimerHandler); insertHandler(VectorHandler::SetFocusHandler,&mSetFocusHandler); } void MainWindow::removeHandlers(void) { removeHandler(VectorHandler::DestroyHandler,&mDestroyHandler); removeHandler(VectorHandler::PaintHandler,&mPaintHandler); removeHandler(VectorHandler::CommandHandler,&mCommandHandler); removeHandler(VectorHandler::SizeHandler,&mSizeHandler); removeHandler(VectorHandler::KeyDownHandler,&mKeyDownHandler); removeHandler(VectorHandler::CreateHandler,&mCreateHandler); removeHandler(VectorHandler::TimerHandler,&mTimerHandler); removeHandler(VectorHandler::SetFocusHandler,&mSetFocusHandler); } void MainWindow::registerClass(void)const { HINSTANCE hInstance(processInstance()); WNDCLASS wndClass; if(::GetClassInfo(hInstance,className(),(WNDCLASS FAR*)&wndClass))return; wndClass.style =CS_HREDRAW|CS_VREDRAW|CS_DBLCLKS|CS_OWNDC; wndClass.lpfnWndProc =(WNDPROC)Window::WndProc; wndClass.cbClsExtra =0; wndClass.cbWndExtra =sizeof(MainWindow*); wndClass.hInstance =hInstance; wndClass.hIcon =::LoadIcon(processInstance(),"CHECK"); // wndClass.hIcon =::LoadIcon(processInstance(),"CHECK"); wndClass.hCursor =::LoadCursor(NULL,IDC_ARROW); wndClass.hbrBackground =(HBRUSH)::GetStockObject(WHITE_BRUSH); wndClass.lpszMenuName =szMenuName; wndClass.lpszClassName =szClassName; ::RegisterClass(&wndClass); assert(0!=::GetClassInfo(hInstance,className(),(WNDCLASS FAR*)&wndClass)); } CallbackData::ReturnType MainWindow::createHandler(CallbackData &/*someCallbackData*/) { mStatusBar=new StatusBarEx(*this,101); mStatusBar.disposition(PointerDisposition::Delete); return (CallbackData::ReturnType)FALSE; } CallbackData::ReturnType MainWindow::closeHandler(CallbackData &someCallbackData) { return (CallbackData::ReturnType)FALSE; } CallbackData::ReturnType MainWindow::sizeHandler(CallbackData &/*someCallbackData*/) { return (CallbackData::ReturnType)FALSE; } CallbackData::ReturnType MainWindow::paintHandler(CallbackData &someCallbackData) { return (CallbackData::ReturnType)FALSE; } CallbackData::ReturnType MainWindow::destroyHandler(CallbackData &/*someCallbackData*/) { removeHandlers(); ::PostQuitMessage(0); return (CallbackData::ReturnType)FALSE; } CallbackData::ReturnType MainWindow::commandHandler(CallbackData &someCallbackData) { switch(someCallbackData.wParam()) { case APPMENU_FILE_EXIT : postMessage(*this,WM_CLOSE,0,0L); break; case APPMENU_SETTINGS_SERIAL : handleSerialSettings(); break; case APPMENU_FILE_IMPORT : handleImport(); break; // case SOURCE_SELECT : // userSelectSource(); // selectSource(); // if(!twainAvailable())return message("twain not available",false); // if(!openSourceManager())return message("open source failed",false); // setShowUI(false); // if(!openSource(1))return message("open default source failed",false); // if(!openDefaultSource())return message("open default source failed",false); // if(!modalAcquire())return message("modal acquire failed",false); // break; default : break; } return (CallbackData::ReturnType)FALSE; } CallbackData::ReturnType MainWindow::keyDownHandler(CallbackData &/*someCallbackData*/) { return (CallbackData::ReturnType)FALSE; } CallbackData::ReturnType MainWindow::timerHandler(CallbackData &/*someCallbackData*/) { return (CallbackData::ReturnType)FALSE; } CallbackData::ReturnType MainWindow::setFocusHandler(CallbackData &/*someCallbackData*/) { return (CallbackData::ReturnType)FALSE; } // non callbacks void MainWindow::handleImport() { OpenDialog openDialog; String strPathFileName; DiveDlg diveDlg; Aladin aladin; if(!openDialog.getOpenFileName(*this,"*.dat","Open File","*.dat",strPathFileName))return; aladin.openFile(strPathFileName); // diveDlg.perform(*this,aladin); /* Aladin aladin; aladin.openFile(strPathFileName); Console console; // display from status section console.writeLine(String("Remaining battery:")+String().fromDouble(aladin.getStatus().getRemainingBattery())); console.writeLine(String("Total dives:")+String().fromInt(aladin.getStatus().getTotalDives())); console.writeLine(String("Offset newest log:")+String().fromInt(aladin.getStatus().getOffsetNewestLog())); console.writeLine(String("Dive profiles:")+String().fromInt(aladin.getStatus().getDiveProfiles())); console.writeLine(String("End of profile ring buffer:")+String().fromInt(aladin.getStatus().getEndOfProfileRingBuffer())); console.writeLine(String("Acquisition time:")+String().fromInt(aladin.getStatus().getAcquisitionTime())); // display from info section console.writeLine(String("Computer type:")+aladin.getInformation().getComputerTypeString()); console.writeLine(String("Nitrox:")+String().fromBool(aladin.getInformation().isNitrox())); console.writeLine(String("Standard:")+aladin.getInformation().getStandardString()); console.writeLine(String("Beep:")+String().fromBool(aladin.getInformation().getBeep())); // display from profile section console.writeLine("\n"); /* for(int index=0;index