303 lines
9.3 KiB
C++
303 lines
9.3 KiB
C++
// EdIRCstB.hpp : implementation file
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
|
|
#include "Defines.hpp"
|
|
|
|
#ifdef D_ED_IR_ACTIVE
|
|
|
|
#include "EdIRCstB.hpp"
|
|
|
|
#include "EdIRIRD.hpp"
|
|
#include "EdIRBeEn.hpp"
|
|
#include "EdIRStrg.hpp"
|
|
#include "EdIRCsNB.hpp"
|
|
#include "EdIRCsLs.hpp"
|
|
|
|
#include "incDPT.h"
|
|
#include "incTUT.h"
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
//Stefan Dumitrean 17-06-98
|
|
#define C_SETTINGS_FILE_NAME "\\cpa\\exe\\main\\edt_data\\ctcoldim.dat"
|
|
//End Stefan Dumitrean 17-06-98
|
|
|
|
#define C_TYPE_COLUMN_NUMBER 0
|
|
#define C_NAME_COLUMN_NUMBER 1
|
|
#define C_VALUE_COLUMN_NUMBER 2
|
|
|
|
int CALLBACK fn_vCompareItems(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
|
|
{
|
|
CPA_EdIR_Constant *pCts1 = (CPA_EdIR_Constant *) lParam1;
|
|
CPA_EdIR_Constant *pCts2 = (CPA_EdIR_Constant *) lParam2;
|
|
|
|
switch (lParamSort)
|
|
{
|
|
case C_TYPE_COLUMN_NUMBER:
|
|
return pCts1->m_fn_csGetConstantType().Compare(pCts2->m_fn_csGetConstantType());
|
|
case C_NAME_COLUMN_NUMBER:
|
|
return pCts1->m_fn_csGetConstantName().Compare(pCts2->m_fn_csGetConstantName());
|
|
case C_VALUE_COLUMN_NUMBER:
|
|
return pCts1->m_fn_csGetConstantValue().Compare(pCts2->m_fn_csGetConstantValue());
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// class CPA_EdIR_ConstantDialog dialog
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
BEGIN_MESSAGE_MAP(CPA_EdIR_ConstantDialog, CDialog)
|
|
//{{AFX_MSG_MAP(CPA_EdIR_ConstantDialog)
|
|
ON_BN_CLICKED(IDC_BUTTON_NEW_CONSTANT,OnButtonNewConstant)
|
|
ON_BN_CLICKED(IDC_BUTTON_CHANGE_CONSTANT,OnButtonChangeConstant)
|
|
ON_BN_CLICKED(IDC_BUTTON_DELETE_CONSTANT,OnButtonDeleteConstant)
|
|
ON_NOTIFY(LVN_COLUMNCLICK, IDC_CONSTANT_LIST, OnColumnClicked)
|
|
ON_WM_CLOSE()
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
/**********************************************************************************/
|
|
CPA_EdIR_ConstantDialog::CPA_EdIR_ConstantDialog(CPA_EdIR_ConstantList *pclConstantList,CWnd* pParent /*=NULL*/)
|
|
: CDialog(CPA_EdIR_ConstantDialog::IDD, &g_oBaseFrame)
|
|
{
|
|
//{{AFX_DATA_INIT(CPA_EdIR_ConstantDialog)
|
|
// NOTE: the ClassWizard will add member initialization here
|
|
//}}AFX_DATA_INIT
|
|
m_pclConstantList=pclConstantList;
|
|
}
|
|
|
|
/**********************************************************************************/
|
|
void CPA_EdIR_ConstantDialog::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(CPA_EdIR_ConstantDialog)
|
|
// NOTE: the ClassWizard will add DDX and DDV calls here
|
|
//}}AFX_DATA_MAP
|
|
}
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CPA_EdIR_ConstantDialog message handlers
|
|
|
|
/**********************************************************************************/
|
|
BOOL CPA_EdIR_ConstantDialog::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
|
|
//Stefan Dumitrean 17-06-98
|
|
int nTest, vColDim[3] = { 50, 200, 50 };
|
|
char lpszTest[50], vColNames[3][50] = { "Type", "Name", "Value" };
|
|
FILE * p_stFile = fopen( C_SETTINGS_FILE_NAME, "r" );
|
|
if( p_stFile )
|
|
{
|
|
for( int i = 0; i < 3; i++ )
|
|
if( fscanf( p_stFile, "%s = %d\n", lpszTest, &nTest ) != 2 )
|
|
break;
|
|
if( i == 3 )
|
|
{
|
|
rewind( p_stFile );
|
|
for( i = 0; i < 3; i++ )
|
|
fscanf( p_stFile, "%s = %d\n", vColNames[i], &vColDim[i] );
|
|
}
|
|
fclose( p_stFile );
|
|
}
|
|
|
|
//End Stefan Dumitrean 17-06-98
|
|
|
|
CListCtrl *pclListControl=(CListCtrl *)GetDlgItem(IDC_CONSTANT_LIST);
|
|
|
|
//Stefan Dumitrean 17-06-98
|
|
pclListControl->InsertColumn(C_TYPE_COLUMN_NUMBER,vColNames[0],LVCFMT_LEFT,vColDim[0],C_TYPE_COLUMN_NUMBER);
|
|
pclListControl->InsertColumn(C_NAME_COLUMN_NUMBER,vColNames[1],LVCFMT_LEFT,vColDim[1],C_NAME_COLUMN_NUMBER);
|
|
pclListControl->InsertColumn(C_VALUE_COLUMN_NUMBER,vColNames[2],LVCFMT_LEFT,vColDim[2],C_VALUE_COLUMN_NUMBER);
|
|
//End Stefan Dumitrean 17-06-98
|
|
|
|
POSITION pos=m_pclConstantList->GetHeadPosition();
|
|
while(pos!=NULL)
|
|
{
|
|
CPA_EdIR_Constant *pclConstant=m_pclConstantList->GetNext(pos);
|
|
|
|
CString csType=pclConstant->m_fn_csGetConstantType();
|
|
CString csName=pclConstant->m_fn_csGetConstantName();
|
|
CString csValue=pclConstant->m_fn_csGetConstantValue();
|
|
|
|
m_fn_vAddItem(csType,csName,csValue,(LPARAM)pclConstant);
|
|
}
|
|
|
|
return TRUE; // return TRUE unless you set the focus to a control
|
|
// EXCEPTION: OCX Property Pages should return FALSE
|
|
}
|
|
|
|
/**********************************************************************************/
|
|
void CPA_EdIR_ConstantDialog::OnButtonNewConstant()
|
|
{
|
|
CPA_EdIR_NewConstantDialog clConstantPresetDlg;
|
|
|
|
if(clConstantPresetDlg.DoModal()==IDOK)
|
|
{
|
|
CPA_EdIR_Constant *pclConstant = m_pclConstantList->m_fn_pAdd(clConstantPresetDlg.m_csType,clConstantPresetDlg.m_csName,clConstantPresetDlg.m_csValue);
|
|
|
|
m_fn_vAddItem(clConstantPresetDlg.m_csType,clConstantPresetDlg.m_csName,clConstantPresetDlg.m_csValue, (LPARAM)pclConstant);
|
|
|
|
m_fn_vNotifySave();
|
|
}
|
|
}
|
|
|
|
/**********************************************************************************/
|
|
void CPA_EdIR_ConstantDialog::OnButtonChangeConstant()
|
|
{
|
|
int iCurSel=m_fn_iGetCurSel();
|
|
if(iCurSel!=-1)
|
|
{
|
|
CListCtrl *pclListControl=(CListCtrl *)GetDlgItem(IDC_CONSTANT_LIST);
|
|
|
|
CString csType=pclListControl->GetItemText(iCurSel,C_TYPE_COLUMN_NUMBER);
|
|
CString csName=pclListControl->GetItemText(iCurSel,C_NAME_COLUMN_NUMBER);
|
|
CString csValue=pclListControl->GetItemText(iCurSel,C_VALUE_COLUMN_NUMBER);
|
|
|
|
CPA_EdIR_NewConstantDialog clConstantPresetDlg(csType,csName,csValue);
|
|
|
|
if(clConstantPresetDlg.DoModal()==IDOK)
|
|
{
|
|
m_pclConstantList->m_fn_vRemove(csName);
|
|
CPA_EdIR_Constant *pclConstant = m_pclConstantList->m_fn_pAdd(clConstantPresetDlg.m_csType,clConstantPresetDlg.m_csName,clConstantPresetDlg.m_csValue);
|
|
|
|
m_fn_vSetItem(iCurSel,clConstantPresetDlg.m_csType,clConstantPresetDlg.m_csName,clConstantPresetDlg.m_csValue, (LPARAM) pclConstant);
|
|
|
|
m_fn_vNotifySave();
|
|
}
|
|
}
|
|
}
|
|
|
|
/**********************************************************************************/
|
|
void CPA_EdIR_ConstantDialog::OnButtonDeleteConstant()
|
|
{
|
|
int iCurSel=m_fn_iGetCurSel();
|
|
if(iCurSel!=-1)
|
|
{
|
|
CListCtrl *pclListControl=(CListCtrl *)GetDlgItem(IDC_CONSTANT_LIST);
|
|
|
|
CString csName=pclListControl->GetItemText(iCurSel,C_NAME_COLUMN_NUMBER);
|
|
m_pclConstantList->m_fn_vRemove(csName);
|
|
|
|
pclListControl->DeleteItem(iCurSel);
|
|
|
|
m_fn_vNotifySave();
|
|
}
|
|
}
|
|
|
|
/**********************************************************************************/
|
|
void CPA_EdIR_ConstantDialog::m_fn_vNotifySave()
|
|
{
|
|
CString csDefineSectionName=CString(fn_szGetFamiliesDataPath())+"\\"+g_c_csAIDefineFileName;
|
|
|
|
SCR_fn_v_SvL1_RegisterNotify(M_MAKECHAR(csDefineSectionName),
|
|
CPA_EdIR_Brain::m_fn_vSaveEngineAIDefines,
|
|
m_pclConstantList,
|
|
SCR_EA_Ntfy_RebuildSection);
|
|
}
|
|
|
|
/**********************************************************************************/
|
|
int CPA_EdIR_ConstantDialog::m_fn_iGetCurSel()
|
|
{
|
|
CListCtrl *pclListControl=(CListCtrl *)GetDlgItem(IDC_CONSTANT_LIST);
|
|
|
|
for(int iIndex=0;iIndex<pclListControl->GetItemCount();iIndex++)
|
|
{
|
|
if(pclListControl->GetItemState(iIndex,LVIS_SELECTED)==LVIS_SELECTED)
|
|
return iIndex;
|
|
}
|
|
|
|
return -1;
|
|
}
|
|
|
|
/**********************************************************************************/
|
|
void CPA_EdIR_ConstantDialog::m_fn_vAddItem(CString csType,CString csName,CString csValue,LPARAM lParam)
|
|
{
|
|
CListCtrl *pclListControl=(CListCtrl *)GetDlgItem(IDC_CONSTANT_LIST);
|
|
|
|
LV_ITEM stLvItem;
|
|
stLvItem.mask=LVIF_TEXT;
|
|
stLvItem.iItem=pclListControl->GetItemCount();
|
|
stLvItem.iSubItem=C_TYPE_COLUMN_NUMBER;
|
|
stLvItem.pszText=(char *)LPCTSTR(csType);
|
|
pclListControl->InsertItem(&stLvItem);
|
|
|
|
stLvItem.iSubItem=C_NAME_COLUMN_NUMBER;
|
|
stLvItem.pszText=(char *)LPCTSTR(csName);
|
|
pclListControl->SetItem(&stLvItem);
|
|
|
|
stLvItem.iSubItem=C_VALUE_COLUMN_NUMBER;
|
|
stLvItem.pszText=(char *)LPCTSTR(csValue);
|
|
pclListControl->SetItem(&stLvItem);
|
|
|
|
pclListControl->SetItemData(stLvItem.iItem,lParam);
|
|
|
|
}
|
|
|
|
/**********************************************************************************/
|
|
void CPA_EdIR_ConstantDialog::m_fn_vSetItem(int nItem,CString csType,CString csName,CString csValue,LPARAM lParam)
|
|
{
|
|
CListCtrl *pclListControl=(CListCtrl *)GetDlgItem(IDC_CONSTANT_LIST);
|
|
|
|
pclListControl->SetItemText(nItem,C_TYPE_COLUMN_NUMBER,csType);
|
|
pclListControl->SetItemText(nItem,C_NAME_COLUMN_NUMBER,csName);
|
|
pclListControl->SetItemText(nItem,C_VALUE_COLUMN_NUMBER,csValue);
|
|
pclListControl->SetItemData(nItem,lParam);
|
|
}
|
|
|
|
//Stefan Dumitrean 17-06-98
|
|
void CPA_EdIR_ConstantDialog::OnClose()
|
|
{
|
|
m_fn_vSaveSettings();
|
|
CDialog::OnClose();
|
|
}
|
|
|
|
void CPA_EdIR_ConstantDialog::OnOK()
|
|
{
|
|
m_fn_vSaveSettings();
|
|
CDialog::OnOK();
|
|
}
|
|
|
|
|
|
void CPA_EdIR_ConstantDialog::m_fn_vSaveSettings()
|
|
{
|
|
CListCtrl *pclListControl=(CListCtrl *)GetDlgItem(IDC_CONSTANT_LIST);
|
|
FILE * p_stFile = fopen( C_SETTINGS_FILE_NAME, "w" );
|
|
LV_COLUMN stColumn;
|
|
char pszColumnName[50];
|
|
stColumn.mask = LVCF_TEXT | LVCF_WIDTH;
|
|
stColumn.pszText = pszColumnName;
|
|
stColumn.cchTextMax = 50;
|
|
if( p_stFile )
|
|
{ for( int i = 0; i < 3; i++ )
|
|
{
|
|
pclListControl->GetColumn( i, &stColumn );
|
|
fprintf( p_stFile, "%s = %d\n", stColumn.pszText, stColumn.cx );
|
|
}
|
|
fclose( p_stFile );
|
|
}
|
|
|
|
}
|
|
|
|
void CPA_EdIR_ConstantDialog::OnColumnClicked (NMHDR* pNMHDR, LRESULT* pResult)
|
|
{
|
|
LPNM_LISTVIEW pNMListView = (LPNM_LISTVIEW) pNMHDR;
|
|
CListCtrl *pclListControl = (CListCtrl *) GetDlgItem(IDC_CONSTANT_LIST);
|
|
int iNumColumn = pNMListView->iSubItem;
|
|
|
|
pclListControl->SortItems(&fn_vCompareItems, iNumColumn);
|
|
}
|
|
|
|
//End Stefan Dumitrean 17-06-98
|
|
|
|
#endif //D_ED_IR_ACTIVE
|
|
|