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+ 教程和资源集合(二))