2012年6月24日

[转] 定义、注册和实现 GObject 类的子类

摘要: 定义 GObject 的子类· instance 结构:包含于类的实例相关的域,相当于 C++ 中的非静态公共成员。 · class 结构:包含的域相当于 C++ 中的静态公共成员。 · 私有成员在哪里定义? 与 C++ 不同,私有成员不是直接定义在类的声明中的(你甚至找不到一个到私有数据的指针)。GObject 的私有数据是在 class 结构初始化的时候,通过调用 g_typ_class_add_private 函数来指定的,这个函数只是指定私有数据的大小,类型系统在分配 instance 的时候会预留指定大小的空间供类实现作为私有数据使用。 · 例 阅读全文

posted @ 2012-06-24 17:28 高原 阅读(702) 评论(0) 推荐(0)

[转] GType 类型系统的功能

摘要: GType 类型系统的功能GType 主要提供了以下几个功能:· 基本类型 · 类和接口 · 查看类型信息,如父类、子类和实现的接口列表 · 类型的向上和向下转换,类型检查 基本类型所谓基本类型是指系统自动提供的,无须用户自己定义的类型。GType 定义了19种基本类型:(1) #define G_TYPE_INTERFACE G_TYPE_MAKE_FUNDAMENTAL (2) #define G_TYPE_CHAR G_TYPE_MAKE_FUNDAMENTAL (3) #define G_TYPE_UCHAR G_TYPE_MAKE_FUNDAM 阅读全文

posted @ 2012-06-24 17:00 高原 阅读(1376) 评论(0) 推荐(0)

[转] Android FrameWork——Touch事件派发过程详解

摘要: 对于android的窗口window管理,一直感觉很混乱,总想找个时间好好研究,却不知如何入手,现在写的Touch事件派发过程详解,其实跟android的窗口window管理服务WindowManagerService存在紧密联系,所以从这里入手切入到WindowManagerService的研究,本blog主要讲述一个touch事件如何从用户消息的采集,到WindowManagerService对Touch事件的派发,再到一个Activity窗口touch事件的派发,并着重讲了Activity窗口touch事件的派发,因为这个的理解对我们写应用很好地处理touch事件很重要一.用户事件采集到 阅读全文

posted @ 2012-06-24 16:23 高原 阅读(362) 评论(0) 推荐(0)

[转] GObject对象系统

摘要: 前言 大多数现代的计算机语言都带有自己的类 .. 前言大多数现代的计算机语言都带有自己的类型和对象系统,并附带算法结构。正象GLib提供的基本类型和算法结构(如链表、哈希表等)一样,GObject的对象系统提供了一种灵活的、可扩展的、并容易映射(到其它语言)的面向对象的C语言框架。它的实质可以概括为: 一个通用类型系统,用来注册任意的、轻便的、单根继承的、并能推导出任意深度的结构类型的界面,它照顾组合对象的定制、初始化和内存管理,类结构,保持对象的父子关系,处理这些类型的动态实现。也就是说,这些类型的实现是在运行时重置和卸载的;一个基本类型的实现集,如整型,枚举型和结构型等;一个基本对象体系之 阅读全文

posted @ 2012-06-24 16:21 高原 阅读(345) 评论(0) 推荐(0)

[转] GTYPE类型系统分析

摘要: 刚开始接触GLib库时,对GLib传统的习惯和特有的概念不熟悉,在编写基于GLib的程序时总是很不顺手,心中很是不爽。后来随着写的代码多了,渐渐熟悉了GLib的这些术语、概念、编码风格,情况好多了。但对GLib的类型系统还是不大清楚,只不过是照葫芦画瓢学的不错而已,对基于GType的使用在较深入时还是一知半解。最近有了些空余时间,于是去仔细看了GType相关的代码,总算弄得比较清楚了。记录在此,以便查阅,有不对之处,请高手指正。Gtype提供了GLib的数据类型系统和数据类型定义,是GObject对象系统的基础。GLib定义了一些基本数据类型,并允许用户定义一些基本类型的派生类型,还可以定义动 阅读全文

posted @ 2012-06-24 16:19 高原 阅读(461) 评论(0) 推荐(0)

导航