452 lines
17 KiB
C++
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
|