⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 globalfrequencytimerchange.cpp

📁 mtk simulator v2 new source code
💻 CPP
📖 第 1 页 / 共 2 页
字号:
/*****************************************************************************
*  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).
*
*****************************************************************************/
// GlobalFrequencyTimerChange.cpp : implementation file
//

#include "stdafx.h"
#include "QMMINWSimulator.h"
#include "GlobalFrequencyTimerChange.h"
#include "OutgoingMessage.h"
#include "NWGCMLHandler.h"
#include "GlobalConstants.h"



IMPLEMENT_DYNAMIC(CGlobalFrequencyTimerChange, CDialog)
CGlobalFrequencyTimerChange::CGlobalFrequencyTimerChange(CWnd* pParent /*=NULL*/)
	: CDialog(CGlobalFrequencyTimerChange::IDD, pParent)
{
	dummy = (char*) malloc(sizeof(char)*20); // Just for some char operations like itoa
	messagemanager = new CMessageManager();
	TreeCtrlForFreqTimer.SetCheckButtonOperatable(0); // to make check button unoperateable
	m_DialogStateChange = 0;
}

CGlobalFrequencyTimerChange::~CGlobalFrequencyTimerChange()
{
	free(dummy); // Dealocating dummy
	free(messagemanager);
}

void CGlobalFrequencyTimerChange::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);

	DDX_Control(pDX, IDC_COMBO_FREQUENCY, mFreq);
	DDX_Control(pDX, IDC_COMBO_TIMER, mTimer);
	DDX_Control(pDX, IDC_EDIT_FREQ_TMR, total);
	DDX_Control(pDX, IDC_CMB_DEFAULT_DATASET, cmbDefaultDataSet);
	DDX_Control(pDX, IDC_STATIC_FREQ_TIMER_MODI, static_freq_timer);
	DDX_Control(pDX, IDC_STATIC_FREQ_TIMER_MODI2, static_freq_timer_details);
	DDX_Control(pDX, IDC_STATIC_TOTAL_FT, static_total_ft);
	DDX_Control(pDX, IDC_STATIC_FREQU, static_freq);
	DDX_Control(pDX, IDC_STATIC_TIMR, static_timer);
	DDX_Control(pDX, IDCANCEL, close_button);
	DDX_Control(pDX, IDOK, save_button);
	DDX_Control(pDX, IDC_STATIC_FREQU2, static_dataset);
}


BEGIN_MESSAGE_MAP(CGlobalFrequencyTimerChange, CDialog)
	ON_WM_WINDOWPOSCHANGING()
	ON_BN_CLICKED(IDCANCEL, OnBnClickedCancel)
	ON_MESSAGE(WM_SENDVALUE,OnClickChangeCTreeCtrl)
	ON_CBN_SELCHANGE(IDC_COMBO_FREQUENCY, OnCbnSelchangeComboFrequency)
	ON_CBN_SELENDOK(IDC_COMBO_FREQUENCY, OnCbnSelendokComboFrequency)
	ON_CBN_EDITCHANGE(IDC_COMBO_FREQUENCY, OnCbnEditchangeComboFrequency)
	ON_BN_CLICKED(IDOK, OnBnClickedOk)
	ON_CBN_KILLFOCUS(IDC_COMBO_TIMER, OnCbnKillfocusComboTimer)
	ON_CBN_SELCHANGE(IDC_COMBO_TIMER, OnCbnSelchangeComboTimer)
	ON_CBN_SELENDOK(IDC_COMBO_TIMER, OnCbnSelendokComboTimer)
	ON_CBN_SETFOCUS(IDC_COMBO_FREQUENCY, OnCbnSetfocusComboFrequency)
	ON_CBN_SETFOCUS(IDC_COMBO_TIMER, OnCbnSetfocusComboTimer)
END_MESSAGE_MAP()


LRESULT CGlobalFrequencyTimerChange::OnClickChangeCTreeCtrl(WPARAM a,LPARAM treeitem)
{
	HTREEITEM *titem = (HTREEITEM*)treeitem;
	 int checkstate;
	UINT32 freqvalue,timervalue,MessageId;
	bool treeitemstate;
	CString msg, strcontroltxt; // strcontroltxt is to set dynamically the text  of Static text for  datasset
	CString defaultdatasetname;
	int treelevel;
	treelevel=0;
	HTREEITEM temptreeitem = *titem;
		while(temptreeitem )
		{
			treelevel++;
			temptreeitem = TreeCtrlForFreqTimer.GetParentItem(temptreeitem );
		}
		
		switch(treelevel)
		{
		case 4:/*---Tree level 4 shows its a Dataset ----------------------------------*/
			
			
			
			
			msg = TreeCtrlForFreqTimer.GetItemText(TreeCtrlForFreqTimer.GetParentItem(*titem));
			MessageId = _ttoi(msg);
			
			if(m_DialogStateChange==1) // ask for change of values
			{
				if( AfxMessageBox(IDS_STRING_DO_U_WANT_TO_SAVE_FT,MB_YESNO)==IDYES)
				{
					SaveFreqTimer();
				}
				else
				{
					m_DialogStateChange=0;
					save_button.EnableWindow(0);
					freqvalue = messagemanager->GetFreq(MessageId,m_Dataset);
					checkstate = (freqvalue>1)?1:0;
					TreeCtrlForFreqTimer.SetCheck(PrevTreeItem,checkstate);
					TreeCtrlForFreqTimer.SetParentalCheckState(PrevTreeItem,checkstate);

				}
			}
		
			msg = TreeCtrlForFreqTimer.GetItemText(TreeCtrlForFreqTimer.GetParentItem(*titem));
			MessageId = _ttoi(msg); 
			m_MsgId		= MessageId ;
			m_Dataset	= TreeCtrlForFreqTimer.GetItemText(*titem);
			freqvalue = messagemanager->GetFreq (MessageId,TreeCtrlForFreqTimer.GetItemText(*titem));
			timervalue= messagemanager->GetTimer(MessageId,TreeCtrlForFreqTimer.GetItemText(*titem));
			
			mFreq.EnableWindow(1);
			(freqvalue>1)?mTimer.EnableWindow(1):mTimer.EnableWindow(0);// if freq > 1 only then there is a use of timer
			// if check box is checked, only then we have to show freq and timer
			// other wise if uncheked the freq =1,timer =0
			treeitemstate=TreeCtrlForFreqTimer.GetCheck(TreeCtrlForFreqTimer.GetSelectedItem());  
			if(freqvalue>1 &&timervalue ==0) timervalue =1;
			
			if(freqvalue>MAXFREQ)	freqvalue	=	MAXFREQ;
			if(timervalue>MAXTIMER)	timervalue	=	MAXTIMER;

			if(freqvalue>1 && (treeitemstate== true))
			{
				mFreq.SetCurSel(freqvalue-1);
				mTimer.SetCurSel(timervalue);
			}
			else
			{
				mFreq.SetCurSel(0);
				mTimer.SetCurSel(0);
				mTimer.EnableWindow(0);
			}

			LoadString(library_identifier,IDS_STRING_DS_INPUT_MODE,strcontroltxt.GetBuffer(MAX_LANG_RES_STRING_LEN+1),MAX_LANG_RES_STRING_LEN);
			static_dataset.SetWindowText(strcontroltxt); 
			cmbDefaultDataSet.SetWindowText(TreeCtrlForFreqTimer.GetItemText(*titem));
			break;

		case 3:/*--Tree level 3 shows its a  Message ----------------------------------*/
			


			if(m_DialogStateChange==1)
			{
				if( AfxMessageBox(IDS_STRING_DO_U_WANT_TO_SAVE_FT,MB_YESNO)==IDYES)
				{
					SaveFreqTimer();
				}
				else
				{
					m_DialogStateChange=0;
					save_button.EnableWindow(0);
					msg = TreeCtrlForFreqTimer.GetItemText(TreeCtrlForFreqTimer.GetParentItem(PrevTreeItem));
					MessageId = _ttoi(msg);
					freqvalue = messagemanager->GetFreq(MessageId,m_Dataset);
					checkstate = (freqvalue>1)?1:0;
					TreeCtrlForFreqTimer.SetCheck(PrevTreeItem,checkstate);
					TreeCtrlForFreqTimer.SetParentalCheckState(PrevTreeItem,checkstate);
				}
			}
			save_button.EnableWindow(0);
			mFreq.SetCurSel(-1); //if message have no dataset
			mTimer.SetCurSel(-1);
			mTimer.EnableWindow(0);
			mFreq.EnableWindow (0);
			msg = TreeCtrlForFreqTimer.GetItemText(TreeCtrlForFreqTimer.GetSelectedItem());
			MessageId = _ttoi(msg);  
			m_MsgId = MessageId ;
			freqvalue = messagemanager->GetFreq (MessageId,CString(""));
			timervalue= messagemanager->GetTimer(MessageId,CString(""));

			if(freqvalue>1 &&timervalue ==0) timervalue =1;

			if(freqvalue>MAXFREQ)	freqvalue	=	MAXFREQ; // it will preserve the combo from loading the value greater than MAXFREQ, or MAXTIMEr
			if(timervalue>MAXTIMER)	timervalue	=	MAXTIMER;

			// mFreq.EnableWindow(1); // About enabling the freq and timer combos
			//(freqvalue>1)?mTimer.EnableWindow(1):mTimer.EnableWindow(0);// if freq > 1 only then there is a use of timer
			
			if(messagemanager->GetPluginStatusFromMsgId(MessageId)==1)//it shows message is having plugin
			{
				cmbDefaultDataSet.SetWindowText(CString("Plugin"));
			}
			else
			{
				if(freqvalue>1)
				{
					mFreq.SetCurSel(freqvalue-1);
					mTimer.SetCurSel(timervalue);
				}
				else
				{
					mFreq.SetCurSel(0);
					mTimer.SetCurSel(0);

				}
				defaultdatasetname = messagemanager->GetDefaultDataSetForMessage(MessageId); 
				LoadString(library_identifier,IDS_STRING_DEFAULT_DS,strcontroltxt.GetBuffer(MAX_LANG_RES_STRING_LEN+1),MAX_LANG_RES_STRING_LEN);
				static_dataset.SetWindowText(strcontroltxt); //when message is selected then there should be Default Dataset in the static control
				cmbDefaultDataSet.SetWindowText(defaultdatasetname);
			}

			// if message is selected, then its default dataset will be considered
			// and displayed in default dataset 
			break;

		case 2:/*--Tree level 2 shows its a  Message Sequence -------------------------*/
			if(m_DialogStateChange==1)
			{
				//CString resultant_string;
				//AfxFormatString1(resultant_string,IDS_STRING_FT_SAVE_CONFIRMATION,m_Dataset);
				if( AfxMessageBox(IDS_STRING_DO_U_WANT_TO_SAVE_FT,MB_YESNO)==IDYES)
				{
					SaveFreqTimer();
				}
				else
				{
					m_DialogStateChange=0;
					save_button.EnableWindow(0);
					msg = TreeCtrlForFreqTimer.GetItemText(TreeCtrlForFreqTimer.GetParentItem(PrevTreeItem));
					MessageId = _ttoi(msg);
					freqvalue = messagemanager->GetFreq(MessageId,m_Dataset);
					checkstate = (freqvalue>1)?1:0;
					TreeCtrlForFreqTimer.SetCheck(PrevTreeItem,checkstate);
					TreeCtrlForFreqTimer.SetParentalCheckState(PrevTreeItem,checkstate);
				}
			}
			save_button.EnableWindow(0);
			mFreq.SetCurSel(-1); //nothing will appear in the combo boxes
			mTimer.SetCurSel(-1);
			mTimer.EnableWindow(0);
			mFreq.EnableWindow (0);
			LoadString(library_identifier,IDS_STRING_DEFAULT_DS,strcontroltxt.GetBuffer(MAX_LANG_RES_STRING_LEN+1),MAX_LANG_RES_STRING_LEN);
			static_dataset.SetWindowText(strcontroltxt);
			cmbDefaultDataSet.SetWindowText(CString("Not Applicable"));
			break;
		case 1:/*--Tree level 1 shows its root ----------------------------------------*/
			
			
			if(m_DialogStateChange==1)
			{
				//CString resultant_string;
				//AfxFormatString1(resultant_string,IDS_STRING_FT_SAVE_CONFIRMATION,m_Dataset);
				if( AfxMessageBox(IDS_STRING_DO_U_WANT_TO_SAVE_FT,MB_YESNO)==IDYES)
				{
					SaveFreqTimer();
				}
				else
				{
					m_DialogStateChange=0;
					save_button.EnableWindow(0);
					msg = TreeCtrlForFreqTimer.GetItemText(TreeCtrlForFreqTimer.GetParentItem(PrevTreeItem));
					MessageId = _ttoi(msg);
					freqvalue = messagemanager->GetFreq(MessageId,m_Dataset);
					checkstate = (freqvalue>1)?1:0;
					TreeCtrlForFreqTimer.SetCheck(PrevTreeItem,checkstate);
					TreeCtrlForFreqTimer.SetParentalCheckState(PrevTreeItem,checkstate);
				}
			}

			save_button.EnableWindow(0);
			mFreq.SetCurSel(-1); //nothing will appear in the combo boxes
			mTimer.SetCurSel(-1);
			mTimer.EnableWindow(0);
			mFreq.EnableWindow (0);
			LoadString(library_identifier,IDS_STRING_DEFAULT_DS,strcontroltxt.GetBuffer(MAX_LANG_RES_STRING_LEN+1),MAX_LANG_RES_STRING_LEN);
			static_dataset.SetWindowText(strcontroltxt);
			cmbDefaultDataSet.SetWindowText(CString("Not Applicable"));
			break;
		}
		
			total.SetWindowText(CString(itoa( GetTotalNoFreqMsg(TreeCtrlForFreqTimer.GetRootItem()), dummy,10)));

	PrevTreeItem = *titem;
	return TRUE;
}

// CGlobalFrequencyTimerChange message handlers

BOOL CGlobalFrequencyTimerChange::OnInitDialog()
{
	CDialog::OnInitDialog();
/*******************Text Initialisation*********************************/
	InitText();
	CString strXMLEvent;
	UINT32	AppId;
	int iCount=0;
	CPtrList * p_lstAppLst;
	CNWGCMLHandler tempobj;
	CPtrList *ptrAyncEventsList; 

	char *dummy = (char*) malloc(20);

	/*-----------------------------------------------------------------------------*/
	TreeCtrlForFreqTimer.Create(WS_CHILD | WS_VISIBLE | WS_BORDER | TVS_HASBUTTONS |WS_TABSTOP|
		                  TVS_LINESATROOT | TVS_HASLINES |TVS_CHECKBOXES | TVS_SHOWSELALWAYS, 
						  CRect (25, 30, 350, 210), this, 101 ) ;

	TreeCtrlForFreqTimer.ModifyStyle( TVS_CHECKBOXES, 0 );
	TreeCtrlForFreqTimer.ModifyStyle( 0, TVS_CHECKBOXES );


	HTREEITEM hRoot = TreeCtrlForFreqTimer.InsertItem(_T("Outgoing Messages"));
	TreeCtrlForFreqTimer.SetItemData(hRoot, 0);
	iCount = 0;

	p_lstAppLst= tempobj.GetApplicationList() ;

	if(p_lstAppLst && p_lstAppLst->GetCount()>0)//check if emtpy message list 
	{	
		for( POSITION pos = p_lstAppLst->GetHeadPosition(); pos != NULL;)
		{
			CApplication *pApplication = (CApplication *)p_lstAppLst->GetNext( pos ) ;
			strXMLEvent = pApplication->GetApplicationName();
			AppId = pApplication->GetAppId();
			
			ptrAyncEventsList = GetAllOutMsgForApp(AppId);

			HTREEITEM h1 =TreeCtrlForFreqTimer.InsertItem(CString(itoa(AppId,dummy,10))+CString(":") +strXMLEvent, hRoot);			
			TreeCtrlForFreqTimer.SetItemData(h1,1);
			AddDataListInTree(ptrAyncEventsList,strXMLEvent,h1);
		}

	}
cmbDefaultDataSet.EnableWindow(FALSE); 
TreeCtrlForFreqTimer.SetFocus();
InitFrequencyTimerCombo();
//Just to fill the total 
OnClickChangeCTreeCtrl(0,(LPARAM)TreeCtrlForFreqTimer.GetSelectedItem());
return 1;

}

void CGlobalFrequencyTimerChange::SetLibraryIdentifier(HINSTANCE lib_id)
{
	library_identifier = lib_id;
}

void CGlobalFrequencyTimerChange::InitText()
{
	LoadString(library_identifier,IDS_STRING_FREQ_TMR_DETAILS,stringID_to_string.GetBuffer(MAX_LANG_RES_STRING_LEN+1),MAX_LANG_RES_STRING_LEN);
	static_freq_timer_details.SetWindowText(stringID_to_string);

	LoadString(library_identifier,IDS_STRING_CHK_UCHK_FREQ_TIMER,stringID_to_string.GetBuffer(MAX_LANG_RES_STRING_LEN+1),MAX_LANG_RES_STRING_LEN);
	static_freq_timer.SetWindowText(stringID_to_string);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -