subscribeEvent :这个方法有几个重载,这里只说这个
virtual Event::Connection subscribeEvent(const String& name, Event::Subscriber subscriber); // 声明
mRenderer->getDefaultRenderingRoot().subscribeEvent(CEGUI::RenderingSurface::EventRenderQueueStarted,
CEGUI::Event::Subscriber(&UIManager::overlayHandler, this)); // 使用
subscribeEvent的作用是为某种类型的事件添加相应的处理方法,相对于那种listener机制,这种方式灵活到方法了。其中第一个参数是事件类型,第二个参数是为处理封装的一个对象。
fireEvent(EventRenderQueueStarted, args, EventNamespace);
凡是通过fireEvent方法触发过事件的EventRenderQueueStarted,都是事件类型。都可以作为subscribeEvent的第一个参数,所以它的类型为string。
template<typename T>
SubscriberSlot(bool (T::*function)(const EventArgs&), T* obj) :
d_functor_impl(new MemberFunctionSlot<T>(function, obj))
{}
第二个参数是个模板,这个模板的第一个参数是处理的方法,第二个参数是模板的类型。至此,整个事件触发和处理的过程都有了。
分享到:
相关推荐
- **事件系统设计原则**:CEGUI的事件系统遵循了面向对象的设计原则,采用了事件驱动模型。 - **事件类型**:包括但不限于窗口打开/关闭、按钮点击、文本框输入等。 - **事件处理**:开发人员可以通过注册监听器的...
CEGUI有自己的事件处理机制,而MFC也有其消息泵。在实际应用中,你可能需要协调两者,确保CEGUI的事件处理不会干扰MFC的正常运行。 最后,考虑到性能和资源管理,你需要了解如何在MFC和CEGUI之间有效地共享和释放...
与Ogre中的事件处理类似,CEGUI也提供了事件订阅和处理机制。你可以注册事件处理器,响应用户交互,如点击按钮: ```cpp CEGUI::EventSet* eventSet = button->getEventSet(); eventSet->subscribeEvent(button, ...
它提供了丰富的组件和事件处理机制,使得开发者能够轻松创建出美观且功能强大的图形用户界面。这篇教程和学习笔记将帮助你深入理解CEGUI的原理和使用方法。 首先,CEGUI的核心设计理念是组件化。这意味着它包含了一...
1. **CEGUIBase**:这是CEGUI的基本库,包含基础组件和接口,如窗口管理、事件处理和布局机制。它是CEGUI的基石,提供了创建和管理GUI元素的基础。 2. **CEGUIFalagardWRBase**:这是一个渲染集,负责将GUI元素转换...
5. 实现交互性:CEGUI提供了事件处理机制,使得用户可以通过点击、滚动等操作与UI元素交互。这些交互事件需要与Direct3D的输入处理相结合,比如处理键盘和鼠标输入,以响应用户的操作,如旋转摄像机。 6. 摄像机...
综上所述,《CEGUI详细教程PDF》是一份全面而深入的指南,不仅覆盖了CEGUI的基础理论和实践操作,还深入探讨了其内部机制和高级特性。无论是GUI开发新手还是经验丰富的专业人士,都能从中获得宝贵的见解和实用的技能...
6. **事件处理**:CEGUI通过事件驱动机制处理用户交互。你需要学习如何注册事件处理器,响应用户的点击、拖动等操作。 7. **性能优化**:虽然debug库提供了丰富的调试信息,但其运行效率通常低于release库。在发布...
《CEGUI深入解析》一书全面而详实地探讨了CEGUI(Client-Embedded GUI)库的各个层面,从其历史背景、编译流程到复杂的控制体系和渲染机制,为读者提供了深入理解并应用这一强大图形用户界面库所需的知识。...
- **事件模型**:介绍了CEGUI中的事件分发机制,包括事件类型、事件的监听和处理等关键概念。 - **事件处理流程**:详细说明了事件从产生到最终处理的完整流程,以及如何在自己的程序中注册事件处理器。 - **2.2 ...
Android使用事件驱动的输入处理机制,而CEGUI则有自己的事件模型。开发者需要编写适配器,将Android的MotionEvent、TouchEvent等转换为CEGUI可识别的事件。 然后,Android应用的生命周期管理与CEGUI的运行时状态...
CEGUI通过其强大的布局和事件处理机制,使得开发者能够快速创建复杂的用户交互,同时保持代码的简洁性和可维护性。它的数据驱动模型允许界面元素的外观和行为在运行时动态改变,适应不同的游戏状态和用户需求。 另...
- CEGUI使用信号槽机制处理事件,`CEGUI::Window::subscribeEvent`函数用于订阅特定事件,`std::function`或lambda表达式可以作为事件处理函数。 6. **渲染** - 在每个渲染循环中,调用`CEGUI::System::render`来...
4. **事件处理**:CEGUI拥有一个强大的事件处理机制,可以捕获用户的输入操作,如点击、滚动、按键等。事件可以通过事件处理器和事件侦听器进行处理,增强了交互性。 5. **国际化与本地化**:CEGUI支持多语言,通过...
同时,CEGUI提供了多种皮肤机制,允许用户更换界面风格,这在多项目或跨平台开发中非常有用。 CEGUI的事件处理系统是另一个关键点。每个窗口元素都可以绑定事件处理器,当用户执行特定操作时(如点击按钮),对应的...
7. **可扩展性**:CEGUI的设计允许开发者通过插件机制轻松扩展其功能,添加新的模块或修改现有模块的行为。 在CEGUI 0.6.0源码中,你可以找到以下组件和模块: - **源码目录结构**:包含了头文件、源代码、资源文件...
- CEGUI提供了一套完善的事件处理机制,允许开发者通过简单的回调函数实现对用户交互的响应。 - 支持事件的绑定、解绑和传递,使得GUI组件之间的通信变得更加灵活高效。 - **属性系统** - 属性系统是CEGUI中一个...