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

📄 set_a_talkfun.c

📁 本程序是使用CDMA450模块开发的一个无线公话完整程序
💻 C
📖 第 1 页 / 共 2 页
字号:
		case KEY_UP:
		case KEY_DOWN:
			XListBoxKeyHandle(&gAlarmSelectWnd->lbox, msg->param1);
			break;
		//case KEY_MENU://yu add 1
		case KEY_OK:
			gAlarmSelectWnd->sel = XListBoxGetSelect(&gAlarmSelectWnd->lbox);
			XPostQuitMessage(&gAlarmSelectWnd->wnd);
			break;
		case KEY_CANCEL:
			gAlarmSelectWnd->sel = -1;
			XPostQuitMessage(&gAlarmSelectWnd->wnd);
			break;
		}
		break;
		default:
			XDefaultWindowProc(msg);
			break;
	}
	return 0;
}
static int AlarmXSelectWindow(int num, int defsel)
{
	rect		area;
	XMSG		msg;
	int			ret;
	
	
	gAlarmSelectWnd = (alarmsel_window_t*)malloc(sizeof(alarmsel_window_t));
	if (NULL == gAlarmSelectWnd)
		return -1;
	//Translate_xxChar(item;num);

	 //memcpy(gAlarmSelectWnd->item, item, num*sizeof(char*));
	//memcpy(gAlarmSelectWnd->item, Translate_xxChar((char**)item,num), num*sizeof(char*));;
	gAlarmSelectWnd->num = num;
	SetRect(&area, 0, LCD_ICONEND+1, LCD_WIDTH-1, LCD_HEIGHT-1);
XCreateWindow(NULL, &gAlarmSelectWnd->wnd, &area, NULL, AlarmselMainProc, FALSE);
//	XCreateWindow(NULL, &gAlarmSelectWnd->wnd, &area, NULL, selMainProc, saveBack);
	
	XCreateListBox(&gAlarmSelectWnd->wnd.comp, \
					&gAlarmSelectWnd->lbox, &area, \
					num, HZ_MAIN, AlarmOnDrawMainItem);
	gAlarmSelectWnd->sel = XListBoxSetCurrent(&gAlarmSelectWnd->lbox, defsel);
	
	XShowComponent(&gAlarmSelectWnd->wnd.comp);
	
	v_WriteLcdBuff();
	
	gAlarmSelectWnd->sel = -2;
	while (XGetMessage(&msg) != -1)
		XDispatchMessage(&msg);
	
	XDestroyWindow(&gAlarmSelectWnd->wnd);
	
	ret = gAlarmSelectWnd->sel;
	
	free(gAlarmSelectWnd);
	gAlarmSelectWnd = NULL;
	return ret;
}


#endif

void Set_3AlarmCLock()
{//rect area;
//char Numberbf[24]; 

int		selMenu, id = 1;

selMenu = 0;
while (id) {
	//id = cfgMainWnd(selMenu);// yu 显示所有菜单
//	id = XSelectWindow((char**)cfgName_, MAX_CFG_ITEM_, selMenu,TRUE);
	id = AlarmXSelectWindow(MAX_CFG_ITEM_3, selMenu);//,FALSE
	if (id < 0)
		break;
	selMenu = id;
	switch (id) {
	case 0:
	case 1:
	case 2:
		SetAlarmClock(id);//cfgRingPara();
		id = 1;
		break;
	default:
		id = 0;
		break;
	}
}
}

#endif
extern int u_LEDTIME_set(void);
void use_Set(void)
{//rect area;
//char Numberbf[24]; 

int		selMenu, id = 1;

selMenu = 0;
while (id) {
	//id = cfgMainWnd(selMenu);// yu 显示所有菜单
//	id = XSelectWindow((char**)cfgName_, MAX_CFG_ITEM_, selMenu,TRUE);
	id = XSelectWindow((char**)cfgName_, MAX_CFG_ITEM_, selMenu);//,FALSE
	if (id < 0)
		break;
	selMenu = id;
	switch (id) {
	case RING_set:
		u_ring_set();//cfgRingPara();
		id = 1;
		break;
	case RINGVOL_set:
		RingVOlAdjust();
		id = 1;
		break;
	case KeyBeep_set:
		KeyBeepSetWindow();
		id = 1;
		break;
		
	case TIME_set:
		timeSetWindow();
		id = 1;
		break;
			
	case TIME_FORMAT_set:
		timeFormatSet();
		id=1;
		break;
	case AlarmClock_set:
		Set_3AlarmCLock();
		id = 1;
		break;
	case KeyJJ_send_set:
		KeyJJSnedSet();
		id = 1;
		break;
	case LOWPOWER_set:
		u_LowP_alarm_set();
		id = 1;
		break;
//	case NET_set:
//		u_NET_set();
//		id = 1;
//		break;
	case SERVICE_set:
		u_Talk_set();
		id = 1;
		break;
	case SMSFUN_set:
		u_SMSFUN_set();
		id = 1;
		break;
	case CONTRAST_set:
		ContrastAdjust();
	//	ParaSetWindow(NULL);
		id = 1;
		break;
	case LEDTIME_set:
		u_LEDTIME_set();

		id = 1;
		break;
	default:
		id = 0;
		break;
	}
}
}
#endif
#if 1
enum TakTim_rec_t
{
	CURRENT_TKTM_REC,
	IN_TKTM_REC,
	OUT_TKTM_REC,
	ALL_TKTM_REC,
	CLS_TKTM_REC,

	MAX_TKTM_REC
};
const static char *TKTMcfgName[] = {
"最后计时",
"呼入的电话",
"呼出的电话",
"累计计时",
"计时器清零",
};

#if 1                                                                                    
//#include "mmalloc.h"
//#include "component.h"
#include "listbox.h"
//#include "window.h"
//#include "selectwnd.h"
//#include "translate.h"


typedef struct {
	window_t	wnd;
	listbox_t	lbox;
	char		*item[20];
	int			num;
	int			sel;
} sel_window_t;
static sel_window_t	*g2SelectWnd;                                                     

static int On2DrawMainItem(listbox_t *lb, rect *rc, int num)
{ 
char timeStr[20];

	if (num >= g2SelectWnd->num)                                                      
		return -1;                                                               
	                                                                                 
	MoveTo(rc->Xmin + 1, rc->Ymax-HZ_MAIN);                                                  
	DrawString((BYTE*)g2SelectWnd->item[num]);                                        
	if(num<CLS_TKTM_REC)
		{
		MoveTo(rc->Xmin + 1+20, rc->Ymax);
		sprintf(timeStr, "%d:%02d:%02d", \
			(gDevicePara.AllTKtimeRec.sec[num]/3600),\
			((gDevicePara.AllTKtimeRec.sec[num]%3600)/60),\
			(gDevicePara.AllTKtimeRec.sec[num]%60%60));
		DrawString((BYTE*)timeStr);                                        
		}
	return 0;                                                                        
}                                                                                        
                                                                                         
static int sel2MainProc(XMSG *msg)                                                        
{                                                                                        
	switch (msg->message) {                                                          
	case MSG_KEYDOWN:                                                                
		switch (msg->param1) {                                                   
		case KEY_UP:                                                             
		case KEY_DOWN:                                                           
			XListBoxKeyHandle(&g2SelectWnd->lbox, msg->param1);               
			break;                                                           
		//case KEY_MENU://yu add 1                                                 
		case KEY_OK:                                                             
			g2SelectWnd->sel = XListBoxGetSelect(&g2SelectWnd->lbox);          
			XPostQuitMessage(&g2SelectWnd->wnd);                              
			break;                                                           
		case KEY_CANCEL:                                                         
			g2SelectWnd->sel = -1;                                            
			XPostQuitMessage(&g2SelectWnd->wnd);                              
			break;                                                           
		}                                                                        
		break;                                                                   
		default:                                                                 
			XDefaultWindowProc(msg);                                         
			break;                                                           
	}                                                                                
	return 0;                                                                        
}                                                                                        
//yu int XSelectWindow(const char *item[], int num, int defsel)                          
int talkRECSelectWindow(char *item[], int num, int defsel)                                     
{                                                                                        
	rect		area;                                                            
	XMSG		msg;                                                             
	int			ret;                                                     
	                                                                                 
	                                                                                 
	g2SelectWnd = (sel_window_t*)malloc(sizeof(sel_window_t));                        
	if (NULL == g2SelectWnd)                                                          
		return -1;                                                               
	//Translate_xxChar(item;num);                                                    
                                                                                         
	//yu memcpy(g2SelectWnd->item, item, num*sizeof(char*));                          
	memcpy(g2SelectWnd->item, Translate_xxChar((char**)item,num), num*sizeof(char*));;
	g2SelectWnd->num = num;                                                           
	SetRect(&area, 0, LCD_ICONEND+1, LCD_WIDTH-1, LCD_HEIGHT-1);                     
XCreateWindow(NULL, &g2SelectWnd->wnd, &area, NULL, sel2MainProc, FALSE);                  
//	XCreateWindow(NULL, &g2SelectWnd->wnd, &area, NULL, selMainProc, saveBack);       
	                                                                                 
	XCreateListBox(&g2SelectWnd->wnd.comp, //\                                          
					&g2SelectWnd->lbox, &area, //\                      
					num, HZ_MAIN*2, On2DrawMainItem);                   
	g2SelectWnd->sel = XListBoxSetCurrent(&g2SelectWnd->lbox, defsel);                 
	                                                                                 
	XShowComponent(&g2SelectWnd->wnd.comp);                                           
	                                                                                 
	v_WriteLcdBuff();                                                                
	                                                                                 
	g2SelectWnd->sel = -2;                                                            
	while (XGetMessage(&msg) != -1)                                                  
		XDispatchMessage(&msg);                                                  
	                                                                                 
	XDestroyWindow(&g2SelectWnd->wnd);                                                
	                                                                                 
	ret = g2SelectWnd->sel;                                                           
	                                                                                 
	free(g2SelectWnd);                                                                
	g2SelectWnd = NULL;                                                               
	return ret;                                                                      
}                                                                                        

#endif




void TAKTIM_REC(void)
{
int		selMenu, id = 1;
	debug_print_str(DM_RUNINFO, (info_buffer, "通话计时.sec[0]: %d", gDevicePara.AllTKtimeRec.sec[0]));
	debug_print_str(DM_RUNINFO, (info_buffer, "in  计时.sec[1]: %d", gDevicePara.AllTKtimeRec.sec[1]));
	debug_print_str(DM_RUNINFO, (info_buffer, "out 计时.sec[2]: %d", gDevicePara.AllTKtimeRec.sec[2]));
	debug_print_str(DM_RUNINFO, (info_buffer, "通话计时.sec[3]: %d", gDevicePara.AllTKtimeRec.sec[3]));

	selMenu = 0;
	while(id)
	{
		id=talkRECSelectWindow((char**)TKTMcfgName, MAX_TKTM_REC, selMenu);//,FALSE
		if(id<0)
			break;
		selMenu = id;
		switch (id) {
			case CLS_TKTM_REC:
			//询问是否清除
			if (XMessageBox(NULL,TranslateChar("计时器清零?"), ID_OK) == ID_OK)
				{
				memset(&gDevicePara.AllTKtimeRec,0,sizeof(part_AllTKtimeRec_t));
				Para_Store(&gDevicePara);
				XTipWndShow(TranslateChar("设置成功"),1);
				id = 0;
				}
			else
				id = 1;
				break;
			default:
				id = 0;
				break;

		}
	}
}

#endif

⌨️ 快捷键说明

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