📄 mmimmsfolders.c
字号:
MMSTASK_DELAY(10);
}
#else
mms->player = player_initialize(PLAYER_INIT_PLAY, &playerVal);//PLAYER_INIT_PREVIEW :编辑时直接预览
if(playerVal != Normal)
{
MMS_TRACE_EVENT(("player initialize error in MMS_Folders_Play_create"));
}
#endif
mmsPlayerState = PLAY;
}
return data->win;
}
static void MMS_Folders_Play_destroy(T_MFW_HND win)
{
T_MFW_WIN * win_data;
T_MMS_FOLDERS_PLAYER * data;
P_MMS mms = getMMS();
MMS_TRACE_FUNCTION("MMS_Folders_Play_destroy");
if(win)
{
win_data = ((T_MFW_HDR *)win)->data;
data = (T_MMS_FOLDERS_PLAYER *)win_data->user;
if( data )
{
win_delete (data->win);
FREE_MEMORY ((void *)data, sizeof (T_MMS_FOLDERS_PLAYER));
if(mms->player)
{
player_on_stop();
player_destrory( PLAYER_INIT_PLAY);
mms->player = NULL;
mmsPlayerState = STOP;
}
return;
}
else
{
MMS_TRACE_EVENT((" "));
}
}
}
static void MMS_Folders_Play_dialog(T_MFW_HND win, USHORT event, SHORT value, void * parameter)
{
T_MFW_WIN * win_data = ((T_MFW_HDR *) win)->data;
T_MMS_FOLDERS_PLAYER * data = (T_MMS_FOLDERS_PLAYER *)win_data->user;
T_MFW_HDR * parent = data->parent;
char * title;
MMS_TRACE_FUNCTION("MMS_Folders_Play_dialog");
switch( event )
{
case E_INIT:
/* initialization of administrative data */
data->kbd = kbdCreate(data->win,KEY_ALL, (MfwCb)MMS_Folders_Play_kbd_cb);
data->kbd_long = kbdCreate(data->win,KEY_ALL|KEY_LONG,(MfwCb)MMS_Folders_Play_kbd_cb);
winShow(win);
break;
case E_RETURN:
case E_EXIT:
case E_BACK:
// winShow(win);//deleted by xie 04-07-13
break;
case E_ABORT:
MMS_Folders_Play_destroy(data->win);
SEND_EVENT (parent, E_BACK, 0, NULL);
break;
default:
break;
}
return;
}
static int MMS_Folders_Play_kbd_cb(MfwEvt e, MfwKbd *k)
{
T_MFW_HND win = mfwParent(mfw_header());
T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
T_MMS_FOLDERS_PLAYER * data = (T_MMS_FOLDERS_PLAYER *)win_data->user;
T_MFW_HND parentHnd;
P_MMS mms = getMMS();
pMMS_Slide pSlide = NULL;
unsigned char curPage = 0;
unsigned char pageNum = 0;
unsigned char curSlide = 0;
unsigned char slideNum = 0;
int pageNumMod;
MMS_TRACE_FUNCTION("MMS_Folders_Play_kbd_cb");
#ifdef MMI_MMSTASK_ENABLED
{
extern BYTE get_mmstask_proc();
if( get_mmstask_proc() )
{
MMS_TRACE_EVENT(("mms task in proc"));
return MFW_EVENT_REJECTED;
}
}
#endif
if( mms->player && mms->player->eDocument)
{
pSlide = mms->player->eDocument->slide_cur;
}
if(pSlide)
{
curSlide = (unsigned char)player_get_slideindex();
slideNum = (unsigned char)player_get_slidecount();
curPage = (unsigned char)pSlide->page_no;
pageNum = (unsigned char)(pSlide->pagelength/PLAYER_H);
pageNumMod = pSlide->pagelength%PLAYER_H;
if(pageNumMod > 0)
pageNum = pageNum +1;
else if(pageNumMod < 0)
pageNum = pageNum -1;
}
MMS_TRACE_FUNCTION("MMS_Folders_Play_kbd_cb");
if( e & KEY_LONG )
{
switch( k->code )
{
case KCD_HUP: /* back to previous menu */
if(mms->player)
{
player_on_stop();
player_destrory(PLAYER_INIT_PLAY);
mms->player = NULL;
mmsPlayerState = STOP;
}
/*
if(mms->manager)
{
MMS_Codec_Destory();
manager_on_destroy();
mms->manager = NULL;
}
*/
iMsgListIndex = 0;
returntoidle(0);
//mnuEscape(data->menu);
break;
case KCD_RIGHT: /* Power Down */
return MFW_EVENT_REJECTED; /* handled by idle */
default: /* no response to all other keys */
return MFW_EVENT_CONSUMED;
}
}
else
{
switch( k->code )
{
case KCD_MNUUP: /* highlight previous entry */
if(pageNum > 1 && curPage > 0 && curPage <= pageNum-1)
{
#ifdef MMI_MMSTASK_ENABLED
{
T_MMI_MMS_PLAYERONPAGE_IND parameter;
parameter.event = 0;
mmsui_data->current_win = win ;
M_MMI_MMS_PLAYERONPAGE_IND(¶meter);
}
#else
player_on_pageup();
#endif
// winShow( win );
MMSDrawScrollBar(curPage, pageNum);
}
break;
case KCD_MNUDOWN: /* highlight next entry */
if(pageNum > 1 && curPage >= 0 && curPage < pageNum-1)
{
#ifdef MMI_MMSTASK_ENABLED
{
T_MMI_MMS_PLAYERONPAGE_IND parameter;
parameter.event = 1;
mmsui_data->current_win = win ;
M_MMI_MMS_PLAYERONPAGE_IND(¶meter);
}
#else
player_on_pagedown();
#endif
MMSDrawScrollBar(curPage+2, pageNum);
// winShow( win );
}
break;
case KCD_MNURIGHT:
if(slideNum >1 && curSlide >= 0 && curSlide < slideNum-1)
{
char title[10];
displaySoftKeys(TxtSoftOptions,TxtSoftBack);
sprintf(title,"%d/%d",curSlide+2,slideNum);
drawcolorclarity((SCREEN_SIZE_X- get_StringWidth(title))/2,SCREEN_SIZE_Y-dspl_GetFontHeight()-1,title, 0x000000);
player_on_stop();
#ifdef MMI_MMSTASK_ENABLED
{
T_MMI_MMS_PLAYERONPAGE_IND parameter;
parameter.event = 2;
mmsui_data->current_win = win ;
M_MMI_MMS_PLAYERONPAGE_IND(¶meter);
}
#else
player_on_pagenext();
#endif
pSlide = mms->player->eDocument->slide_cur;
curPage = (unsigned char)pSlide->page_no;
pageNum = (unsigned char)(pSlide->pagelength/PLAYER_H);
pageNumMod = pSlide->pagelength%PLAYER_H;
if(pageNumMod > 0)
pageNum = pageNum +1;
else if(pageNumMod < 0)
pageNum = pageNum -1;
MMSDrawScrollBar(curPage+1, pageNum);
// winShow( win );
}
break;
case KCD_MNULEFT:
if(slideNum >1 && curSlide > 0 && curSlide <= slideNum-1)
{
char title[10];
displaySoftKeys(TxtSoftOptions,TxtSoftBack);
sprintf(title,"%d/%d",curSlide,slideNum);
drawcolorclarity((SCREEN_SIZE_X- get_StringWidth(title))/2,SCREEN_SIZE_Y-dspl_GetFontHeight()-1,title, 0x000000);
player_on_stop();
#ifdef MMI_MMSTASK_ENABLED
{
T_MMI_MMS_PLAYERONPAGE_IND parameter;
parameter.event = 3;
mmsui_data->current_win = win ;
M_MMI_MMS_PLAYERONPAGE_IND(¶meter);
}
#else
player_on_pagelast();
#endif
pSlide = mms->player->eDocument->slide_cur;
curPage = (unsigned char)pSlide->page_no;
pageNum = (unsigned char)(pSlide->pagelength/PLAYER_H);
pageNumMod = pSlide->pagelength%PLAYER_H;
if(pageNumMod > 0)
pageNum = pageNum +1;
else if(pageNumMod < 0)
pageNum = pageNum -1;
MMSDrawScrollBar(curPage+1, pageNum);
// winShow( win );
}
break;
case KCD_LEFT: /* activate this entry */
case KCD_OK:
switch( data->winID )
{
case MMS_SEND_FOLDER:
if(mms->player)
player_on_stop();
MMS_Folder_Opt_start(win, (MfwMnuAttr *)MMSSendFolderOptionMenuAttributes());
break;
case MMS_RECV_FOLDER:
if(mms->player)
player_on_stop();
MMS_Folder_Opt_start(win, (MfwMnuAttr *)MMSRecvFolderOptionMenuAttributes());
#if 0
/*talcon ad,2004.07.13*/
if(mms->manager && mms->manager->currentfolder )
{
pMessage pMsg = NULL;
pMsg = mms->manager->currentfolder->currentmessage;
MMS_TRACE_EVENT(("MMS_Folders_Play_kbd_cb: pMsg->state -%d",pMsg->state));
if(pMsg->state == MMS_MSG_TYPE_UNNOTI)
MMS_Folder_Opt_start(win, (MfwMnuAttr *)MMSRetrieveMsgOptionMenuAttributes());
else
MMS_Folder_Opt_start(win, (MfwMnuAttr *)MMSRecvFolderOptionMenuAttributes());
}
#endif
break;
case MMS_DRAFT_FOLDER:
if(mms->player)
player_on_stop();
MMS_Folder_Opt_start(win, (MfwMnuAttr *)MMSDraftFolderOptionMenuAttributes());
break;
case MMS_SENT_FOLDER:
if(mms->player)
player_on_stop();
MMS_Folder_Opt_start(win, (MfwMnuAttr *)MMSSentFolderOptionMenuAttributes());
break;
}
break;
case KCD_HUP: /* back to previous menu */
/*if(mms->manager)
{
manager_on_destroy();
mms->manager = NULL;
MMS_Codec_Destory();
}*/
if(mms->player)
{
player_destrory(PLAYER_INIT_PLAY);
mms->player = NULL;
mmsPlayerState = STOP;
}
iMsgListIndex = 0;
returntoidle(0);
break;
case KCD_RIGHT: /* back to previous menu */
parentHnd = data->parent;
MMS_Folders_Play_destroy(data->win);
SEND_EVENT (parentHnd, E_BACK, 0, NULL);
// SEND_EVENT (data->parent, E_BACK, 0, NULL);
break;
default: /* no response to all other keys */
return MFW_EVENT_CONSUMED;
}
}
return MFW_EVENT_CONSUMED;
}
static int MMS_Folders_Play_win_cb(MfwEvt e, MfwWin *w)
{
P_MMS mms = getMMS();
pMMS_Slide pSlide;
MMS_TRACE_FUNCTION("MMS_Folders_Play_win_cb");
if( mms->player )
{
pSlide = mms->player->eDocument->slide_cur;
if(!pSlide )
{
return MFW_EVENT_REJECTED;
}
}
switch( e )
{
case MfwWinVisible: /* window is visible */
#ifdef MMI_MMSTASK_ENABLED
if(mms->player)
#endif
{
unsigned int oldcolor = dspl_SetBkgColor(0xffffff);
char title[10];
unsigned char curSlide = (unsigned char)player_get_slideindex();
unsigned char slideNum = (unsigned char)player_get_slidecount();
unsigned char curPage = (unsigned char)pSlide->page_no;
unsigned char pageNum = (unsigned char)(pSlide->pagelength/PLAYER_H);
int pageNumMod = pSlide->pagelength%PLAYER_H;
if(pageNumMod > 0)
pageNum = pageNum +1;
else if(pageNumMod < 0)
pageNum = pageNum -1;
dspl_ClearAll();
dspl_BitBlt( menuup[FlashSettingData.theme].area.px,menuup[FlashSettingData.theme].area.py,
menuup[FlashSettingData.theme].area.sx,menuup[FlashSettingData.theme].area.sy,
menuup[FlashSettingData.theme].nIcons,menuup[FlashSettingData.theme].icons,0);
dspl_colorTextOut((SCREEN_SIZE_X-get_StringWidth(MmiRsrcGetText(TxtMMSPlay)))/2, 0, DSPL_TXTATTR_TRANSPARENT, MmiRsrcGetText(TxtMMSPlay), 0x0);
displaySoftKeys(TxtSoftOptions,TxtSoftBack);
sprintf(title,"%d/%d",curSlide+1,slideNum);
drawcolorclarity((SCREEN_SIZE_X- get_StringWidth(title))/2,SCREEN_SIZE_Y-dspl_GetFontHeight()-1,title, 0x000000);
MMSDrawScrollBar(curPage+1, pageNum);
#ifdef MMI_MMSTASK_ENABLED
{/*talcon added for mms task,2004.07.17*/
T_MMI_MMS_PLAYERONDRAW_IND parameter;
mmsui_data->current_win= ((T_MMS_FOLDERS_PLAYER*)w->user)->win;
M_MMI_MMS_PLAYERONDRAW_IND( ¶meter);
}
#else
player_on_draw();
#endif
dspl_SetBkgColor(oldcolor);
}
break;
case MfwWinFocussed: /* input focus / selected */
case MfwWinDelete: /* window will be deleted */
default:
return MFW_EVENT_REJECTED;
}
return MFW_EVENT_CONSUMED;
}
//菜单选项界面
T_MFW_HND MMS_Folder_Opt_start(MfwHnd parent_window , MfwMnuAttr *menuAttr)
{
T_MFW_HND win;
MMS_TRACE_FUNCTION("MMS_Folder_Opt_start");
win = MMS_Folder_Opt_create (parent_window);
if( win NEQ NULL )
{
SEND_EVENT (win, E_INIT, NULL, (void *)menuAttr);
}
return win;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -