接上文:http://www.cppblog.com/gaimor/archive/2010/09/27/127900.html
第一篇是关于UI布局管理器的文章
本文主要说说引擎UI部分组件的问题
在这里UI组件是指UI中的各个基础模块而非UI控件也
在本引擎之中当前UI组件有以下几个基础单元
1.UI_Widget UI控件的基类
2.UI_AbstractBorder UI控件边框类
3.UI_AbstractLayouter UI布局管理器类
4.UI_Event/UI_EventHandler,UI_EventListerner UI事件处理家族
5.UI_Brush UI库画笔(当前基于OpenGL)
6.UI_AbstractTheme UI库控件主题
7.UI_ProptyScheme UI库主题对象
8.UI_WidgetManager UI库管理器
9.UI_Factory UI库工厂对象
10.其他通用对象
以上所有对象构成了UI库的框架
下面说下各个部分的功能
1.UI_Widget UI基本控件 所有控件的基类
2.UI_AbstractBorder 控件控件对象边框外观
3.UI_AbstractTheme 控件主题
以上3着构成所见控件外观
每一个控件都有一个主题和边框对象
所有同质控件都采用统一的控件主题以保证统一的外观
当前UI_Border设计了2中 一种为线性边框一种为状态边框
当前主题设计了3中分别为简单主题,位图主题和矩形主题
UI布局管理器上文已经说过当前不再赘述
UI事件处理这块内容比较多 下文说吧
UI画笔的作用是绘制对象元素比如绘制线条,矩阵设置颜色等等很简单的咯
UI_PertptyShceme是一个控件主题的集合包含了所有控件类型的主题
在渲染控件的时候调用对等的主题绘制控件
控件管理器是UI库的中枢
负责统一渲染队列控件和调度输入输出事件
关于UI工厂则负责按名生成控件指针咯
我一直力图把UI库的实际简单化
但是总是做不到
而且越做越复杂的
注意当前并没有涉及脚本,
UI编辑器以及完成所有控件对象的开发
关于脚本我想采用得到脚本有lua,anglescrip或者自定义脚本
关于编辑器我想采用wxwidget or qt
虽然很慢但是我一直在努力 呵呵
下篇:UI设计概要3:UI消息