static void win_biss_load_select(void) { UINT32 n; CAS_KEYINFO *Pm = NULL; OBJLIST* ol; SCROLL_BAR* sb; POBJECT_HEAD pObj; ol = &biss_olist; n = softcam_get_keyinfo_num((u8) CAS_ID_BISS); /* Set count */ OSD_SetObjListCount(ol, n); OSD_SetObjListCurPoint(ol, 0); OSD_SetObjListNewPoint(ol, 0); OSD_SetObjListTop(ol, 0); sb = &biss_scb; OSD_SetScrollBarMax(sb,n); OSD_SetScrollBarPos(sb, 0); }
static void win_wifilist_update_all_wifi_manager_menu(BOOL refresh_device_status) { UINT16 i; OBJLIST* ol; CONTAINER* item; TEXT_FIELD* txt; SCROLL_BAR* sb; ol = &wifilist_olist; txt = &wifilst_dev_status; sb = &wifilist_scb; DEBUG_PRINTF("win_wifilist_update_all_wifi_manager_menu(bFlag=%d)\n", refresh_device_status); if(ap_list_pos >= AP_Num) { ap_list_top = 0; ap_list_item_sel=0; ap_list_pos=0; } OSD_SetObjListCount(ol, AP_Num); /* Set count */ OSD_SetObjListCurPoint(ol, ap_list_item_sel); OSD_SetObjListNewPoint(ol, ap_list_item_sel); OSD_SetObjListTop(ol, ap_list_top); OSD_SetScrollBarMax(sb, AP_Num); OSD_SetScrollBarPos(sb, ap_list_top); // update WiFi Device Status (content) win_wifilist_update_wifi_device_status_display(refresh_device_status); // update and redraw AP List (content) only win_wifilist_update_wifi_ap_list_display(refresh_device_status); }
static void win_tplist_load_sat(BOOL updatesat) { UINT16 i,tp_num,focus_pos,max_top; OBJLIST* ol; CONTAINER* item; TEXT_FIELD* txt; SCROLL_BAR* sb; S_NODE s_node; T_NODE prog_tp_node; if(cur_tp_sat_idx >= get_tuner_sat_cnt(TUNER_EITHER) ) cur_tp_sat_idx= 0; get_tuner_sat(TUNER_EITHER, cur_tp_sat_idx, &s_node); ol = &tplst_olist; txt = &tplst_sat; sb = &tplst_scb; recreate_tp_view(VIEW_SINGLE_SAT, s_node.sat_id); tp_num = get_tp_num_sat(s_node.sat_id); OSD_SetObjListCount(ol, tp_num); /* Set count */ focus_pos = tp_list_pos;//OSD_GetObjListCurPoint(ol); if (tp_num > OSD_GetObjListPage(ol)) max_top = tp_num - OSD_GetObjListPage(ol); else max_top = 0; if (focus_pos == 0xffff) { if(playing_pnode.sat_id == s_node.sat_id) { for(i = 0;i < tp_num;i++) { get_tp_at(playing_pnode.sat_id, i, &prog_tp_node); if(prog_tp_node.tp_id == playing_pnode.tp_id) { focus_pos = i; if (focus_pos > max_top) tp_list_top = max_top; else tp_list_top = focus_pos; break; } } } } if(focus_pos >= tp_num) { focus_pos = 0; tp_list_top = 0; } OSD_SetObjListCurPoint(ol, focus_pos); OSD_SetObjListNewPoint(ol, focus_pos); OSD_SetObjListTop(ol, tp_list_top); OSD_SetScrollBarMax(sb,tp_num); OSD_SetScrollBarPos(sb, focus_pos); win_tplist_set_sat_display(); if(updatesat) OSD_DrawObject( (POBJECT_HEAD)txt, C_UPDATE_ALL); }
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; }
BOOL submenu_unknown_act(sub_menu_t *sub_menu, UINT32 vact) { UINT32 count = sub_menu->item_count; UINT32 depth = sub_menu->list_page; UINT32 top_pos = sub_menu->list_top; UINT32 cur_sel = sub_menu->list_sel; UINT32 cur_pos = cur_sel - top_pos; UINT32 old_sel = cur_sel; UINT32 old_top = top_pos; UINT32 i; BOOL ret = TRUE; TEXT_FIELD* txt1; TEXT_FIELD* txt2; if (vact >= VACT_NUM_1 && vact<= VACT_NUM_9) { OSD_ChangeFocus((POBJECT_HEAD)&g_win_submenu, vact - VACT_NUM_0, C_UPDATE_FOCUS); return TRUE; } if(vact == VACT_FOCUS_P_UP || vact == VACT_FOCUS_P_DOWN) { if (vact == VACT_FOCUS_P_UP) ret = OSD_ScrollLinePgUp(count, depth, &top_pos, &cur_pos); else ret = OSD_ScrollLinePgDown(count, depth, &top_pos, &cur_pos); if (!ret) return FALSE; cur_sel = top_pos + cur_pos; if (cur_sel == old_sel) return FALSE; if (submenu_item_attr(sub_menu, cur_sel) == C_ATTR_ACTIVE) { vact = VACT_PASS; } else { if (vact == VACT_FOCUS_P_UP) vact = VACT_FOCUS_UP; else vact = VACT_FOCUS_DOWN; } } if(vact == VACT_FOCUS_UP || vact == VACT_FOCUS_DOWN) { for (i = 0; i < count; i++) { if (vact == VACT_FOCUS_UP) ret = OSD_ScrollLineUp(count, depth, &top_pos, &cur_pos); else ret = OSD_ScrollLineDown(count, depth, &top_pos, &cur_pos); if (!ret) return FALSE; cur_sel = top_pos + cur_pos; if (cur_sel == old_sel) return FALSE; if (submenu_item_attr(sub_menu, cur_sel) == C_ATTR_ACTIVE) break; } if (i == count) return FALSE; } if (cur_sel != old_sel) { sub_menu->list_top = top_pos; sub_menu->list_sel = cur_sel; OSD_SetScrollBarPos(&subm_scrollbar, cur_sel); if (old_top == top_pos) { OSD_ChangeFocus((POBJECT_HEAD)&g_win_submenu, cur_pos + 1, C_DRAW_SIGN_EVN_FLG |C_UPDATE_FOCUS); /* txt1 = submenu_txt[cur_pos]; txt1->head.bFont = 2; txt2 = submenu_txt[old_sel]; txt2->head.bFont = 0; */ OSD_DrawObject((POBJECT_HEAD)&subm_scrollbar, C_UPDATE_ALL); } else { submenu_set_one_page(sub_menu); OSD_TrackObject((POBJECT_HEAD)&g_win_submenu, C_UPDATE_CONTENT); } } return TRUE; }