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

📄 xhc_menu_struct.h

📁 MTK手机QQ游戏开发指南,有详细说明,只收GPRS流量费
💻 H
字号:
#ifndef _XHC_MENU_STRUCT_H
#define _XHC_MENU_STRUCT_H 

#include "XHC_struct.h"

typedef enum
{
    XHC_MENU_OBJECT_TYPE_NONE = 0,
    XHC_MENU_OBJECT_TYPE_COMMON,
    XHC_MENU_OBJECT_TYPE_MENU,
    XHC_MENU_OBJECT_TYPE_SMS,
    XHC_MENU_OBJECT_TYPE_POPUP,
    XHC_MENU_OBJECT_TYPE_WAP,
    XHC_MENU_OBJECT_TYPE_IVR,
    XHC_MENU_OBJECT_TYPE_MMS,
} xhc_menu_object_type_enum;

#define XHC_MENU_OBJECT_FLAG_NONE        (0x00)
#define XHC_MENU_OBJECT_FLAG_COMMON_OBJ  (0x01)
#define XHC_MENU_OBJECT_FLAG_IN_USE      (0x02)

typedef enum
{
    XHC_MENU_SOURCE_TYPE_NONE = 0,
    XHC_MENU_SOURCE_TYPE_BUFFER,
    XHC_MENU_SOURCE_TYPE_RES,
    XHC_MENU_SOURCE_TYPE_NET,
    XHC_MENU_SOURCE_TYPE_FILE,
} xhc_menu_source_type_enum;

typedef enum
{
    XHC_MENU_SOURCE_CUST = 0,
    XHC_MENU_SOURCE_QQPARK,
    XHC_MENU_SOURCE_MAX,
} xhc_menu_source_enum;

typedef enum
{
    XHC_MENU_SOURCE_STATE_NONE = 0,
    XHC_MENU_SOURCE_STATE_EXIT,
    XHC_MENU_SOURCE_STATE_DOWNLOADING,
    XHC_MENU_SOURCE_STATE_READY,
    XHC_MENU_SOURCE_STATE_PARSING,
    XHC_MENU_SOURCE_STATE_PARSE_OK,
    XHC_MENU_SOURCE_STATE_FAIL,
} xhc_menu_source_state_enum;

#define     XHC_MENU_NAME_EN_LEN         (8)
#define     XHC_MENU_STRING_SHOW_LEN     (20)
#define     XHC_MENU_MAX_SUB_MENUS       (64)


typedef struct
{      
    U8                  menu_type;                           //XHC_MENU结点类型
    U8                  source_index;                       //资源索引
    U8                  flag;                               //标志
    S8                  name_en[XHC_MENU_NAME_EN_LEN];           //英文名称
    S8                  string_show[XHC_MENU_STRING_SHOW_LEN];   //显示名称
    U32                 opera;                                  //运营商
    S32                 offset;                             //在文件中的位置
    S32  (*obj_free_func)(void* xhc_menu_obj);                  //释放函数
} xhc_menu_common_struct;

#define XHC_MENU_COMMON_STRUCT \
    U8                  menu_type;\
    U8                  source_index;\
    U8                  flag; \
    S8                  name_en[XHC_MENU_NAME_EN_LEN];\
    S8                  string_show[XHC_MENU_STRING_SHOW_LEN]; \
    U32                 opera;     \
    S32                 offset; \
    S32  (*obj_free_func)(void* xhc_menu_obj);\

typedef struct 
{
    XHC_MENU_COMMON_STRUCT
    S8                  parent_name_en[XHC_MENU_NAME_EN_LEN];        //上级结点英文名称
    void*               parent_menu;                            //上级菜单结点
    xhc_array_struct    child_name_list;                        //子结点列表
    xhc_array_struct    child_ptr_list;                         //子结点索引列表
    S32                 highlight_index;
}xhc_menu_menu_struct;

typedef struct 
{
    XHC_MENU_COMMON_STRUCT
    S8                  parent_name_en[XHC_MENU_NAME_EN_LEN];      //上级英文名称
    //U32                 opera;                  //运营商
    BOOL                imsi_suffix;
    BOOL                send_type;
    
    UI_string_type      cmcc_code1;
    U8*                 cmcc_number1;
    UI_string_type      cmcc_code2;
    U8*                 cmcc_number2;
    
    UI_string_type      cu_code1;
    U8*                 cu_number1;
    UI_string_type      cu_code2;
    U8*                 cu_number2;

}xhc_menu_sms_struct;

typedef struct 
{
    XHC_MENU_COMMON_STRUCT
    S8                  parent_name_en[XHC_MENU_NAME_EN_LEN];      //上级英文名称
    //U32                 opera;                  //运营商
    
    S8*                 cmcc_url;
    S8*                 cu_url;

}xhc_menu_wap_struct;

typedef struct 
{
    XHC_MENU_COMMON_STRUCT
    S8                  parent_name_en[XHC_MENU_NAME_EN_LEN];      //上级英文名称
    //U32                 opera;                  //运营商
    
    UI_string_type      cmcc_number;
    UI_string_type      cu_number;

}xhc_menu_ivr_struct;

typedef struct 
{
    XHC_MENU_COMMON_STRUCT
    S8                  parent_name_en[XHC_MENU_NAME_EN_LEN];      //上级英文名称
    UI_string_type      popup_string;
}xhc_menu_popup_struct;

typedef struct 
{
    U16                 type;
    U16                 source_index;
    U16                 state;
    S8                  name_en[XHC_MENU_NAME_EN_LEN]; 
    
    S8*                 data;
    S32                 data_len;
    BOOL                is_sms_suffix;

    BOOL                is_parse_slow;
    BOOL                is_hide_no_sim;
    S32                 curr_parse_seek;
    BOOL                is_parse_one_item;
    
    //S8                  url[XHC_URL_LEN];
    xhc_array_struct    node_list;      //结点列表

    xhc_menu_menu_struct*       top_menu;
    xhc_menu_menu_struct*       curr_parent_menu;
    xhc_menu_common_struct*     curr_common_obj;
    xhc_array_struct            curr_child_ptr_list;//当前菜单项子结点索引列表

    void* (*mem_alloc_func)(S32 mem_size);
    void  (*mem_free_func)(void** ptr);

    U16                 source_iocn;
}xhc_menu_source_struct;

typedef struct 
{
    xhc_menu_source_struct       source_list[XHC_MENU_SOURCE_MAX];    //菜单资源列表

    xhc_menu_source_struct*      curr_source;
    
    S8                          menu_path_root[96];

}xhc_menu_global_struct;


#endif //_XHC_MENU_STRUCT_H

⌨️ 快捷键说明

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