216 lines
7.4 KiB
C++
216 lines
7.4 KiB
C++
#include <common/assert.hpp>
|
|
#include <common/opendlg.hpp>
|
|
#include <common/console.hpp>
|
|
#include <aladin/aladinrc.hpp>
|
|
#include <aladin/mainwnd.hpp>
|
|
#include <aladin/serdlg.hpp>
|
|
#include <aladin/aladin.hpp>
|
|
#include <aladin/divedlg.hpp>
|
|
|
|
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<profile.size();index++)
|
|
{
|
|
ProfileData &profileData=profile[index];
|
|
console.writeLine(String("Time:")+String().fromInt(profileData.getStageTime()));
|
|
console.writeLine(String("Depth:")+String().fromInt(profileData.getDepth()));
|
|
console.writeLine(String("Warning:")+profileData.getWarningString());
|
|
::OutputDebugString(String("Time:")+String().fromInt(profileData.getStageTime())+" "+String("Depth:")+String().fromInt(profileData.getDepth())+String(" ")+String("Warning:")+profileData.getWarningString()+String("\n"));
|
|
} */
|
|
|
|
|
|
// console.writeLine("Press enter to continue.");
|
|
// console.read();
|
|
|
|
// handleFileOpen(strPathFileName);
|
|
}
|
|
|
|
void MainWindow::handleSerialSettings()
|
|
{
|
|
SerialDlg serialDlg;
|
|
serialDlg.perform(*this);
|
|
}
|
|
|