Files
Work/cashflow/PPYDLG.HPP
2024-08-07 09:12:07 -04:00

61 lines
1.9 KiB
C++

#ifndef _CASHFLOW_PPYDLG_HPP_
#define _CASHFLOW_PPYDLG_HPP_
#include <common/dwindow.hpp>
#include <cashflow/prepay.hpp>
class PPYDlg : private DWindow
{
public:
PPYDlg(void);
virtual ~PPYDlg();
WORD createDialog(HWND hParent,PrePay &prePay);
private:
CallbackData::ReturnType destroyHandler(CallbackData &someCallbackData);
CallbackData::ReturnType initHandler(CallbackData &someCallbackData);
CallbackData::ReturnType commandHandler(CallbackData &someCallbackData);
CallbackData::ReturnType closeHandler(CallbackData &someCallbackData);
void getPPYInfo(void);
Callback<PPYDlg> mCommandHandler;
Callback<PPYDlg> mDestroyHandler;
Callback<PPYDlg> mInitHandler;
Callback<PPYDlg> mCloseHandler;
PrePay mPrePay;
};
#pragma warning(disable:4355)
inline
PPYDlg::PPYDlg(void)
{
mDestroyHandler.setCallback(this,&PPYDlg::destroyHandler);
mInitHandler.setCallback(this,&PPYDlg::initHandler);
mCommandHandler.setCallback(this,&PPYDlg::commandHandler);
mCloseHandler.setCallback(this,&PPYDlg::closeHandler);
insertHandler(VectorHandler::DestroyHandler,&mDestroyHandler);
insertHandler(VectorHandler::InitDialogHandler,&mInitHandler);
insertHandler(VectorHandler::CommandHandler,&mCommandHandler);
insertHandler(VectorHandler::CloseHandler,&mCloseHandler);
}
#pragma warning(default:4355)
inline
PPYDlg::~PPYDlg()
{
removeHandler(VectorHandler::DestroyHandler,&mDestroyHandler);
removeHandler(VectorHandler::InitDialogHandler,&mInitHandler);
removeHandler(VectorHandler::CommandHandler,&mCommandHandler);
removeHandler(VectorHandler::CloseHandler,&mCloseHandler);
}
inline
WORD PPYDlg::createDialog(HWND hParent,PrePay &prePay)
{
WORD returnCode;
mPrePay=prePay;
HINSTANCE hInstance((HINSTANCE)::GetWindowLong(hParent,GWL_HINSTANCE));
returnCode=::DialogBoxParam(hInstance,(LPSTR)"Prepayments",hParent,DWindow::DlgProc,(LPARAM)(DWindow*)this);
if(returnCode)prePay=mPrePay;
return returnCode;
}
#endif