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

📄 mmimmsfolders.c

📁 是一个手机功能的模拟程序
💻 C
📖 第 1 页 / 共 5 页
字号:
	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(&parameter);
				}
#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(&parameter);
				}
#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(&parameter);
				}
#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(&parameter);
				}
#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(  &parameter);
			}
#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 + -