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

📄 mmimt_ex.c

📁 展讯平台的mtue源代码, 全面,精简,仅供学习, 商用后果自负
💻 C
📖 第 1 页 / 共 2 页
字号:
	                           GUI_EDITBOX_CTRL_T*  editbox_ptr
                               )
{
	uint16 str_width = 0, str_height = 0;
	uint16 arrow_width = 0, arrow_height = 0;
	uint16 ctl_width = 0, ctl_height = 0;

	if (!editbox_ptr)
		return FALSE;

	// 如果不是时间日期编辑框,则不用计算
	if ((editbox_ptr->type != EDITBOX_DATE_E) && (editbox_ptr->type != EDITBOX_TIME_E))
		return FALSE;

	// 得到控件的宽度和高度
	ctl_width  = editbox_ptr->editbox_rect.right  - editbox_ptr->editbox_rect.left + 1;
	ctl_height = editbox_ptr->editbox_rect.bottom - editbox_ptr->editbox_rect.top  + 1;
	
	// 得到文本宽度和高度
	str_width = GUI_CalculateStringPiexlNum(editbox_ptr->str_ptr, editbox_ptr->cur_str_len, FALSE, 
		editbox_ptr->font, editbox_ptr->char_space);
	str_height = GUI_GetFontHeight(editbox_ptr->font, FALSE);

#if 0
	// 得到箭头图片的宽度和高度
	arrow_width  = GUI_GetImageWidth(editbox_ptr->up_arrow_pic);
	arrow_height = GUI_GetImageHight(editbox_ptr->up_arrow_pic);

	// 判断给的区域是否正确
	if (ctl_width < (str_width + arrow_width + editbox_ptr->text_arrow_interval))
	{
		SCI_ASSERT(0);
		return FALSE;
	}
	
	if ((ctl_height < str_height) || (ctl_height < (arrow_height * 2 + editbox_ptr->arrow_between_interval)))
	{
		SCI_ASSERT(0);
		return FALSE;
	}

	// 设定文本显示区域
	editbox_ptr->text_rect.left   = editbox_ptr->editbox_rect.left;
	editbox_ptr->text_rect.top    = editbox_ptr->editbox_rect.top + (ctl_height - str_height) / 2;
	editbox_ptr->text_rect.right  = editbox_ptr->text_rect.left + str_width  - 1;
	editbox_ptr->text_rect.bottom = editbox_ptr->text_rect.top  + str_height - 1;

	// 设定上箭头区域
	editbox_ptr->up_arrow_rect.top    = editbox_ptr->editbox_rect.top;//   + 1;
	editbox_ptr->up_arrow_rect.left   = editbox_ptr->text_rect.right    + 1 + editbox_ptr->text_arrow_interval;
	editbox_ptr->up_arrow_rect.bottom = editbox_ptr->up_arrow_rect.top  + arrow_height - 1;
	editbox_ptr->up_arrow_rect.right  = editbox_ptr->up_arrow_rect.left + arrow_width -1;

	// 设定下箭头区域
	editbox_ptr->down_arrow_rect.top    = editbox_ptr->up_arrow_rect.bottom + 1 + editbox_ptr->arrow_between_interval;
	editbox_ptr->down_arrow_rect.left   = editbox_ptr->up_arrow_rect.left;
	editbox_ptr->down_arrow_rect.bottom = editbox_ptr->down_arrow_rect.top  + arrow_height -1;
	editbox_ptr->down_arrow_rect.right  = editbox_ptr->down_arrow_rect.left + arrow_width  -1;
#endif
	return TRUE;
}

BOOLEAN GUIEDITBOX_SetEditBoxRect(
	uint32 				ctrl_id,	//[IN] 
    GUI_RECT_T*         rect		//[IN] rect
    )
{
	uint16 font_height = 0;
    	GUI_EDITBOX_CTRL_T* editbox_ptr   = PNULL;


	    MMI_CONTROL_T*      ctrl_ptr    = PNULL;

    // get the control pointer
    	ctrl_ptr = MMK_GetCtrlPtrBaseCtrlId(ctrl_id);
    // check the param
  	  SCI_PASSERT((PNULL != ctrl_ptr)&&(CT_CONTROL == ctrl_ptr->component_type), ("GetEditBoxPtr: the ctrl_ptr is error!"));
    // get the pointer of the editbox control
    	editbox_ptr = (GUI_EDITBOX_CTRL_T*)ctrl_ptr->adddata_ptr;
  	  SCI_PASSERT(TYPE_EDITBOX == editbox_ptr->ctrl_type, ("GetEditBoxPtr: the type of the editbox is error!"));

	

    	SCI_PASSERT(PNULL != editbox_ptr, ("GUIEDITBOX_SetEditBoxRect: the editbox_ptr is PNULL!"));
    	SCI_PASSERT(PNULL != rect, ("GUIEDITBOX_SetEditBoxRect: the rect ptr is PNULL!"));

    editbox_ptr->editbox_rect.left   = MAX(rect->left,   0);
    editbox_ptr->editbox_rect.top    = MAX(rect->top,    0);
    editbox_ptr->editbox_rect.right  = MIN(rect->right,  MMITHEME_GetMainScreenRightPiexl());
    editbox_ptr->editbox_rect.bottom = MIN(rect->bottom, MMITHEME_GetMainScreenBottomPiexl());

    if ( editbox_ptr->display_rect )
	{

		    if (PNULL != rect)
		        {
		            editbox_ptr->editbox_rect.left   += 1;  
		            editbox_ptr->editbox_rect.top    += 1;
		            editbox_ptr->editbox_rect.right  -= 1;  // 是否需要留出光标的位置
		            editbox_ptr->editbox_rect.bottom -= 1;
		        }

    	}

    editbox_ptr->line_width  = editbox_ptr->editbox_rect.right - editbox_ptr->editbox_rect.left + 1;

    font_height = GUI_GetFontHeight(editbox_ptr->font, TRUE);
	
    editbox_ptr->page_line_num = CalculatePageLineNum(
                                     editbox_ptr->editbox_rect.bottom - editbox_ptr->editbox_rect.top + 1, 
                                     font_height,                       // temp, 
                                     editbox_ptr->line_space);


	// 如果类型是时间日期
	if ((editbox_ptr->type == EDITBOX_DATE_E) || (editbox_ptr->type == EDITBOX_TIME_E))
		CalculateEachRect(editbox_ptr);

    return (TRUE);
}

void GUIMENU_InsertNodeTextId(
                        uint32          ctrl_id,        //控件id
                        uint32			text_id,       //插入的节点的文本ID
                        uint16          node_id,        //节点编号
                        uint16          parent_node_id, //父节点编号
                        uint16          index           //位置
                        )
{
	MMI_STRING_T node_str;
	MMI_GetLabelTextByLang(text_id, &node_str);
	GUIMENU_InsertNode(index, node_id, parent_node_id, &node_str,ctrl_id);
}

#if 0
uint16 GUILISTBOX_GetTotalItemNum( uint32 ctrl_id )
{
	GUI_LISTBOX_CTRL_T *listbox_ptr = (GUI_LISTBOX_CTRL_T *)MMK_GetCtrlPtrBaseCtrlId( ctrl_id )->adddata_ptr;

	if( listbox_ptr && listbox_ptr->ctrl_type == TYPE_LISTBOX )
	{
		return listbox_ptr->total_item_num;
	}

	return 0;
}
#endif

GUI_RECT_T MT_GetClientRect(void)
{
	GUI_RECT_T rect= MMI_CLIENT_RECT;
	return rect;
}

uint8 MMIMtune_GetSDStatus(void )
{
    if (MMIAPISD_GetStatus())
           return FS_MMC;
  
#ifdef DOUBLE_TFCARD
	if(MMIAPISD2_GetStatus())
          return FS_MMC_2;
#endif

      return FS_UDISK;
}

PUBLIC MN_DUAL_SYS_E MMIMtune_GetActiveSim(void)
{
	uint16  i;
	MN_DUAL_SYS_E sim_sys;
	i= MTNV_ReadInt16( NV_MT_SET_SIM, 0 ); 
	switch (i)
	{
	case 0:
		sim_sys= MN_DUAL_SYS_1;
		break;
	case 1:
		sim_sys= MN_DUAL_SYS_2;
		break;
	default:
		break;
	
	}



	if (!MMIPHONE_IsSimOk(sim_sys))	
		sim_sys =  (MN_DUAL_SYS_E)(((uint8)sim_sys+1) % 2);

//	mt_trace("MMIMtune_GetActiveSim sim =%d", sim_sys);

	return sim_sys;


}

BOOLEAN MT_IS_MP4_FILE(const char* filename)
{

	if( 0 == strcmp( mt_getsuffix( filename ), "3gp" ))
		return TRUE;
	else if (0 == strcmp( mt_getsuffix( filename ), "mri" ))
		{
			 char *p, *q;
			 char *base=(char *) filename;

			for( p=q=base+strlen(filename); p>filename && *p!='.'; p-- );
			if( *p == '.' )
			{	
				q=p-1;
				for (p=q; p>filename && *p!='.'; p--);
				if ((*p=='.') && (q-p-1 <= MT_FILE_SUFFIX_LEN_MAX ))
					if (0==strncmp(p+1,"3gp",3))
						return TRUE;
			}
		}
	return FALSE;
		
}
PUBLIC void MMIMTUNE_CombineFullPath(
                                   FILE_DEV_E_T     file_dev,               //in
                                   uint8           *file_name_ptr,         //in
                                   uint8            *mp3_full_path_ptr,     //in/out
                                   uint16           *mp3_full_path_len_ptr  //in/out
                                   )
{
	uint16 fnw[FFS_MAX_PATH+1] = { 0 };

	
	GUI_GB2UCS( fnw, (uint8 *)file_name_ptr, (uint16)MIN( MMIFILE_FULL_PATH_MAX_LEN*2, strlen((char*)file_name_ptr) ) );
	if(!MT_IS_MP4_FILE((char*)file_name_ptr))
		MMIMP3_CombineFullPath(file_dev,  fnw,  mp3_full_path_ptr,  mp3_full_path_len_ptr );
	else
		{

//		MT_TRACE_F("mp4 name1 =%s", file_name_ptr);

	 	MMIAPIMPEG4_CombineFullPath(  mp3_full_path_ptr,	MMIFILE_FULL_PATH_MAX_LEN*2,	file_dev, 
	 									(uint8*)MMIMULTIM_MOVIE_DEFAULT_DIR, FALSE,	
										 (const uint8*) fnw,	TRUE	 );


		}
}

PROCESSMSG_FUNC MTMMK_SetWinFunc( uint32 win_id, PROCESSMSG_FUNC func_ptr )
{
	MMI_WINDOW_T *win_ptr; PROCESSMSG_FUNC p = NULL;

	if( win_ptr = MMK_GetWinPtrBaseWinId( win_id ) )
	{
		p = win_ptr->ProcessMsg;

		win_ptr->ProcessMsg = func_ptr;
	}

	return p;
}

uint16 MTMMI_GetFullScreenHeight( void )
{
	return MMI_MAINSCREEN_HEIGHT;
}
 
uint16 MTMMI_GetFullScreenWidth(void)
{
	return MMI_MAINSCREEN_WIDTH;
}


 BOOLEAN   MT_IsCMCC_Network()
{
   #ifndef MMI_ENABLE_DUAL_SYS
   		return (BOOLEAN)(PLMN_CMCC==MMIPHONE_GetNetwortName());
   #else
   		return (BOOLEAN)(TXT_NET_CMCC==MMIPHONE_GetSimAndServiceString(MMIMtune_GetActiveSim()));
   #endif

}



#endif


⌨️ 快捷键说明

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