GTK+

From Wikipedia, the free encyclopedia

(Redirected from Gimp Toolkit)
Jump to: navigation, search
GTK+
GTK+ Logo
Developer GNOME Foundation
Latest release 2.12.3 / December 5, 2007
Programming language(s) C
OS Cross-platform
Genre Widget toolkit
License GNU Lesser General Public License
Website http://gtk.org/

GTK+, or The GIMP Toolkit, is a cross-platform widget toolkit for creating graphical user interfaces. It is one of the most popular toolkits for the X Window System, along with Qt and Motif.

GTK+ was initially created for the GNU Image Manipulation Program, a raster graphics editor, in 1997 by Spencer Kimball, Peter Mattis, and Josh MacDonald—all of whom were members of eXperimental Computing Facility (XCF) at UC Berkeley. Licensed under the LGPL, GTK+ is free software (and open source) and is part of the GNU Project.

Contents

GTK+ uses the C programming language, although its design uses the GObject object system. The GNOME platform bindings provide for:

Others have written bindings for many other programming languages (including Ada, D, Haskell, Ocaml, Pascal, PHP, Pike, Tcl, Euphoria and all .NET programming languages). GTK-server provides a stream-based IPC interface to GTK+ allowing it to be used from any language with I/O capabilities, including shell scripts. A complete list of bindings can be found at the GTK+ bindings page.

Languages purpose-written for GTK+ include GOB2 and Vala.

Unlike many other widget toolkits, but like Qt, GTK+ isn't based on Xt. The advantage of this is that it allows GTK+ to be available on other systems and to be much more flexible. The disadvantage is that it doesn't have access to the X resources database, which is the traditional way for customizing X11 applications.

GTK+ was originally targeted at the X Window System, and this remains its primary target platform. Other targeted platforms are Microsoft Windows (Windows 2000 and upwards, near complete support), DirectFB, and Quartz (Mac OS X v10.4 and upwards, still under development).

The end-user can configure the look of the toolkit, down to offering a number of different display engines. Engines exist which try to emulate the look of other popular toolkits or platforms, like Windows 95, Motif, Qt or NEXTSTEP.

Screenshot of The GIMP 2.0. GTK+ is responsible for managing the interface components of the program, including the menus, buttons, input fields, etc.
Screenshot of The GIMP 2.0. GTK+ is responsible for managing the interface components of the program, including the menus, buttons, input fields, etc.
  • wxWidgets, a cross-platform GUI toolkit which uses GTK+ when compiled for Unix systems [1].
  • The GNOME environment uses GTK+ as a base, which means that programs written for GNOME use GTK+ as their toolkit.
  • Xfce also uses it as its base, though its applications typically do not depend on as many libraries. (This is the difference between something being branded as a “GNOME program” and as a “GTK+ program”.)
  • ROX Desktop a lightweight desktop, with features from the GUI of RISC OS
  • GPE Palmtop Environment
  • Maemo (Nokia's Internet-tablet framework)
  • Access Linux Platform (successor of the Palm OS PDA platform)
  • One Laptop Per Child project uses GTK+ and PyGTK.
  • OpenMoko - Open mobile platform

Those desktop environments, however, are not required to run GTK+ programs. If the libraries the program requires are installed, a GTK+ program can run on top of other X11-based environments such as KDE or an X11-plus-window manager environment; this includes Mac OS X if X11.app is installed. GTK+ can also run under Microsoft Windows, used by some popular cross-platform applications like Pidgin, as well as The GIMP itself. Some of the more unusual ports include DirectFB and ncurses.

Both Metacity and Xfwm4 use GTK+ 2.

GTK+ initially contained some utility routines that did not strictly relate to graphics, for instance providing such data structures as linked lists and binary trees. Such general utilities, along with the object system called GObject, have now migrated into a separate library, Glib, which programmers can use to develop code that does not require a graphical interface.

GTK+ 2 has succeeded GTK+ 1. Its new features include improved text rendering using Pango, a new theme engine, improved accessibility using the Accessibility Toolkit, complete transition to Unicode using UTF-8 strings and a more flexible API. However, GTK+ 2 lacks compatibility with GTK+ 1, and programmers must port applications to it.

Starting with version 2.8, GTK+ 2 depends on the Cairo library for rendering with vector graphics in GTK+ 2.

Software development with GTK+ is somewhat systematic[citation needed], in that handcoding simple and complex graphical elements is very repetitive. Moreover, this process is so systematic that a program, called Glade, allows one to develop graphical applications with an easy to use visual center, such as that used with Visual Basic.

Project Ridley is an attempt to consolidate several libraries that are currently external to GTK+, including: libgnome, libgnomeui, libgnomeprint22, libgnomeprintui22, libglade, libgnomecanvas, libegg, libeel and gtkglext.[1]

Wikibooks
Wikibooks X Windows Programming has a page on the topic of
Advanced Search
Included Web Search Engines


Safe Search

close

Top Matching Results

Occasionally Search.com will highlight specialized results that are based on the context of your query. Examples of specialized results include specific links to news, images, or video.

Top Matching Results may highlight information from other Search.com pages, content from the CNET Network of sites, or third party content. The listings are based purely on relevance. Search.com does not receive payment for listings in this section but our partners that provide this data may get paid for listing these products.

Sponsored Links

This section contains paid listings which have been purchased by companies that want to have their sites appear for specific search terms and related content. These listings are administered, sorted and maintained by a third party and are not endorsed by Search.com.

Search Results

Search.com sends your search query to several search engines at one time and integrates the results into one list which has been sorted by relevance using Search.com's proprietary algorithm. You can customize the list of search engines included in your metasearch from the preferences.

The search engines that are used in your metasearch may allow companies to pay to have their Web sites included within the results. To view the Paid Inclusion policy for a specific search engine, please visit their Web site. Search.com does not accept payment or share revenue with any search engine partner for listings in this section.