⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 our_main.c

📁 这是一个简单的3d动画mmi,这是模拟器上的
💻 C
📖 第 1 页 / 共 4 页
字号:
                                            {MAIN_MENU_MY_OWN_TEXT,                 setting_child_3},
                                            {MENU_BBK_GAMES_SPACE_TEXT,                 setting_child_3},
                                            {MAIN_MENU_BBK_SPACE_TEXT,                 setting_child_3},
                                            {MAIN_MENU_BBK_SPACE_TEXT,                 setting_child_3},

                                            {MAIN_MENU_BBK_SPACE_TEXT,                 setting_child_3},
                                            {MAIN_MENU_BBK_SPACE_TEXT,                 setting_child_3},
                                            {MAIN_MENU_WORK_STUDY_TEXT,                 setting_child_3},
                                            {MAIN_MENU_MY_OWN_TEXT,                 setting_child_3},
                                            {MENU_BBK_GAMES_SPACE_TEXT,                 setting_child_3},
                                            {MAIN_MENU_BBK_SPACE_TEXT,                 setting_child_3},
                                            {MAIN_MENU_BBK_SPACE_TEXT,                 setting_child_3},
                                            };

#else

//extern const mmi_frm_hilite_hdlr_struct* mmi_frm_const_hilite_hdlr_table;
    
    MMI_ID_TYPE mm_stringIDs[MAX_MAIN_MENU_ITEMS];
    MMI_ID_TYPE mm_iconIDs[MAX_MAIN_MENU_ITEMS];

    U16 nMenuItemList[MAX_SUB_MENUS];
    S32 n_items;

    
    MMI_ID_TYPE mm_stringIDs2[MAX_MAIN_MENU_ITEMS];
    MMI_ID_TYPE mm_iconIDs2[MAX_MAIN_MENU_ITEMS];

    U16 nMenuItemList2[MAX_SUB_MENUS];
    S32 n_items2;


#endif

UI_string_type OUR_mmi_str[]={  L"Call History",
                                                L"Camera",
                                                L"BBK Room",
                                                L"Work&Study",
                                                L"My fav.",
                                                L"Game",
                                                L"Web",
                                                L"Messaging",
                                                L"Media",
                                                L"Ph. book",
                                                L"IM",
                                                L"Setting",
                                                L"OK",//12
                                                L"Back",//13
                                                };
///(void)

void DO_OUR_3D(int key);
void DO_OUR_3D_1(void);
int key_our=1;
//======================================
void DO_OUR_3D_LEFT()
{
    DO_OUR_3D(37);
    //key_our=37;
}
void DO_OUR_3D_RIGHT()
{
    DO_OUR_3D(39);
    //key_our=39;
}
void DO_OUR_3D_UP()
{
    DO_OUR_3D(38);
    //key_our=38;
}
void DO_OUR_3D_DOWN()
{
    DO_OUR_3D(40);
    //key_our=40;
}
void DO_OUR_3D_OK()
{
    DO_OUR_3D(97);
    //key_our=97;
}
void DO_OUR_3D_CANCEL()
{
    DO_OUR_3D(98);
    //key_our=98;
}
void DO_OUR_3D(int key)
{
    key_our=key;
    //gui_start_timer( 5, DO_OUR_3D_1);
    DO_OUR_3D_1();
}
color UI_COLOR_YELLOW = {0, 255, 255, 100};
void DO_OUR_3D_1(void)
{
    int t,tt;
    int ret=1;    
    s32 x,y,w,h;
    s32 i1,i2;
    stFontAttribute f={0};      
    //gui_cancel_timer(DO_OUR_3D_1);
    tt=drv_get_duration_ms(0);
    //draw the screem start=================
    while(1)
    {
        tt=drv_get_duration_ms(tt);
        //clear_screen_with_color(UI_COLOR_BLACK);
        //================================================
        ret=OUR_3D_Main( gdi_act_layer->buf_ptr,key_our, tt);
        key_our=0; //key must clear
        if(ret)         //is the engine stop
        {            
            {
                gui_BLT_double_buffer(0,0,UI_device_width-1,UI_device_height-1);//flash the lcd to put the frame out to user
            }
            //gui_start_timer( 1, DO_OUR_3D_1);
            //return;
        }
        else
        {
            break;  //the engine stoped
        }
    }
    //do the rest stuffs,font and key event======
    if(OUR_MMI_TOP== mmi_state.top_state)//get out of the 3d mmi
    {
        gui_BLT_double_buffer(0,0,UI_device_width-1,UI_device_height-1);
        GoBackHistory();
        return;
    }
    //===============================================================================    
    //this is in the first menu and we draw the words on====
    if(OUR_MMI_SUB== mmi_state.top_state)
    {  
        //f.size=LARGE_FONT;
        f.size=SMALL_FONT;
        gui_set_font(&f);
        gui_set_text_color(UI_COLOR_WHITE);//
        //gui_set_text_border_color(UI_COLOR_GREEN);
        for (i2=0; i2 <3; i2++)
        { 
            for (i1=0; i1 <2; i1++)
            {
#if 0                
                UI_string_type str_ptr;
                str_ptr=(UI_string_type)GetString(our_3d_mmi_2[bmp_inde[mmi_state.sub_state_line>>1][i2*2+i1]].str_id);
                gui_measure_string(str_ptr,&w,&h);
                gui_move_text_cursor((LCD_W/2-w)/2+i1*LCD_W/2,130+120*i2-h);
                gui_print_text(str_ptr);
#else 
                UI_string_type str_ptr;
                str_ptr=(UI_string_type)GetString(mm_stringIDs[bmp_inde[mmi_state.sub_state_line>>1][i2*2+i1]]);
                gui_measure_string(str_ptr,&w,&h);
                gui_move_text_cursor((LCD_W/2-w)/2+i1*LCD_W/2,110+120*i2*320/400-h);
                gui_print_text(str_ptr);
                
#endif
            }
        }
        //set zhe left softkey which is changed in the option mode
        SetKeyHandler(DO_OUR_3D_OK,     KEY_LSK,     KEY_EVENT_DOWN);   
        /*
        //draw the ok and back
        gui_set_text_color(UI_COLOR_BLACK);//
        f.size=MEDIUM_FONT;
        gui_set_font(&f);
        //ok
        gui_measure_string(OUR_mmi_str[12],&w,&h);
        gui_move_text_cursor(5,LCD_H-h+2);//
        gui_print_bordered_text(OUR_mmi_str[12]);  
        //back
        gui_measure_string(OUR_mmi_str[13],&w,&h);
        gui_move_text_cursor(LCD_W-w-5,LCD_H-h+2);//
        gui_print_bordered_text(OUR_mmi_str[13]);        
        */    
        ChangeLeftSoftkey(STR_GLOBAL_OK, IMG_GLOBAL_OK);
        ChangeRightSoftkey(STR_GLOBAL_BACK, IMG_GLOBAL_BACK);
    }
    //=============================================================================    
    //this is in the second menu and we draw the words on====
    if(OUR_MMI_OPT== mmi_state.top_state)
    {      
        int start,end;
#if 0        
        gui_set_text_color(UI_COLOR_YELLOW);//
        f.size=LARGE_FONT;
        gui_set_font(&f);  
        i1=(((mmi_state.sub_state_line+1)&7)/2+mmi_state.sub_state_raw*4);
         if(i1>n_items)
        {
            i1=0;
        }
        gui_measure_string((UI_string_type)GetString(our_3d_mmi_2[i1].str_id),&w,&h);
        gui_move_text_cursor((LCD_W-w)/2,40-h);
        gui_print_text((UI_string_type)GetString(our_3d_mmi_2[i1].str_id));
                
        f.size=MEDIUM_FONT;
        gui_set_font(&f);
        gui_set_text_border_color(UI_COLOR_GREEN);

        our_3d_mmi_2[i1].third_menu[ mmi_state.opt_select].third_highlight_fun();
            
        SetKeyHandler(DO_OUR_3D_UP,     KEY_UP_ARROW,   KEY_EVENT_DOWN);
        SetKeyHandler(DO_OUR_3D_DOWN,KEY_DOWN_ARROW, KEY_EVENT_DOWN);
        
        SetKeyHandler(DO_OUR_3D_LEFT,   KEY_LEFT_ARROW,     KEY_EVENT_DOWN);
        SetKeyHandler(DO_OUR_3D_RIGHT, KEY_RIGHT_ARROW,    KEY_EVENT_DOWN);
        
        //SetKeyHandler(DO_OUR_3D_OK,     KEY_LSK,     KEY_EVENT_DOWN);
        SetKeyHandler(DO_OUR_3D_CANCEL,KEY_RSK,KEY_EVENT_DOWN);
        
        for (i2=0; i2 <6; i2++)
        {             
                UI_string_type str_ptr;
                U16 sid;
                sid = our_3d_mmi_2[i1].third_menu[i2].str_id;
                str_ptr=(UI_string_type)GetString(sid);
                gui_measure_string(str_ptr,&w,&h);
                gui_move_text_cursor(30,65+40*i2-h);//
                gui_print_text(str_ptr);
               // gui_measure_string(OUR_mmi_str[i2],&w,&h);
               // gui_move_text_cursor(50,95+50*i2-h);//
               // gui_print_text(OUR_mmi_str[i2]);
                      
        }  
#else
        gui_set_text_color(UI_COLOR_YELLOW);//
        f.size=LARGE_FONT;
        gui_set_font(&f);  
        i1=(((mmi_state.sub_state_line+1)&7)/2+mmi_state.sub_state_raw*4);
        if(i1>n_items)
        {
            i1=0;
        }
        gui_measure_string((UI_string_type)GetString(mm_stringIDs[i1]),&w,&h);
        gui_move_text_cursor((LCD_W-w)/2,30-h);
        gui_print_text((UI_string_type)GetString(mm_stringIDs[i1]));
                
        


    n_items2 = GetNumOfChild_Ext(nMenuItemList[i1]);
    GetSequenceStringIds_Ext(nMenuItemList[i1], mm_stringIDs2);
    GetSequenceImageIds_Ext(nMenuItemList[i1], mm_iconIDs2);
    //SetParentHandler(IDLE_SCREEN_MENU_ID);
    //attributes = GetDispAttributeOfItem(IDLE_SCREEN_MENU_ID);
    GetSequenceItemIds(nMenuItemList[i1], nMenuItemList2);
    
       // ExecuteCurrHiliteHandler_Ext(nMenuItemList2[mmi_state.opt_select]);
            mmi_frm_get_hilite_hdlr(nMenuItemList2[mmi_state.opt_select])();

       
        SetKeyHandler(DO_OUR_3D_UP,     KEY_UP_ARROW,   KEY_EVENT_DOWN);
        SetKeyHandler(DO_OUR_3D_DOWN,KEY_DOWN_ARROW, KEY_EVENT_DOWN);
        
        SetKeyHandler(DO_OUR_3D_LEFT,   KEY_LEFT_ARROW,     KEY_EVENT_DOWN);
        SetKeyHandler(DO_OUR_3D_RIGHT, KEY_RIGHT_ARROW,    KEY_EVENT_DOWN);
        
        //SetKeyHandler(DO_OUR_3D_OK,     KEY_LSK,     KEY_EVENT_DOWN);
        SetKeyHandler(DO_OUR_3D_CANCEL,KEY_RSK,KEY_EVENT_DOWN);

        mmi_state.opt_select_max=n_items2;
        
        start=(mmi_state.opt_select/6)*6;
        end=mmi_state.opt_select_max-start;
            
        if(end>6)
        {
            end=6;
        }
        f.size=MEDIUM_FONT;
        gui_set_font(&f);
        gui_set_text_color(UI_COLOR_YELLOW);//
        //gui_set_text_border_color(UI_COLOR_GREEN);

        //our_3d_mmi_2[i1].third_menu[ mmi_state.opt_select].third_highlight_fun();
        for (i2=0; i2 <end; i2++)
        {             
                UI_string_type str_ptr;
                U16 sid;
                sid = mm_stringIDs2[i2+start];
                str_ptr=(UI_string_type)GetString(sid);
                gui_measure_string(str_ptr,&w,&h);
                gui_move_text_cursor(30,70+40*i2-h);//
                gui_print_text(str_ptr);
                
               // gui_measure_string(OUR_mmi_str[i2],&w,&h);
               // gui_move_text_cursor(50,95+50*i2-h);//
               // gui_print_text(OUR_mmi_str[i2]);
                      
        }  
#endif
    }
    //=======================================================================================
    
    gui_BLT_double_buffer(0,0,UI_device_width-1,UI_device_height-1);   
    /**/
}

U8 back_from_history_3d=0;

void EntryMySetting1_exit(void)
{
    back_from_history_3d=1;
}


void EntryMySetting2(void)
{
    int*my_frame;
    s32 i;
    EntryNewScreen(MAIN_MENU_SCREENID,EntryMySetting1_exit,EntryMySetting2,NULL);
    entry_full_screen();
    //=================================  
    
    ////=================================
    //gui_BLT_double_buffer(0,0,UI_device_width-1,UI_device_height-1);

    
    SetKeyHandler(DO_OUR_3D_UP,     KEY_UP_ARROW,   KEY_EVENT_DOWN);
    SetKeyHandler(DO_OUR_3D_DOWN,KEY_DOWN_ARROW, KEY_EVENT_DOWN);
    
    SetKeyHandler(DO_OUR_3D_LEFT,   KEY_LEFT_ARROW,     KEY_EVENT_DOWN);
    SetKeyHandler(DO_OUR_3D_RIGHT, KEY_RIGHT_ARROW,    KEY_EVENT_DOWN);
    
    SetKeyHandler(DO_OUR_3D_OK,     KEY_LSK,     KEY_EVENT_DOWN);
    SetKeyHandler(DO_OUR_3D_CANCEL,KEY_RSK,KEY_EVENT_DOWN);
    SetKeyHandler(GoBackHistory,        KEY_2,    KEY_EVENT_DOWN); 


//=================================   
    

    DO_OUR_3D_OK();
    //DO_OUR_3D_1();
}

void EntryMySetting1(void)
{
    OUR_3D_Init();
    

    n_items = GetNumOfChild_Ext(IDLE_SCREEN_MENU_ID);
    GetSequenceStringIds_Ext(IDLE_SCREEN_MENU_ID, mm_stringIDs);
    GetSequenceImageIds_Ext(IDLE_SCREEN_MENU_ID, mm_iconIDs);
    //SetParentHandler(IDLE_SCREEN_MENU_ID);
    //attributes = GetDispAttributeOfItem(IDLE_SCREEN_MENU_ID);
    GetSequenceItemIds(IDLE_SCREEN_MENU_ID, nMenuItemList);
    
    EntryMySetting2();
}

#endif //our_3d






#if 0
//
//
//
//
#endif
//#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -