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

📄 mmimt_search_wintab.c

📁 展讯平台的mtue源代码, 全面,精简,仅供学习, 商用后果自负
💻 C
📖 第 1 页 / 共 2 页
字号:
/*****************************************************************************
** File Name:                                                                *
** Author:                                                                   *
** Date:           2007/06/29                                                *
** Copyright:      2007 MTONE, Inc. All Rights Reserved.                     *
** Description:                                                              *
******************************************************************************
**                         Important Edit History                            *
** --------------------------------------------------------------------------*
** DATE           NAME             DESCRIPTION                               *
** 2007/06/29                      Create                                    *
*****************************************************************************/
#ifdef MMI_MTUNE

#include "mmimt_search_wintab.h"

#include "base/mt_ini.h"
#include "base/mt_osapi.h"
#include "base/mt_string.h"
#include "base/mmimt_ex.h"
#include "base/mmimt_id.h"
//#include "base/mmimt_image.h"
#include "base/mmimt_pubwin.h"
#include "base/mmimt_text.h"
#include "data/mt_mmxml.h"
#include "data/mt_otacfg.h"
#include "mt_ver.h"
#include "mmimt_charge.h"
#include "mmimt_wap_app.h"
#include "mmimt_playinfo.h"

#include "guieditbox.h"
#include "guilistbox.h"
#include "guimenu.h"

//#include "mmk_ex.h"
#include "mtdef.h"
//#include "base/mtune_image.h"
#include "mmi_menutable.h"
#include "mmipub.h"
#include "mmimultim.h"

#include "im.h"

#include "window_parse.h"

#define     MMIMP3_SEARCH_ICON_LEFT          6
#define     MMIMP3_SEARCH_ICON_TOP           35
#define 	  MMIMP3_SEARCH_RECT_LEFT          MMI_EDITBOX_FULLSCREEN_CLIENT_LEFT
#define     MMIMP3_SEARCH_RECT_TOP           MMI_EDITBOX_FULLSCREEN_CLIENT_TOP
#define     MMIMP3_SEARCH_RECT_RIGHT         MMI_EDITBOX_FULLSCREEN_CLIENT_RIGHT
#define     MMIMP3_SEARCH_RECT_BOTTOM        MMI_EDITBOX_FULLSCREEN_CLIENT_BOTTOM
////////////////////////////////////////////////////////////////

LOCAL MMI_RESULT_E HandleSrchMP3WinMsg( MMIMT_WINDOW_ID_E win_id, MMI_MESSAGE_ID_E msg_id, DPARAM param );

WINDOW_TABLE(MMIMP3_SRCHMP3_WIN_TAB) =
{
	CLEAR_LCD,
	WIN_PRIO(WIN_ONE_LEVEL),
	WIN_FUNC((uint32)HandleSrchMP3WinMsg ),    
	WIN_ID(MMIMP3_SEARCH_WIN_ID),
	WIN_TITLE_ID(TXT_MT_TITLE_SRCH),
	WIN_STYLE(WS_HAS_SOFTKEY),
	CREATE_TEXTEDITBOX_CTRL(MMIMP3_SEARCH_RECT_LEFT, MMIMP3_SEARCH_RECT_TOP, MMIMP3_SEARCH_RECT_RIGHT, MMIMP3_SEARCH_RECT_BOTTOM,/*MMI_CLIENT_LEFT(0),MMI_CLIENT_TOP(0),MMI_CLIENT_RIGHT(0),MMI_CLIENT_BOTTOM(0),*/
			MMIMT_KEYWORD_LEN_MAX,MMIMT_KEYWORD_LEN_MAX,IM_DEFAULT_ALL_INPUT_MODE_SET,IM_PINYIN_MODE,
			MMIMP3_SRCH_EDIT_CTRL_ID),
	END_WIN
};

extern WINDOW_TABLE(MMIMP3_SRCHMP3_WIN_TAB);

void MMIMT_SrchMP3_OpenWin( void )
{
	if( !MMK_IsOpenWin( MMIMP3_SEARCH_WIN_ID ) )
	{
		MMK_CreateWin( (uint32 *)MMIMP3_SRCHMP3_WIN_TAB, NULL );
	}
}

LOCAL MMI_RESULT_E HandleSrchMP3WinMsg( MMIMT_WINDOW_ID_E win_id, MMI_MESSAGE_ID_E msg_id, DPARAM param )
{
	MMI_RESULT_E result = MMI_RESULT_TRUE; MMI_CONTROL_ID_E ctrl_id = MMIMP3_SRCH_EDIT_CTRL_ID;

	GUI_RECT_T rect; TEXTEDIT_STRING_INFO_T name;

	GUI_LCD_DEV_INFO	lcd_dev_info = {GUI_LCD_0, GUI_BLOCK_0};

	switch( msg_id )
	{
	case MSG_OPEN_WINDOW:

	//	MTINI_GetProfileRect( INI_MT_RECT_SRCH_EDIT, &rect );
	//	GUIEDITBOX_SetEditBoxRect( ctrl_id, &rect );
	////	GUIEDITBOX_SetEditBoxToSingle( ctrl_id, SINGLE_ALIGN_UP );
	    GUIEDITBOX_SetRectState(
                                ctrl_id, 
                                FALSE
                                );
		MMK_SetAtvCtrl( win_id, ctrl_id );
		break;

	case MSG_FULL_PAINT:
		MTMMITHEME_GetClientRect( &rect );
		
		LCD_FillRect( &lcd_dev_info, rect, MMI_WINDOW_BACKGROUND_COLOR );
		break;

	case MSG_CTL_PENOK:
	case MSG_CTL_OK:

		GUIEDITBOX_GetTextEditBoxInfo( ctrl_id, &name );

		if( !name.str_len )
		{
			MTPUBWIN_OpenPromptAlertWin( MTPROMPT_ALERT, TXT_MT_SRCH_ALRT_KEYWORD_NULL, MTMMI_3SECONDS, NULL );
		}
		else
		{
			char namegb[MMIMT_KEYWORD_LEN_MAX+1] = { 0 };

			if( name.is_ucs2 )
			{
				GUI_UCS2GB( (uint8 *)namegb, name.str_ptr, (uint16)MIN( MMIMT_KEYWORD_LEN_MAX, name.str_len ) );
			}
			else
			{
				strncpy( namegb, (char *)name.str_ptr, MIN( MMIMT_KEYWORD_LEN_MAX, name.str_len ) );
			}

			MT_WAPOpenURL_SrchMP3( namegb, "", "", "", "", MTPK_SEARCH );

			MMK_CloseWin( win_id );
		}

		break;

	case MSG_CTL_CANCEL:
		MMK_CloseWin( win_id );
		break;
		
	default:
		result = MMI_RESULT_FALSE;
		break;
	}

	return result;
}

////////////////////////////////////////////////////////////////

LOCAL MMI_RESULT_E HandleSrchRsltLRCWinMsg( MMIMT_WINDOW_ID_E win_id, MMI_MESSAGE_ID_E msg_id, DPARAM param );

WINDOW_TABLE(MMIMP3_SRCHRSLT_LRC_WIN_TAB) =
{
	CLEAR_LCD,
	WIN_PRIO(WIN_ONE_LEVEL),
	WIN_TITLE_ID(TXT_MT_TITLE_SRCHRSLT),
	WIN_FUNC((uint32)HandleSrchRsltLRCWinMsg),
	WIN_ID(MMIMP3_SRCHRSLT_LRC_WIN_ID),
	CREATE_LISTBOX_CTRL(MMI_LISTBOX_LEFT,MMI_CLIENT_RECT_TOP,MMI_MAINSCREEN_RIGHT_MAX_PIXEL,MMI_CLIENT_RECT_BOTTOM,
			LISTBOX_TEXTLIST_E,LISTBOX_TEXT1_E,MMIMP3_SRCHRSLT_LRC_LIST_CTRL_ID),
	WIN_STYLE(WS_HAS_SOFTKEY),	

	END_WIN
};

extern WINDOW_TABLE(MMIMP3_SRCHRSLT_LRC_WIN_TAB);

void MMIMT_SrchRslt_LRC_OpenWin( ADD_DATA add_data_ptr )
{
	if( !MMK_IsOpenWin( MMIMP3_SRCHRSLT_LRC_WIN_ID ) )
	{
		MMK_CreateWin( (uint32 *)MMIMP3_SRCHRSLT_LRC_WIN_TAB, add_data_ptr );
	}
}

void MMIMT_SrchRslt_LRC_CloseWin( void )
{
	if( MMK_IsOpenWin( MMIMP3_SRCHRSLT_LRC_WIN_ID ) )
	{
		MMK_CloseWin( MMIMP3_SRCHRSLT_LRC_WIN_ID );
	}
}

extern MT_SRCH_RSLT *g_srch_rslt;
extern uint8 g_srch_rslt_cnt;

extern MT_OTA_CFG g_ota_cfg;

LOCAL MMI_RESULT_E HandleSrchRsltLRCWinMsg( MMIMT_WINDOW_ID_E win_id, MMI_MESSAGE_ID_E msg_id, DPARAM param )
{
	MMI_RESULT_E ret = MMI_RESULT_TRUE; MMI_CONTROL_ID_E ctrl_id = MMIMP3_SRCHRSLT_LRC_LIST_CTRL_ID;

	uint16 str[121]; const uint16 *p; uint16 *q; uint16 i, j;

	switch( msg_id )
	{
	case MSG_OPEN_WINDOW:

		GUILISTBOX_SetMaxItem( ctrl_id, MT_SRCH_RSLT_MAX );
		MMK_SetAtvCtrl( win_id, ctrl_id );

		if( !g_srch_rslt_cnt ) break;


		for( i=0; i<g_srch_rslt_cnt; i++ )
		{
			MT_MEMSET(str, 0x00, sizeof(str));
			q = str;
			for( p=g_srch_rslt[0].sztitle;  *p && q<str+121; *q++ = *p++ ); if( q<str+121 ) { *((uint8 *)q) = 0; *((uint8 *)q+1) = ' '; q++; };
			for( p=g_srch_rslt[0].szartist; *p && q<str+121; *q++ = *p++ ); if( q<str+121 ) { *((uint8 *)q) = 0; *((uint8 *)q+1) = ' '; q++; };
			for( p=g_srch_rslt[0].szalbum;  *p && q<str+121; *q++ = *p++ );

			MTGUILISTBOX_AppendListItem( ctrl_id, (uint8 *)str, (uint8)( (q-str)*2 ), TRUE, TXT_MTUNE_SK_DOWNLOAD, IMAGE_COMMON_MUSIC_SD_ICON );

//			MTGUILISTBOX_AppendListItem( ctrl_id, (uint8 *)g_srch_rslt[i].sztitle, (uint8)( mt_wcslen(g_srch_rslt[i].sztitle)*2 ), TRUE, TXT_MTUNE_SK_DOWNLOAD, IMAGE_COMMON_MUSIC_SD_ICON );
		}
		
		MMK_SetWinSoftkeyId(win_id,(MMI_TEXT_ID_T)TXT_MTUNE_SK_DOWNLOAD,(MMI_TEXT_ID_T)TXT_NULL,(MMI_TEXT_ID_T)STXT_RETURN,TRUE);

		break;
/*
	case MSG_CTL_LISTBOX_MOVEBOTTOM:
	case MSG_CTL_LISTBOX_MOVEDOWN:

	case MSG_CTL_LISTBOX_MOVETOP:
	case MSG_CTL_LISTBOX_MOVEUP:

		if( !g_srch_rslt_cnt ) break;

		MTGUILISTBOX_GetMoveItemIndex( ctrl_id, msg_id, &i, &j );


		MTGUILISTBOX_ReplaceListItem( ctrl_id, i, (uint8 *)g_srch_rslt[i].sztitle, (uint8)( mt_wcslen(g_srch_rslt[i].sztitle)*2 ), TRUE, TXT_MTUNE_SK_DOWNLOAD, IMAGE_COMMON_MUSIC_SD_ICON );

		q = str;

		for( p=g_srch_rslt[j].sztitle;  *p && q<str+121; *q++ = *p++ ); if( q<str+121 ) { *((uint8 *)q) = 0; *((uint8 *)q+1) = ' '; q++; };
		for( p=g_srch_rslt[j].szartist; *p && q<str+121; *q++ = *p++ ); if( q<str+121 ) { *((uint8 *)q) = 0; *((uint8 *)q+1) = ' '; q++; };
		for( p=g_srch_rslt[j].szalbum;  *p && q<str+121; *q++ = *p++ );

		MTGUILISTBOX_ReplaceListItem( ctrl_id, j, (uint8 *)str, (uint8)( (q-str)*2 ), TRUE, TXT_MTUNE_SK_DOWNLOAD, IMAGE_COMMON_MUSIC_SD_ICON );

		MMK_SetWinSoftkeyId(win_id,(MMI_TEXT_ID_T)TXT_MTUNE_SK_DOWNLOAD,(MMI_TEXT_ID_T)TXT_NULL,(MMI_TEXT_ID_T)STXT_RETURN,TRUE);
	        MMK_SendMsg(win_id, MSG_CTL_PAINT, PNULL);
 		break;
*/
	case MSG_MT_SRCH_DOWN_LRC:
		i = GUILISTBOX_GetCurItemIndex( ctrl_id );
        	MT_WAPDown_LRC( g_srch_rslt[i].szurl, MMK_GetWinAddDataPtr( win_id ) );
		break;
		
   	case MSG_CTL_PENOK:
	case MSG_CTL_OK:
		if( !g_srch_rslt_cnt ) break;
		MMIMT_Charge_LRC();
		break;

	case MSG_CTL_CANCEL:
		MMK_CloseWin( win_id );
		break;

	default:
		ret = MMI_RESULT_FALSE;
		break;
	}

	return ret;
}

////////////////////////////////////////////////////////////////

LOCAL MMI_RESULT_E HandleSrchRsltMP3WinMsg( MMIMT_WINDOW_ID_E win_id, MMI_MESSAGE_ID_E msg_id, DPARAM param );

WINDOW_TABLE(MMIMP3_SRCHRSLT_MP3_WIN_TAB) =
{
	CLEAR_LCD,
	WIN_PRIO(WIN_ONE_LEVEL),
	WIN_TITLE_ID(TXT_MT_TITLE_SRCHRSLT),
	WIN_FUNC((uint32)HandleSrchRsltMP3WinMsg),
	WIN_ID(MMIMP3_SRCHRSLT_MP3_WIN_ID),
	CREATE_LISTBOX_CTRL(MMI_LISTBOX_LEFT,MMI_CLIENT_RECT_TOP,MMI_MAINSCREEN_RIGHT_MAX_PIXEL,MMI_CLIENT_RECT_BOTTOM,
			LISTBOX_TEXTLIST_E,LISTBOX_TEXT1_E,MMIMP3_SRCHRSLT_MP3_LIST_CTRL_ID),
	WIN_STYLE(WS_HAS_SOFTKEY),	

	END_WIN
};

extern WINDOW_TABLE(MMIMP3_SRCHRSLT_MP3_WIN_TAB);

void MMIMT_SrchRslt_MP3_OpenWin( void )
{
	if( !MMK_IsOpenWin( MMIMP3_SRCHRSLT_MP3_WIN_ID ) )
	{
		MMK_CreateWin( (uint32 *)MMIMP3_SRCHRSLT_MP3_WIN_TAB, NULL );
	}
}

extern WINDOW_TABLE(MMIMP3_SRCHRSLT_OBJ_WIN_TAB);

LOCAL MMI_RESULT_E HandleSrchRsltMP3WinMsg( MMIMT_WINDOW_ID_E win_id, MMI_MESSAGE_ID_E msg_id, DPARAM param )
{
	MMI_RESULT_E ret = MMI_RESULT_TRUE; MMI_CONTROL_ID_E ctrl_id = MMIMP3_SRCHRSLT_MP3_LIST_CTRL_ID;

	uint16 str[121]; const uint16 *p; uint16 *q; uint16 i, j;

	switch( msg_id )
	{
	case MSG_OPEN_WINDOW:

		GUILISTBOX_SetMaxItem( ctrl_id, MT_SRCH_RSLT_MAX );
		MMK_SetAtvCtrl( win_id, ctrl_id );

		if( !g_srch_rslt_cnt ) break;


		for( i=0; i<g_srch_rslt_cnt; i++ )
		{
			MT_MEMSET(str, 0x00, sizeof(str));
			q = str;
			for( p=g_srch_rslt[0].sztitle;  *p && q<str+121; *q++ = *p++ ); if( q<str+121 ) { *((uint8 *)q) = 0; *((uint8 *)q+1) = ' '; q++; };
			for( p=g_srch_rslt[0].szartist; *p && q<str+121; *q++ = *p++ ); if( q<str+121 ) { *((uint8 *)q) = 0; *((uint8 *)q+1) = ' '; q++; };
			for( p=g_srch_rslt[0].szalbum;  *p && q<str+121; *q++ = *p++ );
			MTGUILISTBOX_AppendListItem( ctrl_id, (uint8 *)str, (uint8)( (q-str)*2 ), TRUE, (MMI_TEXT_ID_T)TXT_MTUNE_SK_DOWNLOAD, IMAGE_COMMON_MUSIC_SD_ICON );
//			MTGUILISTBOX_AppendListItem( ctrl_id, (uint8 *)g_srch_rslt[i].sztitle, (uint8)( mt_wcslen(g_srch_rslt[i].sztitle)*2 ), TRUE, (MMI_TEXT_ID_T)TXT_MTUNE_SK_DOWNLOAD, IMAGE_COMMON_MUSIC_SD_ICON );
		}

		MMK_SetWinSoftkeyId(win_id,(MMI_TEXT_ID_T)TXT_MTUNE_SK_DOWNLOAD,(MMI_TEXT_ID_T)TXT_NULL,(MMI_TEXT_ID_T)STXT_RETURN,TRUE);

		break;
/*
	case MSG_CTL_LISTBOX_MOVEBOTTOM:
	case MSG_CTL_LISTBOX_MOVEDOWN:

	case MSG_CTL_LISTBOX_MOVETOP:
	case MSG_CTL_LISTBOX_MOVEUP:

		if( !g_srch_rslt_cnt ) break;

		MTGUILISTBOX_GetMoveItemIndex( ctrl_id, msg_id, &i, &j );

		MTGUILISTBOX_ReplaceListItem( ctrl_id, i, (uint8 *)g_srch_rslt[i].sztitle, (uint8)( mt_wcslen(g_srch_rslt[i].sztitle)*2 ), TRUE, (MMI_TEXT_ID_T)TXT_MTUNE_SK_DOWNLOAD, IMAGE_COMMON_MUSIC_SD_ICON );

		q = str;

		for( p=g_srch_rslt[j].sztitle;  *p && q<str+121; *q++ = *p++ ); if( q<str+121 ) { *((uint8 *)q) = 0; *((uint8 *)q+1) = ' '; q++; };
		for( p=g_srch_rslt[j].szartist; *p && q<str+121; *q++ = *p++ ); if( q<str+121 ) { *((uint8 *)q) = 0; *((uint8 *)q+1) = ' '; q++; };
		for( p=g_srch_rslt[j].szalbum;  *p && q<str+121; *q++ = *p++ );

		MTGUILISTBOX_ReplaceListItem( ctrl_id, j, (uint8 *)str, (uint8)( (q-str)*2 ), TRUE, (MMI_TEXT_ID_T)TXT_MTUNE_SK_DOWNLOAD, IMAGE_COMMON_MUSIC_SD_ICON );
		MMK_SetWinSoftkeyId(win_id,(MMI_TEXT_ID_T)TXT_MTUNE_SK_DOWNLOAD,(MMI_TEXT_ID_T)TXT_NULL,(MMI_TEXT_ID_T)STXT_RETURN,TRUE);
                MMK_SendMsg(win_id, MSG_CTL_PAINT, PNULL);
		break;
*/		
   	case MSG_CTL_PENOK:
	case MSG_CTL_OK:

		if( !g_srch_rslt_cnt ) break;

		i = GUILISTBOX_GetCurItemIndex( ctrl_id );

		if( *g_srch_rslt[i].szurl && !*g_srch_rslt[i].szmobjid ) // url only
		{
			MMK_CreateWin( (uint32*)MMIMP3_SRCHRSLT_OBJ_WIN_TAB, (ADD_DATA)(uint32)i );
		}
		else if( *g_srch_rslt[i].szmobjid ) // if mobjid
		{
			MT_WAPOpenURL_SrchOBJ( g_srch_rslt[i].szmobjid, (uint8)i );
		}

		break;

	case MSG_CTL_CANCEL:
		MMK_CloseWin( win_id );
		break;

⌨️ 快捷键说明

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