struct menu_displaypara *peripheralrespond_general(struct menu_displaypara *operatingDispara, void *para) { struct menu_displaypara *temp; u8 cmd=*(u8 *)(para); switch (cmd) { case GOTO_SUBMENU: temp=goto_submenu(operatingDispara); if(NULL!=temp) { operatingDispara=temp; } break; case GOTO_PARENT: temp=goto_parmenu(operatingDispara); if(NULL!=temp) { operatingDispara=temp; } break; case GOTO_NEXT: goto_nextmenuitem(operatingDispara); break; case GOTO_PRE: goto_premenuitem(operatingDispara); break; case GOTO_EXE: operatingDispara=exe_menuitemfunc(operatingDispara); break; default: break; } return operatingDispara; }
// ========================================================================= // 函数功能:左键响应函数 // 输入参数:operatingDispara,当前正在操作的菜单项 // 输出参数: // 返回值 :经过更新的当前正在操作的菜单项 // 说明 :在九宫格中,对于左键,主菜单会向前返前面一个菜单项,子菜单会切换回父菜单 // ========================================================================= struct menu_displaypara* KeyLeftAction_9cell(struct menu_displaypara* operatingDispara) { if(NULL==operatingDispara->pre)//主菜单 { goto_premenuitem(operatingDispara); } else//子菜单 { operatingDispara=goto_parmenu(operatingDispara); } return operatingDispara; }
// ========================================================================= // 函数功能:上键响应函数 // 输入参数:operatingDispara,当前正在操作的菜单项 // 输出参数: // 返回值 :经过更新的当前正在操作的菜单项 // 说明 :在九宫格中,对于上键,主菜单会向前返回三个,子菜单会切换到前面一个菜单项 // ========================================================================= struct menu_displaypara* KeyUpAction_9cell(struct menu_displaypara *operatingDispara) { if(NULL==operatingDispara->pre)//主菜单 { goto_menuitem_inslayers(operatingDispara, -3); } else//子菜单 { goto_premenuitem(operatingDispara); } return operatingDispara; }
// ========================================================================= // 函数功能:上键响应函数 // 输入参数:operatingDispara,当前正在操作的菜单项 // 输出参数: // 返回值 :经过更新的当前正在操作的菜单显示参数 // 说明 :在下拉菜单中,对于上键,主菜单不做反应,子菜单会切换到前面一个菜单项 // ========================================================================= struct menu_displaypara* KeyUpAction_pull(struct menu_displaypara *operatingDispara) { if(NULL==operatingDispara->pre)//主菜单 { // GotoMenuitemInSLayer_pull(operatingDispara, -3); } else//子菜单 { goto_premenuitem(operatingDispara); } return operatingDispara; }