reman3/Rayman_X/cpa/tempgrp/TID/Src/iadvrvw.cpp

200 lines
4.8 KiB
C++

// iadvrvw.cpp : implementation file
//
#include "stdafx.h"
#define HieFriend
// BEGIN ROMTEAM Cristi Petrescu 98-06-
#include "iadedttr.hpp"
#include "IADglob.hpp"
#include "x:/cpa/tempgrp/tia/inc/ai_intf.hpp"
#include "x:/cpa/main/inc/_EditId.h"
// END ROMTEAM Cristi Petrescu 98-06-
#include "IADVrVw.hpp"
#include "_IADItrf.hpp"
#include "help_def.h" //for Context Help
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// IAD_VariableView
IMPLEMENT_DYNCREATE(IAD_VariableView, CFormView)
IAD_VariableView::IAD_VariableView()
: CFormView(IAD_VariableView::IDD)
{
//{{AFX_DATA_INIT(IAD_VariableView)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
IAD_VariableView::~IAD_VariableView()
{
}
void IAD_VariableView::DoDataExchange(CDataExchange* pDX)
{
CFormView::DoDataExchange(pDX);
//{{AFX_DATA_MAP(IAD_VariableView)
DDX_Control(pDX, IDC_LIST_VARIABLES, m_clListVariable);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(IAD_VariableView, CFormView)
//{{AFX_MSG_MAP(IAD_VariableView)
ON_WM_HELPINFO()
ON_WM_SIZE()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// IAD_VariableView diagnostics
#ifdef _DEBUG
void IAD_VariableView::AssertValid() const
{
CFormView::AssertValid();
}
void IAD_VariableView::Dump(CDumpContext& dc) const
{
CFormView::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// IAD_VariableView message handlers
void IAD_VariableView::OnInitialUpdate ()
{
CFormView::OnInitialUpdate ();
g_pclInterface -> m_fn_pclGetDocument () -> m_pclVariableView = this;
//Prepares List Control
CListCtrl *pclListCtrl = (CListCtrl *)GetDlgItem(IDC_LIST_VARIABLES);
if ( pclListCtrl != NULL )
{
pclListCtrl->InsertColumn(0, "Name");
pclListCtrl->InsertColumn(1, "Value");
}
}
BOOL IAD_VariableView::OnHelpInfo(HELPINFO* pHelpInfo)
{
::WinHelp(m_hWnd,
LPCTSTR(g_pclInterface -> m_fn_pclGetDocument () -> m_csHelpFileNameAndPath),
HELP_CONTEXT,
IDH_GENERAL);
return FALSE;
}
void IAD_VariableView::OnSize(UINT nType, int cx, int cy)
{
CFormView::OnSize(nType, cx, cy);
//Re-sizes ListCtrl
CListCtrl *pclListCtrl = (CListCtrl *)GetDlgItem(IDC_LIST_VARIABLES);
if ( pclListCtrl != NULL )
{
CRect crCtrlRect;
pclListCtrl->GetWindowRect(crCtrlRect);
crCtrlRect.top = 2;
crCtrlRect.bottom = cy - 2;
crCtrlRect.left = 2;
crCtrlRect.right = cx - 2;
pclListCtrl->MoveWindow(crCtrlRect);
//Re_sizes Columns
short wColumnWidth = crCtrlRect.Width() / 2 - 2;
pclListCtrl->SetColumnWidth(0, wColumnWidth);
wColumnWidth = crCtrlRect.Width() / 2 - 2;
pclListCtrl->SetColumnWidth(1, wColumnWidth);
}
}
// BEGIN ROMTEAM Cristi Petrescu 98-06-
void IAD_VariableView::m_fn_vAddVariable (CString csName, CString csValue)
// END ROMTEAM Cristi Petrescu 98-06-
{
CListCtrl *pclListCtrl = (CListCtrl *)GetDlgItem(IDC_LIST_VARIABLES);
//csName . MakeLower ();
LV_ITEM lvItem;
// BEGIN ROMTEAM Cristi Petrescu 98-06-
lvItem.mask = LVIF_TEXT | LVIF_STATE;
// END ROMTEAM Cristi Petrescu 98-06-
lvItem.stateMask = LVIS_SELECTED | LVIS_FOCUSED;
lvItem.state = 0;
// check if there is already inserted
LV_FINDINFO lvFindInfo;
int lItem;
lvFindInfo . flags = LVFI_STRING;
lvFindInfo . psz = (char *) LPCTSTR (csName);
lItem = pclListCtrl -> FindItem (& lvFindInfo);
if (lItem == -1)
{
// add it to the list
lvItem.iItem = pclListCtrl -> GetItemCount ();
lvItem. iSubItem = 0;
lvItem. pszText = (char *) LPCTSTR (csName);
pclListCtrl -> InsertItem (& lvItem);
}
else
{
// we will update the value
lvItem . iItem = lItem;
}
pclListCtrl ->SetItemText (lvItem . iItem, 1, (char *) LPCTSTR (csValue));
}
// BEGIN ROMTEAM Cristi Petrescu 98-06-
void IAD_VariableView::m_fn_vUpdateVariables (IAD_EditorTreeNode *pclEngineLoop)
{
if (! pclEngineLoop)
return;
CListCtrl *pclListCtrl = (CListCtrl *) GetDlgItem (IDC_LIST_VARIABLES);
long i;
long n = pclListCtrl -> GetItemCount ();
CString csVariableName;
long lVariableIndex;
CString csValue;
tdstGetSetParam *p_stValue;
for (i = 0; i < n; i ++)
{
csVariableName = pclListCtrl -> GetItemText (i, 0);
CPA_DLLBase *p_clDll = g_pclInterface->GetMainWorld()->GetToolDLLWithName(C_szDLLAIEditorName);
if ( p_clDll == NULL )
continue;
lVariableIndex = p_clDll -> OnQueryAction (g_pclInterface, C_uiAI_GetVariableIndex, (long) & csVariableName);
if (lVariableIndex < 0)
continue;
p_stValue = pclEngineLoop -> m_fn_p_tdstGetVariableValue (lVariableIndex);
if (! p_stValue)
continue;
csValue = IAD_fn_csComputeValueFromGetSetParam (p_stValue);
pclListCtrl -> SetItemText (i, 1, (char *) LPCTSTR (csValue));
}
}
// END ROMTEAM Cristi Petrescu 98-06-