/*========================================================================= * * SECTdEnv.cpp : Environment dialog - Implementation file * * * Version 1.0 * Creation date * Revision date * * Shaitan *=======================================================================*/ /* #include "stdafx.h" #include "acp_base.h" #include "SECTint.hpp" #include "SECdEnv.hpp" #include "SECmodif.hpp" #include "SECdMec.hpp" #include "SECdVis.hpp" #include "SEClEnvs.hpp" #include "SECdEnvs.hpp" #include "SECdSrfs.hpp" #include "..\Main\Inc\_EditID.h" #include "TUT.h" SECT_MecEnvironment *g_pClickedMecEnv; SECT_VisEnvironment *g_pClickedVisEnv; //################################################################################# // SECT_DialogEnv dialog //################################################################################# /*---------------------------------------- ----------------------------------------*/ /* SECT_DialogEnv::SECT_DialogEnv(CWnd* pParent) : CFormView(SECT_DialogEnv::IDD) { //{{AFX_DATA_INIT(SECT_DialogEnv) //}}AFX_DATA_INIT } */ /*---------------------------------------- ----------------------------------------*/ /* void SECT_DialogEnv::DoDataExchange(CDataExchange* pDX) { CFormView::DoDataExchange(pDX); //{{AFX_DATA_MAP(SECT_DialogEnv) DDX_Control(pDX, SECT_IDC_ENVNAME, m_cName); DDX_Control(pDX, SECT_IDC_ENVDEFAULT, m_cDefault); DDX_Control(pDX, SECT_IDC_ENVCANCEL, m_cCancel); DDX_Control(pDX, SECT_IDC_ENVSAVE, m_cSave); DDX_Control(pDX, SECT_IDC_MECLISTBOX, m_cMecListBox); DDX_Control(pDX, SECT_IDC_EDITMEC, m_cEditMec); DDX_Control(pDX, SECT_IDC_NEWMEC, m_cNewMec); DDX_Control(pDX, SECT_IDC_VISLISTBOX, m_cVisListBox); DDX_Control(pDX, SECT_IDC_EDITVIS, m_cEditVis); DDX_Control(pDX, SECT_IDC_NEWVIS, m_cNewVis); DDX_Control(pDX, SECT_IDC_SOUNDLIST, m_cSndListBox); //}}AFX_DATA_MAP } */ /*---------------------------------------- ----------------------------------------*/ /* BEGIN_MESSAGE_MAP(SECT_DialogEnv, CFormView) //{{AFX_MSG_MAP(SECT_DialogEnv) ON_WM_SIZE() ON_WM_DESTROY() ON_EN_KILLFOCUS(SECT_IDC_ENVNAME, OnChangeName) ON_BN_CLICKED(SECT_IDC_ENVDEFAULT, OnDefault) ON_BN_CLICKED(SECT_IDC_ENVCANCEL, OnCancel) ON_BN_CLICKED(SECT_IDC_ENVSAVE, OnSave) ON_NOTIFY(LVN_ITEMCHANGED, SECT_IDC_MECLISTBOX, OnSelChangeMecListBox) ON_NOTIFY(NM_DBLCLK, SECT_IDC_MECLISTBOX, OnDblClkMecListBox) ON_BN_CLICKED(SECT_IDC_EDITMEC, OnEditMec) ON_BN_CLICKED(SECT_IDC_NEWMEC, OnNewMec) ON_NOTIFY(LVN_ITEMCHANGED, SECT_IDC_VISLISTBOX, OnSelChangeVisListBox) ON_NOTIFY(NM_DBLCLK, SECT_IDC_VISLISTBOX, OnDblClkVisListBox) ON_BN_CLICKED(SECT_IDC_EDITVIS, OnEditVis) ON_BN_CLICKED(SECT_IDC_NEWVIS, OnNewVis) ON_CBN_SELCHANGE(SECT_IDC_SOUNDLIST, OnSelChangeSndListBox) //}}AFX_MSG_MAP END_MESSAGE_MAP() */ //################################################################################# // SECT_DialogEnv Inits //################################################################################# /*=========================================================================== * Description: Init dialog * Creation date: * Author: Shaitan *--------------------------------------------------------------------------- * Revision date: Author: *=========================================================================*/ /* void SECT_DialogEnv::fn_vInitDialog (Sector_Interface *p_oDLL, CWnd *pParent) { // create the dialog m_bInitialised = FALSE; m_pSectorInterface = p_oDLL; CFormView::Create(NULL, "", AFX_WS_DEFAULT_VIEW, CRect(0,0,120,180), pParent, AFX_IDW_PANE_FIRST, NULL); // init data for dialog CFormView::UpdateData(FALSE); // FOR TUTORIAL TUT_M_vGetTutDll(); // environment TUT_M_vRegisterControl(m_cName.m_hWnd, "OSC_DENV_EDIT_NAME", TUT_e_TextEdit); TUT_M_vRegisterControl(m_cDefault.m_hWnd, "OSC_DENV_BUTTON_DEFAULT", TUT_e_Button); TUT_M_vRegisterControl(m_cCancel.m_hWnd, "OSC_DENV_BUTTON_CANCEL", TUT_e_Button); TUT_M_vRegisterControl(m_cSave.m_hWnd, "OSC_DENV_BUTTON_SAVE", TUT_e_Button); // mechanic environment TUT_M_vRegisterControl(m_cMecListBox.m_hWnd, "OSC_DENV_LIST_MECENVS", TUT_e_ListBox); TUT_M_vRegisterControl(m_cEditMec.m_hWnd, "OSC_DENV_BUTTON_EDITMEC", TUT_e_Button); TUT_M_vRegisterControl(m_cNewMec.m_hWnd, "OSC_DENV_BUTTON_NEWMEC", TUT_e_Button); // visual environment TUT_M_vRegisterControl(m_cVisListBox.m_hWnd, "OSC_DENV_LIST_VISENVS", TUT_e_ListBox); TUT_M_vRegisterControl(m_cEditVis.m_hWnd, "OSC_DENV_BUTTON_EDITVIS", TUT_e_Button); TUT_M_vRegisterControl(m_cNewVis.m_hWnd, "OSC_DENV_BUTTON_NEWVIS", TUT_e_Button); // sound environment TUT_M_vRegisterControl(m_cSndListBox.m_hWnd, "OSC_DENV_LIST_SOUNDENVS", TUT_e_ListBox); // END TUTORIAL // init all controls m_pDefaultEnv = NULL; fn_vInitEnvironment(NULL, FALSE); // init lists m_cMecListBox.fn_vInitParameters(this, m_pSectorInterface, E_te_MecEnvironment); m_cVisListBox.fn_vInitParameters(this, m_pSectorInterface, E_te_VisEnvironment); m_bInitialised = TRUE; } */ /*=========================================================================== * Description: Init environment and controls * Creation date: * Author: Shaitan *--------------------------------------------------------------------------- * Revision date: Author: *=========================================================================*/ /* void SECT_DialogEnv::fn_vInitEnvironment (SECT_Environment *pEnv, BOOL bNewEnv) { // no environment and controls enabled => new environment if ((!pEnv) && bNewEnv) m_pEnvironment = m_pDefaultEnv; else m_pEnvironment = pEnv; // update controls state fn_vInitControls(TRUE); // update parameters m_csName = (m_pEnvironment) ? m_pEnvironment->GetName() : ""; // update controls m_cName.SetWindowText(m_csName); fn_vSelectMechanic((m_pEnvironment) ? m_pEnvironment->GetMecEnvironment() : NULL); fn_vSelectVisual((m_pEnvironment) ? m_pEnvironment->GetVisEnvironment() : NULL); fn_vSelectSound((m_pEnvironment) ? m_pEnvironment->GetSndEnvironment() : NULL); // sound m_cSndListBox.EnableWindow((m_pEnvironment != NULL)); } */ /*=========================================================================== * Description: Init controls * Creation date: * Author: Shaitan *--------------------------------------------------------------------------- * Revision date: Author: *=========================================================================*/ /* void SECT_DialogEnv::fn_vInitControls (BOOL bEnable) { m_cCancel.EnableWindow(bEnable&&(m_pEnvironment == m_pDefaultEnv)); m_cSave.EnableWindow(bEnable&&(m_pEnvironment == m_pDefaultEnv)); m_cName.EnableWindow(bEnable&&(m_pEnvironment != NULL)); m_cDefault.EnableWindow(bEnable&&(m_pEnvironment != NULL)); // mec m_cMecListBox.EnableWindow(bEnable); m_cEditMec.EnableWindow(bEnable); m_cNewMec.EnableWindow(bEnable); // vis m_cVisListBox.EnableWindow(bEnable); m_cEditVis.EnableWindow(bEnable); m_cNewVis.EnableWindow(bEnable); // snd => only if Sound DLL present if (m_pSectorInterface->GetSoundEnvList()) m_cSndListBox.EnableWindow(bEnable); else m_cSndListBox.EnableWindow(FALSE); } */ /*=========================================================================== * Description: Reinit dialog * Creation date: * Author: Shaitan *--------------------------------------------------------------------------- * Revision date: Author: *=========================================================================*/ /* void SECT_DialogEnv::fn_vReinitDialog (void) { // init default environment if (!m_pDefaultEnv) { m_pDefaultEnv = new SECT_Environment(m_pSectorInterface, NULL, NULL, NULL, ""); m_pDefaultEnv->fn_bUnValidate(); m_pDefaultEnv->fn_vNotifyUnSave(); } // init mechanic fn_vInitMecListBox(); // init mechanic fn_vInitVisListBox(); // init sound fn_vInitSndListBox(); } */ /*=========================================================================== * Description: Init mechanic listbox * Creation date: * Author: Shaitan *--------------------------------------------------------------------------- * Revision date: Author: *=========================================================================*/ /* void SECT_DialogEnv::fn_vInitMecListBox (void) { // init style m_cMecListBox.SetOrder(E_lo_Alpha, FALSE, FALSE); // reinit list m_cMecListBox.SetSortedList(m_pSectorInterface->GetBaseObjectList(C_szMecEnvironmentTypeName)); // current selection => none m_cMecListBox.SetSelectedItem(-1); } */ /*=========================================================================== * Description: update mechanic selection * Creation date: * Author: Shaitan *--------------------------------------------------------------------------- * Revision date: Author: *=========================================================================*/ /* void SECT_DialogEnv::fn_vSelectMechanic (SECT_MecEnvironment *pMecEnv, BOOL bUpdateEnv) { SECT_MecEnvironment *pOldSelect, *pOldCurrent = NULL; SECT_ModifEnvParams *pModif; int iInd; // update mechanic pOldSelect = m_pMecEnvironment; m_pMecEnvironment = pMecEnv; // update mechanic dialog if (m_pSectorInterface->GetDialogMec()) m_pSectorInterface->GetDialogMec()->fn_vInitMecEnvironment(m_pMecEnvironment, FALSE); // update environment if ((bUpdateEnv)&&(m_pEnvironment)) { pOldCurrent = m_pEnvironment->GetMecEnvironment(); if ((m_pMecEnvironment)&&(m_pMecEnvironment != pOldCurrent)) { if (m_pEnvironment != m_pDefaultEnv) { pModif = new SECT_ModifEnvParams(m_pSectorInterface, E_mt_ChangeMecEnv, m_pEnvironment, m_pMecEnvironment, NULL, NULL); m_pSectorInterface->M_GetEditManager()->AskFor(pModif); } else m_pEnvironment->SetMecEnvironment(m_pMecEnvironment, FALSE); } } // redraw previous element if (pOldSelect != m_pMecEnvironment) { iInd = m_cMecListBox.GetCorrespondingIndex((DWORD) pOldSelect); m_cMecListBox.RedrawItems(iInd, iInd); } // redraw previous element if ((pOldCurrent)&&(pOldCurrent != pOldSelect)) { iInd = m_cMecListBox.GetCorrespondingIndex((DWORD) pOldCurrent); m_cMecListBox.RedrawItems(iInd, iInd); } // update selection iInd = m_cMecListBox.GetCorrespondingIndex((DWORD) m_pMecEnvironment); m_cMecListBox.RedrawItems(iInd, iInd); // update button m_cEditMec.EnableWindow(m_pMecEnvironment != NULL); m_cMecListBox.UpdateWindow(); } */ /*=========================================================================== * Description: Init visual listbox * Creation date: * Author: Shaitan *--------------------------------------------------------------------------- * Revision date: Author: *=========================================================================*/ /* void SECT_DialogEnv::fn_vInitVisListBox (void) { // init style m_cVisListBox.SetOrder(E_lo_Alpha, FALSE, FALSE); // reinit list m_cVisListBox.SetSortedList(m_pSectorInterface->GetBaseObjectList(C_szVisEnvironmentTypeName)); // m_cVisListBox selection => none m_cVisListBox.SetSelectedItem(-1); } */ /*=========================================================================== * Description: update visual selection * Creation date: * Author: Shaitan *--------------------------------------------------------------------------- * Revision date: Author: *=========================================================================*/ /* void SECT_DialogEnv::fn_vSelectVisual (SECT_VisEnvironment *pVisEnv, BOOL bUpdateEnv) { SECT_VisEnvironment *pOldSelect, *pOldCurrent = NULL; SECT_ModifEnvParams *pModif; int iInd; // update mechanic pOldSelect = m_pVisEnvironment; m_pVisEnvironment = pVisEnv; // update mechanic dialog if (m_pSectorInterface->GetDialogVis()) m_pSectorInterface->GetDialogVis()->fn_vInitVisEnvironment(m_pVisEnvironment, FALSE); // update environment if ((bUpdateEnv)&&(m_pEnvironment)) { pOldCurrent = m_pEnvironment->GetVisEnvironment(); if (m_pVisEnvironment != pOldCurrent) { if (m_pEnvironment != m_pDefaultEnv) { pModif = new SECT_ModifEnvParams(m_pSectorInterface, E_mt_ChangeVisEnv, m_pEnvironment, NULL, m_pVisEnvironment, NULL); m_pSectorInterface->M_GetEditManager()->AskFor(pModif); } else m_pEnvironment->SetVisEnvironment(m_pVisEnvironment, FALSE); } } // redraw previous element if (pOldSelect != m_pVisEnvironment) { iInd = m_cVisListBox.GetCorrespondingIndex((DWORD) pOldSelect); m_cVisListBox.RedrawItems(iInd, iInd); } // redraw previous element if ((pOldCurrent)&&(pOldCurrent != pOldSelect)) { iInd = m_cVisListBox.GetCorrespondingIndex((DWORD) pOldCurrent); m_cVisListBox.RedrawItems(iInd, iInd); } // update selection iInd = m_cVisListBox.GetCorrespondingIndex((DWORD) m_pVisEnvironment); m_cVisListBox.RedrawItems(iInd, iInd); // update button m_cEditVis.EnableWindow(m_pVisEnvironment != NULL); m_cVisListBox.UpdateWindow(); } */ /*=========================================================================== * Description: Init sound listbox * Creation date: * Author: Shaitan *--------------------------------------------------------------------------- * Revision date: Author: *=========================================================================*/ /* void SECT_DialogEnv::fn_vInitSndListBox (void) { CPA_BaseObjectList *pListObject; CPA_BaseObject *pElem; Position pos; int iInd; // RAZ m_cSndListBox.ResetContent(); pListObject = m_pSectorInterface->GetSoundEnvList(); if (!pListObject) return; // init content for (pElem = pListObject->GetHeadElement(pos); pElem; pElem = pListObject->GetNextElement(pos)) { // reinit list iInd = m_cSndListBox.AddString(pElem->GetName()); m_cSndListBox.SetItemData(iInd, (DWORD) pElem); } // current selection => none m_cSndListBox.SetCurSel(-1); } */ /*=========================================================================== * Description: update sound selection * Creation date: * Author: Shaitan *--------------------------------------------------------------------------- * Revision date: Author: *=========================================================================*/ /* void SECT_DialogEnv::fn_vSelectSound (SECT_SndEnvironment *pSndEnv, BOOL bUpdateEnv) { SECT_SndEnvironment *pOldSelect, *pOldCurrent = NULL; SECT_ModifEnvParams *pModif; int iInd; // update mechanic pOldSelect = m_pSndEnvironment; m_pSndEnvironment = pSndEnv; // update sound if ((bUpdateEnv)&&(m_pEnvironment)&&(m_pEnvironment != m_pDefaultEnv)) { pOldCurrent = m_pEnvironment->GetSndEnvironment(); if ((m_pSndEnvironment)&&(m_pSndEnvironment != pOldCurrent)) { pModif = new SECT_ModifEnvParams(m_pSectorInterface, E_mt_ChangeSndEnv, m_pEnvironment, NULL, NULL, m_pSndEnvironment); m_pSectorInterface->M_GetEditManager()->AskFor(pModif); } } // update selection iInd = GetSoundIndex((DWORD) m_pSndEnvironment); m_cSndListBox.SetCurSel(iInd); } */ /*---------------------------------------- ----------------------------------------*/ /* int SECT_DialogEnv::GetSoundIndex (DWORD pElem) { DWORD pData; int iIndex; for (iIndex = 0; iIndex < m_cSndListBox.GetCount(); iIndex++) { pData = m_cSndListBox.GetItemData(iIndex); if (pData == pElem) return iIndex; } return -1; } */ //################################################################################# // Messages //################################################################################# /*---------------------------------------- ----------------------------------------*/ /* void SECT_DialogEnv::OnSize(UINT, int, int) { RECT WindowPosition; int ecx, ecy; if (!m_bInitialised) return; // calculate name position GetWindowRect(&WindowPosition); ecx = WindowPosition.right - WindowPosition.left - 10; ecx = (ecx < 100) ? 100 : ecx; ecy = WindowPosition.bottom - WindowPosition.top - 10; ecy = (ecy < 140) ? 140 : ecy; // buttons m_cCancel.MoveWindow(5, 7, 40, 16); m_cSave.MoveWindow(ecx-35, 7, 40, 16); // save m_cName.MoveWindow(50, 5, ecx-90, 20); // mechanic GetDlgItem(SECT_IDC_STATICMEC)->MoveWindow(5, 30, ecx/3, ecy-25); m_cMecListBox.MoveWindow(10, 45, ecx/3-10, ecy-75); m_cEditMec.MoveWindow(15, ecy-20, 25, 18); m_cNewMec.MoveWindow(ecx/3-30, ecy-20, 25, 18); // visual GetDlgItem(SECT_IDC_STATICVIS)->MoveWindow(ecx/3+5, 30, ecx/3, ecy-25); m_cVisListBox.MoveWindow(ecx/3+10, 45, ecx/3-10, ecy-75); m_cEditVis.MoveWindow(ecx/3+15, ecy-20, 25, 18); m_cNewVis.MoveWindow(2*ecx/3-30, ecy-20, 25, 18); // sound GetDlgItem(SECT_IDC_STATICSOUND)->MoveWindow(2*ecx/3+5, 30, ecx/3, ecy-25); m_cSndListBox.MoveWindow(2*ecx/3+10, 45, ecx/3-10, ecy-45); } */ /*---------------------------------------- ----------------------------------------*/ /* void SECT_DialogEnv::OnDestroy (void) { // FOR TUTORIAL TUT_M_vGetTutDll(); // environment TUT_M_vUnregisterControl(m_cName.m_hWnd); TUT_M_vUnregisterControl(m_cDefault.m_hWnd); TUT_M_vUnregisterControl(m_cCancel.m_hWnd); TUT_M_vUnregisterControl(m_cSave.m_hWnd); // mechanic environment TUT_M_vUnregisterControl(m_cMecListBox.m_hWnd); TUT_M_vUnregisterControl(m_cEditMec.m_hWnd); TUT_M_vUnregisterControl(m_cNewMec.m_hWnd); // visual environment TUT_M_vUnregisterControl(m_cVisListBox.m_hWnd); TUT_M_vUnregisterControl(m_cEditVis.m_hWnd); TUT_M_vUnregisterControl(m_cNewVis.m_hWnd); // sound environment TUT_M_vUnregisterControl(m_cSndListBox.m_hWnd); // END TUTORIAL CFormView::OnDestroy(); } */ /*---------------------------------------- ----------------------------------------*/ /* void SECT_DialogEnv::OnChangeName() { CString csFinalName; char szNewName[256]; // no environment => no modif if ((!m_pEnvironment)||(!m_cName.GetModify())) return; // get corresponding name m_cName.GetWindowText(szNewName, 255); if (!strcmp(szNewName, "")) { m_cName.SetWindowText(m_csName); return; } // get prefixed name csFinalName = m_pSectorInterface->GetInterface()->GetPrefixedName(szNewName); // check name validity if (m_pEnvironment->fn_eCheckValidity(csFinalName) == E_mc_None) m_csName = csFinalName; // update window m_cName.SetWindowText(m_csName); // update name if ((m_pEnvironment != m_pDefaultEnv)&&(m_csName != m_pEnvironment->GetName())) { m_pEnvironment->fn_eRename(m_csName); m_pSectorInterface->GetDialogEnvs()->fn_vInitEnvListBox(); } // update flag m_cName.SetModify(FALSE); } */ /*---------------------------------------- ----------------------------------------*/ /* void SECT_DialogEnv::OnDefault() { if (m_cName.GetModify()) { OnChangeName(); m_cName.SetFocus(); } } */ /*---------------------------------------- ----------------------------------------*/ /* void SECT_DialogEnv::OnCancel() { // default env => cancel if (m_pEnvironment == m_pDefaultEnv) m_pEnvironment = NULL; // reinit controls fn_vInitEnvironment(m_pEnvironment, FALSE); // enable previous dialog m_pSectorInterface->GetDialogEnvs()->fn_vInitControls(TRUE); m_pSectorInterface->GetDialogSrf()->fn_vInitControls(TRUE); m_pSectorInterface->GetDialogEnvList()->fn_vInitControls(TRUE); } */ /*---------------------------------------- ----------------------------------------*/ /* void SECT_DialogEnv::OnSave() { // default env => create it if (m_pEnvironment == m_pDefaultEnv) { m_pEnvironment = new SECT_Environment(m_pSectorInterface, m_pMecEnvironment, m_pVisEnvironment, m_pSndEnvironment, m_csName); m_pEnvironment->fn_vNotifySave(); m_pSectorInterface->GetDialogEnvs()->fn_vInitEnvListBox(); } // enable previous dialog m_pSectorInterface->GetDialogEnvList()->fn_vInitControls(TRUE); m_pSectorInterface->GetDialogSrf()->fn_vInitControls(TRUE); m_pSectorInterface->GetDialogEnvs()->fn_vInitControls(TRUE); m_pSectorInterface->GetDialogEnvs()->fn_vSelectEnv(m_pEnvironment); } */ /*---------------------------------------- ----------------------------------------*/ /* void SECT_DialogEnv::OnSelChangeMecListBox(NMHDR* pNMHDR, LRESULT* pResult) { SECT_MecEnvironment *pMecEnv = NULL; LPNM_LISTVIEW pNMListView = (LPNM_LISTVIEW)pNMHDR; BOOL bOldSelect, bNewSelect; int iIndex; // update param *pResult = 0; if ((pNMListView->uChanged != LVIF_STATE)||(m_cMecListBox.fn_bIsSelecting())) return; bOldSelect = (pNMListView->uOldState & LVIS_SELECTED); bNewSelect = (pNMListView->uNewState & LVIS_SELECTED); // get corresponding sector iIndex = pNMListView->iItem; pMecEnv = (SECT_MecEnvironment *) m_cMecListBox.GetItemData(iIndex); g_pClickedMecEnv = pMecEnv; m_cMecListBox.SetSelectedItem(-1); if (bOldSelect != bNewSelect) { // no env or unavailable env => invalid if ((!pMecEnv)||(!pMecEnv->fn_bIsAvailable())) fn_vSelectMechanic(m_pMecEnvironment, FALSE); else if (pMecEnv != m_pMecEnvironment) fn_vSelectMechanic(pMecEnv, FALSE); } } */ /*---------------------------------------- ----------------------------------------*/ /* void SECT_DialogEnv::OnDblClkMecListBox(NMHDR* pNMHDR, LRESULT* pResult) { SECT_MecEnvironment *pMecEnv = NULL; // update param *pResult = 0; // get corresponding sector pMecEnv = g_pClickedMecEnv; g_pClickedMecEnv = NULL; // no env or unavailable env => invalid if ((!pMecEnv)||(!pMecEnv->fn_bIsAvailable())) fn_vSelectMechanic(m_pMecEnvironment); else fn_vSelectMechanic(pMecEnv); } */ /*---------------------------------------- ----------------------------------------*/ /* void SECT_DialogEnv::OnEditMec() { // no mecenv => no edition if (!m_pMecEnvironment) return; // disable dialog fn_vInitControls(FALSE); m_pSectorInterface->GetDialogSrf()->fn_vInitControls(FALSE); m_pSectorInterface->GetDialogEnvs()->fn_vInitControls(FALSE); m_pSectorInterface->GetDialogEnvList()->fn_vInitControls(FALSE); // update mechanic dialog m_pSectorInterface->GetDialogMec()->fn_vInitMecEnvironment(m_pMecEnvironment, TRUE); } */ /*---------------------------------------- ----------------------------------------*/ /* void SECT_DialogEnv::OnNewMec() { // disable dialog fn_vInitControls(FALSE); m_pSectorInterface->GetDialogSrf()->fn_vInitControls(FALSE); m_pSectorInterface->GetDialogEnvs()->fn_vInitControls(FALSE); m_pSectorInterface->GetDialogEnvList()->fn_vInitControls(FALSE); // set selection m_cMecListBox.SetSelectedItem(-1); m_pSectorInterface->GetDialogMec()->fn_vInitMecEnvironment(NULL, TRUE); } */ /*---------------------------------------- ----------------------------------------*/ /* void SECT_DialogEnv::OnSelChangeVisListBox(NMHDR* pNMHDR, LRESULT* pResult) { SECT_VisEnvironment *pVisEnv = NULL; LPNM_LISTVIEW pNMListView = (LPNM_LISTVIEW)pNMHDR; BOOL bOldSelect, bNewSelect; int iIndex; // update param *pResult = 0; if ((pNMListView->uChanged != LVIF_STATE)||(m_cVisListBox.fn_bIsSelecting())) return; bOldSelect = (pNMListView->uOldState & LVIS_SELECTED); bNewSelect = (pNMListView->uNewState & LVIS_SELECTED); // get corresponding sector iIndex = pNMListView->iItem; pVisEnv = (SECT_VisEnvironment *) m_cVisListBox.GetItemData(iIndex); g_pClickedVisEnv = pVisEnv; m_cVisListBox.SetSelectedItem(-1); if (bOldSelect != bNewSelect) { // no env or unavailable env => invalid if ((!pVisEnv)||(!pVisEnv->fn_bIsAvailable())) fn_vSelectVisual(m_pVisEnvironment, FALSE); else if (pVisEnv != m_pVisEnvironment) fn_vSelectVisual(pVisEnv, FALSE); } } */ /*---------------------------------------- ----------------------------------------*/ /* void SECT_DialogEnv::OnDblClkVisListBox(NMHDR* pNMHDR, LRESULT* pResult) { SECT_VisEnvironment *pVisEnv = NULL; // update param *pResult = 0; // get corresponding sector pVisEnv = g_pClickedVisEnv; g_pClickedVisEnv = NULL; // no env or unavailable env => invalid if ((pVisEnv)&&(!pVisEnv->fn_bIsAvailable())) fn_vSelectVisual(m_pVisEnvironment); else fn_vSelectVisual(pVisEnv); } */ /*---------------------------------------- ----------------------------------------*/ /* void SECT_DialogEnv::OnEditVis() { // no visenv => no edition if (!m_pVisEnvironment) return; // disable dialog fn_vInitControls(FALSE); m_pSectorInterface->GetDialogSrf()->fn_vInitControls(FALSE); m_pSectorInterface->GetDialogEnvs()->fn_vInitControls(FALSE); m_pSectorInterface->GetDialogEnvList()->fn_vInitControls(FALSE); // update mechanic dialog m_pSectorInterface->GetDialogVis()->fn_vInitVisEnvironment(m_pVisEnvironment, TRUE); } */ /*---------------------------------------- ----------------------------------------*/ /* void SECT_DialogEnv::OnNewVis() { // disable dialog fn_vInitControls(FALSE); m_pSectorInterface->GetDialogSrf()->fn_vInitControls(FALSE); m_pSectorInterface->GetDialogEnvs()->fn_vInitControls(FALSE); m_pSectorInterface->GetDialogEnvList()->fn_vInitControls(FALSE); // set selection m_cVisListBox.SetSelectedItem(-1); m_pSectorInterface->GetDialogVis()->fn_vInitVisEnvironment(NULL, TRUE); } */ /*---------------------------------------- ----------------------------------------*/ /* void SECT_DialogEnv::OnSelChangeSndListBox() { SECT_SndEnvironment *pSndEnv = NULL; int iInd; // no sound DLL => no change in sound environment if (!m_pSectorInterface->GetSoundEnvList()) return; // get corresponding element iInd = m_cSndListBox.GetCurSel(); if (iInd !=-1) pSndEnv = (SECT_SndEnvironment *) m_cSndListBox.GetItemData(iInd); // no env or unavailable env => invalid if ((pSndEnv)&&(!pSndEnv->fn_bIsAvailable())) fn_vSelectSound(m_pSndEnvironment); else if (pSndEnv != m_pSndEnvironment) fn_vSelectSound(pSndEnv); } */ //################################################################################# // SECT_EnvParamListBox //################################################################################# /*---------------------------------------- ----------------------------------------*/ /* SECT_EnvParamListBox::SECT_EnvParamListBox (void) { } */ /*---------------------------------------- ----------------------------------------*/ /* SECT_EnvParamListBox::~SECT_EnvParamListBox (void) { } */ /*---------------------------------------- ----------------------------------------*/ /* BOOL SECT_EnvParamListBox::fn_bIsCurrentElement (CPA_BaseObject *pElem) { SECT_Environment *pEnv; // no dialog => no current element if (!m_pDialog) return FALSE; // init parameters pEnv = ((SECT_DialogEnv *) m_pDialog)->GetCurrentEnv(); switch (m_eType) { case E_te_MecEnvironment: return ((pEnv)&&(pElem == pEnv->GetMecEnvironment())); case E_te_VisEnvironment: return ((pEnv)&&(pElem == pEnv->GetVisEnvironment())); case E_te_SndEnvironment: return ((pEnv)&&(pElem == pEnv->GetSndEnvironment())); case E_te_NoType: return FALSE; } return FALSE; } */ /*---------------------------------------- ----------------------------------------*/ /* BOOL SECT_EnvParamListBox::fn_bIsSelectedElement (CPA_BaseObject *pElem) { // no dialog => no selected element if (!m_pDialog) return FALSE; switch (m_eType) { case E_te_MecEnvironment: return (pElem == ((SECT_DialogEnv *) m_pDialog)->GetSelectedMecEnv()); case E_te_VisEnvironment: return (pElem == ((SECT_DialogEnv *) m_pDialog)->GetSelectedVisEnv()); case E_te_SndEnvironment: return (pElem == ((SECT_DialogEnv *) m_pDialog)->GetSelectedSndEnv()); case E_te_NoType: return FALSE; } return FALSE; } */ /*---------------------------------------- ----------------------------------------*/ /* BOOL SECT_EnvParamListBox::fn_bIsAlreadyUsed (CPA_BaseObject *pElem) { return FALSE; } */