Files
Work/meshwrp/framedlg.cpp
2024-08-07 09:16:27 -04:00

76 lines
2.0 KiB
C++

#include <meshwrp/framedlg.hpp>
#include <meshwrp/resource.hpp>
FrameDialog::FrameDialog(const GUIWindow &parentWindow)
: mhParent(parentWindow)
{
mInitDialogHandler.setCallback(this,&FrameDialog::initDialogHandler);
mCommandHandler.setCallback(this,&FrameDialog::commandHandler);
insertHandler(VectorHandler::CommandHandler,&mCommandHandler);
insertHandler(VectorHandler::InitDialogHandler,&mInitDialogHandler);
}
FrameDialog::FrameDialog(const FrameDialog &someFrameDialog)
: mhParent(someFrameDialog.mhParent)
{ // no implementation
mInitDialogHandler.setCallback(this,&FrameDialog::initDialogHandler);
mCommandHandler.setCallback(this,&FrameDialog::commandHandler);
}
FrameDialog::~FrameDialog()
{
removeHandler(VectorHandler::CommandHandler,&mCommandHandler);
removeHandler(VectorHandler::InitDialogHandler,&mInitDialogHandler);
}
FrameDialog &FrameDialog::operator=(const FrameDialog &/*someEntryDialog*/)
{ // no implementation
return *this;
}
WORD FrameDialog::perform(DWORD &meshFrames)
{
mMeshFrames=meshFrames;
WORD resultCode(::DialogBoxParam(processInstance(),(LPSTR)"Frame",mhParent,(DLGPROC)DWindow::DlgProc,(LONG)((DWindow*)this)));
if(resultCode)meshFrames=mMeshFrames;
return resultCode;
}
CallbackData::ReturnType FrameDialog::initDialogHandler(CallbackData &/*someCallbackData*/)
{
setFrameCount(mMeshFrames);
return (CallbackData::ReturnType)FALSE;
}
CallbackData::ReturnType FrameDialog::commandHandler(CallbackData &someCallbackData)
{
switch(someCallbackData.wmCommandID())
{
case IDOK :
mMeshFrames=getFrameCount();
endDialog(TRUE);
break;
case IDCANCEL :
endDialog(FALSE);
break;
}
return (CallbackData::ReturnType)FALSE;
}
DWORD FrameDialog::getFrameCount(void)
{
String strControlText;
getText(FRAME_FRAMES,strControlText);
return strControlText.toInt();
}
void FrameDialog::setFrameCount(DWORD frameCount)
{
String strControlText;
strControlText.fromInt(frameCount);
setText(FRAME_FRAMES,strControlText);
}