Chrome UI 框架分析 一、总体结构 1、概述 代码结构 UI 部分的通用代码放在 src/chrome/views 目录下
其中: control 目录中为各种控件,如 Label、Textfield 等,这个目录最为庞大
widget 目录中为系统相关的 UI 底层细节,特别是 UI 消息机制
window 目录中为 UI Frame 相关的细节,例如窗口的标题栏、系统按钮以及、Frame、Dialog 等的代理接口
focus 目录下为焦点管理、快捷键相关代码
animation 中为与动画相关的代码
主要特点 1、采用 DUI 技术,大部分窗口和控件都是 DUI 的
2、虚窗口的基类是 View,每个 View 可以包含子 View,他们组织成一棵树结构
3、真窗口的基类是 Widget,它处理与操作系统相关的最原始的消息,在 windows 上,它处理所有窗口消息
Window 是顶层窗口的基类,包括气泡、漂浮窗口、对话框、主窗口等
4、View 树的根节点是 RootView,这个 View 的主要用途就是从 Widget 中接收 UI 消息,进行分发,包括排版与绘制,它是整个窗口树的根
5、NonClientView 表示整个实际的窗口树的根,是 RootView 唯一的子节点
RootView向上和 OS 层打交道,而 NonClientView 则专注于下层的控件 View
NonClientView表示整个非客户区的 View,包括标题栏、窗口图标、关闭按钮、最大化与最小化按钮、边框等,它负责非客户区的排版与绘制,这类可以被派生,以实现各种不同的客户区
ClientView 是客户区的根,负责客户区的排版与绘制
6、排版由专门的 LayoutManager 负责
7、界面绘制上,绘制引擎(Canvas)与窗框系统分开