82 lines
2.4 KiB
C++
82 lines
2.4 KiB
C++
#ifndef _CASHFLOW_CALCDLG_HPP_
|
|
#define _CASHFLOW_CALCDLG_HPP_
|
|
#ifndef _COMMON_DWINDOW_HPP_
|
|
#include <common/dwindow.hpp>
|
|
#endif
|
|
#ifndef _COMMON_FONT_HPP_
|
|
#include <common/font.hpp>
|
|
#endif
|
|
#ifndef _CASHFLOW_PREPAY_HPP_
|
|
#include <cashflow/prepay.hpp>
|
|
#endif
|
|
#ifndef _CASHFLOW_CALCTHREAD_HPP_
|
|
#include <cashflow/calcthrd.hpp>
|
|
#endif
|
|
|
|
class FPSheet;
|
|
class GraphWindow;
|
|
|
|
class CalcDlg : private DWindow
|
|
{
|
|
public:
|
|
friend class CalcThread;
|
|
CalcDlg(void);
|
|
virtual ~CalcDlg();
|
|
void createDialog(HWND hParent);
|
|
private:
|
|
enum{xPos=2,yPos=15,cxPos=315,cyPos=45};
|
|
enum {IssBal,SMM,MtgPay,NetIntPay,GrossInt,SchPrn,Prepay,TotPrin,Cashflow,Factor};
|
|
CallbackData::ReturnType destroyHandler(CallbackData &someCallbackData);
|
|
CallbackData::ReturnType initHandler(CallbackData &someCallbackData);
|
|
CallbackData::ReturnType commandHandler(CallbackData &someCallbackData);
|
|
CallbackData::ReturnType closeHandler(CallbackData &someCallbackData);
|
|
void handlePrepayments(void);
|
|
void setColumnTitles(void);
|
|
void setColumnTypes(void);
|
|
void generateFlows(void);
|
|
|
|
Callback<CalcDlg> mCommandHandler;
|
|
Callback<CalcDlg> mDestroyHandler;
|
|
Callback<CalcDlg> mInitHandler;
|
|
Callback<CalcDlg> mCloseHandler;
|
|
FPSheet *mlpCalcSheet;
|
|
CalcThread *mlpCalcThread;
|
|
GraphWindow *mlpGraphWindow;
|
|
PrePay mPrePay;
|
|
Font mFont;
|
|
};
|
|
|
|
#pragma warning(disable:4355)
|
|
inline
|
|
CalcDlg::CalcDlg(void)
|
|
: mlpCalcSheet(0), mlpCalcThread(0), mFont("Helv",6),
|
|
mlpGraphWindow(0)
|
|
{
|
|
mDestroyHandler.setCallback(this,&CalcDlg::destroyHandler);
|
|
mInitHandler.setCallback(this,&CalcDlg::initHandler);
|
|
mCommandHandler.setCallback(this,&CalcDlg::commandHandler);
|
|
mCloseHandler.setCallback(this,&CalcDlg::closeHandler);
|
|
insertHandler(VectorHandler::DestroyHandler,&mDestroyHandler);
|
|
insertHandler(VectorHandler::InitDialogHandler,&mInitHandler);
|
|
insertHandler(VectorHandler::CommandHandler,&mCommandHandler);
|
|
insertHandler(VectorHandler::CloseHandler,&mCloseHandler);
|
|
}
|
|
#pragma warning(default:4355)
|
|
|
|
inline
|
|
CalcDlg::~CalcDlg()
|
|
{
|
|
removeHandler(VectorHandler::DestroyHandler,&mDestroyHandler);
|
|
removeHandler(VectorHandler::InitDialogHandler,&mInitHandler);
|
|
removeHandler(VectorHandler::CommandHandler,&mCommandHandler);
|
|
removeHandler(VectorHandler::CloseHandler,&mCloseHandler);
|
|
}
|
|
|
|
inline
|
|
void CalcDlg::createDialog(HWND hParent)
|
|
{
|
|
HINSTANCE hInstance((HINSTANCE)::GetWindowLong(hParent,GWL_HINSTANCE));
|
|
::DialogBoxParam(hInstance,(LPSTR)"Cashflow",hParent,DWindow::DlgProc,(LPARAM)(DWindow*)this);
|
|
}
|
|
#endif
|