📄 genericinput.cpp
字号:
/*****************************************************************************
* Copyright Statement:
* --------------------
* This software is protected by Copyright and the information contained
* herein is confidential. The software may not be copied and the information
* contained herein may not be used or disclosed except with the written
* permission of MediaTek Inc. (C) 2005
*
* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
*
* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
*
* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
*
*****************************************************************************/
// GenericInput.cpp : implementation file
//
#include "stdafx.h"
#include "PixtelDataTypes.h"
#include "QMMINWSimulator.h"
#include "GenericInput.h"
#include "Format.h"
#include "Value.h"
#include "Var.h"
#include ".\genericinput.h"
IMPLEMENT_DYNAMIC(CGenericInput, CDialog)
CGenericInput::CGenericInput(CWnd* pParent /*=NULL*/)
: CDialog(CGenericInput::IDD, pParent)
{
}
CGenericInput::~CGenericInput()
{
}
void CGenericInput::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_EDIT_OUTGOING_MSG_NAME, out_going_msg_name);
DDX_Control(pDX, IDC_EDIT_OUTGOING_MSGID, out_going_msg_id);
DDX_Control(pDX, IDC_EDIT_INCOMING_MSG_NAME, incoming_msg_name);
DDX_Control(pDX, IDC_EDIT_INCOMING_MSG_ID, incoming_msg_id);
DDX_Control(pDX, IDC_LIST_DATASET_DETAILS, dataset_details);
DDX_Control(pDX, IDC_STATIC_INC_MSG_DETAILS, static_inc_msg_details);
DDX_Control(pDX, IDC_STATIC_INCOMING_MSG_NAME, static_inc_msg_name);
DDX_Control(pDX, IDC_STATIC_INCOMING_MSG_ID, static_inc_msg_id);
DDX_Control(pDX, IDC_STATIC_OUTGOING_MSG_DETAILS, static_outgoing_msg_details);
DDX_Control(pDX, IDC_STATIC_OUTGOING_MSG_NAME, static_out_msg_name);
DDX_Control(pDX, IDC_STATIC_OUTGOING_MSG_ID, static_outgoing_id);
DDX_Control(pDX, IDC_STATIC_DS_DETAILS, static_ds_details);
DDX_Control(pDX, ID_BUTTON_MAKEBUFFER, in_dlg_Send);
DDX_Control(pDX, IDC_BUTTON_ONCLOSE, in_dlg_Close);
}
BOOL CGenericInput::OnInitDialog()
{
CDialog::OnInitDialog();
/*Filling of the outgoing and incoming message edit boxes*/
char * buffer_for_msgid = (char*) malloc(20); /* this is reqd only for itoa and used for no oyher purpose*/
out_going_msg_name.SetWindowText(OutGoingMsgPtr->GetMessageName());
out_going_msg_id.SetWindowText(CString(itoa(OutGoingMsgPtr->GetMessageId(),buffer_for_msgid,10)));
if(cmessagemanager.m_plstIncomingMsg->GetCount())
{
for(POSITION pos = cmessagemanager.m_plstIncomingMsg->GetHeadPosition();pos!=NULL;)
{
CIncomingMsg * incoming_msg = (CIncomingMsg *)cmessagemanager.m_plstIncomingMsg->GetNext(pos);
if(incoming_msg->GetMessageId() == IncomingMsgID)
{
incoming_msg_name.SetWindowText(incoming_msg->GetMessageName());
incoming_msg_id.SetWindowText(CString(itoa(incoming_msg->GetMessageId(),buffer_for_msgid,10)));
}
}
}
free(buffer_for_msgid);
Inittext();
InitListDrop();
return 1;
}
void CGenericInput::SetLibraryIdentifier(HINSTANCE lib_id)
{
library_identifier = lib_id;
}
void CGenericInput::Inittext()
{
LoadString(library_identifier,IDS_STRING_INC_MSG_DETAILS,stringID_to_string.GetBuffer(MAX_LANG_RES_STRING_LEN+1),MAX_LANG_RES_STRING_LEN);
static_inc_msg_details.SetWindowText(stringID_to_string);
LoadString(library_identifier,IDS_STRING_MESSAGE_NAME,stringID_to_string.GetBuffer(MAX_LANG_RES_STRING_LEN+1),MAX_LANG_RES_STRING_LEN);
static_inc_msg_name.SetWindowText(stringID_to_string);
LoadString(library_identifier,IDS_STRING_MESSAGE_ID,stringID_to_string.GetBuffer(MAX_LANG_RES_STRING_LEN+1),MAX_LANG_RES_STRING_LEN);
static_inc_msg_id.SetWindowText(stringID_to_string);
LoadString(library_identifier,IDS_STRING_OUTGOING_DETAILS,stringID_to_string.GetBuffer(MAX_LANG_RES_STRING_LEN+1),MAX_LANG_RES_STRING_LEN);
static_outgoing_msg_details.SetWindowText(stringID_to_string);
LoadString(library_identifier,IDS_STRING_OUTGOING_NAME,stringID_to_string.GetBuffer(MAX_LANG_RES_STRING_LEN+1),MAX_LANG_RES_STRING_LEN);
static_out_msg_name.SetWindowText(stringID_to_string);
LoadString(library_identifier,IDS_STRING_OUTGOING_ID,stringID_to_string.GetBuffer(MAX_LANG_RES_STRING_LEN+1),MAX_LANG_RES_STRING_LEN);
static_outgoing_id.SetWindowText(stringID_to_string);
LoadString(library_identifier,IDS_STRING_DATASET_DETAILS,stringID_to_string.GetBuffer(MAX_LANG_RES_STRING_LEN+1),MAX_LANG_RES_STRING_LEN);
static_ds_details.SetWindowText(stringID_to_string);
LoadString(library_identifier,IDS_STRING_DLG_GEN_INP,stringID_to_string.GetBuffer(MAX_LANG_RES_STRING_LEN+1),MAX_LANG_RES_STRING_LEN);
SetWindowText(stringID_to_string);
LoadString(library_identifier,IDS_STRING_SEND,stringID_to_string.GetBuffer(MAX_LANG_RES_STRING_LEN+1),MAX_LANG_RES_STRING_LEN);
in_dlg_Send.SetWindowText(stringID_to_string);
LoadString(library_identifier,IDS_STRING_CLOSE,stringID_to_string.GetBuffer(MAX_LANG_RES_STRING_LEN+1),MAX_LANG_RES_STRING_LEN);
in_dlg_Close.SetWindowText(stringID_to_string);
}
CFormat* CGenericInput::GetFormatForMessage(CMessage *pMessage)
{
if(pMessage!=NULL)
{
CFormat *pFormat;
if(cmessagemanager.m_pFormatList->GetCount() > 0)//check if emtpy message list
{
for( POSITION pos = cmessagemanager.m_pFormatList->GetHeadPosition(); pos != NULL;)
{
pFormat = (CFormat*)(cmessagemanager.m_pFormatList->GetNext( pos )) ;
if(!(pMessage->GetFormat().CompareNoCase(pFormat->GetName())))
{
return pFormat;
}
}
}
}
return NULL;
}
void CGenericInput::InitListDrop()
{
CFormat * fmt_ptr_for_out_going_msg;
CDataList datalist_for_out_going_msg;
CString default_dataset_for_out_going_msg;
CData dataobj;
/*Initialisation of list drop window.....dataset deatils*/
int index = 1;
dataset_details.SetEditableColumns(index);
CMap<int,int,CString,CString&>* pList = new CMap<int,int,CString,CString&>();
LoadString(library_identifier,IDS_STRING_DATA_TYPE,stringID_to_string.GetBuffer(MAX_LANG_RES_STRING_LEN+1),MAX_LANG_RES_STRING_LEN);
dataset_details.InsertColumn(0,stringID_to_string,NON_EDITABLE,NULL,MAX_STR_RES_LEN,LVCFMT_LEFT,70,0);
LoadString(library_identifier,IDS_STRING_VAR_NAME,stringID_to_string.GetBuffer(MAX_LANG_RES_STRING_LEN+1),MAX_LANG_RES_STRING_LEN);
dataset_details.InsertColumn(1,stringID_to_string,NON_EDITABLE,NULL,MAX_STR_RES_LEN,LVCFMT_LEFT,70,0);
LoadString(library_identifier,IDS_STRING_DESCRIPTION_DATA_VAL,stringID_to_string.GetBuffer(MAX_LANG_RES_STRING_LEN+1),MAX_LANG_RES_STRING_LEN);
dataset_details.InsertColumn(2,stringID_to_string,NON_EDITABLE,NULL,MAX_STR_RES_LEN,LVCFMT_LEFT,70,0);
LoadString(library_identifier,IDS_STRING_VALUE,stringID_to_string.GetBuffer(MAX_LANG_RES_STRING_LEN+1),MAX_LANG_RES_STRING_LEN);
dataset_details.InsertColumn(3,stringID_to_string,EDITABLE,pList,MAX_STR_RES_LEN,LVCFMT_LEFT,70,0);
dataset_details.SetColumnWidth(0,100);
dataset_details.SetColumnWidth(1,100);
dataset_details.SetColumnWidth(2,200);
dataset_details.SetColumnWidth(3,200);
fmt_ptr_for_out_going_msg = GetFormatForMessage(OutGoingMsgPtr);
datalist_for_out_going_msg = fmt_ptr_for_out_going_msg->GetDataList();
default_dataset_for_out_going_msg = datalist_for_out_going_msg.GetDefault();
CList<CVar,CVar&> & varlist_outgoing = fmt_ptr_for_out_going_msg->GetVarList();
CList<CData,CData&> & dataset_list = datalist_for_out_going_msg.GetData();
index =0;
if(dataset_list.GetCount())
{
for(POSITION pos = dataset_list.GetHeadPosition();pos!=NULL;)
{
dataobj = (dataset_list.GetNext(pos));
if(!dataobj.GetName().CompareNoCase(default_dataset_for_out_going_msg))
{
CList<CValue,CValue&>& valuelist_outgoing = dataobj.GetValueList();
if(valuelist_outgoing.GetCount() && varlist_outgoing.GetCount())
{
POSITION pos2 = varlist_outgoing.GetHeadPosition();
for(POSITION pos1 = valuelist_outgoing.GetHeadPosition();pos1!=NULL;)
{
CValue val_for_listdrop = valuelist_outgoing.GetNext(pos1);
CVar var_for_listdrop = varlist_outgoing.GetNext(pos2);
dataset_details.InsertItem(index,var_for_listdrop.GetDataType().GetName());
dataset_details.SetItemText(index,1,var_for_listdrop.GetName());
dataset_details.SetItemText(index,2,val_for_listdrop.GetDescription());
dataset_details.SetItemText(index++,3,val_for_listdrop.GetSourceValue());
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -