コード例 #1
0
ファイル: win_submenu.c プロジェクト: Janesak1977/ali3602
BOOL OSD_ScrollLinePgUp(UINT32 count, UINT32 depth, UINT32 *pcur_top, UINT32 *pcur_pos)
{
    if (count <= 1)
        return FALSE;

    UINT32 top_pos = *pcur_top;
    UINT32 cur_pos = *pcur_pos;
    UINT32 max_top = OSD_GetMaxTopPos(count, &depth);

	if(top_pos > 0)
	{
	    if (top_pos >= depth)
	    {
	        top_pos -= depth;
	    }
	    else// if (top_pos < depth)
	    {
            top_pos = 0;
	    }
	}
	else// if(top_pos == 0)
	{
		top_pos = count - depth;
	}

    *pcur_top = top_pos;
    *pcur_pos = cur_pos;

    return TRUE;
}
コード例 #2
0
ファイル: win_submenu.c プロジェクト: Janesak1977/ali3602
BOOL OSD_ScrollLinePgDown(UINT32 count, UINT32 depth, UINT32 *pcur_top, UINT32 *pcur_pos)
{
    if (count <= 1)
        return FALSE;

    UINT32 top_pos = *pcur_top;
    UINT32 cur_pos = *pcur_pos;
    UINT32 max_top = OSD_GetMaxTopPos(count, &depth);

    if (top_pos + depth < count)
    {
		if(top_pos + depth + depth < count)
		{
        	top_pos += depth;
		}
		else
    	{
    		top_pos = count - depth;
		}
    }
    else //last page
    {
		top_pos = 0;
    }

    *pcur_top = top_pos;
    *pcur_pos = cur_pos;

    return TRUE;
}
コード例 #3
0
ファイル: win_submenu.c プロジェクト: Janesak1977/ali3602
BOOL OSD_ScrollLineUp(UINT32 count, UINT32 depth, UINT32 *pcur_top, UINT32 *pcur_pos)
{
    if (count <= 1)
        return FALSE;

    UINT32 top_pos = *pcur_top;
    UINT32 cur_pos = *pcur_pos;
    UINT32 max_top = OSD_GetMaxTopPos(count, &depth);

    if (cur_pos)
    {
        cur_pos--;
    }
    else
    {
        if (top_pos)
        {
            top_pos--;
        }
        else
        {
            top_pos = max_top;
            cur_pos = depth - 1;
        }
    }

    *pcur_top = top_pos;
    *pcur_pos = cur_pos;

    return TRUE;
}
コード例 #4
0
ファイル: win_submenu.c プロジェクト: alkap007/ali3606
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;
}
コード例 #5
0
ファイル: win_submenu.c プロジェクト: Janesak1977/ali3602
BOOL OSD_ScrollLineDown(UINT32 count, UINT32 depth, UINT32 *pcur_top, UINT32 *pcur_pos)
{
    if (count <= 1)
        return FALSE;

    UINT32 top_pos = *pcur_top;
    UINT32 cur_pos = *pcur_pos;
    UINT32 max_top = OSD_GetMaxTopPos(count, &depth);

    if (cur_pos < depth - 1)
    {
        cur_pos++;
    }
    else
    {
        if (max_top)
        {
            if (top_pos < max_top)
            {
                top_pos++;
            }
            else
            {
                top_pos = 0;
                cur_pos = 0;
            }
        }
        else
        {
            cur_pos = 0;
        }
    }

    *pcur_top = top_pos;
    *pcur_pos = cur_pos;

    return TRUE;
}
コード例 #6
0
ファイル: win_submenu.c プロジェクト: Janesak1977/ali3602
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;
}