reman3/Rayman_X/cpa/tempgrp/Edt/src/edtdflag.cpp

199 lines
6.7 KiB
C++

/*=========================================================================
* //ANNECY CO SPOFLAG 03/02/98
*
* EDTdFlag.cpp : Flags Dialog - Implementation file
*
*
* Version 1.0
* Creation date
* Revision date
*
* Shaitan
*=======================================================================*/
#include "stdafx.h"
#ifdef ACTIVE_EDITOR
#include "acp_base.h"
#include "EDTdFlag.hpp"
#include "EDTBase.hpp"
#include "EDTSObj.hpp"
#include "EDTdEdit.hpp"
#include "ITF.h"
//#################################################################################
// EDT_DialogFlag dialog
//#################################################################################
/*----------------------------------------
----------------------------------------*/
CPA_Interface * EDT_DialogFlag::GetInterface (void)
{
return m_pEditor->GetInterface();
}
/*----------------------------------------
----------------------------------------*/
EDT_DialogFlag::EDT_DialogFlag(CWnd* pParent /*=NULL*/)
: CDialog(EDT_DialogFlag::IDD, &g_oBaseFrame)
{
//{{AFX_DATA_INIT(EDT_DialogFlag)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
/*----------------------------------------
----------------------------------------*/
void EDT_DialogFlag::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(EDT_DialogFlag)
DDX_Control(pDX, EDT_IDC_CHECKPICKING, m_cCheckPicking);
DDX_Control(pDX, EDT_IDC_CHECKHIDDEN, m_cCheckHidden);
//ANNECY Shaitan SPOFlags 17/02/98
DDX_Control(pDX, EDT_IDC_CHECKTRANSFORMMATRIX, m_cCheckTransformMatrix);
DDX_Control(pDX, EDT_IDC_CHECKZOOMFORSCALE, m_cCheckZoomForScale);
//ANNECY TQ 27/02/98{
DDX_Control(pDX, EDT_IDC_CHECKBOUNDINGBOX, m_cCheckBoundingBox);
DDX_Control(pDX, EDT_IDC_CHECKIMPOSE, m_cCheckImpose);
DDX_Control(pDX, EDT_IDC_CHECKNORAYTRACE, m_cCheckNoRayTrace);
DDX_Control(pDX, EDT_IDC_CHECKCHILDREN, m_cCheckChildren);
DDX_Control(pDX, EDT_IDC_CHECKNOSHADOW, m_cCheckNoShadowOnMe);
//ENDANNECY TQ}
//ENDANNECY Shaitan SPOFlags
//}}AFX_DATA_MAP
}
/*----------------------------------------
----------------------------------------*/
BEGIN_MESSAGE_MAP(EDT_DialogFlag, CDialog)
//{{AFX_MSG_MAP(EDT_DialogFlag)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
//#################################################################################
// EDT_DialogFlag message handlers
//#################################################################################
/*----------------------------------------
----------------------------------------*/
void EDT_DialogFlag::fn_vDoDialog (EDT_HierarchyEditor *pEditor, EDT_SuperObject *pSupObj)
{
// init parameters
m_pEditor = pEditor;
m_pSuperObject = pSupObj;
// this dialog is modal
DoModal();
}
/*----------------------------------------
----------------------------------------*/
BOOL EDT_DialogFlag::OnInitDialog ()
{
CPA_DLLBase *pObjectDLL;
// Create the dialog
CDialog::OnInitDialog();
// get flags
m_ulInitialFlags = m_pSuperObject->GetFlags();
//ANNECY Shaitan SPOFlags 19/02/98
// ask permission for each flag
pObjectDLL = m_pSuperObject->GetObjectDLL();
m_cCheckPicking.EnableWindow(pObjectDLL ? pObjectDLL->fn_bAcceptModifFlag(m_pSuperObject, HIE_C_Flag_ulNotPickable) : TRUE);
m_cCheckHidden.EnableWindow(pObjectDLL ? pObjectDLL->fn_bAcceptModifFlag(m_pSuperObject, HIE_C_Flag_ulHidden) : TRUE);
m_cCheckTransformMatrix.EnableWindow(pObjectDLL ? pObjectDLL->fn_bAcceptModifFlag(m_pSuperObject, HIE_C_Flag_ulNoTransformationMatrix) : TRUE);
m_cCheckZoomForScale.EnableWindow(pObjectDLL ? pObjectDLL->fn_bAcceptModifFlag(m_pSuperObject, HIE_C_Flag_ulZoomInsteadOfScale) : TRUE);
//ANNECY TQ 27/02/98{
m_cCheckBoundingBox.EnableWindow(pObjectDLL ? pObjectDLL->fn_bAcceptModifFlag(m_pSuperObject, HIE_C_Flag_ulTypeOfBoundingVolume) : TRUE);
m_cCheckImpose.EnableWindow(pObjectDLL ? pObjectDLL->fn_bAcceptModifFlag(m_pSuperObject, HIE_C_Flag_ulSuperimposed) : TRUE);
m_cCheckNoRayTrace.EnableWindow(pObjectDLL ? pObjectDLL->fn_bAcceptModifFlag(m_pSuperObject, HIE_C_Flag_ulNotHitByRayTrace) : TRUE);
m_cCheckNoShadowOnMe.EnableWindow(pObjectDLL ? pObjectDLL->fn_bAcceptModifFlag(m_pSuperObject, HIE_C_Flag_ulNoShadowOnMe) : TRUE);
m_cCheckChildren.EnableWindow(pObjectDLL ? pObjectDLL->fn_bAcceptModifFlag(m_pSuperObject, HIE_C_Flag_ulCheckChildren) : TRUE);
//ENDANNECY TQ}
//ENDANNECY Shaitan SPOFlags
// update check boxes
m_cCheckPicking.SetCheck(HIE_fn_SO_bIsNotPickable(m_pSuperObject->GetStruct()));
m_cCheckHidden.SetCheck(HIE_fn_SO_bIsHidden(m_pSuperObject->GetStruct()));
//ANNECY Shaitan SPOFlags 17/02/98
m_cCheckTransformMatrix.SetCheck(HIE_fn_SO_bHasNoTransformationMatrix(m_pSuperObject->GetStruct()));
m_cCheckZoomForScale.SetCheck(HIE_fn_SO_bHasZoomInsteadOfScale(m_pSuperObject->GetStruct()));
//ANNECY TQ 27/02/98{
m_cCheckBoundingBox.SetCheck(HIE_fn_SO_bHasABoxBoundingVolume(m_pSuperObject->GetStruct()));
m_cCheckNoRayTrace.SetCheck(m_ulInitialFlags & HIE_C_Flag_ulNotHitByRayTrace);
m_cCheckNoShadowOnMe.SetCheck(m_ulInitialFlags & HIE_C_Flag_ulNoShadowOnMe);
m_cCheckImpose.SetCheck(HIE_fn_SO_bIsSuperimposed(m_pSuperObject->GetStruct()));
m_cCheckChildren.SetCheck(HIE_fn_SO_bCheckChildren(m_pSuperObject->GetStruct()));
//ENDANNECY TQ}
//ENDANNECY Shaitan SPOFlags
return TRUE;
}
/*----------------------------------------
----------------------------------------*/
void EDT_DialogFlag::OnOK()
{
unsigned long ulFlags = 0;
// update super-object flags
if (m_cCheckPicking.GetCheck())
ulFlags |= HIE_C_Flag_ulNotPickable;
if (m_cCheckHidden.GetCheck())
ulFlags |= HIE_C_Flag_ulHidden;
//ANNECY Shaitan SPOFlags 17/02/98
if (m_cCheckTransformMatrix.GetCheck())
ulFlags |= HIE_C_Flag_ulNoTransformationMatrix;
if (m_cCheckZoomForScale.GetCheck())
ulFlags |= HIE_C_Flag_ulZoomInsteadOfScale;
//ENDANNECY Shaitan SPOFlags
//ANNECY TQ 02/03/98{
if (m_cCheckBoundingBox.GetCheck())
ulFlags |= HIE_C_Flag_ulTypeOfBoundingVolume;
if (m_cCheckImpose.GetCheck())
ulFlags |= HIE_C_Flag_ulSuperimposed;
if (m_cCheckNoRayTrace.GetCheck())
ulFlags |= HIE_C_Flag_ulNotHitByRayTrace;
if (m_cCheckNoShadowOnMe.GetCheck())
ulFlags |= HIE_C_Flag_ulNoShadowOnMe;
//ANNECY TQ 19/05/98{
if(m_cCheckChildren.GetCheck())
ulFlags |= HIE_C_Flag_ulCheckChildren;
//ENDANNECY TQ}
//ENDANNECY TQ}
if (ulFlags != m_ulInitialFlags)
{
m_pSuperObject->SetFlags(ulFlags);
//ANNECY Shaitan SPOFlags 19/02/98
m_pSuperObject->GetObjectDLL()->fn_vOnModifFlag(m_pSuperObject, m_ulInitialFlags, ulFlags);
//ENDANNECY Shaitan SPOFlags
}
m_pEditor->GetDialogEdit()->fn_vUpdateDialog();
// close dialog
CDialog::OnOK();
}
/*----------------------------------------
----------------------------------------*/
void EDT_DialogFlag::OnCancel()
{
// close dialog
CDialog::OnCancel();
}
#endif // ACTIVE_EDITOR