lite源码阅读(五)最终的核心
来源:互联网 发布:手机淘宝店铺收藏地址 编辑:程序博客网 时间:2024/05/22 10:40
lite的代码写的很清晰,当然具体的实现我并没有一行行的代码看。
最重要的就是下面的结构体了,在每个控件的类型定义第一个总是它,当然第一也是有原因的。
/* @brief LiteBox structure * The LiteBox is the most common data structure in the LiTE framework. * It is used to build more complex widgets and compound structures. * Important event handling such as mouse and keyboard event handling * is handled in the various callbacks belonging to LiteBox. */typedef struct _LiteBox { struct _LiteBox *parent; /**< Parent of the LiteBox */ int n_children; /**< Num children in the child array */ struct _LiteBox **children; /**< Child array */ LiteBoxType type; /**< Type of LiteBox */ DFBRectangle rect; /**< Rectangle of the LiteBox */ IDirectFBSurface *surface; /**< LiteBox surface */ DFBColor *background; void *user_data; /**< User-provided data */ int is_focused; /**< Indicates if the LiteBox is focused or not */ int is_visible; /**< Indicates if the LiteBox is visible or not */ int is_active; /**< Indicates if the LiteBox receives input or not */ int catches_all_events;/**< Indicates if the LiteBox prevents events from being handled by its children */ int handle_keys; /**< Indicate if the LiteBox handles keyboard events */ int (*OnFocusIn) (struct _LiteBox *self); /**< Focus-in callback */ int (*OnFocusOut) (struct _LiteBox *self); /**< Focus-out callback */ int (*OnEnter) (struct _LiteBox *self, int x, int y); /**< Enter callback */ int (*OnLeave) (struct _LiteBox *self, int x, int y); /**< Leave callback */ int (*OnMotion) (struct _LiteBox *self, int x, int y, /**< Motion callback */ DFBInputDeviceButtonMask buttons); int (*OnButtonDown)(struct _LiteBox *self, int x, int y, DFBInputDeviceButtonIdentifier button); /**< Button down callback */ int (*OnButtonUp) (struct _LiteBox *self, int x, int y, /**< Button up callback */ DFBInputDeviceButtonIdentifier button); int (*OnKeyDown) (struct _LiteBox *self, DFBWindowEvent *evt); /**< Key down callback */ int (*OnKeyUp) (struct _LiteBox *self, DFBWindowEvent *evt); /**< Key up callback */ int (*OnWheel) (struct _LiteBox *self, DFBWindowEvent *evt); /**< Scroll wheel callback*/ DFBResult (*Draw) (struct _LiteBox *self, const DFBRegion *region, DFBBoolean clear); /**< Draw callback */ DFBResult (*DrawAfter) (struct _LiteBox *self, const DFBRegion *region); /**< DrawAfter callback */ DFBResult (*Destroy) (struct _LiteBox *self); /**< Destroy callback */} LiteBox;
也就是我们可以把任何一种控件的数据类型强制转换为LiteBox.
好了,最后就写到这里吧。说明比较少写,我想应该能看懂的。
- lite源码阅读(五)最终的核心
- lite源码阅读(四)所有的函数
- lite源码阅读(一),简介
- lite源码阅读(二),开始
- lite源码阅读(三)基本内容
- lite源码阅读(六)总结
- uboot源码阅读(十)bootm内核的最终启动
- Struts2源码阅读(五)_FilterDispatcher核心控制器
- Struts2源码阅读(五)_FilterDispatcher核心控制器
- Struts2源码阅读(五)_FilterDispatcher核心控制器
- Struts2源码阅读(五)_FilterDispatcher核心控制器 .
- Struts2源码阅读(五)_FilterDispatcher核心控制器
- Struts2源码阅读(五)_FilterDispatcher核心控制器
- Struts2源码阅读(五)_FilterDispatcher核心控制器
- ps-lite源码阅读笔记
- [Photon] Lite Application 源码阅读笔记
- Elastic-Job-Lite 源码阅读 ---- 任务初始化
- Elastic-Job-Lite 源码阅读 ---- 作业执行
- 原创射击游戏《重组3D Ⅲ:迷宫》(附源码)
- 杂笔记
- 代码覆盖从简到繁 (四) – 为代码签入把门儿
- 观察者模式(Observer)
- 昨天,今天,明天
- lite源码阅读(五)最终的核心
- JBoss AS7 用户指南
- 一次初学者的灾难--------runnable的run方法不被调用了
- C# Application.DoEvents() 处理队列消息,防界面假死。
- 第一个单片机程序-----流水灯
- 英特尔称竞争对手不是ARM而是高通
- ACM题目分类
- Spring与Hibernate集成_声明式事务
- Visual C++开发工具与调试技巧全面总结