📄 mmimt_ex.c
字号:
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 + -