📄 xhc_menu_struct.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 + -