Nos项目 ChannelInfo添加SKIP和FAV的图标

1.需求:ChannelInfo在显示时,判断当前台位是否是FAV和Skip台位,在INFO页面显示相应图标。

2.做法:A:第一步在SkinTool里,ChannelInfo页添加显示FAV和Skip图标的HWND,(常规设置)

               B:第二步在代码里判断当前台位属性是否为FAV或SKIP,根据状态动态显示对应图标。

3.流程:

Nos项目 ChannelInfo添加SKIP和FAV的图标

上图描绘中case1里写动态判断当前台位的方法,返回一个对应台位状态的bitmap图片,case中的详细方法,请看第4点



Nos项目 ChannelInfo添加SKIP和FAV的图标


图中标注的1的case和2中的绘图属性是联合使用的,如果2绘图属性没有添加或添加错误,那么1的case 是不会跑进去的。图中描绘的就是1case所属的方法MApp_ZUI_ACT_GetDynamicBitmap() 的流程


4.动态判断当前台位,返回对应台位状态图标。

上代码:

case HWND_CHINFO_EXT_FAV_IMG:
{
{
BOOLEAN bFav = FALSE;
MEMBER_SERVICETYPE bServiceType = E_SERVICETYPE_INVALID;
WORD wPosition = 0xFFFF;

if(IsSrcTypeATV(SYS_INPUT_SOURCE_TYPE(MAIN_WINDOW)))
{
bServiceType = E_SERVICETYPE_ATV;
wPosition = msAPI_CHPROC_CM_GetCurrentOrdinal(bServiceType,E_PROGACESS_INCLUDE_VISIBLE_ONLY);
}
// msAPI_CHPROC_CM_Get_Attr_Favor_ByOrdinal();

msAPI_CHPROC_CM_GetAttributeOfOrdinal(bServiceType, wPosition, &bFav, E_SERVICE_ATTR_FAVORITE, E_PROGACESS_INCLUDE_VISIBLE_ONLY);

if (bFav)
{
return E_BMP_IDLE_IMG_ICON_FAVORITE_FOCUS;
}

}

}