# GTK+ 2 Reference Manual

This document is for the GTK+ 2 library; the latest versions can be found online at http://library.gnome.org/devel/gtk2. If you're looking for the newer GTK+ 3 series of libraries, see http://library.gnome.org/devel/gtk3/.

## GTK+ Overview

GTK+ is a library for creating graphical user interfaces. It works on many UNIX-like platforms, Windows, and on framebuffer devices. GTK+ is released under the GNU Library General Public License (GNU LGPL), which allows for flexible licensing of client applications. GTK+ has a C-based object-oriented architecture that allows for maximum flexibility. Bindings for other languages have been written, including C++, Objective-C, Guile/Scheme, Perl, Python, TOM, Ada95, Free Pascal, and Eiffel.

GTK+ depends on the following libraries:

GLib

  A general-purpose utility library, not specific to graphical user interfaces. GLib provides many useful data types, macros, type conversions, string utilities, file utilities, a main loop abstraction, and so on.

Pango

  Pango is a library for internationalized text handling. It centers around the #PangoLayout object, representing a paragraph of text. Pango provides the engine for #GtkTextView, #GtkLabel, #GtkEntry, and other widgets that display text.

ATK

  ATK is the Accessibility Toolkit. It provides a set of generic interfaces allowing accessibility technologies to interact with a graphical user interface. For example, a screen reader uses ATK to discover the text in an interface and read it to blind users. GTK+ widgets have built-in support for accessibility using the ATK framework.

GdkPixbuf

  This is a small library which allows you to create #GdkPixbuf ("pixel buffer") objects from image data or image files. Use a #GdkPixbuf in combination with #GtkImage to display images.

GDK

  GDK is the abstraction layer that allows GTK+ to support multiple windowing systems. GDK provides drawing and window system facilities on X11, Windows, and the Linux framebuffer device.

GTK+

  The GTK+ library itself contains widgets, that is, GUI components such as #GtkButton or #GtkTextView.

## GTK+ Core Reference

## GTK+ Widgets and Objects

### Object Hierarchy

### Widget Gallery

### Windows

### Display Widgets

### Buttons and Toggles

### Numeric/Text Data Entry

### Multiline Text Editor

### Tree, List and Icon Grid Widgets

### Menus, Combo Box, Toolbar

### Action-based menus and toolbars

### Selectors (File/Font/Color/Input Devices)

### Layout Containers

### Ornaments

### Scrolling

### Printing

### Miscellaneous

### Abstract Base Classes

### Cross-process Embedding

### Special-purpose features

### Recently Used Documents

### Interface builder

### Deprecated

## Migrating from Previous Versions of GTK+

This part describes what you need to change in programs use older versions of GTK+ so that they can use the new features. It also mentions how to convert applications using widgets found in the libgnomeui library to use their counterparts in GTK+.

## GTK+ Tools

Index of all symbols

Index of deprecated symbols

Index of new symbols in 2.2

Index of new symbols in 2.4

Index of new symbols in 2.6

Index of new symbols in 2.8

Index of new symbols in 2.10

Index of new symbols in 2.12

Index of new symbols in 2.14

Index of new symbols in 2.16

Index of new symbols in 2.18

Index of new symbols in 2.20

Index of new symbols in 2.22

Index of new symbols in 2.24