void CPPageMessage::OnButtonAdd() { CMsgIDAttr odMsgDlg(mMsgAttributes); if (odMsgDlg.DoModal() == IDOK) { m_sNewItem.nCANID = odMsgDlg.m_nID; m_sNewItem.omCANIDName = odMsgDlg.m_omStrMsg; m_sNewItem.Colour = odMsgDlg.m_sColour; /* Addition of the new message attribute must be always successful because the validation is already done */ mMsgAttributes->nAddNewAttrib(m_sNewItem); if(m_pRGBColors == nullptr) { m_pRGBColors = (COLORREF*)malloc(sizeof(COLORREF)); } else { m_pRGBColors = (COLORREF*)realloc(m_pRGBColors, (m_odMsgList.GetItemCount()+1)* sizeof(COLORREF)); } nEnterMessageAttrib(m_sNewItem, m_odMsgList.GetItemCount()); } }
/** * \brief Add Edit Message * * Displays message detials dialog to add new message * or edit selecetd message base on the parameter passed. */ void CMsgSgTreeView::vAddEditMessage(BOOL bMode) { CMsgSignal* pTempMsgSg = NULL; CMsgSgDetView* pMsgSgDetView = NULL; pTempMsgSg = *((CMsgSignal**)m_sDbParams.m_ppvActiveDB); sMESSAGE* pMsg = NULL; // For Edit mode if ( bMode == TRUE ) { CTreeCtrl& omTree = GetTreeCtrl(); HTREEITEM hItem = omTree.GetSelectedItem(); if (hItem != NULL) { CString omStr = omTree.GetItemText(hItem); pMsg = pTempMsgSg->psGetMessagePointerInactive( omStr ); } } // End Edit mode CMessageDetailsDlg odMsgDlg(m_sDbParams, pMsg,NULL); if (odMsgDlg.DoModal() == IDOK ) { vSetMessageName(odMsgDlg.m_omStrMessageName); vSetTextBold(); // Get message pointer sMESSAGE* pMsg = pTempMsgSg->psGetMessagePointerInactive(odMsgDlg.m_omStrMessageName); CMainFrame* pMainFrm = static_cast<CMainFrame*> (AfxGetApp()->m_pMainWnd); if ( pMainFrm != NULL ) { pMsgSgDetView = pMainFrm->podGetMsgSgDetView(m_sDbParams.m_eBus); if ( pMsg != NULL && pMsgSgDetView != NULL ) { // check if the controls in the form view are hidden if ( pMsgSgDetView->bGetControlStatus() == TRUE )// TRUE - Hidden { // Controls are hidden, unhide pMsgSgDetView->vHideControls(SW_SHOW); } pMsgSgDetView->vDisplayMsgSgInformation( pMsg ); } } } }
void CPPageMessage::OnButtonEdit() { int nCurrSel = m_odMsgList.GetNextItem(-1, LVNI_SELECTED); if (nCurrSel >= 0) { CMessageAttrib& ouMsg = CMessageAttrib::ouGetHandle(m_eBusType); CString omARow = m_odMsgList.GetItemText(nCurrSel, 0); UINT unMsgID; sscanf_s((LPCTSTR) omARow, "%X", &unMsgID); ouMsg.nGetAttrib(unMsgID, m_sNewItem); CMsgIDAttr odMsgDlg(m_eBusType); odMsgDlg.m_nID = m_sNewItem.nCANID; odMsgDlg.m_sColour = m_sNewItem.Colour; odMsgDlg.m_omStrMsg = m_sNewItem.omCANIDName; odMsgDlg.m_bForEdit = true; odMsgDlg.m_bDBMessage = m_bForDBMsg; odMsgDlg.m_nPreviousID = m_sNewItem.nCANID; if (odMsgDlg.DoModal() == IDOK) { m_sNewItem.omCANIDName = odMsgDlg.m_omStrMsg; m_sNewItem.nCANID = odMsgDlg.m_nID; m_sNewItem.Colour = odMsgDlg.m_sColour; if(odMsgDlg.m_nPreviousID == m_sNewItem.nCANID) //if ID is not changed then just modify the current one { ouMsg.nModifyAttrib(m_sNewItem); } else //if the ID has changed then first remove the structure with old ID and then save the new ID { int nResult = ouMsg.nRemoveAttrib(odMsgDlg.m_nPreviousID); if (nResult == 0) { ouMsg.nAddNewAttrib(m_sNewItem); } } m_odMsgList.DeleteItem(nCurrSel); nEnterMessageAttrib(m_sNewItem, nCurrSel); m_odMsgList.EnsureVisible(nCurrSel, FALSE); } } }