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

📄 mmimmsnew.c

📁 是一个手机功能的模拟程序
💻 C
📖 第 1 页 / 共 5 页
字号:
			}
			else
			{ 
				data->iItemLen[i] = wstrlen(strItem)+2;
				data->list_menu_data.List[i].str= (char *) ALLOC_MEMORY (data->iItemLen[i]);
				wstrcpy(data->list_menu_data.List[i].str ,strItem);
			}
		}
		else if(i == 1)
		{
			strItem = MmiRsrcGetText(TxtNewMMSPicture);
			strItemEdit = (char *)editor_get_imagefilename();
			if( strItemEdit && strItemEdit[0] != '\0')
			{
				if(strstr(strItemEdit,"/"))
				{
					strItemEdit = strrchr(strItemEdit,'/');	
					if(strItemEdit)
					{
						strItemEdit +=1;			
					}	
				}
				else if(strstr(strItemEdit,"\\"))
				{
					strItemEdit = strrchr(strItemEdit,'\\');
					if(strItemEdit)
					{
						strItemEdit +=1;			
					}	
				}
			}

			if(strItemEdit && strItemEdit[0] != '\0')
			{
                data->iItemLen[i] = MMS_String_Merge_Len(strItem, strItemEdit);
				data->list_menu_data.List[1].str= (char *) ALLOC_MEMORY ( data->iItemLen[i]);
				wstrcpy(data->list_menu_data.List[i].str ,strItem);
				wstrcat(data->list_menu_data.List[i].str,strItemEdit);
			}
			else
			{
                data->iItemLen[i] = wstrlen(strItem)+2;
				data->list_menu_data.List[i].str= (char *) ALLOC_MEMORY (data->iItemLen[i]);
				wstrcpy(data->list_menu_data.List[i].str ,strItem);
			}
		}
		else if(i == 2)
		{
			strItem = MmiRsrcGetText(TxtNewMMSMusic);	
			strItemEdit = (char *)editor_get_audiofilename();
			if( strItemEdit && strItemEdit[0] != '\0')
			{
				if(strstr(strItemEdit,"/"))
				{
					strItemEdit = strrchr(strItemEdit,'/');
					if(strItemEdit)
					{
						strItemEdit +=1;			
					}	
				}
				else if(strstr(strItemEdit, "\\"))
				{
					strItemEdit = strrchr(strItemEdit,'\\');
					if(strItemEdit)
					{
						strItemEdit +=1;			
					}	
				}	
			}
			
			if(strItemEdit && strItemEdit[0] != '\0')
			{
                data->iItemLen[i] = MMS_String_Merge_Len(strItem, strItemEdit);
				data->list_menu_data.List[i].str= (char *) ALLOC_MEMORY ( data->iItemLen[i] );
				wstrcpy(data->list_menu_data.List[i].str ,strItem);
				wstrcat(data->list_menu_data.List[i].str,strItemEdit);
			}
			else
			{
				data->iItemLen[i] = wstrlen(strItem)+2;
				data->list_menu_data.List[i].str= (char *) ALLOC_MEMORY( data->iItemLen[i]);
				wstrcpy(data->list_menu_data.List[i].str ,strItem);
			}
		}
		else if(i == 3)
		{
			strItem = MmiRsrcGetText(TxtNewMMSText);
			strItemEdit =  (char *)editor_get_textstring();
			if(strItemEdit && strItemEdit[0] != '\0')
			{
                data->iItemLen[i] = MMS_String_Merge_Len(strItem, strItemEdit);
				data->list_menu_data.List[i].str= (char *) ALLOC_MEMORY (data->iItemLen[i]);
				wstrcpy(data->list_menu_data.List[i].str ,strItem);
				wstrcat(data->list_menu_data.List[i].str,strItemEdit);
			}
			else
			{
				data->iItemLen[i] = wstrlen(strItem)+2;
				data->list_menu_data.List[i].str= (char *) ALLOC_MEMORY (data->iItemLen[i]);
				wstrcpy(data->list_menu_data.List[i].str ,strItem);
			}
		}
#endif
	}
 	
    //actual number of entries in list menu
    data->list_menu_data.ListLength = MMS_Menu_New_Listmenu_Num; 
    data->list_menu_data.autoDestroy = TRUE;
    listDisplayListMenu(data->win, &data->list_menu_data, (ListCbFunc)MMS_Menu_New_listmenu_cb,0);

	//added by xie for displaying current slide and the total num of slide 
	{
		char title[10];
		unsigned char curSlide = (unsigned char)editor_get_slideindex();
		unsigned char slideNum = (unsigned char)editor_get_slidecount();	
		sprintf(title,"%d/%d",curSlide+1,slideNum);
		drawcolorclarity((SCREEN_SIZE_X- get_StringWidth(title))/2,SCREEN_SIZE_Y-dspl_GetFontHeight()-1,title, 0x000000);
	}
}

void MMS_Menu_New_listmenu_cb (T_MFW_HND * win, ListMenuData * ListData)
{
    T_MFW_WIN         * win_data = ((T_MFW_HDR *)win)->data;
    T_MMS_MENU_NEW    * data   = (T_MMS_MENU_NEW *)win_data->user;
	T_MFW_HND              * parent=data->parent;
	P_MMS mms = getMMS();
	pMMS_EDocument	edoc = NULL;
	pMMS_Slide	slide =  NULL;
	MMS_TRACE_FUNCTION("MMS_Menu_New_listmenu_cb"); 
	if(mms->editor)
	{
		edoc =  mms->editor->eDoc;
		if(edoc)
	    	slide = edoc->slide_cur;		
	}

    switch( ListData->Reason )
    {
	case LISTS_REASON_OK:
    case LISTS_REASON_SELECT:
        iMenuItemIndex = ListData->ListPosition;
		if(MMS_Menu_New_Edit_Title   == iMenuItemIndex)
		{
			char *strItem = (char*)editor_get_mmstitle();
			memset(frameData.title, 0, sizeof(frameData.title));
			if(strItem && strItem[0]!='\0')
				wstrcpy(frameData.title , strItem );
			MMS_Menu_New_Edit_start(win, iMenuItemIndex); 
		}
		else if(MMS_Menu_New_Edit_Text == iMenuItemIndex)
		{
			char *strItem = (char*)editor_get_textstring();
			memset(frameData.text, 0, sizeof(frameData.text));
			if(strItem && strItem[0] != '\0')
				wstrcpy(frameData.text, strItem);
			MMS_Menu_New_Edit_start(win, iMenuItemIndex); 
		}			
		else if(MMS_Menu_New_List_Image == iMenuItemIndex)
		{
			memset(frameData.imageFileName, 0, sizeof(frameData.imageFileName));
			MMS_Menu_New_List_start(win, iMenuItemIndex);
		}
		else 
		{
			memset(frameData.audioFileName, 0, sizeof(frameData.audioFileName));
			MMS_Menu_New_List_start(win, iMenuItemIndex);
		}
        break;
		
    case LISTS_REASON_BACK: /* back to previous menu */
		if(slide)
		{
			if(slide->image_flag && slide->audio_type)
				MMS_New_List_Right_start(win,&MMS_NEW_EDIT_OPTAttr11);
			else if(slide->image_flag)
                MMS_New_List_Right_start(win,&MMS_NEW_EDIT_OPTAttr10);
			else if(slide->audio_type)
		    	MMS_New_List_Right_start(win,&MMS_NEW_EDIT_OPTAttr01);
			else
		     	MMS_New_List_Right_start(win,&MMS_NEW_EDIT_OPTAttr00);
		}
		break;

	case LISTS_REASON_HANGUP:
		if(mms->editor)
		{
			editor_on_destroy();
			mms->editor = NULL;
		}
		/*
		if(mms->manager)
		{
			MMS_Codec_Destory();
			manager_on_destroy();
			mms->manager  = NULL;
		}*/
		iMenuItemIndex = 0;
		break;
		
    default:
        break;
    }
    return;
}

void  MMS_Menu_New_destroy (T_MFW_HND window)
{
	T_MFW_WIN          * win_data;
    T_MMS_MENU_NEW     * data;
    USHORT i;
		
	MMS_TRACE_FUNCTION("MMS_Menu_New_destroy"); 
    if( window )
    {
        win_data = ((T_MFW_HDR *)window)->data;
        data = (T_MMS_MENU_NEW *)win_data->user;
		
        if( data )
        {
            win_delete (data->win);
			MMS_Set_MMSNew_WHnd( NULL );
#if 0
            FREE_MEMORY( (void *)(data->list_menu_data.List[0].str), 2*MMS_NEW_ITEMLEN_MAX[0] + wstrlen(MmiRsrcGetText(TxtNewMMSTitle)) +3);
			FREE_MEMORY( (void *)(data->list_menu_data.List[1].str), 2*MMS_NEW_ITEMLEN_MAX[1] + wstrlen(MmiRsrcGetText(TxtNewMMSPicture)) +3);
			FREE_MEMORY( (void *)(data->list_menu_data.List[2].str), 2*MMS_NEW_ITEMLEN_MAX[2] + wstrlen(MmiRsrcGetText(TxtNewMMSMusic)) +3);
            FREE_MEMORY( (void *)(data->list_menu_data.List[3].str), 2*MMS_NEW_ITEMLEN_MAX[3] + wstrlen(MmiRsrcGetText(TxtNewMMSText)) +3);
#else
		    for( i = 0; i < MMS_Menu_New_Listmenu_Num; i++ )
                 FREE_MEMORY( (void *)(data->list_menu_data.List[i].str), data->iItemLen[i]);
#endif
            FREE_MEMORY ((void *)data->list_menu_data.List, MMS_Menu_New_Listmenu_Num* sizeof (MfwMnuItem)); 
            FREE_MEMORY ((void *)data, sizeof (T_MMS_MENU_NEW));
        }
        else
        {
            MMS_TRACE_EVENT (("MMS_Menu_New_destroy() called twice"));
        }
		
    }
}

/*********************************************************************/
/*                    图片或铃声选择窗口                             */
/*********************************************************************/
T_MFW_HND MMS_Menu_New_List_start(T_MFW_HND parent, int  edtID)
{
	T_MFW_HND win;
    win = MMS_Menu_New_List_create(parent);
	MMS_TRACE_FUNCTION("MMS_Menu_New_List_start"); 
    if( win NEQ NULL )
    {
		SEND_EVENT (win, E_INIT, edtID, NULL);
    }
    return win;
}

T_MFW_HND  MMS_Menu_New_List_create(MfwHnd parent_window)
{
	T_MMS_MENU_NEW_LIST * data = (T_MMS_MENU_NEW_LIST *)ALLOC_MEMORY (sizeof (T_MMS_MENU_NEW_LIST));
    T_MFW_WIN  * win;
	MMS_TRACE_FUNCTION("MMS_Menu_New_List_create"); 
    data->win =win_create (parent_window, 0, E_WIN_VISIBLE, NULL);
    if( data->win EQ NULL )
    {
        return NULL;
    }
	MMS_Set_MMSImageMusic_WHnd(data->win);//Added by xie 04-07-15
    data->mmi_control.dialog = (T_DIALOG_FUNC)MMS_Menu_New_List_dialog;
    data->mmi_control.data   = data;
    win                      = ((T_MFW_HDR *)data->win)->data;
    win->user                = (void *)data;
    data->parent             = parent_window;
	
    winShow(data->win);
    return data->win;
}

void MMS_Menu_New_List_dialog (T_MFW_HND win, USHORT event, USHORT value, void * parameter)
{
	extern MMS_U8	ECC_MidiPlay(MMS_S8 *filename, MMS_U8 loop);
	extern MMS_U8		ECC_MidiStop(MMS_S8 *filename);
	
	T_MFW_WIN         * win_data = ((T_MFW_HDR *) win)->data;
    T_MMS_MENU_NEW_LIST    * data = (T_MMS_MENU_NEW_LIST *)win_data->user;
    T_MFW_HND         * parent=data->parent;
	
	MMS_TRACE_FUNCTION("MMS_Menu_New_List_dialog"); 
    switch( event )
    {
    case E_INIT:
		/* initialization of the dialog data */
		data->list_menu_data.ListPosition   = iListMenuItemIndex+1;/* True cursor position in list menu. */
		data->list_menu_data.CursorPosition = iListMenuItemIndex;/* Cursor position in list snapshot.  */
		data->list_menu_data.Font           = 0;
		data->list_menu_data.LeftSoftKey    = (value == 1?TxtMMSPreview:TxtSoftSelect);
		data->list_menu_data.RightSoftKey   = TxtSoftBack;
		data->list_menu_data.KeyEvents      = KEY_RIGHT|KEY_LEFT |KEY_OK | KEY_MNUUP | KEY_MNUDOWN|KEY_HUP;
		data->list_menu_data.Reason         = 0;
		data->list_menu_data.Strings        = TRUE; 
		data->list_menu_data.Attr           = &MMS_Menu_New_Attrib;
		data->list_menu_data.autoDestroy    = TRUE;

		data->ListID=value;
	
		MMS_Menu_New_List_listmenu_create(data);
		if(2 == data->ListID)
		{
			char *pTemp = (char*)data->list_menu_data.List[iListMenuItemIndex].str;
			wstrcpy(frameData.audioFileName,MMS_MUSIC_FILEPATH);
			wstrcat(frameData.audioFileName,"/");
			wstrcat(frameData.audioFileName,pTemp);
			MMS_TRACE_EVENT(("the audioFilename is%s",frameData.audioFileName));
			rvf_delay(10);
			if( MMS_File_Type(pTemp,MMS_TYPE_MMF) || MMS_File_Type(pTemp,MMS_TYPE_MIDI))
			{
				ECC_MidiPlay(frameData.audioFileName,1);
			}
		}	
		break;

	case E_RETURN: 
    case E_EXIT: 
    case E_BACK:  
		MMS_Menu_New_List_destroy(data->win);
		SEND_EVENT (parent, event, 0, NULL); /* forward event to parent */
        break;

    default:
        return;
    }
}

void MMS_Menu_New_List_listmenu_create(T_MMS_MENU_NEW_LIST *data)
{ 
#ifdef  _INNOVATION_EMULATOR_
	WIN32_FIND_DATA FileData; 
	HANDLE hSearch; 
	BOOL fFinished = FALSE; 
	BOOL isDirectory;
	int nfiles = 0;
	int i = 0;
	T_MFW_HND         * parent=data->parent;

	char filename[256];	
	if(parent)
	GetCurrentDirectoryA(sizeof(filename),filename);
	
	if(data->ListID == 1)
    	strcat(filename,"\\filesystem\\mms\\imageFiles\\*.*");	
	else if(data->ListID == 2)
		strcat(filename,"\\filesystem\\mms\\musicFiles\\*.*");

	hSearch = FindFirstFileA(filename, &FileData); 
	if (hSearch == INVALID_HANDLE_VALUE) 
	{ 
		fFinished = TRUE;
	}
	
	while (!fFinished) 
	{
		if( (FileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == 0x00)
		{
			if(FileData.cFileName[0] != 0)
			{
				nfiles ++;
			}
		}
		
		if (!FindNextFileA(hSearch, &FileData)) 
		{
			fFinished = TRUE; 
		}
	}	
	FindClose(hSearch );

	mediaFileNumber = nfiles;
	if(nfiles  ==  0)
	{
		T_DISPLAY_DATA display_info;		  
		dialog_info_init(&display_info);
		display_info.RightSoftKey = TxtSoftBack;
		display_info.LeftSoftKey  = TxtSoftConfirm;//TxtSoftSelect,TxtSoftConfirm,TxtSoftOptions
		display_info.Time         = THREE_SECS;
		display_info.KeyEvents    = KEY_RIGHT|KEY_LEFT|KEY_CLEAR|KEY_HUP;
		display_info.TextId2      = TxtMMSNoImage;
		display_info.Identifier   = DIALOGS_REASON_NULL;
		display_info.iconindex	  = REMIND_FAILURE;
		info_dialog (data->win, &display_info); 
		SEND_EVENT (data->win, E_BACK, 0, NULL); 
		return;
	}

    fFinished = FALSE;
	hSearch = FindFirstFileA(filename, &FileData); 
	if (hSearch == INVALID_HANDLE_VALUE) 

⌨️ 快捷键说明

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