reman3/Rayman_X/cpa/tempgrp/OZO/Inc/_zWEdit.hpp

452 lines
17 KiB
C++

//*****************************************************************************
//* _zWEdit.hpp *
//*****************************************************************************
//* *
//* This file contains the definitions of the edit windows *
//* *
//*****************************************************************************
//* Author : Alexis Vaisse *
//*****************************************************************************
#ifndef __ZWEDIT_HPP
#define __ZWEDIT_HPP
#pragma once
// personal include
#include "_zRes.h" // File created by Microsoft Developer Studio
#include "_zObject.hpp"
// class of "_modif.hpp"
class ZDx_Modif;
// class defined latter
class CZDxShapeInfoWindow;
typedef enum eDisplayType_ { eNoZone , eOn , eOff , eSelected } tdeDisplayType;
//-----------------------------------------------------------------------------
// class CDisplayControlWindow
//
// Window that controls the display of the zones
//-----------------------------------------------------------------------------
class CDisplayControlWindow : public CFormView
{
// Construction
public:
CDisplayControlWindow(CWnd* pParent = NULL); // standard constructor
DECLARE_DYNCREATE (CDisplayControlWindow)
// Dialog Data
//{{AFX_DATA(CDisplayControlWindow)
enum { IDD = IDD_ZDD_Display_Control_Window };
int m_Radio_Button_All_Actors;
int m_Radio_Button_Current_Actor;
//}}AFX_DATA
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CDisplayControlWindow)
public:
virtual BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext = NULL);
virtual BOOL PreTranslateMessage(MSG* pMsg);
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
// Generated message map functions
//{{AFX_MSG(CDisplayControlWindow)
afx_msg void On_Radio_Buttons_All_Actors();
afx_msg void On_Radio_Buttons_Current_Actor();
//}}AFX_MSG
afx_msg BOOL SetToolTipText(UINT uiControlId , NMHDR *pNMHDR, LRESULT *pResult);
DECLARE_MESSAGE_MAP()
// Private data
private:
CToolTipCtrl m_ToolTipCtrl;
ZDx_Interface * m_pZDxInterface;
public:
void SetZDxInterface (ZDx_Interface * _pZDxInterface) { m_pZDxInterface = _pZDxInterface; }
tdeDisplayType GetDisplayForAllActors (); // Get the state of the "All actors" radio button
tdeDisplayType GetDisplayForCurrentActor (); // Get the state of the "Current actor" radio button
void SetDisplayForAllActors (tdeDisplayType); // Set the state of the "All actors" radio button
void SetDisplayForCurrentActor (tdeDisplayType); // Set the state of the "Current actor" radio button
void SetNameOfCurrentActor (CString); // Set the name of the current actor (it is showed in the window)
void DisplayAllActors (); // Display all actors with the correct zones
};
//-----------------------------------------------------------------------------
// class CZDxInfoWindow
//
// Window that shows informations about a ZDx object
//-----------------------------------------------------------------------------
class CZDxInfoWindow : public CFormView
{
// Construction
public:
CZDxInfoWindow(CWnd* pParent = NULL); // standard constructor
DECLARE_DYNCREATE (CZDxInfoWindow)
// Dialog Data
//{{AFX_DATA(CZDxInfoWindow)
enum { IDD = IDD_ZDD_Info_Window };
CString m_Edition_Zone_Name;
CString m_Edition_Zone_Type;
//}}AFX_DATA
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CZDxInfoWindow)
public:
virtual BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext = NULL);
virtual BOOL PreTranslateMessage(MSG* pMsg);
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
// Generated message map functions
//{{AFX_MSG(CZDxInfoWindow)
afx_msg void On_Change_Edition_Zone_Name();
afx_msg void OnCancel();
afx_msg void OnOK();
afx_msg void On_Apply_Button();
afx_msg void On_Cancel_Button();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
// Personal data
private:
CPA_SuperObject * m_pZDxSuperObject; // Pointer to the ZDx super object
ZDx_Object * m_pZDxObject; // Pointer to the ZDx object
ZDx_Modif * m_pZDxModif; // Pointer to the ZDx modif
BOOL m_bIsApplying; // Is TRUE when cliquing on the Apply button
CZDxShapeInfoWindow * m_pCZDxShapeInfoWindow; // Pointer to the child window
tdeZDxGeometricType m_eTypeShapeInfoWindow; // Type of the shape info window (sphere, box...)
BOOL m_ZDxHasBeenChanged; // Indicate if the ZDx has been changed or not
void OpenShapeInfoWindow ();
void CloseShapeInfoWindow ();
CWnd * GetFirstControlOfWindow (); // Get the first control of the window
CWnd * GetLastControlOfWindow (); // Get the last control of the window
BOOL OnTabKeyPressed (); // Called when the Tab key is pressed
BOOL OnShiftTabKeyPressed (); // Called when the Tab key is pressed with shift
public:
void SetZDxHasBeenChanged (BOOL b);
ZDx_Object * GetZDxObjectEdited () { return m_pZDxObject; }
void SetZDxObjectToEdit (CPA_SuperObject *); // Give a ZDx object to edit
void Apply (); // To simulate a clic on the Apply button
void Cancel (); // To simulate a clic on the Cancel button
void RefreshData (BOOL RedrawNeeded); // Called when the data need to be refreshed
// The ZDx object can be redrawed or not
void RefreshModif (); // Create a modif for the edited ZDx object
};
//-----------------------------------------------------------------------------
// class CZDxShapeInfoWindow
// Abstract class
//-----------------------------------------------------------------------------
class CZDxShapeInfoWindow : public CDialog
{
public:
virtual void SetZDxShapeToEdit (ZDx_Shape *) = 0; // Set the ZDx shape to edit
virtual void RefreshData () = 0; // Called when the data need to be refreshed
virtual CWnd * GetFirstControlOfWindow () = 0; // Get the first control of the window
virtual CWnd * GetLastControlOfWindow () = 0; // Get the last control of the window
virtual BOOL PreTranslateMessage (MSG * pMsg);
protected:
void SetZDxHasBeenChanged (BOOL); // indicate to the parent window that the ZDx object has been changed
void OnOK ();
void OnCancel ();
};
//-----------------------------------------------------------------------------
// class CZDxSphereInfoWindow
//
// Window that shows informations about a ZDx sphere object
//-----------------------------------------------------------------------------
class CZDxSphereInfoWindow : public CZDxShapeInfoWindow
{
// Construction
public:
//ROMTEAM WorldEditor (Cristi Petrescu 12/97)
CZDxSphereInfoWindow (CWnd * pParent , ZDx_Shape * pZDxObject , CPA_SuperObject * _pFatherSuperObject , ZDx_Interface *);
//ENDROMTEAM WorldEditor (Cristi Petrescu)
// Dialog Data
//{{AFX_DATA(CZDxSphereInfoWindow)
enum { IDD = IDD_ZDD_Sphere_Info_Window };
CString m_Edition_Zone_Center_X;
CString m_Edition_Zone_Center_Y;
CString m_Edition_Zone_Center_Z;
CString m_Edition_Zone_Radius;
CSliderCtrl m_Slider_Radius;
//}}AFX_DATA
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CZDxSphereInfoWindow)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
// Generated message map functions
//{{AFX_MSG(CZDxSphereInfoWindow)
virtual BOOL OnInitDialog();
afx_msg void On_Change_Edition_Zone_Center_X();
afx_msg void On_Change_Edition_Zone_Center_Y();
afx_msg void On_Change_Edition_Zone_Center_Z();
afx_msg void On_Change_Edition_Zone_Radius();
afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
afx_msg void On_Button_Init();
afx_msg void OnDestroy();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
// Personal data
private:
//ROMTEAM WorldEditor (Cristi Petrescu 12/97)
ZDx_Shape * m_pZDxSphere;
Sphere3D * m_pSphere3D; // Pointer to the ZDx sphere
//ENDROMTEAM WorldEditor (Cristi Petrescu)
MTH_tdxReal m_FatherRadius; // Radius of the father of the ZDx object
MTH3D_tdstVector m_FatherCenter; // Center of the father of the ZDx object
void RefreshSlider ();
void RefreshRadiusFromSlider ();
public:
void SetZDxShapeToEdit (ZDx_Shape *); // Set the ZDx shape to edit
void RefreshData (); // Called when the data need to be refreshed
CWnd * GetFirstControlOfWindow (); // Get the first control of the window
CWnd * GetLastControlOfWindow (); // Get the last control of the window
};
//-----------------------------------------------------------------------------
// class CZDxBoxInfoWindow
//
// Window that shows informations about a ZDx box object
//-----------------------------------------------------------------------------
class CZDxBoxInfoWindow : public CZDxShapeInfoWindow
{
// Construction
public:
//ROMTEAM WorldEditor (Cristi Petrescu 12/97)
CZDxBoxInfoWindow(CWnd* pParent , ZDx_Shape * pZDxObject , CPA_SuperObject * _pFatherSuperObject , ZDx_Interface *);
//ENDROMTEAM WorldEditor (Cristi Petrescu)
// Dialog Data
//{{AFX_DATA(CZDxBoxInfoWindow)
enum { IDD = IDD_ZDD_Box_Info_Window };
int m_Radio_Button;
BOOL m_Check_Box_Cube;
CString m_Edition_Zone_Center_X;
CString m_Edition_Zone_Center_Y;
CString m_Edition_Zone_Center_Z;
CString m_Edition_Zone_Height;
CString m_Edition_Zone_Length;
CString m_Edition_Zone_Width;
CString m_Edition_Zone_X_Maxi;
CString m_Edition_Zone_X_Mini;
CString m_Edition_Zone_Y_Maxi;
CString m_Edition_Zone_Y_Mini;
CString m_Edition_Zone_Z_Maxi;
CString m_Edition_Zone_Z_Mini;
CSliderCtrl m_Slider_Size;
//}}AFX_DATA
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CZDxBoxInfoWindow)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
// Generated message map functions
//{{AFX_MSG(CZDxBoxInfoWindow)
virtual BOOL OnInitDialog();
afx_msg void On_Radio_Button_Center();
afx_msg void On_Radio_Button_Extrema();
afx_msg void On_Change_Edition_Zone_X_Mini();
afx_msg void On_Change_Edition_Zone_Y_Mini();
afx_msg void On_Change_Edition_Zone_Z_Mini();
afx_msg void On_Change_Edition_Zone_X_Maxi();
afx_msg void On_Change_Edition_Zone_Y_Maxi();
afx_msg void On_Change_Edition_Zone_Z_Maxi();
afx_msg void On_Change_Edition_Zone_Center_X();
afx_msg void On_Change_Edition_Zone_Center_Y();
afx_msg void On_Change_Edition_Zone_Center_Z();
afx_msg void On_Change_Edition_Zone_Length();
afx_msg void On_Change_Edition_Zone_Width();
afx_msg void On_Change_Edition_Zone_Height();
afx_msg void On_Check_Box_Cube();
afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
afx_msg void On_Button_Init();
afx_msg void OnDestroy();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
// Personal data
private:
//ROMTEAM WorldEditor (Cristi Petrescu 12/97)
ZDx_Shape * m_pZDxBox; // pointer to the ZDx box
Box3D * m_pBox3D;
//ENDROMTEAM WorldEditor (Cristi Petrescu)
BOOL m_ZDxIsACube; // Indicate if the ZDx box is a cube or not
double m_FatherAverageSize;
MTH3D_tdstVector m_FatherMinPoint;
MTH3D_tdstVector m_FatherMaxPoint;
void RefreshSlider ();
void RefreshSizeFromSlider ();
public:
void SetZDxShapeToEdit (ZDx_Shape *); // Set the ZDx shape to edit
void RefreshData (); // Called when the data need to be refreshed
void RefreshData (BOOL _bKeepCube); // Idem
CWnd * GetFirstControlOfWindow (); // Get the first control of the window
CWnd * GetLastControlOfWindow (); // Get the last control of the window
};
//-----------------------------------------------------------------------------
// class CZDxPointInfoWindow
//
// Window that shows informations about a ZDx point object
//-----------------------------------------------------------------------------
class CZDxPointInfoWindow : public CZDxShapeInfoWindow
{
// Construction
public:
CZDxPointInfoWindow (CWnd * pParent , ZDx_Point * pZDxObject);
// Dialog Data
//{{AFX_DATA(CZDxPointInfoWindow)
enum { IDD = IDD_ZDD_Point_Info_Window };
CString m_Edition_Zone_X;
CString m_Edition_Zone_Y;
CString m_Edition_Zone_Z;
//}}AFX_DATA
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CZDxPointInfoWindow)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
// Generated message map functions
//{{AFX_MSG(CZDxPointInfoWindow)
afx_msg void On_Change_Edition_Zone_X();
afx_msg void On_Change_Edition_Zone_Y();
afx_msg void On_Change_Edition_Zone_Z();
virtual BOOL OnInitDialog();
afx_msg void OnDestroy();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
// Personal data
private:
ZDx_Point * m_pZDxPoint; // pointer to the ZDx point
//ROMTEAM WorldEditor (Cristi Petrescu 12/97)
Point3D * m_pPoint3D;
//ENDROMTEAM WorldEditor (Cristi Petrescu)
public:
void SetZDxShapeToEdit (ZDx_Shape *); // Set the ZDx shape to edit
void RefreshData (); // Called when the data need to be refreshed
CWnd * GetFirstControlOfWindow (); // Get the first control of the window
CWnd * GetLastControlOfWindow (); // Get the last control of the window
};
//-----------------------------------------------------------------------------
// class CZDxConeInfoWindow
//
// Window that shows informations about a ZDx cone object
//-----------------------------------------------------------------------------
class CZDxConeInfoWindow : public CZDxShapeInfoWindow
{
// Construction
public:
//ROMTEAM WorldEditor (Cristi Petrescu 12/97)
CZDxConeInfoWindow (CWnd * pParent , ZDx_Shape * pZDxObject);
//ENDROMTEAM WorldEditor (Cristi Petrescu)
// Dialog Data
//{{AFX_DATA(CZDxConeInfoWindow)
enum { IDD = IDD_ZDD_Cone_Info_Window };
CString m_Edition_Zone_Angle;
CString m_Edition_Zone_Radius;
CString m_Edition_Zone_X_Base;
CString m_Edition_Zone_X_Top;
CString m_Edition_Zone_Y_Base;
CString m_Edition_Zone_Y_Top;
CString m_Edition_Zone_Z_Base;
CString m_Edition_Zone_Z_Top;
//}}AFX_DATA
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CZDxConeInfoWindow)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
// Generated message map functions
//{{AFX_MSG(CZDxConeInfoWindow)
virtual BOOL OnInitDialog();
afx_msg void On_Change_Edition_Zone_Angle();
afx_msg void On_Change_Edition_Zone_Radius();
afx_msg void On_Change_Edition_Zone_X_Base();
afx_msg void On_Change_Edition_Zone_X_Top();
afx_msg void On_Change_Edition_Zone_Y_Base();
afx_msg void On_Change_Edition_Zone_Y_Top();
afx_msg void On_Change_Edition_Zone_Z_Base();
afx_msg void On_Change_Edition_Zone_Z_Top();
afx_msg void OnDestroy();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
// Personal data
private:
//ROMTEAM WorldEditor (Cristi Petrescu 12/97)
ZDx_Shape * m_pZDxCone; // pointer to the ZDx cone
Cone3D * m_pCone3D;
//ENDROMTEAM WorldEditor (Cristi Petrescu)
public:
void SetZDxShapeToEdit (ZDx_Shape *); // Set the ZDx shape to edit
void RefreshData (); // Called when the data need to be refreshed
CWnd * GetFirstControlOfWindow (); // Get the first control of the window
CWnd * GetLastControlOfWindow (); // Get the last control of the window
};
#endif // __ZWEDIT_HPP