GTK+ 教程和资源集合(二)

Clutter 插件

Gtk+, Cairo, Gstreamer 插件
http://www.clutter-project.org/sources/

Webkit 插件
git clone git://git.o-hand.com/webkit

VLC 插件
http://github.com/rno/clutter-vlc/tree/master

MD2 插件
http://github.com/bpeel/clutter-md2/tree/master

Mozembed 插件
http://git.clutter-project.org/cgit.cgi?url=clutter-mozembed/tree/tests

Gstreamer 教程 "音视频多媒体工具包"
GStreamer 是一个用C语言写的基于GObject的多媒体框架
程序开发手册:
[HTML]http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/index.html
[PDF] http://gstreamer.freedesktop.org/data/doc/gstreamer/stable/manual/manual.pdf
插件编写指导 :
[HTML]http://gstreamer.freedesktop.org/data/doc/gstreamer/head/pwg/html/index.html
[PDF] http://gstreamer.freedesktop.org/data/doc/gstreamer/stable/pwg/pwg.pdf

GStreamer 快速入门教程
[HTML] Part1: http://bluwiki.com/go/GStreamer
[HTML] Part2:  http://bluwiki.com/go/GStreamer/C_Hello_World

GStreamer 插件开发视频
[HTML] http://lca2007.linux.org.au/talk/272.html
[VIDEO] http://mirror.linux.org.au/pub/linux.conf.au/2007/video/talks/272.ogg

Opengl 教程 "3D图形库"
OpenGL 程序设计指南 "红书"
[PDF] http://madison-project.wikidot.com/local--files/tutorials/OpenGL_Programming_Guide.pdf

OpenGL 参考手册 "蓝书"
[Pdf] http://madison-project.wikidot.com/local--files/tutorials/OpenGl_Reference_Manual.pdf

GtkGLExt 是一个为GTK+ 2.0的扩展
[HTML] http://www.k-3d.org/gtkglext/Main_Page <-- 下载大量的C/GTK+的示例代码。

osgGtk 是一个基于C/GTK+控件的支持OpenSceneGraph (OSG)的程序。
这个库同样包含多个示例程序,像osgviewerGtk和osgviewerGtkmm.
[HTML] http://osggtk.wiki.sourceforge.net/main  <--下载C/GTK+示例代码。.

Lexical Analyzer 和 Parser Generator 
Lex & Yacc / Flex & Bison 初级教程
[Html] http://ds9a.nl/lex-yacc/cvs/output/lexyacc.html#toc1

一些Lex and Yacc的参考手册
[Html] http://pltplp.net/lex-yacc/

Flex 手册 "Lex"
[Html] http://flex.sourceforge.net/manual/

Bison 手册  "Yacc"
[Html] http://www.gnu.org/software/bison/manual/html_mono/bison.html
[Pdf] http://www.gnu.org/software/bison/manual/pdf/bison.pdf

标记语言 注意: 在提供的链接中你会找到API参考手册和使用示例

LibYAML 是一个用C语言写的YAML 1.1 解释器和执行器.
[Html] http://pyyaml.org/wiki/LibYAML 

MJSON M's JSON 解释器是一个小型的JSON解释器
[Html] http://mjson.sourceforge.net/index.html

LibAxl (or just Axl) 是一个用C语言编写的支持XML1.0标准规格的库
[Html] http://www.aspl.es/axl/

Libxml2是一个C语言的为gnome项目使用的XML解释器和开发工具包
[Html] http://www.xmlsoft.org/

Libcroco 是一个常规的CSS解释器,它提供了一个css2解释器(SAC和CSSOM API),和一个CSS2选择引擎
[Html] https://launchpad.net/libcroco

Portable Document Format (PDF)
Poppler "Poppler 是一个使用cairo来进行解析PDF文件的库"
[HTML] http://poppler.freedesktop.org/
[Example Viewer] http://www.gtkforums.com/viewtopic.php?p=9086#9086

libharu "libHaru 是一个自由的,跨平台的,开源的通用PDF库."
[HTML] http://libharu.org/wiki/Main_Page
[HTML] http://libharu.org/wiki/Documentation
[注意] Cairo 同样可以制作PDF文件,但是libharu可以更好的工作,同时拥有更多的特性。 

Programming & Hardware
Linux内核模块程序指导
[Html] http://tldp.org/LDP/lkmpg/2.6/html/index.html

蓝牙程序设计 "描述简单蓝牙概念"
[PDF] http://people.csail.mit.edu/rudolph/Teaching/Articles/PartOfBTBook.pdf
一个蓝牙程序设计的介绍
[Html] http://people.csail.mit.edu/albert/bluez-intro/

LibParted Handbook "注意: LibParted 是一个创建,删除,更改大小和复制PC硬盘分区的库"
[PDF] http://zester.googlecode.com/files/libparted_handbook.pdf 

HAL Tutorial "硬件抽象层"
[HTML] http://www.share-linux.com/hal1.php
[HTML] http://www.share-linux.com/hal2.php
[PDF] http://madison-project.wikidot.com/local--files/tutorials/Hal_Tutorial.pdf

LIRC 程序设计指南 "LIRC 是一个允许你解密红外信号并进行远程控制的包"
[HTML] http://www.lirc.org/html/technical.html#applications

Libusb 程序设计教程 "libusb 是一个不要使用内核模块驱动的基于用户模式的USB数据传输库"
[HTML] http://www.linuxforums.org/forum/linux-tutorials-howtos-reference-material/10865-developing-usb-device-drivers-userspace-using-libusb.html

Libburnia API手册和代码示例 "libburnia 是一个读写光盘的库。" 
[HTML] http://api.libburnia-project.org/libburn/
[HTML] http://api.libburnia-project.org/libisofs/index.html
[HTML] http://api.libburnia-project.org/libisoburn/

Libmtp "libmtp 是一个LGPL协议的实现媒体传输协议(MTP)的库,一个图片传输协议(PTP)的超集。 "
[HTML] http://libmtp.sourceforge.net/index.php <--下载API手册和代码

Libgpod "libgpod 是一个访问iPod的动态库,它支持播放列表,智能播放列表,播放计数,跳过计数等等。"
[HTML] http://www.gtkpod.org/libgpod/docs/ <--下载文档和示例代码

Libgphoto2 "libgphoto2 是一个访问数码相机的核心库。"
[HTML] http://www.gphoto.org/proj/libgphoto2/ <-- 下载API手册和示例代码

V4L2 "Video4Linux2 or V4L2 是一个Linux下视频采集程序接口,支持USB Webcams,TV tuners和其它设备。 Video4Linux2 与Linux 内核密切的联系在一起。"
[HTML] http://v4l2spec.bytesex.org/spec-single/v4l2.html#AEN163

DBus 教程 "消息总线系统"
[HTML] http://www.share-linux.com/dbus1.php
[HTML] http://www.share-linux.com/dbus2.php
[PDF] http://madison-project.wikidot.com/local--files/tutorials/Dbus_Tutorial.pdf

数据库编程 
MySQL 数据库 C语言 API 程序设计教程
[Html] http://zetcode.com/tutorials/mysqlcapitutorial/

PostgreSQL
-------------
PostgreSQL 数据库 libpq C API 教程
[HTML] http://www.postgresql.org/docs/8.4/static/libpq.html

Accessing PostgreSQL From Code (Beginners C)
[HTML] http://tutorials.freeskills.com/professional-linux-programming-part-1-accessing-postgresql-from-code.htm

Berkley DB C API
-----------------
开始学习数据存储:
[Pdf] http://www.oracle.com/technology/documentation/berkeley-db/db/gsg/C/BerkeleyDB-Core-C-GSG.pdf
[Html] http://www.oracle.com/technology/documentation/berkeley-db/db/gsg/C/index.html
开始学习事务过程:
[Pdf] http://www.oracle.com/technology/documentation/berkeley-db/db/gsg_txn/C/BerkeleyDB-Core-C-Txn.pdf
[Html] Getting Started with Transaction Processing
开始学习复制:
[Pdf] http://www.oracle.com/technology/documentation/berkeley-db/db/gsg_db_rep/C/Replication-C-GSG.pdf
[Html] http://www.oracle.com/technology/documentation/berkeley-db/db/gsg_db_rep/C/index.html
参考指南:
[Html] http://www.oracle.com/technology/documentation/berkeley-db/db/ref/toc.html
Programmatic API:
[Html] http://www.oracle.com/technology/documentation/berkeley-db/db/api_c/frame.html

Hamster DB
--------------
[Site] http://hamsterdb.com/index
[PDF] http://hamsterdb.com/public/dl/tutorial.pdf
[Examples] http://hamsterdb.com/documentation/samples

Sqlite 嵌入式数据库.
[HTML] http://souptonuts.sourceforge.net/readme_sqlite_tutorial.html

压缩库
SCZ
[HTML] http://scz-compress.sourceforge.net/
[API] http://scz-compress.sourceforge.net/api.html 

QuickLZ
[HTML] http://www.quicklz.com/manual.html
[Examples] http://www.quicklz.com/download.html

Zlib
[HTML] http://www.zlib.net/zlib_docs.html
[Examples] http://www.zlib.net/zlib_how.html

Libarchive "用于读写tar,cpio,zip,bzip,gzip,ISO和其它压缩格式的C语言库或者命令提示工具"
[HTML] http://code.google.com/p/libarchive/

网络库
Libcurl "libcurl是一个自由,简单实用的客户端URL传输库, 它支持 FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS和文件. libcurl 支持 SSL 证书, HTTP POST, HTTP PUT, FTP 上传, HTTP 表单方式上传, 代理服务器, cookies, 用户名和密码验证 (简单, 数字, NTLM, Negotiate, Kerberos4), 断点续传, http隧道技术! "
[HTML] http://curl.haxx.se/libcurl/c/libcurl-tutorial.html
[API] http://curl.haxx.se/libcurl/c/
[Examples] http://curl.haxx.se/libcurl/c/example.html

Libpcap "libpcap 是一个系统级的为用户提供网络抓包接口的库。"
[HTML] http://yuba.stanford.edu/~casado/pcap/section1.html

Libnids "Libnids is an implementation of an E-component of Network Intrusion Detection System. It emulates the IP stack of Linux 2.0.x. Libnids offers IP defragmentation, TCP stream assembly and TCP port scan detection."
[HTML] http://libnids.sourceforge.net/
[EXAMPLE] http://libnids.sourceforge.net/printall.c

Libsoup "libsoup is an HTTP client/server library for GNOME. It uses GObjects and the glib main loop, to integrate well with GNOME applications."
[HTML] http://library.gnome.org/devel/libsoup/stable/

libEtPan  "libEtPan is a mail purpose library. It will be used for low-level mail handling : network protocols (IMAP/NNTP/POP3/SMTP over TCP/IP and SSL/TCP/IP, already implemented), local storage (mbox/MH/maildir), message / MIME parser."
[HTML] http://www.etpan.org/libetpan/
[HTML] http://dinh.viet.hoa.free.fr/wiki/index.php?title=LibEtPan

GeoClue "GeoClue is a software framework which can be used to enable geospatial awareness in applications. GeoClue utilizes the D-Bus inter-process communication mechanism to provide location information. Through this it aims to simplify development of location aware applications and promote code reuse within the free software and open source communities by defining a logical boundary between the applications and underlying location providers. GeoClue is licensed under the GNU Lesser General Public License and is currently available for Linux."

GeoClue provides access to multiple position providers:

    * GPS: Position information from a Global Positioning System receiver
    * Plazes: Position information from the Plazes Wi-Fi location service
    * Hostip: Position information based on IP address
    * Manual: User-provided position information

[HTML] http://en.wikipedia.org/wiki/GeoClue
[HTML] http://www.freedesktop.org/wiki/Software/GeoClue
[HTML] http://folks.o-hand.com/jku/geoclue-docs/

源代码编译工具 
自动化编译程序——编写Makefile文件
[Html] http://users.actcom.co.il/~choo/lupg/tutorials/writing-makefiles/writing-makefiles.html

GNU Autoconf, Automake, And Libtool "金书"
[Html] http://sources.redhat.com/autobook/autobook/autobook_toc.html#SEC_Contents

法律资源
开源协议 
软件自由和知识产权法
[Html] http://www.rosenlaw.com/oslbook.htm

自由软件法律中心:
[Html] http://www.softwarefreedom.org/

公共专利项目:
[Html] http://www.patent-commons.org/

示例代码
GtkGLExt:
http://oracle.bridgewayconsulting.com.au/~davyd/misc/gtkglext-example.c

Creating and writing to an OpenGL window "GtkGLExt":
http://www.gtkforums.com/viewtopic.php?t=3568

Glib Utility Functions:
http://www.gtkforums.com/viewtopic.php?t=2809

Glib GChecksumType Examples
http://www.gtkforums.com/viewtopic.php?p=9125#9125

WebkitGtk & GtkBuilder:
http://www.gtkforums.com/viewtopic.php?t=3057

GtkIconView:
http://www.gtkforums.com/viewtopic.php?t=3103

GtkSourceView Syntax Highlighting Text Widget:
http://www.gtkforums.com/viewtopic.php?t=3105

Clutter and Clutter-box2d:
http://www.gtkforums.com/viewtopic.php?t=3128

GtkComboBox sample code:
http://www.gtkforums.com/viewtopic.php?t=3375

GTK+, Cairo & Poppler PDF Viewer example:
http://www.gtkforums.com/viewtopic.php?p=9086#9086

Terminal emulator widget VTE example
http://www.gtkforums.com/viewtopic.php?p=9087#9087

Gtk windows with alpha channels and Cairo
http://mikehearn.wordpress.com/2006/03/26/gtk-windows-with-alpha-channels/
[EXAMPLE] http://plan99.net/~mike/files/alphademo.c

A shaped input example with Gtk+, Cairo and XShape 1.1
http://macslow.thepimp.net/?p=26
[EXAMPLE] http://macslow.thepimp.net/projects/input_shape_test.c

Gtk System Tray Example
[HTML] http://yettocome.blogspot.com/2007/08/gtk-system-tray-icon-example.html

Gtk System Tray with Animated Icon Example
[HTML] http://www.gtkforums.com/viewtopic.php?t=3423

参考手册

下面是一个当前版本GTK+和她所需要的支持库的列表,你可以用这些库来构建自己的GTK+程序,记住,GTK+依赖GLib,这是唯一的依赖关系。

注意:这是一些需要被加入的其它的API参考手册。
ATK: http://library.gnome.org/devel/atk/stable/    
GDK: http://library.gnome.org/devel/gdk/stable/     
GdkPixbuf: http://library.gnome.org/devel/gdk-pixbuf/stable/    
GLib: http://library.gnome.org/devel/glib/stable/
GObject: http://library.gnome.org/devel/gobject/stable/
GTK+: http://library.gnome.org/devel/gtk/stable/
Pango: http://library.gnome.org/devel/pango/stable/
Cairo: http://www.cairographics.org/manual/
Gstreamer: http://gstreamer.freedesktop.org/documentation/
Libglade: http://library.gnome.org/devel/libglade/unstable/   
GtkGLExt:  http://gtkglext.sourceforge.net/reference/gtkglext/
Clutter 0.8: http://clutter-project.org/docs/clutter/0.8/
Clutter 0.9: http://clutter-project.org/docs/clutter/0.9/
Webkit: http://oe.linuxtogo.org/~zecke/webkit-gtk-api/index.html



转自http://hi.baidu.com/ziwuxian666/blog/item/c1905c81f4d112b70df4d247.html

简介 GTK (GIMP Toolkit) 是一套用于创建图形用户界面的工具包。它遵循 LGPL 许可证,所以你可以用它来开发开源软件、自由软件,甚至是 封闭源代码的商业软件,而不用花费任何钱来购买许可证使用权。 GTK 被称为 GIMP 工具包是因为最初写它是用来开发 GIMP (GNU 图像处理程序) 的,但是它现在已经被用于很多软件项目了,包括 GNOME (GNU 网络对象模型环境)GTK 是在 GDK (GIMP Drawing Kit) gdk-pixbuf 的基础上建立起来的,GDK 基本上是对访问窗口的 底层函数 (在 X 窗口系统中是 Xlib) 的一层封装,gdk-pixbuf 是一个用于客户端图像处理的库。 GTK 的创建者是: · Peter Mattis petm@xcf.berkeley.edu · Spencer Kimball spencer@xcf.berkeley.edu · Josh MacDonald jmacd@xcf.berkeley.edu GTK 的当前维护者是: · Owen Taylor otaylor@redhat.com · Tim Janik timj@gtk.org GTK 实质上是一个面向对象的应用程序接口 (API)。尽管完全用 C 写成的,但它是基于类回调函数 (指向函数的指针) 的思想实现的。 还 有一个名为 GLib 的第三个组件,包含一些标准函数的替代函数,以及一些处理链表等数据结构的函数等。这些替代函数被用来增强 GTK 的可移植性,因为它们所实现的一些函数在其它 Unix 系统上未实现或不符合标准,比如 g_strerror()。一些是对 libc 的对应函 数的增强,比如 g_malloc() 具有增强的调试功能。 在 2.0 版中,GLib 又加入这样一些新内容:构成 GTK 类层次基础的类型系统 (type system),在 GTK 中广泛使用的信号系统,对各 种不同平台的线程 API 进行抽象而得的一个线程 API,以及一个加载模块的工具。 作为最后一个组件,GTK 使用了 Pango 库来处理国际化文字输出。 本 教程讲述 GTK 的 C 接口。还有许多其它语言的 GTK 绑定如 C++、Perl、Python、TOM、Ada95、Objective C、Free Pascal、Eiffel、Java C#。如果你想使用 GTK 其它语言的绑定,请先查看该绑定的文档。有时这些文档会讲一些重要的概念,然后你再来参考本教程。还有一 些跨平台的 API (如 wxWindows V),它们把 GTK 作为一个支持的平台。同样,先参考它们的文档。 如果你用 C++ 来开发 GTK 应用程序,有以下几点需要注意。已有一个 GTK 的 C++ 绑定叫做 GTK-- (译者注:现在叫做 gtkmm),提供 一个更符合 C++ 规范的接口,你可以先看看这个接口。如果你由于种种原因不喜欢这种方法,还有另外两种使用 GTK 的方法。首先,你 可以只使用 C++ 中的 C 子集来调用 GTK,这样就可以使用本教程描述的 C 接口。其次,你可以用下述方法同时使用 GTK C++:把所 用的回调函数定义为 C++ 类中的静态成员函数,然后仍然使用 C 接口来调用 GTK。如果你选择后一种方法,你可以把指向要操作的对象 3 / 258 的指针 (即所谓的 "this")作为回调函数的 data 参数。选择哪一种方法仅仅是个人的喜好问题,因为不管用哪一种方法,你都会得到 C++ GTK。它们都不需要特殊的预处理程序,因此你可以同时使用标准 C++ GTK。 本教程试图尽可能详细地描述 GTK,但是肯定不能面面俱到。本教程假设你能够较好的理解 C 语言,并且了解怎样编写一个 C 程序。有 X 编程经验会很有帮助,但不是必要条件。如果 GTK 是你学习的第一个构件工具包,请告诉我们你怎样找到这个教程,以及学习时有什 么困难。还有其它一些语言的绑定,如 C++、Objective C、ADA、Guile 等,但我不了解这些。 本教程仍在不断完善中。请到 http://www.gtk.org/ 查看更新情况。 我非常乐意听到你在使用本教程学习 GTK 时遇到的各种困难,并欢迎对怎样改进此文档提出建议。更多信息请参阅投稿这一章。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值