示例#1
0
BOOL submenu_set_items_network()
{
    UINT32 i;
	sub_menu_item_t* menu_item;
	CONTAINER* menu_item_obj;
	POBJECT_HEAD pObj,pObjName,pObjSet;
	CONTAINER* win_sub_menu = &g_win_submenu;
	UINT8 action;
    BOOL ret = TRUE;
    sub_menu_t* sub_menu=&sub_menu_network;

    if (sub_menu->item_count <= C_SUBMENU_PAGE)
    {
        sub_menu->list_page = sub_menu->item_count;
    }
    else
    {
        sub_menu->list_page = C_SUBMENU_PAGE;
    }

    UINT32 count = sub_menu->item_count;
    UINT32 depth = sub_menu->list_page;
    UINT32 max_top = OSD_GetMaxTopPos(count, &depth);

    if (sub_menu->list_top >= sub_menu->list_sel)
        sub_menu->list_top = sub_menu->list_sel;
    else if (sub_menu->list_sel - sub_menu->list_top >= sub_menu->list_page)
        sub_menu->list_top = sub_menu->list_sel + 1 - sub_menu->list_page;

    if (sub_menu->list_top > max_top)
        sub_menu->list_top = max_top;

    if (submenu_item_attr(sub_menu, sub_menu->list_sel) != C_ATTR_ACTIVE)
    {
        ret = submenu_scroll_down(sub_menu);
    }

	sub_menu_desc = sub_menu;

	/*Set menu callback */
	if(sub_menu->menu_callback != NULL)
		OSD_SetCallback(win_sub_menu, sub_menu->menu_callback);
	else
		OSD_SetCallback(win_sub_menu, sm_con_callback);		

    submenu_set_one_page(sub_menu);

	//SCROLL_BAR* sb = &subm_scrollbar;
	//OSD_SetScrollBarMax(sb, sub_menu->item_count);
	//OSD_SetScrollBarPos(sb, sub_menu->list_sel);

    return ret;
}
示例#2
0
BOOL submenu_set_one_page(sub_menu_t* sub_menu)
{
	UINT16 i;
	sub_menu_item_t* menu_item;
	CONTAINER* menu_item_obj;
	POBJECT_HEAD pObj,pObjName,pObjSet;
	CONTAINER* win_sub_menu = &g_win_submenu;
	UINT8 action;

	for(i=0;i<sub_menu->list_page;i++)
	{
#if 0	
		/* IDX & setting Display */
		ComInt2UniStr(display_strs[i], i + 1, 0);
		ComAscStr2Uni("", display_strs[10 + i]);
#endif		

		/* Set attribute to active*/
		action = submenu_item_attr(sub_menu, i+sub_menu->list_top);
		submenu_set_item_attr(i,action);
		
		menu_item = &sub_menu->items[i+sub_menu->list_top];
		menu_item_obj = submenu_items[i];

		/* Link menu items next object and set IDs*/
		menu_item_obj->head.pNext = (i< (sub_menu->list_page - 1) ) ?  ((POBJECT_HEAD)submenu_items[i + 1]) : NULL;
		OSD_SetID(menu_item_obj, i + 1, i + 1, i + 1, 
			i==0? sub_menu->list_page : i, 
			(i==sub_menu->list_page - 1)? 1 : i+2);

#if 0
		/* Link menu item's setting or not*/
		pObj = menu_item_obj->pNextInCntn;	/* IDX */
		pObjName = pObj->pNext;	/* Name */		
		pObjSet = submenu_item_sets[i];		
		switch(menu_item->item_type)
		{
		case ITEM_TYPE_NOMAL:
			pObjName->pNext = NULL;
			break;
		default:
			pObjName->pNext = pObjSet;
			break;
		}
#endif		

		/* Set menu item's name display*/
		pObjName = OSD_GetContainerNextObj(menu_item_obj);
		OSD_SetTextFieldContent((PTEXT_FIELD)pObjName, STRING_ID, (UINT32)menu_item->item_name);		

		/*Set menu item's callback */
		if(menu_item->item_callback != NULL)
			OSD_SetCallback(menu_item_obj, menu_item->item_callback);
		else
			OSD_SetCallback(menu_item_obj, sm_item_con_callback);
		
	}

	OSD_SetContainerFocus(win_sub_menu, sub_menu->list_sel + 1 - sub_menu->list_top);

}
示例#3
0
BOOL submenu_set_items(sub_menu_t* sub_menu)
{
	UINT32 i;
	sub_menu_item_t* menu_item;
	CONTAINER* menu_item_obj;
	POBJECT_HEAD pObj,pObjName,pObjSet;
	CONTAINER* win_sub_menu = &g_win_submenu;
	UINT8 action;
	BOOL ret = TRUE;
	UINT8 focusID;
	focusID = OSD_GetFocusID((POBJECT_HEAD)&g_win_mainmenu);

    if (sub_menu->item_count <= C_SUBMENU_PAGE)
    {
#ifdef SATLLITE_SHARE_SUPPORT       //guop add 20100903
	if(focusID==2)
	{
         if(share_flag == FALSE)
         {
               sub_menu->item_count =3;
	  }
	  else
  	 {
               sub_menu->item_count =4;
	  }
	}
#endif
        sub_menu->list_page = sub_menu->item_count;
    }
    else
    {
        sub_menu->list_page = C_SUBMENU_PAGE;
    }

    UINT32 count = sub_menu->item_count;
    UINT32 depth = sub_menu->list_page;
    UINT32 max_top = OSD_GetMaxTopPos(count, &depth);

    if (sub_menu->list_top >= sub_menu->list_sel)
        sub_menu->list_top = sub_menu->list_sel;
    else if (sub_menu->list_sel - sub_menu->list_top >= sub_menu->list_page)
        sub_menu->list_top = sub_menu->list_sel + 1 - sub_menu->list_page;

    if (sub_menu->list_top > max_top)
        sub_menu->list_top = max_top;

    if (submenu_item_attr(sub_menu, sub_menu->list_sel) != C_ATTR_ACTIVE)
    {
        ret = submenu_scroll_down(sub_menu);
    }

	sub_menu_desc = sub_menu;

	/*Set menu callback */
	if(sub_menu->menu_callback != NULL)
		OSD_SetCallback(win_sub_menu, sub_menu->menu_callback);
	else
		OSD_SetCallback(win_sub_menu, sm_con_callback);		

    submenu_set_one_page(sub_menu);

	SCROLL_BAR* sb = &subm_scrollbar;
	OSD_SetScrollBarMax(sb, sub_menu->item_count);
	OSD_SetScrollBarPos(sb, sub_menu->list_sel);

    return ret;
}