Skip to content

1.1. MegaUI主要结构

mingkuang edited this page Oct 10, 2022 · 1 revision
stateDiagram
state Window
{
    Render(渲染器)
    GDI+ --> Render(渲染器)
    D2D1.0+DWrite  --> Render(渲染器)
    D2D1.1+DWrite  --> Render(渲染器)
    MessageHandle(驱动消息)
    设备相关资源缓存
}
state Element(逻辑控件)
{
    属性
    事件
}
设备无关资源缓存 --> WindowElement

Window --> WindowElement : Window类将处理系统并传递到平台无关的 WindowElement。
WindowElement --> Element(逻辑控件)
StyleSheet --> Element(逻辑控件)
Loading

Element

它是最基本的逻辑控件,也是我们所有逻辑控件(例如Button)的基类。Element只拥有属性以及少量事件,MegaUI中主要依靠属性驱动。

什么是属性?比如说:背景色、边框样式。

那什么是事件?比如说:按下了某个按键,鼠标移动事件。

WindowElement

此类型也没有过多的逻辑,它继承自Element。它的存在主要为了承载Window特有的信息,比如说窗口标题、窗口图标等等。

Window

就是我们的真实窗口,在Windows中它就是HWND。Window是一个平台相关的类型,不同平台拥有不同的底层实现,它主要负责驱动WindowElement。 比如说,鼠标在窗口内移动,Window就把鼠标移动事件传递到WindowElement。

StyleSheet

样式表,类似于CSS的功能,提高UI的可制定性。