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


I. GTK+ Overview
Compiling the GTK+ libraries — How to compile GTK+ itself
Compiling GTK+ Applications — How to compile your GTK+ application
Running GTK+ Applications — How to run and debug your GTK+ application
Using GTK+ on the X Window System — X11 aspects of using GTK+
Using GTK+ on Windows — Windows-specific aspects of using GTK+
Using GTK+ on Mac OS X — OS X-specific aspects of using GTK+
Using GTK+ on DirectFB — DirectFB-specific aspects of using GTK+
Mailing lists and bug reports — Getting help with GTK+
Common Questions — Find answers to common questions in the GTK+ manual
The GTK+ Drawing Model — The GTK+ drawing model in detail
II. GTK+ Core Reference
Main loop and Events — Library initialization, main event loop, and events
Accelerator Groups — Groups of global keyboard accelerators for an entire GtkWindow
Accelerator Maps — Loadable keyboard accelerator specifications
Clipboards — Storing data on clipboards
Drag and Drop — Functions for controlling drag and drop handling
GtkIconTheme — Looking up icons by name
Stock Items — Prebuilt common menu/toolbar items and corresponding icons
Themeable Stock Images — Manipulating stock icons
Resource Files — Routines for handling resource files
Settings — Sharing settings between applications
Bindings — Key bindings for individual widgets
Standard Enumerations — Public enumerated types used throughout GTK+
Graphics Contexts — A shared pool of GdkGC objects
Styles — Functions for drawing widget parts
Selections — Functions for handling inter-process communication via selections
Version Information — Variables and functions to check the GTK+ version
Signals — Object methods and callbacks
Types — Handle run-time type creation
Testing — Utilities for testing GTK+ applications
Filesystem utilities — Functions for working with GIO
III. GTK+ Widgets and Objects
Object Hierarchy
Widget Gallery
Windows
GtkDialog — Create popup windows
GtkInvisible — A widget which is not displayed
GtkMessageDialog — A convenient message window
GtkWindow — Toplevel which can contain other widgets
GtkWindowGroup — Limit the effect of grabs
GtkAboutDialog — Display information about an application
GtkAssistant — A widget used to guide users through multi-step operations
GtkOffscreenWindow — A toplevel container widget used to manage offscreen rendering of child widgets.
Display Widgets
GtkAccelLabel — A label which displays an accelerator key on the right of the text
GtkImage — A widget displaying an image
GtkLabel — A widget that displays a small to medium amount of text
GtkProgressBar — A widget which indicates progress visually
GtkStatusbar — Report messages of minor importance to the user
GtkInfoBar — Report important messages to the user
GtkStatusIcon — Display an icon in the system tray
GtkSpinner — Show a spinner animation
Buttons and Toggles
GtkButton — A widget that creates a signal when clicked on
GtkCheckButton — Create widgets with a discrete toggle button
GtkRadioButton — A choice from multiple check buttons
GtkToggleButton — Create buttons which retain their state
GtkLinkButton — Create buttons bound to a URL
GtkScaleButton — A button which pops up a scale
GtkVolumeButton — A button which pops up a volume control
Numeric/Text Data Entry
GtkEntry — A single line text entry field
GtkEntryBuffer — Text buffer for GtkEntry
GtkEntryCompletion — Completion functionality for GtkEntry
GtkHScale — A horizontal slider widget for selecting a value from a range
GtkVScale — A vertical slider widget for selecting a value from a range
GtkSpinButton — Retrieve an integer or floating-point number from the user
GtkEditable — Interface for text-editing widgets
Multiline Text Editor
Text Widget Overview — Overview of GtkTextBuffer, GtkTextView, and friends
GtkTextIter — Text buffer iterator
GtkTextMark — A position in the buffer preserved across buffer modifications
GtkTextBuffer — Stores attributed text for display in a GtkTextView
GtkTextTag — A tag that can be applied to text in a GtkTextBuffer
GtkTextTagTable — Collection of tags that can be used together
GtkTextView — Widget that displays a GtkTextBuffer
Tree, List and Icon Grid Widgets
Tree and List Widget Overview — Overview of GtkTreeModel, GtkTreeView, and friends
GtkTreeModel — The tree interface used by GtkTreeView
GtkTreeSelection — The selection object for GtkTreeView
GtkTreeViewColumn — A visible column in a GtkTreeView widget
GtkTreeView — A widget for displaying both trees and lists
GtkTreeView drag-and-drop — Interfaces for drag-and-drop support in GtkTreeView
GtkCellView — A widget displaying a single row of a GtkTreeModel
GtkIconView — A widget which displays a list of icons in a grid
GtkTreeSortable — The interface for sortable models used by GtkTreeView
GtkTreeModelSort — A GtkTreeModel which makes an underlying tree model sortable
GtkTreeModelFilter — A GtkTreeModel which hides parts of an underlying tree model
GtkCellLayout — An interface for packing cells
GtkCellRenderer — An object for rendering a single cell on a GdkDrawable
GtkCellEditable — Interface for widgets which can are used for editing cells
GtkCellRendererAccel — Renders a keyboard accelerator in a cell
GtkCellRendererCombo — Renders a combobox in a cell
GtkCellRendererPixbuf — Renders a pixbuf in a cell
GtkCellRendererProgress — Renders numbers as progress bars
GtkCellRendererSpin — Renders a spin button in a cell
GtkCellRendererText — Renders text in a cell
GtkCellRendererToggle — Renders a toggle button in a cell
GtkCellRendererSpinner — Renders a spinning animation in a cell
GtkListStore — A list-like data structure that can be used with the GtkTreeView
GtkTreeStore — A tree-like data structure that can be used with the GtkTreeView
Menus, Combo Box, Toolbar
GtkComboBox — A widget used to choose from a list of items
GtkComboBoxText — A simple, text-only combo box
GtkComboBoxEntry — A text entry field with a dropdown list
GtkMenu — A menu widget
GtkMenuBar — A subclass widget for GtkMenuShell which holds GtkMenuItem widgets
GtkMenuItem — The widget used for item in menus
GtkImageMenuItem — A menu item with an icon
GtkRadioMenuItem — A choice from multiple check menu items
GtkCheckMenuItem — A menu item with a check box
GtkSeparatorMenuItem — A separator used in menus
GtkTearoffMenuItem — A menu item used to tear off and reattach its menu
GtkToolShell — Interface for containers containing GtkToolItem widgets
GtkToolbar — Create bars of buttons and other widgets
GtkToolItem — The base class of widgets that can be added to GtkToolShell
GtkToolPalette — A tool palette with categories
GtkToolItemGroup — A sub container used in a tool palette
GtkSeparatorToolItem — A toolbar item that separates groups of other toolbar items
GtkToolButton — A GtkToolItem subclass that displays buttons
GtkMenuToolButton — A GtkToolItem containing a button with an additional dropdown menu
GtkToggleToolButton — A GtkToolItem containing a toggle button
GtkRadioToolButton — A toolbar item that contains a radio button
Action-based menus and toolbars
GtkUIManager — Constructing menus and toolbars from an XML description
GtkActionGroup — A group of actions
GtkAction — An action which can be triggered by a menu or toolbar item
GtkToggleAction — An action which can be toggled between two states
GtkRadioAction — An action of which only one in a group can be active
GtkRecentAction — An action of which represents a list of recently used files
GtkActivatable — An interface for activatable widgets
Selectors (File/Font/Color/Input Devices)
GtkColorButton — A button to launch a color selection dialog
GtkColorSelectionDialog — A standard dialog box for selecting a color
GtkColorSelection — A widget used to select a color
GtkHSV — A 'color wheel' widget
GtkFileChooser — File chooser interface used by GtkFileChooserWidget and GtkFileChooserDialog
GtkFileChooserButton — A button to launch a file selection dialog
GtkFileChooserDialog — A file chooser dialog, suitable for "File/Open" or "File/Save" commands
GtkFileChooserWidget — File chooser widget that can be embedded in other widgets
GtkFileFilter — A filter for selecting a file subset
GtkFontButton — A button to launch a font selection dialog
GtkFontSelection — A widget for selecting fonts
GtkFontSelectionDialog — A dialog box for selecting fonts
GtkInputDialog — Configure devices for the XInput extension
Layout Containers
GtkAlignment — A widget which controls the alignment and size of its child
GtkAspectFrame — A frame that constrains its child to a particular aspect ratio
GtkHBox — A horizontal container box
GtkVBox — A vertical container box
GtkHButtonBox — A container for arranging buttons horizontally
GtkVButtonBox — A container for arranging buttons vertically
GtkFixed — A container which allows you to position widgets at fixed coordinates
GtkHPaned — A container with two panes arranged horizontally
GtkVPaned — A container with two panes arranged vertically
GtkLayout — Infinite scrollable area containing child widgets and/or custom drawing
GtkNotebook — A tabbed notebook container
GtkTable — Pack widgets in regular patterns
GtkExpander — A container which can hide its child
GtkOrientable — An interface for flippable widgets
Ornaments
GtkFrame — A bin with a decorative frame and optional label
GtkHSeparator — A horizontal separator
GtkVSeparator — A vertical separator
Scrolling
GtkHScrollbar — A horizontal scrollbar
GtkVScrollbar — A vertical scrollbar
GtkScrolledWindow — Adds scrollbars to its child widget
Printing
GtkPrintOperation — High-level Printing API
GtkPrintContext — Encapsulates context for drawing pages
GtkPrintSettings — Stores print settings
GtkPageSetup — Stores page setup information
GtkPaperSize — Support for named paper sizes
GtkPrinter — Represents a printer
GtkPrintJob — Represents a print job
GtkPrintUnixDialog — A print dialog
GtkPageSetupUnixDialog — A page setup dialog
Miscellaneous
GtkAdjustment — A GtkObject representing an adjustable bounded value
GtkArrow — Displays an arrow
GtkCalendar — Displays a calendar and allows the user to select a date
GtkDrawingArea — A widget for custom user interface elements
GtkEventBox — A widget used to catch events for widgets which do not have their own window
GtkHandleBox — a widget for detachable window portions
GtkIMContextSimple — An input method context supporting table-based input methods
GtkIMMulticontext — An input method context supporting multiple, loadable input methods
GtkSizeGroup — Grouping widgets so they request the same size
GtkTooltip — Add tips to your widgets
GtkViewport — An adapter which makes widgets scrollable
GtkAccessible — Accessibility support for widgets
Abstract Base Classes
GtkBin — A container with just one child
GtkBox — Base class for box containers
GtkButtonBox — Base class for GtkHButtonBox and GtkVButtonBox
GtkContainer — Base class for widgets which contain other widgets
GtkItem — Abstract base class for GtkMenuItem, GtkListItem and GtkTreeItem
GtkMenuShell — A base class for menu objects
GtkMisc — Base class for widgets with alignments and padding
GtkObject — The base class of the GTK+ type hierarchy
GtkPaned — Base class for widgets with two adjustable panes
GtkRange — Base class for widgets which visualize an adjustment
GtkScale — Base class for GtkHScale and GtkVScale
GtkScrollbar — Base class for GtkHScrollbar and GtkVScrollbar
GtkSeparator — Base class for GtkHSeparator and GtkVSeparator
GtkWidget — Base class for all widgets
GtkIMContext — Base class for input method contexts
Cross-process Embedding
GtkPlug — Toplevel for embedding into other processes
GtkSocket — Container for widgets from other processes
Special-purpose features
GtkCurve — Allows direct editing of a curve
GtkGammaCurve — A subclass of GtkCurve for editing gamma curves
GtkRuler — Base class for horizontal or vertical rulers
GtkHRuler — A horizontal ruler
GtkVRuler — A vertical ruler
Recently Used Documents
GtkRecentManager — Managing Recently Used Files
GtkRecentChooser — Interface implemented by widgets displaying recently used files
GtkRecentChooserDialog — Displays recently used files in a dialog
GtkRecentChooserMenu — Displays recently used files in a menu
GtkRecentChooserWidget — Displays recently used files
GtkRecentFilter — A filter for selecting a subset of recently used files
Interface builder
GtkBuildable — Interface for objects that can be built by GtkBuilder
GtkBuilder — Build an interface from an XML UI definition
Deprecated
GtkCList — A multi-columned scrolling list widget
GtkCTree — A widget displaying a hierarchical tree
GtkCombo — A text entry field with a dropdown list
GtkFileSelection — Prompt the user for a file or directory name
GtkItemFactory — A factory for menus
GtkList — Widget for packing a list of selectable items
GtkListItem — An item in a GtkList
GtkOldEditable — Base class for text-editing widgets
GtkOptionMenu — A widget used to choose from a list of valid choices
GtkPixmap — A widget displaying a graphical image or icon
GtkPreview — A widget to display RGB or grayscale data
GtkProgress — Base class for GtkProgressBar
GtkText — A text widget
GtkTooltips — Add tips to your widgets
GtkTipsQuery — Displays help about widgets in the user interface
GtkTree — A tree widget
GtkTreeItem — The widget used for items in a GtkTree
IV. Migrating from Previous Versions of GTK+
Migration Checklist
Implement GtkWidget::popup_menu
Use GdkEventExpose.region
Test for modifier keys correctly
Use named icons
Changes from 1.0 to 1.2 — Incompatible changes made between version 1.0 and version 1.2
Changes from 1.2 to 2.0 — Incompatible changes made between version 1.2 and version 2.0
Migrating from GtkFileSelection to GtkFileChooser
Creating a GtkFileChooserDialog
Selection Modes
Installing a Preview widget
Installing Extra Widgets
New features
Migrating from old menu and toolbar systems to GtkAction
Actions and Action Groups
User Interface Manager Object
Migrating from GnomeUIInfo
Migrating from GtkOptionMenu and GtkCombo to GtkComboBox and GtkComboBoxEntry
Migrating from GtkOptionMenu to GtkComboBox
Migrating from GtkCombo to GtkComboBoxEntry
New features
Migrating from GnomeIconList to GtkIconView
Migrating from GnomeAbout to GtkAboutDialog
Migrating from GnomeColorPicker to GtkColorButton
Migrating from GnomeDruid to GtkAssistant
Inserting pages
Decorating the assistant pages
Setting the page flow
Migrating from EggRecent to GtkRecentChooser
Managing the Recently Used Documents
Displaying the Recently Used Documents
Advanced usage
Migrating from GnomeHRef to GtkLinkButton
Migrating from libglade to GtkBuilder
Migrating from GtkTooltips to GtkTooltip
Migrating from SexyIconEntry to GtkEntry
Migrating from SexyUrlLabel to GtkLabel
Migrating to client-side windows
V. GTK+ Tools
gtk-query-immodules-2.0 — Input method module registration utility
gtk-update-icon-cache — Icon theme caching utility
gtk-builder-convert — Glade file conversion utility
Glossary
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
Annotation Glossary