Bolt界面引擎是迅雷公司从2009年开始开发的第四代界面库。迅雷7是首个采用该引擎成功开发的产品,目前迅雷旗下大部分客户端产品都基于该引擎开发。
本人在大概上一年,也就是2013年,接触了一段时间迅雷的BOLT界面开发引擎。因为本人也没有使用过MFC的框架,以前也没有类似的界面开发经验,初次接触BOLT的时候,可以说是有利有弊吧。BOLT引擎似乎还没有开源(至少我接触的那段时间没有,C++是必须的),具体内部的实现我也不清楚,从使用上来说,迅雷的BOLT界面开发引擎主要依赖于LUA脚本语言的编写,以及一定量的标签文本语言编写和与C++交互实现的扩展功能。
用户可以通过BOLT引擎自定义界面控件,并把它当成一个模板来使用(推荐大家这样使用),通过代码的进一步编写来实现各个控件的特殊功能扩展,减少重复的代码编写(界面设计的代码量往往很大,这样可以提高开发的效率,十分方便)。
说道界面开发就离不开对素材方面的使用,迅雷BOLT将对素材的使用和管理独立出来,用户可以自己添加素材文件,使用XML标签语言文本进行定义说明(每一个素材文件都可以自定义名称,方便界面开发过程中的调用),在运用于整体的界面开发过程之中。对于图片素材的定义可以采用多种复合需求的格式进行定义,对应的调用形式也会有些许区别。
如为了方便素材的整合管理,一张图片素材中可以包含一组以特定像素线分割的多个可以素材图片,使用INDEX保留字定义各个图片的序号,进行区分,方便使用,如上图所示(imagelist texture bitmap为定义类型,vertical splitter为可选项,image为素材路径)。
迅雷BOLT引擎的素材管理还包括了颜色的定义和使用,具体的编写可参考下图。在XLUE以及RESOURE标签的覆盖下在COLOR标签内定义颜色id(调用访问名称),以及像素和alpha透明度。
文字的定义包含了对字体宽高以及类型的定义,通过使用自定义的文字ID实现对特定字体类型的访问和使用。