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());
    }
}
Exemple #2
0
/**
 * \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 );
            }
        }
    }
}
Exemple #3
0
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);
        }
    }
}