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

📄 mmimmsfolders.c

📁 是一个手机功能的模拟程序
💻 C
📖 第 1 页 / 共 5 页
字号:
T_MFW_HND MMS_Folder_Opt_create(T_MFW_HND parent_window)
{
	T_MMS_FOLDER_OPT      * data = (T_MMS_FOLDER_OPT *)ALLOC_MEMORY (sizeof (T_MMS_FOLDER_OPT));
    T_MFW_WIN  * win;

	T_MFW_WIN    * parentWin   =  ((T_MFW_HDR *)parent_window)->data;
    T_MMS_FOLDERS_PLAYER  * parent_data =  (T_MMS_FOLDERS_PLAYER *)parentWin->user;
	MMS_TRACE_FUNCTION("MMS_Folder_Opt_create");
    data->win = win_create (parent_window, 0, E_WIN_VISIBLE, (T_MFW_CB)MMS_Folder_Opt_win_cb);
    if( data->win EQ NULL )
    {
        return NULL;
    }
    /* 
	* connect the dialog data to the MFW-window
	*/
	
    data->mmi_control.dialog = (T_DIALOG_FUNC)MMS_Folder_Opt_dialog;
    data->mmi_control.data   = data;
	data->winID              = parent_data->winID;
    win                      = ((T_MFW_HDR *)data->win)->data;
    win->user                = (void *)data;
    data->parent             = parent_window;

    return data->win;
}

static void MMS_Folder_Opt_destroy(T_MFW_HND win)
{
    T_MFW_WIN            * win_data;
    T_MMS_FOLDER_OPT     * data;
MMS_TRACE_FUNCTION("MMS_Folder_Opt_destroy");
    if(win)
    {
        win_data = ((T_MFW_HDR *)win)->data;
        data = (T_MMS_FOLDER_OPT *)win_data->user;

        if( data )
        {
            win_delete (data->win);
            FREE_MEMORY ((void *)data, sizeof (T_MMS_FOLDER_OPT));
        }
        else
        {
            ;
        }
    }
}

static void MMS_Folder_Opt_dialog(T_MFW_HND win, USHORT event, SHORT value, void * parameter)
{
	T_MFW_WIN        * win_data = ((T_MFW_HDR *) win)->data;
    T_MMS_FOLDER_OPT  * data     = (T_MMS_FOLDER_OPT *)win_data->user;
    T_MFW_HDR    * parent      =  data->parent;
    T_MFW_WIN    * win_data2   =  ((T_MFW_HDR *)parent)->data;
    T_MMS_FOLDERS_PLAYER  * parent_data =  (T_MMS_FOLDERS_PLAYER *)win_data2->user;
//	MMS_FOLDER_TYPE parentWinId =parent_data->winID;

    char * title;
	MMS_TRACE_FUNCTION("MMS_Folder_Opt_dialog");
    switch( event )
    {
    case E_INIT:
        /* initialization of administrative data */
        data->parent_data = parent_data;        
        data->kbd =      kbdCreate(data->win,KEY_ALL,         (MfwCb)MMS_Folder_Opt_kbd_cb);
        data->kbd_long = kbdCreate(data->win,KEY_ALL|KEY_LONG,(MfwCb)MMS_Folder_Opt_kbd_cb);
        title = (char *) MmiRsrcGetText(TxtSoftOptions);  // get the editor title text

        data->menu = mnuListCreate(data->win,(MfwMnuAttr*)parameter, E_MNU_ESCAPE, (MfwCb)MMS_Folder_Opt_mnu_cb,title);
        mnuLang(data->menu,mainMmiLng);
        /* put the (new) dialog window on top of the window stack */
        mnuUnhide(data->menu);
        winShow(win);
        break;

	case E_RETURN: 
		MMS_Folder_Opt_destroy(data->win);
		switch( data->winID)
		{
		case MMS_SEND_FOLDER:
			MMS_Folder_Opt_start(win, (MfwMnuAttr *)MMSSendFolderOptionMenuAttributes());  
			break;
		case MMS_RECV_FOLDER:
			{
				P_MMS mms = getMMS();
				pMessage pMsg = NULL;
				if(mms->manager && mms->manager->currentfolder )
				{
					pMsg = mms->manager->currentfolder->currentmessage;
					MMS_TRACE_EVENT(("MMS_Folder_Opt_dialog: 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());  
				}
			}
			break;
		case MMS_DRAFT_FOLDER:
			MMS_Folder_Opt_start(win, (MfwMnuAttr *)MMSDraftFolderOptionMenuAttributes());  
			break;
		case MMS_SENT_FOLDER:
			MMS_Folder_Opt_start(win, (MfwMnuAttr *)MMSSentFolderOptionMenuAttributes());  
			break;
		}
		break;
		
    case E_EXIT: 
    case E_BACK:  
		MMS_Folder_Opt_destroy(data->win);//add by xie
		SEND_EVENT (parent, event, 0, NULL);
		break;
		
    case E_ABORT:      
        MMS_Folder_Opt_destroy(data->win);
        SEND_EVENT (parent, E_BACK, 0, NULL); /* forward event to parent */
		break;

    default:
        return;
    }
}

static int MMS_Folder_Opt_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_FOLDER_OPT      * data = (T_MMS_FOLDER_OPT *)win_data->user;
	P_MMS mms = getMMS();
	MMS_TRACE_FUNCTION("MMS_Folder_Opt_kbd_cb");
    if( e & KEY_LONG )
    {
        switch( k->code )
        {
        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);
            //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 */
            mnuUp(data->menu);
            break;
        case KCD_MNUDOWN: /* highlight next entry */
            mnuDown(data->menu);
            break;
        case KCD_LEFT: /* activate this entry */
        case KCD_OK:
            mnuSelect(data->menu);
            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 */
            mnuEscape(data->menu);
            break;
        default: /* no response to all other keys */
            return MFW_EVENT_CONSUMED;
        }
    }
    return MFW_EVENT_CONSUMED;//when change to MFW_EVENT_REJECTED,deleting string will lead to collapsed.
}

static int MMS_Folder_Opt_mnu_cb ( MfwEvt e, MfwMnu *m )
{ 
	T_MFW_HND    win  = mfwParent(mfw_header());
    T_MFW_WIN  * win_data = ((T_MFW_HDR *)win)->data;
    T_MMS_FOLDER_OPT      * data = (T_MMS_FOLDER_OPT *)win_data->user;
	T_MFW_HDR    * parent      =  data->parent;
MMS_TRACE_FUNCTION("MMS_Folder_Opt_mnu_cb");
    switch( e )
    {
    case E_MNU_ESCAPE: /* back to previous menu */
        MMS_Folder_Opt_destroy(data->win);
		SEND_EVENT (parent, E_BACK, 0, NULL);
        break;
    default: /* in mnuCreate() only E_MNU_ESCAPE has been enabled! */
        return MFW_EVENT_REJECTED;
    }
    return MFW_EVENT_CONSUMED;
}

static int MMS_Folder_Opt_win_cb(MfwEvt e, MfwWin *w)
{
MMS_TRACE_FUNCTION("MMS_Folder_Opt_win_cb");
    switch( e )
    {
    case MfwWinVisible:  /* window is visible  */
        dspl_ClearAll();
        displaySoftKeys(TxtSoftSelect,TxtSoftBack);
        break;
    case MfwWinFocussed: /* input focus / selected   */
    case MfwWinDelete:   /* window will be deleted   */
    default:
        return MFW_EVENT_REJECTED;
    }
    return MFW_EVENT_CONSUMED;
}

int MMS_Folder_Opt_Retrieve (MfwMnu* m, MfwMnuItem* i)
{
	pMMI_MMS_EVENT temp;
	T_MFW_HND    win  = mfwParent(mfw_header());
    T_MFW_WIN  * win_data = ((T_MFW_HDR *)win)->data;
    T_MMS_FOLDER_OPT      * data = (T_MMS_FOLDER_OPT *)win_data->user;
	T_MFW_HDR    * parent      =  data->parent;
	T_DISPLAY_DATA display_info;

	 pMessage pCurrentMsg;
	 
    MMS_TRACE_FUNCTION("MMS_Folder_Opt_Retrieve");

	pCurrentMsg = manager_get_currentmsg(manager_get_currentfolder());

	/*dialog_info_init(&display_info);
	display_info.LeftSoftKey    = TxtNull;
	display_info.RightSoftKey	= TxtCancel;	
	display_info.TextId         = TxtMMSRetrieving;
	display_info.TextId2        = TxtMMSPleaseWaitting;
	display_info.Callback       = (T_VOID_FUNC)MMS_Retrieving_dialog_cb;
	display_info.Time           = FOREVER;
	display_info.KeyEvents      = KEY_RIGHT | KEY_HUP;
	display_info.iconindex      = REMIND_WAITTING;
	
	iddMMSRetrieving.hndParent  = data->win;
	iddMMSRetrieving.hndInfo    = info_dialog(win,&display_info); 
	*/
	MMS_Folder_Opt_destroy(win);
	if(iMsgListIndex >= 1)
		iMsgListIndex = iMsgListIndex -1;
	SEND_EVENT(parent, E_ABORT, 0 , NULL);
	info_mms_screen(0,MMS_SCREEN_ID_RETRIEVE);
	//mms_test_recv_message();
/*talcon added 2004.07.15*/
#ifdef MMS_WAP_ENABLED
	{
		extern void MMS_Force_Recv(char* filename);
		MMS_Force_Recv(pCurrentMsg->filename);
	}
#endif
	
//    MMS_MMI_NewMMS_notification(temp);
#if 0
	MMS_Folder_Opt_destroy(win);
	if(iMsgListIndex >= 1)
		iMsgListIndex = iMsgListIndex -1;
	SEND_EVENT(parent, E_ABORT, 0 , NULL);
#endif
}

#if 0
int MMS_Retrieving_dialog_cb(T_MFW_HND win, USHORT Identifier, USHORT Reason)
{
	T_MFW_WIN         * win_data    = ((T_MFW_HDR *)win)->data;
    T_MMS_FOLDER_OPT    * data   = (T_MMS_FOLDER_OPT *)win_data->user;
	T_MFW_HND              * parent = data->parent;
	
    TRACE_FUNCTION ("SmsRead_dialog_cb()");
	
    switch( Reason )
    {
	case INFO_KCD_HUP:
    case INFO_KCD_RIGHT:
		iddMMSRetrieving.hndInfo = NULL;
		MMS_Folder_Opt_destroy(win);
		if(iMsgListIndex >= 1)
			iMsgListIndex = iMsgListIndex -1;
		iddMMSRetrieving.hndParent = NULL;
		SEND_EVENT(parent, E_ABORT, 0 , NULL);
        return MFW_EVENT_CONSUMED;
		
    default:
        return MFW_EVENT_REJECTED;
    }
}	

void   MMS_Retrieving_End(void)
{
	   T_MFW_HND    *parent = iddMMSRetrieving.hndParent;
	   
	   T_MFW_WIN         * winFolderOpt         = ((T_MFW_HDR *)parent)->data;
	   T_MMS_FOLDER_OPT    * dataFolderOpt   = (T_MMS_FOLDER_OPT *)winFolderOpt->user;
       T_MFW_HND       * parentFolderOpt  = dataFolderOpt->parent;  
	   SEND_EVENT(iddMMSRetrieving.hndInfo,DIALOG_DESTROY, NULL,NULL);
	   iddMMSRetrieving.hndInfo = NULL;
	   MMS_Folder_Opt_destroy(dataFolderOpt->win);
	   if(iMsgListIndex >= 1)
		   iMsgListIndex = iMsgListIndex -1;
	   iddMMSRetrieving.hndParent = NULL;
	   SEND_EVENT(parentFolderOpt, E_ABORT, 0 , NULL);   
}
#endif
int MMS_Folder_Opt_Delete          (MfwMnu* m, MfwMnuItem* i)
{   
	T_MFW_HND    win  = mfwParent(mfw_header());
    T_MFW_WIN  * win_data = ((T_MFW_HDR *)win)->data;
    T_MMS_FOLDER_OPT      * data = (T_MMS_FOLDER_OPT *)win_data->user;
	T_MFW_HDR    * parent      =  data->parent;
	P_MMS	mms = getMMS();
    MMS_TRACE_FUNCTION("MMS_Folder_Opt_Delete");
	if(mms->manager->currentfolder)
	{
		player_on_stop();   //add by xie 04-08-05 
        manager_on_delete( mms->manager->currentfolder );
		//manager_on_store(); //added by xie for disposing the file deleted
		storemessagefolder(mms->manager->currentfolder);
		MMS_Folder_Opt_destroy(win);
		if(iMsgListIndex >= 1)
		  iMsgListIndex = iMsgListIndex -1;
		SEND_EVENT(parent, E_ABORT, 0 , NULL);
	}   
}

int MMS_Folder_Opt_Replay          (MfwMnu* m, MfwMnuItem* i)
{
	T_MFW_HND    win  = mfwParent(mfw_header());
    T_MFW_WIN  * win_data = ((T_MFW_HDR *)win)->data;
    T_MMS_FOLDER_OPT      * data = (T_MMS_FOLDER_OPT *)win_data->user;
	T_MFW_HDR    * parent      =  data->parent;

	MMS_TRACE_FUNCTION("MMS_Folder_Opt_Replay");
	/*
	P_MMS	mms = getMMS();
	pMessage	pMsg;
	pMsg = mms->manager->currentfolder->currentmessage;
	editor_on_initialize(EDITOR_INIT_REPLY, pMsg);*/
	player_on_stop();                 //modified by xie 04-07-22
        player_on_replay();
	MMS_Folder_Opt_destroy(win);
}

int MMS_Folder_Opt_Send            (MfwMnu* m, MfwMnuItem* i)
{
	T_MFW_HND    win      = mfwParent(mfw_header());
    T_MFW_WIN  * win_data = ((T_MFW_HDR *)win)->data;
    T_MMS_FOLDER_OPT  * data = (T_MMS_FOLDER_OPT *)win_data->user;
	T_MFW_HDR    * parent =  data->parent;
	T_MFW_WIN  * parent_data = ((T_MFW_HDR *)parent)->data;
    T_MMS_FOLDERS_PLAYER  * data2 = (T_MMS_FOLDERS_PLAYER *)parent_data->user;
    T_MFW_HDR    * folderListHnd = data2->parent;
    
	P_MMS	mms = getMMS();
	pMessage	pMsg;
	
	MMS_TRACE_FUNCTION("MMS_Folder_Opt_Send");
	
	/*talcon added 2004.07.20*/
	winUnMask(parent,MfwWinVisible);
	
	MMS_Folder_Opt_destroy(win);
	MMS_Folders_Play_destroy(parent);

	if(mms->editor==NULL)
	{		
		if(mms->manager && mms->manager->currentfolder && mms->manager->currentfolder->currentmessage)
		{
			pMsg = mms->manager->currentfolder->currentmessage;
#ifdef MMI_MMSTASK_ENABLED
			{
			mmsui_data->temp_win = info_mms_dialog(win); //information screen
			mmsui_data->current_win = folderListHnd;
			}
			{
			T_MMI_MMS_EDTONINIT_IND parameter;
			parameter.event = EDITOR_INIT_EDIT;
			parameter.pMsg=  pMsg;
			M_MMI_MMS_EDTONINIT_IND(  &parameter);
			}
			return;
#else
			mms->editor = editor_on_initialize(EDITOR_INIT_EDIT, pMsg);
			if(mms->editor == NULL)
			{
				MMS_TRACE_EVENT(("editor initialize error in MMS_Folder_Opt_Send"));
			}
#endif

⌨️ 快捷键说明

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