Add rayman2 source files
This commit is contained in:
372
Rayman_X/cpa/tempgrp/Owp/src/linkdia.cpp
Normal file
372
Rayman_X/cpa/tempgrp/Owp/src/linkdia.cpp
Normal file
@@ -0,0 +1,372 @@
|
||||
/*
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Description : LinkDia.cpp
|
||||
//
|
||||
// Dialog edition the ways
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Creation date: 21 jan 1997 Author: J Th<54>noz
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Modification date: Author:
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
*/
|
||||
|
||||
//ANNECY Shaitan Nettoyage (12/05/98) {
|
||||
/*
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "acp_base.h"
|
||||
#include "resource.h"
|
||||
#include "incitf.h"
|
||||
#include "incgam.h"
|
||||
#include "incai.h"
|
||||
#include "incGli.h"
|
||||
#include "WpObj.hpp"
|
||||
#include "WayObj.hpp"
|
||||
#include "LinkObj.hpp"
|
||||
#include "LinkDia.hpp"
|
||||
#include "LkBezDia.h"
|
||||
#include "x:/cpa/main/inc/_EditId.h"
|
||||
#include "tut.h"
|
||||
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// DiaLink
|
||||
|
||||
IMPLEMENT_DYNCREATE(DiaLink, CFormView)
|
||||
|
||||
DiaLink::DiaLink()
|
||||
: CFormView(DiaLink::IDD)
|
||||
{
|
||||
//{{AFX_DATA_INIT(DiaLink)
|
||||
m_szLinkName = _T("");
|
||||
m_oSpeedMode = _T("");
|
||||
m_fSpeed1 = 0.0f;
|
||||
m_fSpeed2 = 0.0f;
|
||||
m_fSpeed3 = 0.0f;
|
||||
//}}AFX_DATA_INIT
|
||||
m_poLink = NULL;
|
||||
m_pSpecificDialog = NULL;
|
||||
}
|
||||
|
||||
DiaLink::~DiaLink()
|
||||
{
|
||||
}
|
||||
|
||||
void DiaLink::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CFormView::DoDataExchange(pDX);
|
||||
//{{AFX_DATA_MAP(DiaLink)
|
||||
DDX_CBString(pDX, IDC_LINK_COMBO, m_szLinkName);
|
||||
DDV_MaxChars(pDX, m_szLinkName, 15);
|
||||
DDX_CBString(pDX, IDC_LINK_SPEED_COMBO, m_oSpeedMode);
|
||||
DDV_MaxChars(pDX, m_oSpeedMode, 15);
|
||||
DDX_Text(pDX, IDC_LINK_SPEED1_EDIT, m_fSpeed1);
|
||||
DDV_MinMaxFloat(pDX, m_fSpeed1, 0.f, 9999.99f);
|
||||
DDX_Text(pDX, IDC_LINK_SPEED2_EDIT, m_fSpeed2);
|
||||
DDV_MinMaxFloat(pDX, m_fSpeed2, 0.f, 9999.99f);
|
||||
DDX_Text(pDX, IDC_LINK_SPEED3_EDIT, m_fSpeed3);
|
||||
DDV_MinMaxFloat(pDX, m_fSpeed3, 0.f, 9999.99f);
|
||||
//}}AFX_DATA_MAP
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(DiaLink, CFormView)
|
||||
//{{AFX_MSG_MAP(DiaLink)
|
||||
ON_CBN_SELCHANGE(IDC_LINK_COMBO, OnSelchangeLinkCombo)
|
||||
ON_CBN_SELCHANGE(IDC_LINK_SPEED_COMBO, OnSelchangeLinkSpeedCombo)
|
||||
ON_EN_KILLFOCUS(IDC_LINK_SPEED1_EDIT, OnKillfocusLinkSpeed1Edit)
|
||||
ON_EN_KILLFOCUS(IDC_LINK_SPEED2_EDIT, OnKillfocusLinkSpeed2Edit)
|
||||
ON_EN_KILLFOCUS(IDC_LINK_SPEED3_EDIT, OnKillfocusLinkSpeed3Edit)
|
||||
ON_WM_DESTROY()
|
||||
//}}AFX_MSG_MAP
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
void DiaLink::fn_vInitDialog (void)
|
||||
{
|
||||
POSITION xPos;
|
||||
tdst_LinkObject* pstDefLink;
|
||||
|
||||
CComboBox* pComboLink = (CComboBox*) GetDlgItem (IDC_LINK_COMBO);
|
||||
CComboBox* pComboSpeed = (CComboBox*) GetDlgItem (IDC_LINK_SPEED_COMBO);
|
||||
|
||||
for ( pstDefLink=Link::fn_pGetListObject()->GetHeadElement(xPos); pstDefLink; pstDefLink=Link::fn_pGetListObject()->GetNextElement(xPos) )
|
||||
pComboLink->AddString (pstDefLink->szName);
|
||||
pComboLink->EnableWindow (FALSE);
|
||||
pComboSpeed->AddString ("none");
|
||||
pComboSpeed->AddString ("constant");
|
||||
pComboSpeed->AddString ("linear");
|
||||
pComboSpeed->AddString ("sinus");
|
||||
GetDlgItem (IDC_LINK_SPEED_GROUPBOX)->EnableWindow (FALSE);
|
||||
GetDlgItem (IDC_LINK_SPEED_COMBO)->EnableWindow (FALSE);
|
||||
GetDlgItem (IDC_LINK_SPEED1_STATIC)->EnableWindow (FALSE);
|
||||
GetDlgItem (IDC_LINK_SPEED2_STATIC)->EnableWindow (FALSE);
|
||||
GetDlgItem (IDC_LINK_SPEED3_STATIC)->EnableWindow (FALSE);
|
||||
GetDlgItem (IDC_LINK_SPEED1_EDIT)->EnableWindow (FALSE);
|
||||
GetDlgItem (IDC_LINK_SPEED2_EDIT)->EnableWindow (FALSE);
|
||||
GetDlgItem (IDC_LINK_SPEED3_EDIT)->EnableWindow (FALSE);
|
||||
}
|
||||
|
||||
void DiaLink::fn_vEdit (Link* poLink)
|
||||
{
|
||||
if (m_poLink==poLink) return;
|
||||
|
||||
// Aspect of the dialog
|
||||
if (!m_poLink && poLink)
|
||||
{
|
||||
GetDlgItem (IDC_LINK_COMBO)->EnableWindow (TRUE);
|
||||
GetDlgItem (IDC_LINK_SPEED_GROUPBOX)->EnableWindow (TRUE);
|
||||
GetDlgItem (IDC_LINK_SPEED_COMBO)->EnableWindow (TRUE);
|
||||
}
|
||||
else if (m_poLink && !poLink)
|
||||
{
|
||||
GetDlgItem (IDC_LINK_COMBO)->EnableWindow (FALSE);
|
||||
GetDlgItem (IDC_LINK_SPEED_GROUPBOX)->EnableWindow (FALSE);
|
||||
GetDlgItem (IDC_LINK_SPEED_COMBO)->EnableWindow (FALSE);
|
||||
}
|
||||
|
||||
if (m_poLink) m_poLink->fn_vStopEdit ();
|
||||
m_poLink=poLink;
|
||||
if (m_poLink) m_poLink->fn_vStartEdit ();
|
||||
|
||||
if (m_poLink)
|
||||
{
|
||||
ACP_tdstDynaParam stDynParam;
|
||||
WP_fnv_Link_GetDynamicParameter ( (WP_tdhLink)(m_poLink->GetEngineStruct()), &stDynParam );
|
||||
|
||||
unsigned char ucDynamicType;
|
||||
float dSpeed1, dSpeed2, dSpeed3;
|
||||
GetParent()->SetWindowText ( "" );
|
||||
m_szLinkName = m_poLink->fn_pGetName ();
|
||||
|
||||
fn_vDynamicObject_GetParams( &stDynParam, &ucDynamicType, &dSpeed1, &dSpeed2, &dSpeed3);
|
||||
|
||||
m_fSpeed1 = dSpeed1;
|
||||
m_fSpeed2 = dSpeed2;
|
||||
m_fSpeed3 = dSpeed3;
|
||||
|
||||
switch (ucDynamicType)
|
||||
{
|
||||
case C_ucNone : m_oSpeedMode = CString ("none"); break;
|
||||
case C_ucConst : m_oSpeedMode = CString ("constant"); break;
|
||||
case C_ucLinear : m_oSpeedMode = CString ("linear"); break;
|
||||
case C_ucSinus : m_oSpeedMode = CString ("sinus"); break;
|
||||
default: ucDynamicType=C_ucNone;
|
||||
m_oSpeedMode = CString ("none");
|
||||
break;
|
||||
}
|
||||
UpdateData (FALSE);
|
||||
fn_vDrawDynParamDialog ();
|
||||
fn_vChangeDialog ();
|
||||
}
|
||||
else
|
||||
{
|
||||
GetParent()->SetWindowText ( "no link to edit" );
|
||||
m_szLinkName = "";
|
||||
m_oSpeedMode = CString ("");
|
||||
|
||||
GetDlgItem (IDC_LINK_SPEED1_STATIC)->SetWindowText( "" );
|
||||
GetDlgItem (IDC_LINK_SPEED2_STATIC)->SetWindowText( "" );
|
||||
GetDlgItem (IDC_LINK_SPEED3_STATIC)->SetWindowText( "" );
|
||||
GetDlgItem (IDC_LINK_SPEED1_STATIC)->EnableWindow (FALSE);
|
||||
GetDlgItem (IDC_LINK_SPEED2_STATIC)->EnableWindow (FALSE);
|
||||
GetDlgItem (IDC_LINK_SPEED3_STATIC)->EnableWindow (FALSE);
|
||||
GetDlgItem (IDC_LINK_SPEED1_EDIT)->EnableWindow (FALSE);
|
||||
GetDlgItem (IDC_LINK_SPEED2_EDIT)->EnableWindow (FALSE);
|
||||
GetDlgItem (IDC_LINK_SPEED3_EDIT)->EnableWindow (FALSE);
|
||||
UpdateData (FALSE);
|
||||
}
|
||||
GetParent()->GetParent()->RedrawWindow (NULL, NULL, RDW_INVALIDATE|RDW_FRAME);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// DiaLink diagnostics
|
||||
|
||||
#ifdef _DEBUG
|
||||
void DiaLink::AssertValid() const
|
||||
{
|
||||
CFormView::AssertValid();
|
||||
}
|
||||
|
||||
void DiaLink::Dump(CDumpContext& dc) const
|
||||
{
|
||||
CFormView::Dump(dc);
|
||||
}
|
||||
#endif //_DEBUG
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// DiaLink message handlers
|
||||
|
||||
void DiaLink::OnSelchangeLinkCombo(void)
|
||||
{
|
||||
UpdateData (TRUE);
|
||||
Way* poParentWay = (Way*) (((CPA_SuperObject*)(m_poLink->GetSuperObject())->GetParent())->GetObject());
|
||||
Link* pNewLink = Link::CloneLink ( poParentWay, m_poLink, m_szLinkName );
|
||||
poParentWay->fn_bChangeLink ( m_poLink, pNewLink );
|
||||
m_poLink = pNewLink;
|
||||
fn_vChangeDialog ();
|
||||
}
|
||||
|
||||
void DiaLink::fn_vChangeDialog (void)
|
||||
{
|
||||
RECT stRect;
|
||||
GetDlgItem (IDC_DYNAMIC_DIALOG)->GetWindowRect( &stRect );
|
||||
ScreenToClient( &stRect ) ;
|
||||
|
||||
if (m_pSpecificDialog)
|
||||
{
|
||||
m_poLink->fn_vFreeSpecificDialog (m_pSpecificDialog);
|
||||
delete m_pSpecificDialog;
|
||||
}
|
||||
m_pSpecificDialog = m_poLink->fn_pGetSpecificDialog (this);
|
||||
if (m_pSpecificDialog) m_pSpecificDialog->MoveWindow( &stRect, TRUE );
|
||||
}
|
||||
|
||||
|
||||
//--------------------------- Dynamic Param Edition
|
||||
void DiaLink::fn_vSetDynParam (void)
|
||||
{
|
||||
ACP_tdstDynaParam stDynParam;
|
||||
WP_fnv_Link_GetDynamicParameter ( (WP_tdhLink)(m_poLink->GetEngineStruct()), &stDynParam );
|
||||
|
||||
WP_tde_ucConnectionDynamicType eConnectionType;
|
||||
unsigned char ucDynamicType;
|
||||
|
||||
UpdateData (TRUE);
|
||||
|
||||
if ( m_oSpeedMode=="none" ) { ucDynamicType=C_ucNone; eConnectionType=WP_ConDynType_ucNone; }
|
||||
else if ( m_oSpeedMode=="constant" ) { ucDynamicType=C_ucConst; eConnectionType=WP_ConDynType_ucConstant; }
|
||||
else if ( m_oSpeedMode=="linear" ) { ucDynamicType=C_ucLinear; eConnectionType=WP_ConDynType_ucLinear; }
|
||||
else if ( m_oSpeedMode=="sinus" ) { ucDynamicType=C_ucSinus; eConnectionType=WP_ConDynType_ucSinus; }
|
||||
|
||||
fn_vDynamicObject_ChangeParams( &stDynParam, ucDynamicType, m_fSpeed1, m_fSpeed2, m_fSpeed3);
|
||||
WP_fnv_Link_SetDynamicParameter ( (WP_tdhLink)(m_poLink->GetEngineStruct()), &stDynParam );
|
||||
|
||||
WP_fnv_Link_SetConnectionDynamicType ( (WP_tdhLink)(m_poLink->GetEngineStruct()), eConnectionType );
|
||||
|
||||
m_poLink->fn_vWayNotifySave ();
|
||||
}
|
||||
|
||||
|
||||
void DiaLink::fn_vDrawDynParamDialog (void)
|
||||
{
|
||||
UpdateData (TRUE);
|
||||
|
||||
if ( m_oSpeedMode=="none" )
|
||||
{
|
||||
GetDlgItem (IDC_LINK_SPEED1_STATIC)->SetWindowText( "" );
|
||||
GetDlgItem (IDC_LINK_SPEED2_STATIC)->SetWindowText( "" );
|
||||
GetDlgItem (IDC_LINK_SPEED3_STATIC)->SetWindowText( "" );
|
||||
GetDlgItem (IDC_LINK_SPEED1_STATIC)->EnableWindow (FALSE);
|
||||
GetDlgItem (IDC_LINK_SPEED2_STATIC)->EnableWindow (FALSE);
|
||||
GetDlgItem (IDC_LINK_SPEED3_STATIC)->EnableWindow (FALSE);
|
||||
GetDlgItem (IDC_LINK_SPEED1_EDIT)->EnableWindow (FALSE);
|
||||
GetDlgItem (IDC_LINK_SPEED2_EDIT)->EnableWindow (FALSE);
|
||||
GetDlgItem (IDC_LINK_SPEED3_EDIT)->EnableWindow (FALSE);
|
||||
}
|
||||
|
||||
else if ( m_oSpeedMode=="constant" )
|
||||
{
|
||||
GetDlgItem (IDC_LINK_SPEED1_STATIC)->SetWindowText( "speed" );
|
||||
GetDlgItem (IDC_LINK_SPEED2_STATIC)->SetWindowText( "" );
|
||||
GetDlgItem (IDC_LINK_SPEED3_STATIC)->SetWindowText( "" );
|
||||
GetDlgItem (IDC_LINK_SPEED1_STATIC)->EnableWindow (TRUE);
|
||||
GetDlgItem (IDC_LINK_SPEED2_STATIC)->EnableWindow (FALSE);
|
||||
GetDlgItem (IDC_LINK_SPEED3_STATIC)->EnableWindow (FALSE);
|
||||
GetDlgItem (IDC_LINK_SPEED1_EDIT)->EnableWindow (TRUE);
|
||||
GetDlgItem (IDC_LINK_SPEED2_EDIT)->EnableWindow (FALSE);
|
||||
GetDlgItem (IDC_LINK_SPEED3_EDIT)->EnableWindow (FALSE);
|
||||
}
|
||||
|
||||
else if ( m_oSpeedMode=="linear" )
|
||||
{
|
||||
GetDlgItem (IDC_LINK_SPEED1_STATIC)->SetWindowText( "start speed" );
|
||||
GetDlgItem (IDC_LINK_SPEED2_STATIC)->SetWindowText( "end speed" );
|
||||
GetDlgItem (IDC_LINK_SPEED3_STATIC)->SetWindowText( "" );
|
||||
GetDlgItem (IDC_LINK_SPEED1_STATIC)->EnableWindow (TRUE);
|
||||
GetDlgItem (IDC_LINK_SPEED2_STATIC)->EnableWindow (TRUE);
|
||||
GetDlgItem (IDC_LINK_SPEED3_STATIC)->EnableWindow (FALSE);
|
||||
GetDlgItem (IDC_LINK_SPEED1_EDIT)->EnableWindow (TRUE);
|
||||
GetDlgItem (IDC_LINK_SPEED2_EDIT)->EnableWindow (TRUE);
|
||||
GetDlgItem (IDC_LINK_SPEED3_EDIT)->EnableWindow (FALSE);
|
||||
}
|
||||
|
||||
else if ( m_oSpeedMode=="sinus" )
|
||||
{
|
||||
GetDlgItem (IDC_LINK_SPEED1_STATIC)->SetWindowText( "start angle" );
|
||||
GetDlgItem (IDC_LINK_SPEED2_STATIC)->SetWindowText( "end angle" );
|
||||
GetDlgItem (IDC_LINK_SPEED3_STATIC)->SetWindowText( "max speed" );
|
||||
GetDlgItem (IDC_LINK_SPEED1_STATIC)->EnableWindow (TRUE);
|
||||
GetDlgItem (IDC_LINK_SPEED2_STATIC)->EnableWindow (TRUE);
|
||||
GetDlgItem (IDC_LINK_SPEED3_STATIC)->EnableWindow (TRUE);
|
||||
GetDlgItem (IDC_LINK_SPEED1_EDIT)->EnableWindow (TRUE);
|
||||
GetDlgItem (IDC_LINK_SPEED2_EDIT)->EnableWindow (TRUE);
|
||||
GetDlgItem (IDC_LINK_SPEED3_EDIT)->EnableWindow (TRUE);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
void DiaLink::OnSelchangeLinkSpeedCombo()
|
||||
{
|
||||
fn_vDrawDynParamDialog ();
|
||||
fn_vSetDynParam ();
|
||||
}
|
||||
|
||||
|
||||
void DiaLink::OnKillfocusLinkSpeed1Edit()
|
||||
{
|
||||
fn_vSetDynParam ();
|
||||
}
|
||||
|
||||
void DiaLink::OnKillfocusLinkSpeed2Edit()
|
||||
{
|
||||
fn_vSetDynParam ();
|
||||
}
|
||||
|
||||
void DiaLink::OnKillfocusLinkSpeed3Edit()
|
||||
{
|
||||
fn_vSetDynParam ();
|
||||
}
|
||||
|
||||
BOOL DiaLink::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext)
|
||||
{
|
||||
BOOL bCreate = CFormView::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, nID, pContext);
|
||||
|
||||
TUT_M_vGetTutDll ();
|
||||
TUT_M_vRegisterControl (m_hWnd , "OWP_LinkDialog" , TUT_e_Window);
|
||||
TUT_M_vRegisterControlID (IDC_LINK_COMBO,"OWP_LinkTypeCombo",TUT_e_ComboBox);
|
||||
TUT_M_vRegisterControlID (IDC_LINK_SPEED_COMBO,"OWP_LinkSpeedCombo",TUT_e_ComboBox);
|
||||
TUT_M_vRegisterControlID (IDC_LINK_SPEED1_EDIT,"OWP_LinkSpeed1Edit",TUT_e_TextEdit);
|
||||
TUT_M_vRegisterControlID (IDC_LINK_SPEED2_EDIT,"OWP_LinkSpeed2Edit",TUT_e_TextEdit);
|
||||
TUT_M_vRegisterControlID (IDC_LINK_SPEED3_EDIT,"OWP_LinkSpeed3Edit",TUT_e_TextEdit);
|
||||
|
||||
return bCreate;
|
||||
}
|
||||
|
||||
|
||||
void DiaLink::OnDestroy()
|
||||
{
|
||||
TUT_M_vGetTutDll ();
|
||||
TUT_M_vUnregisterControl (m_hWnd);
|
||||
TUT_M_vUnregisterControlID (IDC_LINK_COMBO);
|
||||
TUT_M_vUnregisterControlID (IDC_LINK_SPEED_COMBO);
|
||||
TUT_M_vUnregisterControlID (IDC_LINK_SPEED1_EDIT);
|
||||
TUT_M_vUnregisterControlID (IDC_LINK_SPEED2_EDIT);
|
||||
TUT_M_vUnregisterControlID (IDC_LINK_SPEED3_EDIT);
|
||||
}
|
||||
|
||||
*/
|
||||
//ENDANNECY Shaitan Nettoyage }
|
Reference in New Issue
Block a user