CEGUI单例对象概览
2012-03-31 15:03
211 查看
CEGUI的核心控制类是System,它负责CEGUI系统与外部的通讯及内CEGUI系统内部各个模块之间的联系。System类派生自CEGUI的单例模板类Singleton,所以在整个系统运行中只有一个系统控制类System,在CEGUI中,所有的管理类都是派生自单例模板类Singleton,他们和System类一样,在整个系统运行期间只有一个实例,并且这些单例对象是通过System类的createSingletons 函数创建的。以下分别说明:
1.图像集管理类ImagesetManager
用于创建、访问、销毁图像集对象。在该类里使用了一个map对象d_imagesets,用于以键-值形式String, Imageset*, String::FastLessCompare,即<图像集名字,图像集对像指针>来保存加载入系统的图像集。
2.字体管理类FontManager
用于创建、访问、销毁字体对象。在该类里使用了一个map对象d_fonts,用于以键-值形式String, Font*, String::FastLessCompare,即<字体名字,字体对象指针>来保存加载入系统的字体。
3.窗口工厂管理类WindowFactoryManager
CEGUI中每一种窗口类型(包括按钮,编辑杠,文本框等等)都有对应类型的窗口创建工厂用于创建对应的窗口实例。而且窗口工厂管理类,就是用于对所有这些窗口工厂进行统一的管理。
4.窗口管理类WindowManager
用于管理CEGUI系统运行中所有的窗口实例,包括创建和销毁。看个小代码片段,说明如果创建一个窗口实例:
new WindowManager();
CEGUI::WindowManager* d_wm = WindowManager::getSingletonPtr();
CEGUI::Window* d_root = NULL;
d_root = d_wm->createWindow("WindowsLook/Static");
createWindow就是窗口管理类中用于创建窗口的函数,参数“WindowsLook/Static”代表了要创建的窗口类型,在WindowsLook.scheme模式文件里面有一个配置窗口类型的映射:
<FalagardMapping WindowType="WindowsLook/Static" TargetType="DefaultWindow" Renderer="Falagard/Static" LookNFeel="WindowsLook/Static" />。
传入createWindow的参数就是这个映射定义的WindowType, TargetType是有CEGUI源码里定义的由内部识别的窗口类型为“DefaultWindow”,然后createWindow会获得DefaultWindow的工厂来创建一个DefaultWindow窗口实例,
WindowManager类型的createWindow有如下代码完成这个动作:
WindowFactoryManager& wfMgr = WindowFactoryManager::getSingleton();
WindowFactory* factory = wfMgr.getFactory(type);//type为上面说的“DefaultWindow”
Window* newWindow = factory->createWindow(finalName);
5.资源管理模式类SchemeManager
用于创建、访问、销毁GUI模式对象,GUI模式Scheme类负责加载系统中需要的各种资源。
6.MouseCursor类
大概就是管理系统运行定义鼠标显示的外观。
7.GlobalEventSet类型
一个全局事件集的类,全局事件集允许你订阅一个事件到所有的类实例。
8.WidgetLookManager类
9.WindowRendererManager类
由于时间仓促,先写到这里,最后两个后续再研究。
1.图像集管理类ImagesetManager
用于创建、访问、销毁图像集对象。在该类里使用了一个map对象d_imagesets,用于以键-值形式String, Imageset*, String::FastLessCompare,即<图像集名字,图像集对像指针>来保存加载入系统的图像集。
2.字体管理类FontManager
用于创建、访问、销毁字体对象。在该类里使用了一个map对象d_fonts,用于以键-值形式String, Font*, String::FastLessCompare,即<字体名字,字体对象指针>来保存加载入系统的字体。
3.窗口工厂管理类WindowFactoryManager
CEGUI中每一种窗口类型(包括按钮,编辑杠,文本框等等)都有对应类型的窗口创建工厂用于创建对应的窗口实例。而且窗口工厂管理类,就是用于对所有这些窗口工厂进行统一的管理。
4.窗口管理类WindowManager
用于管理CEGUI系统运行中所有的窗口实例,包括创建和销毁。看个小代码片段,说明如果创建一个窗口实例:
new WindowManager();
CEGUI::WindowManager* d_wm = WindowManager::getSingletonPtr();
CEGUI::Window* d_root = NULL;
d_root = d_wm->createWindow("WindowsLook/Static");
createWindow就是窗口管理类中用于创建窗口的函数,参数“WindowsLook/Static”代表了要创建的窗口类型,在WindowsLook.scheme模式文件里面有一个配置窗口类型的映射:
<FalagardMapping WindowType="WindowsLook/Static" TargetType="DefaultWindow" Renderer="Falagard/Static" LookNFeel="WindowsLook/Static" />。
传入createWindow的参数就是这个映射定义的WindowType, TargetType是有CEGUI源码里定义的由内部识别的窗口类型为“DefaultWindow”,然后createWindow会获得DefaultWindow的工厂来创建一个DefaultWindow窗口实例,
WindowManager类型的createWindow有如下代码完成这个动作:
WindowFactoryManager& wfMgr = WindowFactoryManager::getSingleton();
WindowFactory* factory = wfMgr.getFactory(type);//type为上面说的“DefaultWindow”
Window* newWindow = factory->createWindow(finalName);
5.资源管理模式类SchemeManager
用于创建、访问、销毁GUI模式对象,GUI模式Scheme类负责加载系统中需要的各种资源。
6.MouseCursor类
大概就是管理系统运行定义鼠标显示的外观。
7.GlobalEventSet类型
一个全局事件集的类,全局事件集允许你订阅一个事件到所有的类实例。
8.WidgetLookManager类
9.WindowRendererManager类
由于时间仓促,先写到这里,最后两个后续再研究。
相关文章推荐
- WSS3SDK之:SPContentType对象概览
- java 对象 类 知识点 概览
- BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第9章节--客户端对象模型和REST APIs概览 Windows Phone
- 使用console.dir 快速概览Node.JS中对象实例的属性和方法
- BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第9章节--客户端对象模型和REST APIs概览 REST和ODATA
- 一起读nodejs(一)----概览和全局对象(Synopsis &Global Objects)
- BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第9章节--客户端对象模型和REST APIs概览 客户端对象模型API范围
- jsp内置对象【01】内置对象概览
- 面向对象的基本概览
- Google V8 编程入门(一) - V8对象概览
- BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第9章节--客户端对象模型和REST APIs概览 总结
- BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第9章节--客户端对象模型和REST APIs概览 客户端对象模型(CSOM)基础
- 翻转设计模式系列——第一部分--面向对象基础知识(1)--概览
- WSS3SDK之:服务器和站点架构:对象模型概览
- BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第9章节--客户端对象模型和REST APIs概览 JavaScript
- Java数据对象技术JDO初步概览
- BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第9章节--client对象模型和REST APIs概览 client对象模型(CSOM)基础
- XNA初始化重要对象概览
- 面向对象概览
- 函数指针、回调函数与 GObject 闭包 GObject 子类对象的析构过程 GObject 的信号机制——概览