当前位置: 代码迷 >> 综合 >> 如何提高菜单滚动速度
  详细解决方案

如何提高菜单滚动速度

热度:48   发布时间:2024-01-19 20:29:51.0
在gui_effect_oem.c中添加如下函数 
static void modified_gui_list_menu_smooth_scrolling_goto_next_item(void) // YY add 
{ 
 /*----------------------------------------------------------------*/ 
 /* Local Variables */ 
 /*----------------------------------------------------------------*/ 
  
/*----------------------------------------------------------------*/ 
 /* Code Body */ 
 /*----------------------------------------------------------------*/ 
 if(Is_KeyRepeat()||MMI_fixed_list_menu.highlighted_item+1==MMI_fixed_list_menu.n_items){ 
 gui_set_current_list_effect(0); 
 } 
 switch (g_gui_list_menu_smooth_scrolling_menu_type) 
 { 
 case GUI_MENU_TYPE_FIXED: 
 fixed_list_goto_next_item(); 
 break; 
  
 case GUI_MENU_TYPE_DYNAMIC: 
 dynamic_list_goto_next_item(); 
 break; 
  
 case GUI_MENU_TYPE_ASYNCDYNAMIC: 
 asyncdynamic_list_goto_next_item(); 
 break;  
  
#ifdef __MMI_FTE_SUPPORT__  
 case GUI_MENU_TYPE_INLINE: 
 inline_fixed_list_goto_next_item(); 
 break; 
#endif 
  
 default: 
 break; 
 } 
#define LIST_EFFECT_TYPE__(A) MMI_UI_LIST_HIGHLIGHT_EFFECT_##A 
#define LIST_EFFECT_TYPE_(A) LIST_EFFECT_TYPE__(A) 
#define LIST_EFFECT_TYPE(A) LIST_EFFECT_TYPE_(A) 
  
  
 
gui_set_current_list_effect(LIST_EFFECT_TYPE_(UI_LIST_EFFECT_TYPE)); 
}  
 
修改如下函数: 
 static void gui_list_menu_smooth_scrolling_goto_next_item(void) 
{ 
  
static int ReEntry=0; 
 if(ReEntry) return; 
 ReEntry++; 
 if(Is_KeyRepeat()){ 
 gui_start_timer(20,gui_list_menu_smooth_scrolling_goto_next_item);  
 } 
 modified_gui_list_menu_smooth_scrolling_goto_next_item(); 
 ReEntry--; 
} 
  
在keybrd.c中添加函数: 
  
BOOL Is_KeyRepeat(void) 
{ 
 return (g_key_cntx.curr_key_type==KEY_EVENT_REPEAT); 
}
  相关解决方案