73 lines
2.3 KiB
C++
73 lines
2.3 KiB
C++
#ifndef _CASHFLOW_GRAPHWINDOW_HPP_
|
|
#define _CASHFLOW_GRAPHWINDOW_HPP_
|
|
#ifndef _COMMON_WINDOW_HPP_
|
|
#include <common/window.hpp>
|
|
#endif
|
|
#ifndef _COMMON_SMARTPOINTER_HPP_
|
|
#include <common/pointer.hpp>
|
|
#endif
|
|
|
|
template <class T>
|
|
class Block;
|
|
template <class T>
|
|
class Callback;
|
|
template <class T>
|
|
class PureVector;
|
|
class PureCashFlow;
|
|
class Graph3D;
|
|
class Rect3D;
|
|
class ColorRect;
|
|
|
|
class GraphWindow : public Window
|
|
{
|
|
public:
|
|
GraphWindow(GUIWindow &parentWindow,const Rect &winRect);
|
|
virtual ~GraphWindow();
|
|
void showFlows(Block<PureCashFlow> &pureCashFlows,int baseMonths);
|
|
private:
|
|
enum {MaxRotate=360,MinRotate=-360};
|
|
enum {ThetaDelta=10,ViewDelta=5,TurnDelta=20};
|
|
enum {LeftArrow=0x25,RightArrow=0x27,UpArrow=0x26,DownArrow=0x28,inKey=0x49,outKey=0x4F};
|
|
GraphWindow(const GraphWindow &someGraphWindow);
|
|
GraphWindow &operator=(const GraphWindow &someGraphWindow);
|
|
void registerClass(void)const;
|
|
void showFlows(Block<PureCashFlow> &pureCashFlows,int baseMonths,PureVector<int> &vectorInt,BYTE paletteIndex,int zDepth=0);
|
|
void createWindow(GUIWindow &parentWindow,const Rect &winRect);
|
|
void clamp(PureVector<int> &vectorInt);
|
|
WORD handleLeftArrow(void);
|
|
WORD handleRightArrow(void);
|
|
WORD handleUpArrow(void);
|
|
WORD handleDownArrow(void);
|
|
void setPerspective(void);
|
|
BOOL shiftKeyPressed(void)const;
|
|
CallbackData::ReturnType paintHandler(CallbackData &someCallbackData);
|
|
CallbackData::ReturnType createHandler(CallbackData &someCallbackData);
|
|
CallbackData::ReturnType destroyHandler(CallbackData &someCallbackData);
|
|
CallbackData::ReturnType keyDownHandler(CallbackData &someCallbackData);
|
|
CallbackData::ReturnType leftButtonDownHandler(CallbackData &someCallbackData);
|
|
CallbackData::ReturnType dialogCodeHandler(CallbackData &someCallbackData);
|
|
|
|
Callback<GraphWindow> mPaintHandler;
|
|
Callback<GraphWindow> mCreateHandler;
|
|
Callback<GraphWindow> mDestroyHandler;
|
|
Callback<GraphWindow> mKeyDownHandler;
|
|
Callback<GraphWindow> mLeftButtonDownHandler;
|
|
Callback<GraphWindow> mDialogCodeHandler;
|
|
SmartPointer<Graph3D> mGraph3D;
|
|
Block<ColorRect> mGraphRects;
|
|
static char smszClassName[];
|
|
static char smszMenuName[];
|
|
};
|
|
|
|
inline
|
|
GraphWindow &GraphWindow::operator=(const GraphWindow &/*someGraphWindow*/)
|
|
{ // private implementation
|
|
return *this;
|
|
}
|
|
|
|
inline
|
|
BOOL GraphWindow::shiftKeyPressed(void)const
|
|
{
|
|
return ::GetKeyState(VK_SHIFT)&0x8000;
|
|
}
|
|
#endif |