📄 set_a_talkfun.c
字号:
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 + -