📄 screateevent.c
字号:
MAKE_RGB(255,0,0),
&pme->rect,
MP_MAXSOFTKEYITEMS
);
/*有闹钟提示*/
SH_AddMenuItem((IMenuCtl *)pme->m_Obj, IDS_ALARMH, NULL, IDI_SAT, IDS_ALARMH,0);
/*无闹钟提示*/
SH_AddMenuItem((IMenuCtl *)pme->m_Obj, IDS_ALARMN, NULL, IDI_SAT, IDS_ALARMN,0);
/*设置菜单的属性*/
IMENUCTL_SetProperties((IMenuCtl *)pme->m_Obj,MP_WRAPSCROLL);
if( pme->alarmType != 0)
IMENUCTL_SetSel((IMenuCtl *)pme->m_Obj,pme->alarmType);
IMENUCTL_SetActive( (IMenuCtl *)pme->m_Obj, TRUE);
IMENUCTL_Redraw( (IMenuCtl *)pme->m_Obj );
/*ImageHeader*/
SH_DRAWHEADER(pme);
/*bottomCommand*/
SCEvent_DrawBottomScreen(pme);
/*备忘录状态设置闹钟*/
pme->appState = appS;
return TRUE;
}
/**************************************************************************
* Function Name : SCEvent_CreatArlamTimeScreen
* Description : 设置闹钟时间
* Input Parameters : CreateEventWin* pme, AppState appS
* Output Parameters: None
* Return Value : boolean
* Date : 2007/04/16
* Author : ZhongNingLin@neusoft.com
***************************************************************************/
static boolean SCEvent_CreatArlamTimeScreen(CreateEventWin* pme, AppState appS)
{
AECHAR arlamTime[] = { 0x95f9, 0x949f, 0x65f6, 0x95f4, 0xff1a, 0 }; //闹钟时间:
AECHAR timeSet[] = { 0x8bf7, 0x8bbe, 0x65f6, 0x95f4, 0xff1a, 0 }; //请设时间:
AECHAR *title = NULL;
int fontHe = 0;
int fontWi = 0;
/*屏幕宽度*/
int screenW = pme->m_pOwner->DeviceInfo.cxScreen;
/*屏幕高度*/
int screenH = pme->m_pOwner->DeviceInfo.cyScreen;
if( appS == APP_TELPHON_TIME)
title = timeSet;
else
title = arlamTime;
if( pme->m_Obj != NULL)
ReleaseObj(&pme->m_Obj);
/*时间控件*/
if( (ISHELL_CreateInstance(pme->m_pIShell, AEECLSID_CLOCKCTL, (void**)(&pme->m_Obj)) != SUCCESS ) )
return FALSE;
/*字体宽度*/
fontWi = IDISPLAY_MeasureText( pme->m_pIDisplay, AEE_FONT_NORMAL, title );
/*文字的高度*/
fontHe = IDISPLAY_GetFontMetrics( pme->m_pIDisplay,AEE_FONT_NORMAL,NULL,NULL );
IDISPLAY_DrawText(pme->m_pIDisplay,AEE_FONT_NORMAL,title,-1,0,20,NULL,IDF_TEXT_TRANSPARENT);
SETAEERECT( &pme->rect, 0, screenH/3, screenW,fontHe + 10 );
ITIMECTL_SetRect( (ITimeCtl *)pme->m_Obj, &pme->rect);
ITIMECTL_SetTime( (ITimeCtl *)pme->m_Obj, 0);
ITIMECTL_SetActive( (ITimeCtl *)pme->m_Obj, TRUE);
/*ImageHeader*/
SH_DRAWHEADER(pme);
/*bottomCommand*/
SCEvent_DrawBottomScreen(pme);
/*备忘录状态设置闹钟*/
pme->appState = appS;
return TRUE;
}
/**************************************************************************
* Function Name : SCEvent_goEventShow
* Description : 计时器回调函数
* Input Parameters : CreateEventWin* pme
* Output Parameters: None
* Return Value : None
* Date : 2007/04/16
* Author : ZhongNingLin@neusoft.com
***************************************************************************/
static void SCEvent_goEventShow(CreateEventWin* pme)
{
/*取消计时器*/
ISHELL_CancelTimer(pme->m_pIShell, (PFNNOTIFY) SCEvent_goEventShow, pme);
/*到该日的时间列表窗口*/
Schedule_SetWindow(pme->m_pOwner, APP_STATE_ONEDAYDISP, 0);
}
/**************************************************************************
* Function Name : SCEvent_MemoSavedScreen
* Description : 显示存否
* Input Parameters : CreateEventWin* pme
* Output Parameters: None
* Return Value : boolean
* Date : 2007/04/16
* Author : ZhongNingLin@neusoft.com
***************************************************************************/
static boolean SCEvent_MemoSavedScreen(CreateEventWin* pme)
{
const AECHAR memoSaved[] = { 0x5907, 0x5fd8, 0x5f55, 0x5df2, 0x5b58, 0 }; //备忘录已存
int fontHe = 0;
int fontWi = 0;
/*屏幕宽度*/
int screenW = pme->m_pOwner->DeviceInfo.cxScreen;
/*屏幕高度*/
int screenH = pme->m_pOwner->DeviceInfo.cyScreen;
/*字体宽度*/
fontWi = IDISPLAY_MeasureText( pme->m_pIDisplay, AEE_FONT_NORMAL, memoSaved );
/*文字的高度*/
fontHe = IDISPLAY_GetFontMetrics( pme->m_pIDisplay,AEE_FONT_NORMAL,NULL,NULL );
//if( pme->appState == APP_MEMO_ALARM || pme->appState == APP_MEMO_ALARMTIME)
// SC_saveMemo(pme);
IDISPLAY_DrawText(pme->m_pIDisplay,AEE_FONT_NORMAL,memoSaved,-1,
screenW/2 - fontWi/2,screenH/2,NULL,IDF_TEXT_TRANSPARENT);
/*ImageHeader*/
SH_DRAWHEADER(pme);
IDISPLAY_Update(pme->m_pIDisplay);
ISHELL_SetTimer(
pme->m_pIShell,
MP_SPLASH_TIMER,
(PFNNOTIFY)SCEvent_goEventShow,
pme
);
switch( pme->appState )
{
case APP_MEMO_ALARM:
case APP_MEMO_ALARMTIME:
SC_saveMemo(pme);
break;
case APP_BRITHDATY_ALARM:
SC_SaveBrthDay( pme );
break;
case APP_TELPHON_ALARM:
SC_SaveTleNo( pme );
default:
break;
}
return TRUE;
}
/**************************************************************************
* Function Name : SCEvent_BrithDateScreen
* Description : 显示存否
* Input Parameters : CreateEventWin* pme
* Output Parameters: None
* Return Value : boolean
* Date : 2007/04/16
* Author : ZhongNingLin@neusoft.com
***************************************************************************/
static boolean SCEvent_BrithDateScreen(CreateEventWin* pme)
{
const AECHAR brithDate[] = { 0x51fa, 0x751f, 0x5e74, 0x4efd, 0xff1a, 0 }; //出生年份:
/*屏幕宽度*/
int screenW = pme->m_pOwner->DeviceInfo.cxScreen;
/*屏幕高度*/
int screenH = pme->m_pOwner->DeviceInfo.cyScreen;
if( pme->m_Obj != NULL)
ReleaseObj(&pme->m_Obj);
/*清空数字数组*/
//pme->digitalNumber[0] = '\0';
if( (ISHELL_CreateInstance(pme->m_pIShell, AEECLSID_TEXTCTL, (void**)(&pme->m_Obj)) != SUCCESS ) )
return FALSE;
SETAEERECT( &pme->rect, 0, screenH/3, screenW, 24 );
/*文本控件重置(释放或删除)其内容,并立即离开激活/焦点模式*/
ITEXTCTL_Reset( (ITextCtl*)pme->m_Obj );
ITEXTCTL_SetRect( (ITextCtl*)pme->m_Obj, &pme->rect );
ITEXTCTL_SetText((ITextCtl*)pme->m_Obj,pme->digitalNumber,MAX_DIGT_SIZE);
ITEXTCTL_SetProperties( (ITextCtl*)pme->m_Obj,TP_FRAME );
ITEXTCTL_SetInputMode( (ITextCtl*)pme->m_Obj, AEE_TM_ARABIC_R );
ITEXTCTL_SetMaxSize( (ITextCtl*)pme->m_Obj, 4 );
/*激活文本控件*/
ITEXTCTL_SetActive( (ITextCtl*)pme->m_Obj,TRUE );
/*显示出生年份*/
IDISPLAY_DrawText(pme->m_pIDisplay,AEE_FONT_NORMAL,brithDate,-1,0,20,NULL,IDF_TEXT_TRANSPARENT);
/*生日出生年份*/
pme->appState = APP_BRITHDATY_DATE;
SH_DRAWHEADER(pme);
/*display the bottom command*/
SCEvent_DrawBottomScreen(pme);
IDISPLAY_Update(pme->m_pIDisplay);
return TRUE;
}
/**************************************************************************
* Function Name : CWeekWin_HandleEvent
* Description : handle current window events
* Input Parameters : IWindow * , AEEEvent , uint16 , uint32
* Output Parameters: None
* Return Value : boolean
* Date : 2007/04/16
* Author : ZhongNingLin@neusoft.com
***************************************************************************/
boolean CCEventWin_HandleEvent(IWindow * po, AEEEvent eCode, uint16 wParam, uint32 dwParam)
{
CreateEventWin * pme = (CreateEventWin *)po;
if( pme->m_Obj == NULL)
return FALSE;
switch(pme->appState)
{
case APP_TELPHON: /*通话*/
case APP_TELPHON_NAME: /*通话姓名*/
case APP_BRITHDATY: /*生日状态*/
case APP_MEMO: /*备忘录状态*/
case APP_BRITHDATY_DATE: /*出生年份*/
if( SC_ProcessTextEvent(pme,eCode, wParam, dwParam,(ITextCtl *)pme->m_Obj) )
return TRUE;
break;
case APP_TELPHON_ALARM:/*通话闹钟*/
case APP_MEMO_ALARM:/*备忘录状态下的闹钟设置*/
case APP_BRITHDATY_ALARM:/*生日状态下的闹钟设置*/
if( IMENUCTL_HandleEvent( (IMenuCtl *)pme->m_Obj,eCode, wParam, dwParam) )
return TRUE;
break;
case APP_TELPHON_TIME:
case APP_MEMO_ALARMTIME:
if( ITIMECTL_HandleEvent( (ITimeCtl *)pme->m_Obj,eCode, wParam, dwParam) )
return TRUE;
break;
default:
break;
}
/*process key events*/
if( SH_ISEVTKEY(eCode) || SH_ISEVTCMD(eCode))
{
switch(wParam)
{
case IDS_ALARMN:
pme->alarmType = IDS_ALARMN;
IDISPLAY_ClearScreen(pme->m_pIDisplay);
SCEvent_MemoSavedScreen(pme);
return TRUE;
case IDS_ALARMH:
pme->alarmType = IDS_ALARMH;
case AVK_SELECT:
case AVK_SOFT1:/*确认*/
IDISPLAY_ClearScreen(pme->m_pIDisplay);
switch(pme->appState)
{
case APP_MEMO:/*备忘录状态*/
SC_setMemoContent(pme);/*到下一个界面之前储存备忘录内容*/
SCEvent_CreatArlamScreen(pme,APP_MEMO_ALARM);/*备忘录状态下的闹钟设置*/
return TRUE;
case APP_BRITHDATY: /*生日状态*/
/*到下一个界面之前储存生日人姓名*/
SC_setBrthName(pme);
SCEvent_BrithDateScreen(pme);
return TRUE;
case APP_BRITHDATY_DATE:/*出生年份*/
/*到下一个界面之前设置生日人年龄*/
SC_setBrthAge(pme);
SCEvent_CreatArlamScreen(pme,APP_BRITHDATY_ALARM);/*生日状态下的闹钟设置*/
return TRUE;
case APP_MEMO_ALARM:/*备忘录状态下的闹钟设置*/
/*有闹钟提示*/
if( IMENUCTL_GetSel((IMenuCtl *)pme->m_Obj) == IDS_ALARMH)
SCEvent_CreatArlamTimeScreen(pme, APP_MEMO_ALARMTIME);/*备忘录状态下的闹钟时间设置*/
else/*没有闹钟提示*/
SCEvent_MemoSavedScreen(pme);
return TRUE;
case APP_MEMO_ALARMTIME:/*备忘录状态下的闹钟时间设置*/
SC_setMemoTime(pme);
SCEvent_MemoSavedScreen(pme);
return TRUE;
case APP_BRITHDATY_ALARM:/*生日状态下的闹钟设置*/
SCEvent_MemoSavedScreen(pme);
return TRUE;
case APP_TELPHON:/*通话*/
SCEvent_CreatBrithScreen(pme, APP_TELPHON_NAME);/*通话姓名*/
return TRUE;
case APP_TELPHON_NAME:/*通话姓名*/
SC_setBrthName(pme);
SCEvent_CreatArlamTimeScreen(pme, APP_TELPHON_TIME);
return TRUE;
case APP_TELPHON_TIME:/*通话时间*/
SC_setMemoTime(pme);
SCEvent_CreatArlamScreen(pme,APP_TELPHON_ALARM);/*通话状态下的闹钟设置*/
return TRUE;
case APP_TELPHON_ALARM:/*通话状态下的闹钟设置*/
SCEvent_MemoSavedScreen(pme);
return TRUE;
default:
return FALSE;
}
return FALSE;
case AVK_SOFT2:/*返回*/
IDISPLAY_ClearScreen(pme->m_pIDisplay);
switch(pme->appState)
{
case APP_MEMO_ALARM:/*备忘录状态下的闹钟设置*/
IDISPLAY_ClearScreen(pme->m_pIDisplay);
SCEvent_CreateMemoScreen(pme);
return TRUE;
case APP_BRITHDATY_ALARM:/*生日状态下的闹钟设置*/
SCEvent_BrithDateScreen(pme);/*出生年份*/
return TRUE;
case APP_BRITHDATY_DATE: /*出生年份*/
SCEvent_CreatBrithScreen(pme, APP_BRITHDATY);
return TRUE;
case APP_MEMO_ALARMTIME:/*备忘录状态下的闹钟时间设置*/
SCEvent_CreatArlamScreen(pme,APP_MEMO_ALARM);
return TRUE;
case APP_TELPHON_NAME:/*通话姓名*/
SCEvent_CreateTelphoneScreen(pme);/*通话*/
return TRUE;
case APP_TELPHON:/*通话状态*/
case APP_BRITHDATY: /*生日状态*/
case APP_MEMO: /*备忘录状态*/
/*back to event type window*/
Schedule_SetWindow(pme->m_pOwner, APP_STATE_EVTTYPE, 0);
return TRUE;
default:
return FALSE;
}
return FALSE;
}
}
/*process the clr_key events*/
if (SH_ISCLR(eCode) )
{
/*back event type window*/
Schedule_SetWindow(pme->m_pOwner, APP_STATE_EVTTYPE, 0);
return TRUE;
}
return FALSE;
}
/**************************************************************************
* Function Name : SC_ProcessDigitalTextEvent
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -