// DlgBox3D.h : header file
//

#ifndef __DLGBOX3D_HPP__
#define __DLGBOX3D_HPP__

#include "3DGe_res.h"

class Box3D;

/////////////////////////////////////////////////////////////////////////////
// CDlgBox3D dialog

class CDlgBox3D : public CDialog
{
// Construction
public:
	CDlgBox3D(Box3D *pBox3D, CWnd* pParent = NULL);

// Dialog Data
	//{{AFX_DATA(CDlgBox3D)
	enum { IDD = IDD_DIALOGBOX3D };
	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(CDlgBox3D)
	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();
	virtual void OnCancel();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()

// Personal data
private:
	Box3D *          m_pBox3D;
    BOOL             m_IsACube;                 // Indicate if the box is a cube or not
	MTH3D_tdstVector   m_InitialMini;
	MTH3D_tdstVector   m_InitialMaxi;
    
    void RefreshSlider ();
    void RefreshSizeFromSlider ();
    void RefreshData ();                       // Called when the data need to be refreshed
    void RefreshData (BOOL _bKeepCube);        // Idem
	void RedrawBackground ();
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.

#endif // __DLGBOX3D_HPP__
