示例#1
0
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;
}
示例#2
0
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;
}
示例#3
0
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;
}
示例#4
0
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;
}