reman3/Rayman_X/cpa/public/ITF/frmbase.hpp

94 lines
2.7 KiB
C++

#ifndef __FRMBASE_HPP__
#define __FRMBASE_HPP__
/****************************************/
#ifndef CPA_EXPORT
#if defined(CPA_WANTS_IMPORT)
#define CPA_EXPORT __declspec(dllimport)
#elif defined(CPA_WANTS_EXPORT)
#define CPA_EXPORT __declspec(dllexport)
#else
#define CPA_EXPORT
#endif
#endif
/****************************************/
#ifdef ACTIVE_EDITOR
/* To associate another view to a frame*/
#define M_FRMAssociateView(pFrame, CClassView)\
{\
CCreateContext creat;\
CClassView *pView;\
creat.m_pNewViewClass = RUNTIME_CLASS(CClassView);\
creat.m_pCurrentDoc = M_GetMainWnd()->GetActiveView()->GetDocument();\
pView = (CClassView *) ((pFrame)->CreateView(&creat));\
pView->ShowWindow(TRUE);\
(pFrame)->SetActiveView(pView, TRUE);\
}
class CPA_MainWorld;
/* Types of sizing*/
#define FRM_C_MoveLeft 0x01
#define FRM_C_MoveRight 0x02
#define FRM_C_MoveTop 0x04
#define FRM_C_MoveBottom 0x08
/* A link to another window*/
class FRMBase;
typedef struct tdstFRMLink_
{
char cLinkSame;
} tdstFRMLink;
/* Base class of a window*/
class CPA_EXPORT FRMBase : public CFrameWnd
{
public:
CPA_MainWorld *m_p_oMainWorld;
BOOL m_bAlreadySize; /* For recursive sizing*/
unsigned int m_uiHitTest;
char m_cLock; /* Can be size in a given direction*/
CRect m_oLastPos; /* Last position for refresh*/
CRect m_oCurPos;
CRect m_oMainPos;
public:
tdstFRMLink m_stWinTop; /* Links with other windows*/
tdstFRMLink m_stWinBottom;
tdstFRMLink m_stWinLeft;
tdstFRMLink m_stWinRight;
int m_iCol, m_iRow; /* Type of window*/
BOOL m_bKeepPos; /* We want to keep last position*/
int m_iInitWidth; /* First width and height*/
int m_iInitHeight;
DWORD m_dwCaptionStyle; /* Style of caption of window*/
public:
FRMBase(void);
DECLARE_DYNCREATE(FRMBase)
virtual BOOL CreateBase(LPCTSTR, int, int, CPA_MainWorld*, CCreateContext *pContext = NULL);
void mfn_vEnableCaption(BOOL);
CPA_MainWorld* GetMainWorld() { return m_p_oMainWorld; }
virtual void fn_vOnActivate(void) {};
void mfn_vComputeWidthWindow(int);
void mfn_vWidthWindow(int);
void mfn_vComputeHeightWindow(int);
void mfn_vHeightWindow(int);
protected:
afx_msg void OnNcLButtonDown(UINT, CPoint);
afx_msg UINT OnNcHitTest(CPoint);
afx_msg void OnSize(UINT, int, int);
afx_msg void OnInitMenu(CMenu *);
afx_msg void OnGetMinMaxInfo(MINMAXINFO FAR *);
DECLARE_MESSAGE_MAP()
};
#endif /* ACTIVE_EDITOR*/
#endif /* __FRMBASE_HPP__*/