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

📄 mmimt_billboard_wintab.c

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


#include "mmimt_billboard_wintab.h"

#include "base/mt_ini.h"
#include "base/mmimt_id.h"
#include "base/mmimt_pubwin.h"
#include "base/mmimt_text.h"
#include "data/mt_billboard.h"
#include "data/mt_otacfg.h"
#include "wap/mt_gprs.h"
#include "base/mt_osapi.h"
#include "mt_ver.h"
#include "mmimt_wap_app.h"

#include "guifont.h"
#include "guimenu.h"

//#include "mmk_ex.h"
#include "mtdef.h"
#include "mmi_menutable.h"

#include "window_parse.h"


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

extern MT_BB_ITEM_L1* g_bb_item_l1;
extern uint8 g_bb_item_l1_cnt;

extern MT_OTA_CFG g_ota_cfg;

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

WINDOW_TABLE(MMIMP3_BILLBOARD_L1_WIN_TAB) =
{
	CLEAR_LCD,
	WIN_PRIO(WIN_ONE_LEVEL),
//	WIN_TITLE_ID(TXT_MT_TITLE_BILLBOARD),
	WIN_FUNC((uint32)HandleBillboardL1WinMsg),
	WIN_ID(MMIMP3_BILLBOARD_L1_WIN_ID),
	CREATE_MENU_CTRL(0,0,MMI_MAINSCREEN_RIGHT_MAX_PIXEL,MMI_MAINSCREEN_BOTTOM_MAX_PIXEL, 
			MENU_DYNA,MMIMP3_BILLBOARD_L1_MENU_CTRL_ID),
	END_WIN
};

extern WINDOW_TABLE(MMIMP3_BILLBOARD_L1_WIN_TAB);

void MMIMT_Billboard_OpenWin( BOOLEAN fcheck )
{

	MTBB_LoadEx();

	if( !g_bb_item_l1_cnt ) return;

	if( fcheck && strncmp( MTBB_GetLastTimestamp(), g_ota_cfg.szbillboard_timestamp, 10 ) )
	{
		MT_WAPOpenURL_DownBillboard(); return;
	}

	if( !MMK_IsOpenWin( MMIMP3_BILLBOARD_L1_WIN_ID ) )
	{
		MMK_CreateWin( (uint32 *)MMIMP3_BILLBOARD_L1_WIN_TAB, NULL );
	}
}

extern WINDOW_TABLE(MMIMP3_BILLBOARD_L2_WIN_TAB);

LOCAL MMI_RESULT_E HandleBillboardL1WinMsg( 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_BILLBOARD_L1_MENU_CTRL_ID;

	uint16 i; static uint32 t = 0;

	MMI_STRING_T title;

	switch( msg_id )
	{
	case MSG_OPEN_WINDOW:

		MMI_GetLabelTextByLang( TXT_MT_TITLE_BILLBOARD, &title );

		GUIMENU_SetMenuTitle(  &title, ctrl_id );


		if( !g_bb_item_l1_cnt ) break;

		for( i=0; i<g_bb_item_l1_cnt; i++ )
		{
			MMI_STRING_T text; uint8 str[MAX_NODE_TEXT_LENGTH*2] = { 0 };

			text.str_ptr = str; text.is_ucs2 = TRUE;
			text.length = GUI_GB2UCS( (uint16 *)str, (uint8 *)(g_bb_item_l1[i].title_ptr), (uint16)MIN( MAX_NODE_TEXT_LENGTH , g_bb_item_l1[i].title_len ) );

			GUIMENU_InsertNode(i, (uint16)(i+1),  0, &text, ctrl_id );
		}

		MMK_SetAtvCtrl( win_id, ctrl_id );

		t = SCI_GetTickCount();

		break;

	case MSG_CTL_PENOK:
	case MSG_CTL_OK:

		if( !g_bb_item_l1_cnt ) break;

		i = (uint16)MAX( GUIMENU_GetCurNodeId( ctrl_id ) - 1, 0 );

		MMK_CreateWin( (uint32 *)MMIMP3_BILLBOARD_L2_WIN_TAB, (ADD_DATA)(uint32)i );

		break;

	case MSG_CTL_CANCEL:

		MMK_CloseWin( win_id );

		if( !MTBB_GetAdvCnfTimestamp() && !strncmp( MTBB_GetLastTimestamp(), g_ota_cfg.szbillboard_timestamp, 10 ) )
		{
			if( SCI_GetTickCount() - t > (uint32)MTINI_GetProfileInt( INI_MT_INT_BILLBOARD_DUR_PER_USE ) * 1000 )
			{
				MTBB_SetAdvCnfTimestamp( TM_GetTotalSeconds() );
			}
		}

		break;

	default:

		ret = MMI_RESULT_FALSE;

		break;
	}

	return ret;
}

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

WINDOW_TABLE(MMIMP3_BILLBOARD_L2_WIN_TAB) =
{
	CLEAR_LCD,
	WIN_PRIO(WIN_ONE_LEVEL),
//	WIN_TITLE_ID(TXT_MT_TITLE_BILLBOARD),
	WIN_FUNC((uint32)HandleBillboardL2WinMsg),
	WIN_ID(MMIMP3_BILLBOARD_L2_WIN_ID),
	CREATE_MENU_CTRL(0,0,MMI_MAINSCREEN_RIGHT_MAX_PIXEL,MMI_MAINSCREEN_BOTTOM_MAX_PIXEL, 
			MENU_DYNA,MMIMP3_BILLBOARD_L2_MENU_CTRL_ID),
	END_WIN
};

extern WINDOW_TABLE(MMIMP3_BILLBOARD_L2_WIN_TAB);

LOCAL MMI_RESULT_E HandleBillboardL2WinMsg( 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_BILLBOARD_L2_MENU_CTRL_ID;

	static uint16 i = 0; uint16 j; char szkeyword[81] = { 0 };

	MMI_STRING_T title;

	uint8 str_title[MAX_NODE_TEXT_LENGTH*2] = { 0 };

	switch( msg_id )
	{
	case MSG_OPEN_WINDOW:
		
	MMI_GetLabelTextByLang( TXT_MT_TITLE_BILLBOARD, &title );

		if( !g_bb_item_l1_cnt ) break;

		i = (uint16)(uint32)MMK_GetWinAddDataPtr( win_id ); if( i >= g_bb_item_l1_cnt ) break;
		
		GUIMENU_SetMenuTitle(  &title, ctrl_id );

		GUIMENU_SetDynamicMenuSoftkey(ctrl_id, (MMI_TEXT_ID_T)TXT_MTUNE_SK_DOWNLOAD,(MMI_TEXT_ID_T)TXT_NULL,(MMI_TEXT_ID_T)STXT_RETURN);

		for( j=0; j<g_bb_item_l1[i].item_l2_cnt; j++ )
		{
			MMI_STRING_T text; uint8 str[MAX_NODE_TEXT_LENGTH*2] = { 0 };

			text.str_ptr = str; text.is_ucs2 = TRUE;

			text.length = GUI_GB2UCS( (uint16 *)str, (uint8 *)g_bb_item_l1[i].item_l2[j].title_ptr, (uint16)MIN( MAX_NODE_TEXT_LENGTH , g_bb_item_l1[i].item_l2[j].title_len ) );

			GUIMENU_InsertNode( j , (uint16)(j+1) , 0, &text,  ctrl_id);
		}

		MMK_SetAtvCtrl( win_id, ctrl_id );

		break;

	case MSG_CTL_PENOK:
	case MSG_CTL_OK:

		if( !g_bb_item_l1_cnt ) break;

		j = (uint16)MAX( GUIMENU_GetCurNodeId( ctrl_id ) - 1, 0 ); if( j >= g_bb_item_l1[i].item_l2_cnt ) break;

		if( !mt_gprs_isavailable() ) { MT_PROMPT_GPRS_INAVAILABLE(); break; }

		strncpy( szkeyword, g_bb_item_l1[i].item_l2[j].title_ptr, MIN( sizeof(szkeyword), g_bb_item_l1[i].item_l2[j].title_len ) );

		if( !*g_bb_item_l1[i].item_l2[j].szmobjid && !*g_bb_item_l1[i].item_l2[j].szwobjid )
		{
		MT_WAPOpenURL_SrchMP3( szkeyword, "", "", "", "", MTPK_BILLBOARD );
		}
		else
		{
			MT_WAPOpenURL_SrchOBJ2( g_bb_item_l1[i].item_l2[j].szmobjid, g_bb_item_l1[i].item_l2[j].szwobjid ); // BBV2
		}

		break;

	case MSG_CTL_CANCEL:

		MMK_CloseWin( win_id );

		break;

	default:

		ret = MMI_RESULT_FALSE;

		break;
	}

	return ret;
}

#endif

⌨️ 快捷键说明

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