GTK+简介:
GTK+(The GIMP Toolkit)最初是为一个叫做GIMP的点阵图图像编辑器的软件设计的,由Peter Mattis,Spencer Kimball和Josh MacDonald于1997年在加州大学伯克利分校的eXperimental Computing Facility完成。GTK+后来被作为GNOME和XFCE这两个主流linux桌面环境的默认图像开发包。开始GTK+用于linux操作系统,后来又扩展到支持其他的类UNXI系统,像微软的windows,BeOS,Solaris,Mac
OS X等待。
GTK+正处在第二个稳定发行周期中,即GTK+2。因为要添加一些新的特性以及它的开发者想让它摆脱对API的依赖性,所以对GTK的第一个发行版本做了大幅度的修改。由于这两个版本的GTK+是不兼容的,因此可以同时安装它们两个。当你在构建应用时,你就要让编译器搞清楚你要用的是GTK+2.0而不是1.0。
GTK+2.0增加了很多新的特性,包括Pango这个字体渲染引擎和一个新增强的主题引擎。同时ATK(Accessibility Toolkit)极大地增强了系统的可接入性。
X window系统:
1984年,Jim Gettys 和Bob Scheifler在MIT开发了X window系统(X11)作为Argus系统跨平台调试环境。通过X.Org Foundation的进一步开发,X11已经成为了linux和类UNIX系统上标准的display manager。例如在一些基础方面,X11提供了位图显示的窗口功能。
尽管linux上使用X window,但其他的操作系统例如微软的window并未使用。所以GTK+的另一个优势就是它可以进行底层渲染系统的交流而不用管具体的系统是什么。你的代码是一模一样的,不管你是为linux,windows或者Mac OS X写的.
现在回到linux上来,X11用它最基本和最抽象的方式管理窗口。它在屏幕上画出窗口并且处理它们的动作。X11也在图像环境中控制输入设备,像鼠标和键盘。X11的基本编程接口,Xlib提供了编写图形界面的基本工具。尽管可以用Xlib来进行开发,但是多数的程序员更喜欢使用类似GTK+的图形工具包,因为所有底层的调用都由库管理或隐藏了起来。
一个将X11和其他display manager区别开来的重要特性是X11假设用户和服务器是被独立区别对待的。这就允许用户在远程端独立于服务器存在。X window的另一个优点是它不强制授权用户界面并且允许window manager的图形界面高度定制。这也是为什么window manager能提供如此不同的界面和主题。它保证了linux用户享有自由选择的权利。
具有嘲讽意味的是,这种自由同时也是对X11的最大批评之一。许多人担心这会造成linux社区开发者的分裂。不过直到现在我们依旧能够自由选择我们需要的window manager。因为GTK+的存在,作为程序员,你不必和X window 系统直接通信。你可以创建窗口和构件,也可以处理这些构件和用户间的通信。但是所有直接的屏幕渲染和Xlib的功能函数调用都是自动完成的。所以我们接下来不会涉及更多的关于X window系统的东西而将更多地专注于GTK+的函数库。
----------------《Foundations of GTK+ Development》