RTGUI for 1.1 路线图(排名不分先后)
1, 把 rtgui_thread 给去掉，变成 rtgui_application ，消除原来的 rtgui_thread +
mq 的模式。rtgui_application 记录当前依附的 panel，和 panel 的 extent。(Done)
   1.1, rtgui_application_run 运行主事件循环(Done)
   1.2, rtgui_application 作为事件的接收者_和_事件派发者。(Done)

2, workbench，window并成一个，其事件主循环并合并到rtgui_application中。
   2.1, window 作为有标题栏的 workbench(Done)
   2.2, 将其事件主循环移至 application 中。(Done)
   2.3, 将 window 的父类 toplevel 合并进 window 中。所有直接与服务器打交道的从
   window 继承。(或者将 toplevel 合并进 application 中，因为只有 application 才
   会和服务器打交道。)
   2.4 在创建 window 的时候需要指定 parent，如果为 RT_NULL，则此 window 为 root
   窗口，parent 为当前 rtgui_application。每一个 application 必须有且只有一个根
   窗口。(Done)
   2.5 添加一个 FULL_PANEL 的 STYLE。指定此 STYLE 之后会自动填满整个 panel。其
   与 NO_TITLE 之类的合用可以达到之前 workbench 的效果。(Deprecated)
   2.6 event_loop 可以设定顶层控件，只会把事件传递给顶层控件。这样可以方便的实
   现模态窗口。event_loop 靠 object 的一个标志位来判断是否要退出当前循环。(Done)

3, 将 view 合并进 container，所有容器类继承 container。[note1](Done)

4, 事件循环完成后不主动销毁控件，销毁任务交由用户完成。但是有些自动销毁是必要的
，比如 container 自动销毁其包含的控件(Done)
   4.1 对于 window 的 onclose事件，保证在其回调函数中可以(但不是必须)安全销毁窗
   口。这个功能不保证能够实现。(onclose 是在将要关闭窗口的时候触发的，调用它之
   后 RTGUI 还要进行其他的设置和清理工作，所以不能在 onclose 里销毁窗口)(Cannot
   Implement)
   4.2 对 window 添加 RTGUI_WIN_STYLE_DESTROY_ON_CLOSE 。使得其在被关闭时自动销
   毁。注意：对同一 window 销毁两次会引起 segfault。同时，如果在创建时设置了
   RTGUI_WIN_STYLE_DESTROY_ON_CLOSE，close 窗口之后不要再去销毁窗口。

5, API 清理。更详细的文档。

6, 使 panel 退化为无窗口标题的 window，这样 server 就只记录 window 一种东西的位
置。(Done, 删除了 panel，使得整体以 window 为主)

7, 指定名称的时候不再自己拷贝一份。(我觉得 90% 的情况下名称都是静态的字符串，这
时用 strdup其实并没有必要。)(Deprecated)

8, 添加一些工业控制当中用到的波形、仪表之类的控件。

9, 在 window 中记录焦点控件，键盘事件由 window 直接投送。各个控件不记录焦点控件
。(Done)

10, 在 widget 中添加 on_show 和 on_hide 事件回调函数。(Done)

11, 添加 EVENT_WIN_MODAL_ENTER 和 EVENT_WIN_MODAL_EXIT 事件，用来通知窗口管理器
(topwin)一个窗口进入模态。窗口管理器根据这个进行相应的设置。(Done)

12, rtgui_filelist_view 不必继承自 container。(Deprecated)

13, 添加 desktop window 支持。(Done)
    概念与名词：
		13.1 desktop window：最底层的桌面窗口。它会在所有窗口下面显示，并且不会被它
			上面的窗口模态掉。它的子窗口是 root window。(继承关系由 RTGUI 管理，不
			用用户管理)它只有在启用 RTGUI_USING_DESKTOP_WINDOW 时才有此特性。
		13.2 root window：创建时父窗口为 RT_NULL 的窗口。是用户空间窗口继承树的根。
		13.3 normal window：创建时父窗口不为 RT_NULL 的窗口。它始终会在父窗口之上显
			示(它会 clip 父窗口)。normal windows 和 root window 组成一个窗口树。
		13.4 模态：当一个 normal window 模态显示时会会模态自己所在树的同级窗口
			和所有父级窗口，但不会影响别的窗口树。被模态的窗口不会接受到用户事
			件(按键，触摸等)

----
[note1] 我们至少需要一种容器控件来盛放其他的控件，并且能把上层事件传递给被包含
的控件。实现这样的功能有一个就好，container 可以担当这个责任。其他需要放多个控
件的控件则可以继承/包含这个控件。然后多个容器控件轮换的，notebook 可以来做。
notebook可以是有标签和无标签的，有标签的对应一般的 tab 控件，无标签的对应 rtgui
for RTT 1.0 的 workbench+view。
