134 lines
3.8 KiB
C++
134 lines
3.8 KiB
C++
#include <guitar/RangeEditDlg.hpp>
|
|
#include <guitar/guitar.hpp>
|
|
#include <guitar/MessageBox.hpp>
|
|
#include <common/puredwrd.hpp>
|
|
|
|
RangeEditDialog::RangeEditDialog(void)
|
|
{
|
|
mInitHandler.setCallback(this,&RangeEditDialog::initHandler);
|
|
mCreateHandler.setCallback(this,&RangeEditDialog::createHandler);
|
|
mCloseHandler.setCallback(this,&RangeEditDialog::closeHandler);
|
|
mDestroyHandler.setCallback(this,&RangeEditDialog::destroyHandler);
|
|
mCommandHandler.setCallback(this,&RangeEditDialog::commandHandler);
|
|
insertHandler(VectorHandler::InitDialogHandler,&mInitHandler);
|
|
insertHandler(VectorHandler::CreateHandler,&mCreateHandler);
|
|
insertHandler(VectorHandler::CloseHandler,&mCloseHandler);
|
|
insertHandler(VectorHandler::CommandHandler,&mCommandHandler);
|
|
insertHandler(VectorHandler::DestroyHandler,&mDestroyHandler);
|
|
}
|
|
|
|
RangeEditDialog::RangeEditDialog(const RangeEditDialog &someRangeEditDialog)
|
|
{ // private implementation
|
|
*this=someRangeEditDialog;
|
|
}
|
|
|
|
RangeEditDialog::~RangeEditDialog()
|
|
{
|
|
removeHandler(VectorHandler::InitDialogHandler,&mInitHandler);
|
|
removeHandler(VectorHandler::CreateHandler,&mCreateHandler);
|
|
removeHandler(VectorHandler::CloseHandler,&mCloseHandler);
|
|
removeHandler(VectorHandler::CommandHandler,&mCommandHandler);
|
|
removeHandler(VectorHandler::DestroyHandler,&mDestroyHandler);
|
|
}
|
|
|
|
RangeEditDialog &RangeEditDialog::operator=(const RangeEditDialog &someRangeEditDialog)
|
|
{ // private implementation
|
|
return *this;
|
|
}
|
|
|
|
bool RangeEditDialog::perform(GUIWindow &parentWindow,const Range &range,int maxRange)
|
|
{
|
|
mRange=range;
|
|
mMaxRange=maxRange;
|
|
return ::DialogBoxParam(processInstance(),(LPSTR)"RANGEEDITDIALOG",(HWND)parentWindow,DWindow::DlgProc,(LPARAM)(DWindow*)this);
|
|
}
|
|
|
|
CallbackData::ReturnType RangeEditDialog::initHandler(CallbackData &someCallbackData)
|
|
{
|
|
if(mRange.getRangeName().isNull()&&!mRange.getBeginRange()&&!mRange.getEndRange())setCaption("Insert Range");
|
|
setData();
|
|
return (CallbackData::ReturnType)false;
|
|
}
|
|
|
|
CallbackData::ReturnType RangeEditDialog::createHandler(CallbackData &someCallbackData)
|
|
{
|
|
return (CallbackData::ReturnType)FALSE;
|
|
}
|
|
|
|
CallbackData::ReturnType RangeEditDialog::closeHandler(CallbackData &someCallbackData)
|
|
{
|
|
return (CallbackData::ReturnType)FALSE;
|
|
}
|
|
|
|
CallbackData::ReturnType RangeEditDialog::destroyHandler(CallbackData &someCallbackData)
|
|
{
|
|
return (CallbackData::ReturnType)FALSE;
|
|
}
|
|
|
|
CallbackData::ReturnType RangeEditDialog::commandHandler(CallbackData &someCallbackData)
|
|
{
|
|
switch(someCallbackData.wmCommandID())
|
|
{
|
|
case IDCANCEL :
|
|
endDialog(false);
|
|
break;
|
|
case IDOK :
|
|
getData();
|
|
if(!isValid())errorMessage();
|
|
else endDialog(true);
|
|
break;
|
|
}
|
|
return (CallbackData::ReturnType)FALSE;
|
|
}
|
|
|
|
void RangeEditDialog::setData(void)const
|
|
{
|
|
setText(RANGEEDIT_NAME,mRange.getRangeName());
|
|
setText(RANGEEDIT_BEGIN,String().fromInt(mRange.getBeginRange()));
|
|
setText(RANGEEDIT_END,String().fromInt(mRange.getEndRange()));
|
|
}
|
|
|
|
void RangeEditDialog::getData(void)
|
|
{
|
|
String strName;
|
|
String strBegin;
|
|
String strEnd;
|
|
|
|
getText(RANGEEDIT_NAME,strName);
|
|
mRange.setRangeName(strName);
|
|
getText(RANGEEDIT_BEGIN,strBegin);
|
|
mRange.setBeginRange(strBegin.toInt());
|
|
getText(RANGEEDIT_END,strEnd);
|
|
mRange.setEndRange(strEnd.toInt());
|
|
}
|
|
|
|
bool RangeEditDialog::isValid(void)
|
|
{
|
|
if(mRange.getRangeName().isNull())
|
|
{
|
|
mLastError="Range name cannot be empty.";
|
|
return false;
|
|
}
|
|
if(mRange.getBeginRange()<0)
|
|
{
|
|
mLastError="Begin range position must be greater than zero.";
|
|
return false;
|
|
}
|
|
if(mRange.getBeginRange()>mRange.getEndRange())
|
|
{
|
|
mLastError="Begin range position must be smaller than end range position.";
|
|
return false;
|
|
}
|
|
if(mRange.getEndRange()>=mMaxRange)
|
|
{
|
|
mLastError="End range position must be less than "+String().fromInt(mMaxRange);
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
void RangeEditDialog::errorMessage(void)
|
|
{
|
|
MessageBox::messageBox(*this,"Invalid range.",mLastError.str());
|
|
}
|