08年05月21日

Posted on 2008-05-21 16:47 RichardHe 阅读(178) 评论(0)  编辑 收藏 引用
事件订阅,subscribeEvent(事件名,Event::subcribe(回调函数);
方法subcribe通过一个Map Container;
typedef std::multimap<Group, Connection> SlotContainer,添加到容器中,
d_slots.insert(std::pair<Group,Connection>(group,c));而在事件触发时,
Event操作()遍历每个订阅事件的函数,代码如下:
for (; iter != end_iter; ++iter)
    args.handled |= (*iter->second->d_subscriber)(args);
这样订阅事件的函数都会遍历回调到!

遇见一个CEGUI的设计问题
有的是函数指针,而有的是类型的别名?比如:
typedef bool (*SortCallback)(const ItemEntry* a, const ItemEntry* b);
typedef bool (SlotFunction)(const EventArgs&);//为什么不声明为函数指针呢?
typedef bool(T::*MemberFunctionType)(const EventArgs&);
typedef bool PropertyCallback(Window* window, String& propname, String& propvalue, void* userdata);

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


posts - 94, comments - 138, trackbacks - 0, articles - 94

Copyright © RichardHe