static PRESULT sudoku_con_callback(POBJECT_HEAD obj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; switch (event) { case EVN_PRE_OPEN: #ifdef NEW_GAME_FOCUS OSD_SetAttr((POBJECT_HEAD)&txt_newgame, C_ATTR_ACTIVE); OSD_ChangeFocus((POBJECT_HEAD)&game_sudoku_con, 1, \ C_UPDATE_FOCUS | C_DRAW_SIGN_EVN_FLG); #else OSD_SetAttr((POBJECT_HEAD)&txt_newgame, C_ATTR_INACTIVE); OSD_ChangeFocus((POBJECT_HEAD)&game_sudoku_con, 6, \ C_UPDATE_FOCUS | C_DRAW_SIGN_EVN_FLG); #endif game_pre_open(); break; case EVN_POST_CLOSE: OSD_DrawObject((POBJECT_HEAD)&g_win_mainmenu, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); break; case EVN_POST_DRAW: game_1st_draw(); break; case EVN_MSG_GOT: game_event(param1, param2); break; } return ret; }
static PRESULT sudoku_con_callback(POBJECT_HEAD obj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; POBJECT_HEAD submenu; switch (event) { case EVN_PRE_OPEN: #ifdef NEW_GAME_FOCUS OSD_SetAttr((POBJECT_HEAD)&txt_newgame, C_ATTR_ACTIVE); OSD_ChangeFocus((POBJECT_HEAD)&game_sudoku_con, 1, \ C_UPDATE_FOCUS | C_DRAW_SIGN_EVN_FLG); #else OSD_SetAttr((POBJECT_HEAD)&txt_newgame, C_ATTR_INACTIVE); OSD_ChangeFocus((POBJECT_HEAD)&game_sudoku_con, 6, \ C_UPDATE_FOCUS | C_DRAW_SIGN_EVN_FLG); #endif game_pre_open(); break; case EVN_POST_CLOSE: OSD_ClearScreen(); win_open_submenu_title(submenu,sub_menu_desc->title_id, 0); //guop break; case EVN_POST_DRAW: game_1st_draw(); break; case EVN_MSG_GOT: game_event(param1, param2); break; } return ret; }
static PRESULT game_con_callback(POBJECT_HEAD obj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; static UINT8 m_focus_id; switch (event) { case EVN_PRE_OPEN: m_focus_id = OSD_GetFocusID((POBJECT_HEAD)&game_con); OSD_SetContainerFocus(&game_con, 32); OSD_SetAttr((POBJECT_HEAD)&txt_start, C_ATTR_ACTIVE); game_pre_open(); break; case EVN_POST_OPEN: OSD_ChangeFocus((POBJECT_HEAD)&game_con, m_focus_id, C_UPDATE_FOCUS | C_DRAW_SIGN_EVN_FLG); break; case EVN_POST_CLOSE: OSD_DrawObject((POBJECT_HEAD)&g_win_mainmenu, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); break; case EVN_POST_DRAW: game_1st_draw(); break; case EVN_MSG_GOT: game_event(param1, param2); break; } return ret; }
static PRESULT game_con_callback(POBJECT_HEAD obj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; switch (event) { case EVN_PRE_OPEN: #ifdef USE_LIB_GE OSD_SetVscrDst(GUI_MEMVSCR_SURF,0); PGUI_VSCR pVscr=OSD_GetTaskVscr(osal_task_get_current_id()); OSD_SetRect(&(pVscr->frm),0,0,0,0); #endif record_scene(); OSD_SetAttr((POBJECT_HEAD) &txt_start, C_ATTR_ACTIVE); OSD_SetContainerFocus(&game_con, 1); game_pre_open(); break; case EVN_POST_OPEN: #ifdef USE_LIB_GE OSD_SetVscrDst(GUI_GMA2_SURF,0); #endif break; case EVN_PRE_CLOSE: *((UINT32*)param2) &= ~C_CLOSE_CLRBACK_FLG; break; case EVN_POST_CLOSE: restore_scene(); break; case EVN_POST_DRAW: game_1st_draw(); break; case EVN_MSG_GOT: ret = games_com_message_proc(param1, param2); game_event(param1, param2); break; } return ret; }