当前位置: 代码迷 >> 综合 >> Inline CUI PROGRESS_BAR 如何客制化实现对pen move event的响应
  详细解决方案

Inline CUI PROGRESS_BAR 如何客制化实现对pen move event的响应

热度:72   发布时间:2024-01-19 20:31:32.0
修改两个地方 
1. 
BOOL gui_progress_bar_pen_handler(gui_progress_bar_struct *instance, mmi_pen_event_type_enum pen_event,
S16 x, S16 y) 
 { 
 /*----------------------------------------------------------------*/ 
 /* Local Variables */ 
 /*----------------------------------------------------------------*/ 
 U16 step_count = (instance->max_value / instance->step_size); 
 U16 step_pixel = (instance->width / step_count); 
 U16 old_value = *(instance->value);  
U16 new_value = *(instance->value); ; 
 /*----------------------------------------------------------------*/ 
 /* Code Body */ 
 /*----------------------------------------------------------------*/ 
 /* Check if the pen is touched on control area */ 
 if (!PEN_CHECK_BOUND(x, y, instance->x, instance->y, instance->width, instance->height)) 
 { 
 return MMI_FALSE; 
 } 
 switch(pen_event) 
 { case MMI_PEN_EVENT_MOVE: //modify for Customer 
 case MMI_PEN_EVENT_DOWN: 
 { 
 2. 
gui_inline_translate_pen_event() 最后面: 
 if(((wgui_inline_items[wgui_inline_pen_down_item_index].flags & 0xFF) ==
INLINE_ITEM_TYPE_DISPLAY_ONLY) || 
 ((wgui_inline_items[wgui_inline_pen_down_item_index].flags & 0xFF) ==
INLINE_ITEM_TYPE_FULL_SCREEN_EDIT)  

 { 
 if(inline_fte_displayonly_item_pen_handler(pen_event, x, y, inline_event,
(U16)wgui_inline_pen_down_item_index) == MMI_FALSE ) 
 { 
 wgui_inline_pen_handler_type = WGUI_INLINE_PEN_HANDLER_NONE; 
 } 
 } 
 } 
#endif 
 } 
 else if (wgui_inline_pen_handler_type == WGUI_INLINE_PEN_HANDLER_NONE) 
 { 
 /* Do nothing */ 
  if (gui_inline_handle_pen_event_by_item(m, pen_event, x, y, inline_event))//modify for
Customer 
 {//modify for Customer 
 wgui_inline_pen_handler_type = WGUI_INLINE_PEN_HANDLER_CURRENT_ITEM;//modify for
Customer 
 }//modify for Customer 
 } 
 } 
 return ret; 
}
  相关解决方案