以下是 AWTK 加载 UI 界面的代码,通过一边解析二进制文件,一边通过生成器生成 UI 界面中的控件,并设置其控件属性。
ret_tui_loader_load_default(ui_loader_t*loader,constuint8_t*data,uint32_tsize,ui_builder_t*b){rbuffer_trbuffer;widget_desc_tdesc;uint32_tmagic=0;uint8_twidget_end_mark=0;return_value_if_fail(loader!=NULL&&data!=NULL&&b!=NULL,RET_BAD_PARAMS);return_value_if_fail(rbuffer_init(&rbuffer,data,size)!=NULL,RET_BAD_PARAMS);return_value_if_fail(rbuffer_read_uint32(&rbuffer,&magic)==RET_OK,RET_BAD_PARAMS);return_value_if_fail(magic==UI_DATA_MAGIC,RET_BAD_PARAMS);ui_builder_on_start(b);while((rbuffer.cursor+sizeof(desc))