亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mmimt_ex.c

?? 展訊平臺的mtue源代碼, 全面,精簡,僅供學習, 商用后果自負
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*****************************************************************************
** File Name:                                                                *
** Author:                                                                   *
** Date:           2007/06/30                                                *
** Copyright:      2007 MTONE, Inc. All Rights Reserved.                     *
** Description:                                                              *
******************************************************************************
**                         Important Edit History                            *
** --------------------------------------------------------------------------*
** DATE           NAME             DESCRIPTION                               *
** 2007/06/30                      Create                                    *
*****************************************************************************/
#ifdef MMI_MTUNE


#include "mmimt_ex.h"

#include "mt_osapi.h"
#include "mmimt_text.h"

#include "mmi_ctrl_register.h"
#include "mmi_text.h"
#include "mmi_theme.h"

#include "guilabel.h"
#include "guilistbox.h"

#include "mtdef.h"

#define MTVAR_REF
#include "../mt_var.h"
#include "../mt_var.def"

#include "mmiphone.h"
#include "mmimp3.h"

#include "mt_nv.h"
#include "mt_string.h"
////////////////////////////////////////////////////////////////

BOOLEAN MTMMISTR_IsEqual( const MMI_STRING_T *string1, const MMI_STRING_T *string2 )
{
	if( !string1 && !string2 ) return TRUE;
	if( !string1 || !string2 ) return FALSE;

	if( string1->is_ucs2 != string2->is_ucs2 ) return FALSE;
	if( string1->length != string2->length ) return FALSE;

	if( string1->length )
	{
		if( string1->str_ptr && string2->str_ptr )
		{
			return (BOOLEAN)( 0 == MT_MEMCMP( string1->str_ptr, string2->str_ptr, string1->length ) );
		}
		else
		{
			return (BOOLEAN)( string1->str_ptr == string2->str_ptr );
		}
	}

	return TRUE;
}

BOOLEAN MTMMK_SendMsgTP( uint32 win_id, BOOLEAN is_down, const GUI_RECT_T *rect_ptr )
{
	GUI_POINT_T point;

	SCI_ASSERT( rect_ptr->left >= 0 && rect_ptr->top >= 0 && rect_ptr->right >= 0 && rect_ptr->bottom >= 0 );
	SCI_ASSERT( rect_ptr->right - rect_ptr->top && rect_ptr->bottom - rect_ptr->top );

	point.x = (int16)( rect_ptr->left + ( rect_ptr->right  - rect_ptr->left ) / 2 );
	point.y = (int16)( rect_ptr->top  + ( rect_ptr->bottom - rect_ptr->top )  / 2 );

	return MMK_SendMsg( win_id, (MMI_MESSAGE_ID_E)( ( is_down ) ? ( MSG_TP_DOWN ) : ( MSG_TP_UP ) ), (DPARAM)&point );
}

void MTMMITHEME_GetClientRect( GUI_RECT_T *rect_ptr )
{
	GUI_RECT_T rect ;
	
	rect = MT_GetClientRect();
	
	if( !rect_ptr ) return;
#if 0	
	rect_ptr->left = 0;
	rect_ptr->right = MMITHEME_GetMainScreenRightPiexl();
	
	rect = MMITHEME_GetTitleTextRect();
	rect_ptr->top = (int16)( rect.bottom + 1 );

	MMITHEME_GetWinSoftkeyRect( &rect );
	rect_ptr->bottom = (int16)( MMITHEME_GetMainScreenBottomPiexl() - ( rect.bottom - rect.top + 1 ) );
#endif
	rect_ptr->left =rect.left;
	rect_ptr->right = rect.right;
	rect_ptr->top = rect.top;
	rect_ptr->bottom = rect.bottom;
}

const MMI_STRING_T *MTGUILABEL_GetText( uint32 ctrl_id )
{
	GUI_LABEL_CTRL_T* label_ptr = (GUI_LABEL_CTRL_T *)MMK_GetCtrlPtrBaseCtrlId( ctrl_id )->adddata_ptr;

	if( !label_ptr || label_ptr->ctrl_type != TYPE_LABEL ) return NULL;

	return &label_ptr->text;
}

BOOLEAN MTGUILABEL_SetText( uint32 ctrl_id, MMI_STRING_T *text_ptr, BOOLEAN is_fresh )
{
	static BOOLEAN f = FALSE;

	BOOLEAN r = TRUE;

	if( !f )
	{
		f = TRUE;

		if( !MTMMISTR_IsEqual( MTGUILABEL_GetText( ctrl_id ), text_ptr ) )
		{
			r = GUILABEL_SetText( ctrl_id, text_ptr, is_fresh );
		}

		f = FALSE;
	}

	return r;
}

BOOLEAN MTGUILISTBOX_AppendListItem( uint32 ctrl_id, const uint8 *str_ptr, uint8 str_len, BOOLEAN is_ucs2,
								 uint32 left_softkey_id, uint32 left_icon_id )
{
	GUI_LISTBOX_ITEM_T item = { 0 }; uint8 l;

	SCI_ASSERT( str_ptr );

	l = (uint8)MIN( LISTBOX_STRING_MAX_NUM, str_len );

	MT_MEMCPY( item.str, str_ptr, l );
	item.is_ucs2 = is_ucs2;
	item.str_len = l;

	item.softkey_id[0] = left_softkey_id;
	item.softkey_id[1] = TXT_NULL;
	item.softkey_id[2] = STXT_EXIT;

	item.left_icon_id = left_icon_id;

	return GUILISTBOX_AppendItem( ctrl_id, &item );
}

BOOLEAN MTGUILISTBOX_ReplaceListItem( uint32 ctrl_id, uint16 pos, const uint8 *str_ptr, uint8 str_len, BOOLEAN is_ucs2,
								  uint32 left_softkey_id, uint32 left_icon_id )
{
	GUI_LISTBOX_ITEM_T item = { 0 }; uint8 l;

	SCI_ASSERT( str_ptr );

	l = (uint8)MIN( LISTBOX_STRING_MAX_NUM, str_len );

	MT_MEMCPY( item.str, str_ptr, l );
	item.is_ucs2 = is_ucs2;
	item.str_len = l;

	item.softkey_id[0] = left_softkey_id;
	item.softkey_id[1] = TXT_NULL;
	item.softkey_id[2] = STXT_EXIT;

	item.left_icon_id = left_icon_id;

	return GUILISTBOX_ReplaceItem( ctrl_id, &item, pos );
}

BOOLEAN MTGUILISTBOX_AppendListItemByTextId( uint32 ctrl_id, uint32 text_id,
										 uint32 left_softkey_id, uint32 left_icon_id )
{
	MMI_STRING_T str; MMI_GetLabelTextByLang( text_id, &str );

	return MTGUILISTBOX_AppendListItem( ctrl_id, str.str_ptr, (uint8)str.length, str.is_ucs2, left_softkey_id, left_icon_id );
}
/*
BOOLEAN MTGUILISTBOX_AppendListItemWithIndexIcon( uint32 ctrl_id, const uint8 *str_ptr, uint8 str_len, BOOLEAN is_ucs2,
											  uint32 left_softkey_id, uint8 index, BOOLEAN on )
{
	SCI_ASSERT( str_ptr != NULL );
	
	return MTGUILISTBOX_AppendListItem( ctrl_id, str_ptr, str_len, is_ucs2, left_softkey_id, ( ( on ) ? ( _V(IMAGE_COM_NUMBER_ON_01) ) : ( _V(IMAGE_COM_NUMBER_OFF_01) ) ) + index );
}

BOOLEAN MTGUILISTBOX_AppendListItemWithIndexIconByTextId( uint32 ctrl_id, uint32 text_id,
													  uint32 left_softkey_id, uint8 index, BOOLEAN on )
{
	MMI_STRING_T str; MMI_GetLabelText( text_id, &str );

	return MTGUILISTBOX_AppendListItemWithIndexIcon( ctrl_id, str.str_ptr, (uint8)str.length, str.is_ucs2, left_softkey_id, index, on );
}

BOOLEAN MTGUILISTBOX_ChangeIndexIconId( uint32 ctrl_id, uint8 index, BOOLEAN on )
{
	return GUILISTBOX_ChangeIconId( ctrl_id, index, ( ( on ) ? ( _V(IMAGE_COM_NUMBER_ON_01) ) : ( _V(IMAGE_COM_NUMBER_OFF_01) ) ) + index, 0 );
}
*/
BOOLEAN MTGUILISTBOX_GetMoveItemIndex( uint32 ctrl_id, uint32 msg_id, uint16 *i, uint16 *j )
{
	uint16 n, u, v;

	if( !i && !j )
	{
		MT_TRACE( "\r\nMTGUILISTBOX_GetMoveItemIndex() exit: argument invalid\r\n" ); return FALSE;
	}

	if( i ) *i = 0; if( j ) *j = 0;

	if( msg_id != MSG_CTL_LISTBOX_MOVEBOTTOM && msg_id != MSG_CTL_LISTBOX_MOVEDOWN && msg_id != MSG_CTL_LISTBOX_MOVETOP && msg_id != MSG_CTL_LISTBOX_MOVEUP )
	{
		MT_TRACE( "\r\nMTGUILISTBOX_GetMoveItemIndex() exit: argument invalid\r\n" ); return FALSE;
	}

	n = GUILISTBOX_GetTotalItemNum( ctrl_id );

	if( !n )
	{
		MT_TRACE( "\r\nMTGUILISTBOX_GetMoveItemIndex() exit: GUILISTBOX_GetTotalItemNum() ret 0\r\n" ); return FALSE;
	}

#ifdef GUILISTBOX_TOPWISE

	if( MSG_CTL_LISTBOX_MOVEBOTTOM == msg_id || MSG_CTL_LISTBOX_MOVEDOWN == msg_id )
	{
		u = (uint16)( ( GUILISTBOX_GetCurItemIndex( ctrl_id ) + n - 1 ) % n );
	}
	else // MSG_CTL_LISTBOX_MOVETOP == msg_id || MSG_CTL_LISTBOX_MOVEUP == msg_id
	{
		u = (uint16)( ( GUILISTBOX_GetCurItemIndex( ctrl_id ) + 1 ) % n );
	}
#else

		u = GUILISTBOX_GetCurItemIndex( ctrl_id ) ;


#endif

	if( MSG_CTL_LISTBOX_MOVEBOTTOM == msg_id || MSG_CTL_LISTBOX_MOVEDOWN == msg_id )
	{
		v = (uint16)( ( u - 1+ n ) % n );
	}
	else // MSG_CTL_LISTBOX_MOVETOP || MSG_CTL_LISTBOX_MOVEUP
	{
		v = (uint16)( ( u + 1  ) % n );
	}

	MT_TRACE( "\r\nMTGUILISTBOX_GetMoveItemIndex(): u=%u v=%u\r\n", u, v );

	if( i ) *i = v; if( j ) *j = u;

	return TRUE;
}

LOCAL uint16 CalculatePageLineNum(
                                  uint16 rect_height, 
                                  uint16 font_height, 
                                  uint16 line_space
                                  )
{
    uint16 page_line_num = 0;
    uint16 line_height = 0;

    line_height = font_height + line_space;

    if (0 != line_height)
    {
        page_line_num = rect_height/line_height;

        if ((rect_height%line_height) >= font_height-2)
        {
            page_line_num++;
        }
    }
    else
    {
        SCI_PASSERT(FALSE, ("CalculatePageLineNum: the line height is zero!"));
    }

    return (page_line_num);
}

LOCAL BOOLEAN CalculateEachRect(

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久午夜电影| 激情综合网天天干| 国产精品乱码久久久久久| 91精品国产高清一区二区三区| 91麻豆精品在线观看| 99久久精品国产麻豆演员表| 成人永久免费视频| 国产91精品精华液一区二区三区| 国产在线观看一区二区| 国产专区欧美精品| 国产中文字幕一区| 成人一级视频在线观看| 成人av午夜电影| 99视频精品在线| 日本道在线观看一区二区| 色av综合在线| 在线不卡一区二区| 日韩免费福利电影在线观看| 久久人人爽爽爽人久久久| 国产精品女主播在线观看| 中文字幕一区二区三中文字幕| 国产精品久久久久桃色tv| 亚洲精品成人悠悠色影视| 天堂影院一区二区| 精品一区二区三区免费视频| 国产mv日韩mv欧美| 色综合一区二区| 欧美日韩成人综合在线一区二区| 欧美日韩精品欧美日韩精品一| 9191成人精品久久| 久久久久久久久97黄色工厂| 中文字幕中文在线不卡住| 亚洲专区一二三| 紧缚捆绑精品一区二区| 91在线观看视频| 91精品蜜臀在线一区尤物| 欧美大片拔萝卜| 国产精品灌醉下药二区| 日韩精品免费专区| 成人黄色电影在线| 欧美私人免费视频| 久久精品人人做人人综合| 亚洲综合一二三区| 国产一区二区三区免费看| 91福利国产成人精品照片| 日韩精品资源二区在线| 亚洲综合色在线| 国产精品一区不卡| 欧美久久一二区| 国产精品久久一卡二卡| 久久精品国产亚洲5555| 91久久国产综合久久| 日韩欧美国产小视频| 偷拍自拍另类欧美| 国产成人综合亚洲91猫咪| 欧美丰满高潮xxxx喷水动漫| 最新成人av在线| 精品影院一区二区久久久| 欧美色综合天天久久综合精品| 国产欧美一区二区精品秋霞影院| 日韩不卡在线观看日韩不卡视频| 成人av免费在线播放| 亚洲精品一区二区三区99| 日韩av二区在线播放| 欧洲一区在线电影| 亚洲欧洲国产日韩| 福利一区二区在线| 久久免费电影网| 免费精品视频最新在线| 欧美日产国产精品| 亚洲尤物视频在线| 在线观看免费成人| 亚洲免费电影在线| 91麻豆精品在线观看| 最近中文字幕一区二区三区| proumb性欧美在线观看| 日本一区二区三区电影| 国产成人精品三级| 国产欧美一区二区精品性色| 国产成人免费xxxxxxxx| 久久久久亚洲综合| 国产99久久久国产精品| 国产欧美视频一区二区三区| 国产黄色精品视频| 中文字幕不卡在线观看| 成人在线视频一区二区| 成人免费在线视频观看| 色婷婷香蕉在线一区二区| 亚洲精品国产无天堂网2021| 色先锋aa成人| 一卡二卡欧美日韩| 在线播放欧美女士性生活| 日本伊人色综合网| 久久无码av三级| av网站免费线看精品| 亚洲精品日日夜夜| 制服.丝袜.亚洲.中文.综合| 成人免费不卡视频| 综合久久久久综合| 欧美视频一区二| 久久精品72免费观看| 中文字幕国产精品一区二区| 99精品在线免费| 亚洲综合成人在线视频| 日韩免费一区二区三区在线播放| 国产一区二区三区黄视频| 中文字幕一区二区三区不卡在线 | 久久久久久久久99精品| 成人夜色视频网站在线观看| 亚洲女厕所小便bbb| 欧美精品一二三区| 国产麻豆一精品一av一免费 | 中文在线免费一区三区高中清不卡| 国产东北露脸精品视频| 亚洲人快播电影网| 欧美一区二区三区免费在线看| 国产乱人伦偷精品视频不卡| 亚洲色图清纯唯美| 欧美mv日韩mv国产网站app| 成人av网站大全| 美脚の诱脚舐め脚责91| 亚洲欧美日韩中文字幕一区二区三区| 欧美日韩综合在线| 国产成人自拍高清视频在线免费播放| 亚洲尤物在线视频观看| 久久久www成人免费毛片麻豆 | 国产精品国产三级国产普通话蜜臀 | 欧美猛男gaygay网站| 韩国成人在线视频| 亚洲第一主播视频| 国产精品国产成人国产三级| 欧美成人精精品一区二区频| 日本高清视频一区二区| 国产精品亚洲午夜一区二区三区 | 8v天堂国产在线一区二区| 成人动漫中文字幕| 久久精品国产久精国产爱| 一区二区三区在线播| 国产精品美女一区二区三区| 日韩一级片在线观看| 在线亚洲一区观看| 99久久综合狠狠综合久久| 国产成人免费xxxxxxxx| 紧缚奴在线一区二区三区| 日本在线播放一区二区三区| 一区二区三区不卡视频在线观看| 国产欧美日韩在线| ww久久中文字幕| 日韩久久免费av| 欧美一区二区三区色| 欧美日韩一级视频| 欧美亚洲国产一区二区三区va| 丁香五精品蜜臀久久久久99网站 | 成人av在线资源| 国产激情一区二区三区| 国产精品一区二区三区网站| 麻豆视频观看网址久久| 美女看a上一区| 蜜臀av亚洲一区中文字幕| 天堂成人免费av电影一区| 偷拍一区二区三区四区| 午夜视频一区二区| 日韩成人dvd| 久久精品国产77777蜜臀| 韩国女主播一区二区三区| 国产一区二区三区免费观看 | 久久久99精品免费观看不卡| 久久夜色精品国产欧美乱极品| 精品国产污网站| 欧美xxxx老人做受| 26uuu亚洲综合色| 国产精品私人自拍| 亚洲精品乱码久久久久久| 一区二区不卡在线视频 午夜欧美不卡在 | 欧美午夜精品久久久久久超碰| 色8久久人人97超碰香蕉987| 在线观看日产精品| 91超碰这里只有精品国产| 日韩欧美亚洲一区二区| 国产欧美精品一区| 亚洲精品国产a| 丝袜亚洲另类欧美| 国产一区二三区| 在线观看不卡一区| 91精品国产欧美一区二区成人| 精品电影一区二区三区| 欧美国产日韩在线观看| 一区二区三区 在线观看视频| 日韩成人av影视| 成人精品一区二区三区四区 | 丝袜美腿成人在线| 国产综合成人久久大片91| 色综合久久综合| 欧美一二三四区在线| 中文字幕亚洲综合久久菠萝蜜| 亚洲午夜久久久| 国产精品99久久久久久有的能看| 在线观看欧美黄色| 国产亚洲成年网址在线观看| 亚洲国产精品久久人人爱|