Files
Work/remotepsapp/connectiondialog.cpp
2024-08-07 09:16:27 -04:00

89 lines
3.1 KiB
C++

#include <remotepsapp/connectiondialog.hpp>
#include <remotepsapp/remoteps.hpp>
#include <remotepsapp/optnsreg.hpp>
ConnectionDialog::ConnectionDialog(void)
{
mInitHandler.setCallback(this,&ConnectionDialog::initHandler);
mDestroyHandler.setCallback(this,&ConnectionDialog::destroyHandler);
mCommandHandler.setCallback(this,&ConnectionDialog::commandHandler);
mCloseHandler.setCallback(this,&ConnectionDialog::closeHandler);
mDlgCodeHandler.setCallback(this,&ConnectionDialog::dlgCodeHandler);
DWindow::insertHandler(VectorHandler::InitDialogHandler,&mInitHandler);
DWindow::insertHandler(VectorHandler::DestroyHandler,&mDestroyHandler);
DWindow::insertHandler(VectorHandler::CommandHandler,&mCommandHandler);
DWindow::insertHandler(VectorHandler::CloseHandler,&mCloseHandler);
DWindow::insertHandler(VectorHandler::DialogCodeHandler,&mDlgCodeHandler);
}
ConnectionDialog::~ConnectionDialog()
{
DWindow::removeHandler(VectorHandler::InitDialogHandler,&mInitHandler);
DWindow::removeHandler(VectorHandler::DestroyHandler,&mDestroyHandler);
DWindow::removeHandler(VectorHandler::CommandHandler,&mCommandHandler);
DWindow::removeHandler(VectorHandler::CloseHandler,&mCloseHandler);
DWindow::removeHandler(VectorHandler::DialogCodeHandler,&mDlgCodeHandler);
}
ConnectionDialog &ConnectionDialog::operator=(const ConnectionDialog &/*someConnectionDialog*/)
{ // private implementation
return *this;
}
bool ConnectionDialog::perform(GUIWindow &parentWindow,String &strComputerName)
{
if(!::DialogBoxParam(processInstance(),(LPSTR)"CONNECT",(HWND)parentWindow,DWindow::DlgProc,(LPARAM)(DWindow*)this))return false;
strComputerName=mStrComputerName;
return true;
}
CallbackData::ReturnType ConnectionDialog::initHandler(CallbackData &/*someCallbackData*/)
{
OptionsReg optionsReg;
Block<String> strConnectionNames;
mComputerNameCombo.assumeControl(getItem(CONNECT_COMPUTERNAME),CONNECT_COMPUTERNAME,false);
optionsReg.getConnections(strConnectionNames);
for(int index=0;index<strConnectionNames.size();index++)mComputerNameCombo.sendMessage(CB_INSERTSTRING,-1,(LPARAM)(LPSTR)strConnectionNames[index]);
mComputerNameCombo.sendMessage(CB_SETCURSEL,0,0L);
return (CallbackData::ReturnType)FALSE;
}
CallbackData::ReturnType ConnectionDialog::destroyHandler(CallbackData &/*someCallbackData*/)
{
return (CallbackData::ReturnType)FALSE;
}
CallbackData::ReturnType ConnectionDialog::dlgCodeHandler(CallbackData &/*someCallbackData*/)
{
return (CallbackData::ReturnType)DLGC_WANTARROWS|DLGC_WANTCHARS;
}
CallbackData::ReturnType ConnectionDialog::commandHandler(CallbackData &someCallbackData)
{
switch(someCallbackData.wmCommandID())
{
case IDOK :
handleOk();
break;
case IDCANCEL :
endDialog(FALSE);
break;
}
return (CallbackData::ReturnType)FALSE;
}
CallbackData::ReturnType ConnectionDialog::closeHandler(CallbackData &/*someCallbackData*/)
{
return (CallbackData::ReturnType)FALSE;
}
void ConnectionDialog::handleOk(void)
{
OptionsReg optionsReg;
getText(CONNECT_COMPUTERNAME,mStrComputerName);
if(mStrComputerName.isNull()){endDialog(false);return;}
optionsReg.insertConnection(mStrComputerName);
endDialog(true);
}