📄 mmimt_search_wintab.c
字号:
/*****************************************************************************
** 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 + -