GTK+ 3 Reference Manual

This document is for the GTK+ 3 library, version 3.2.3 . The latest versions can be found online at http://library.gnome.org/devel/gtk3/. If you are looking for the older GTK+ 2 series of libraries, see http://library.gnome.org/devel/gtk/.

I. GTK+ Overview
  Getting Started with GTK+
  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+
  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
  Version Information — Variables and functions to check the GTK+ version
  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
  Stock Items — Prebuilt common menu/toolbar items and corresponding icons
  Settings — Sharing settings between applications
  Bindings — Key bindings for individual widgets
  Standard Enumerations
  Selections — Functions for handling inter-process communication via selections
  Testing — Utilities for testing GTK+ applications
  Filesystem utilities — Functions for working with GIO
III. Theming in GTK+
  GtkStyleContext — Rendering UI elements
  GtkCssProvider — CSS-like styling for widgets
  GtkStyleProvider — Interface to provide style information to GtkStyleContext
  GtkStyleProperties — Store for style property information
  GtkThemingEngine — Theming renderers
  GtkWidgetPath — Widget path abstraction
  GtkSymbolicColor — Symbolic colors
  GtkGradient — Gradients
  GtkIconTheme — Looking up icons by name
  Themeable Stock Images — Manipulating stock icons
  GtkNumerableIcon — A GIcon that allows numbered emblems
  Resource Files — Deprecated routines for handling resource files
  GtkStyle — Deprecated object that holds style information for widgets
IV. 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 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
    GtkSwitch — A "light switch" style toggle
    GtkLockButton — A widget to unlock or lock privileged operations
  Numeric/Text Data Entry
    GtkEntry — A single line text entry field
    GtkEntryBuffer — Text buffer for GtkEntry
    GtkEntryCompletion — Completion functionality for GtkEntry
    GtkScale — A slider widget for selecting a value from a range
    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
    GtkCellArea — An abstract class for laying out GtkCellRenderers
    GtkCellAreaBox — A cell area that renders GtkCellRenderers into a row or a column
    GtkCellAreaContext — Stores geometrical information for a series of rows in a GtkCellArea
    GtkCellRenderer — An object for rendering a single cell
    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
    GtkMenu — A menu widget
    GtkMenuBar — A subclass of 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 (Color/File/Font)
    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 chooser dialog
    GtkFontChooser — Interface implemented by widgets displaying fonts
    GtkFontChooserDialog — A dialog box for selecting fonts
    GtkFontSelection — Deprecated widget for selecting fonts
    GtkFontSelectionDialog — A dialog box for selecting fonts
  Layout Containers
    GtkGrid — Pack widgets in a rows and columns
    GtkAlignment — A widget which controls the alignment and size of its child
    GtkAspectFrame — A frame that constrains its child to a particular aspect ratio
    GtkBox — A container box
    GtkHBox — A horizontal container box
    GtkVBox — A vertical container box
    GtkButtonBox — A container for arranging buttons
    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
    GtkPaned — A widget with two adjustable panes
    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
    GtkOverlay — A container which overlays widgets on top of each other
    GtkOrientable — An interface for flippable widgets
  Ornaments
    GtkFrame — A bin with a decorative frame and optional label
    GtkSeparator — A separator widget
    GtkHSeparator — A horizontal separator
    GtkVSeparator — A vertical separator
  Scrolling
    GtkScrollbar — A Scrollbar
    GtkHScrollbar — A horizontal scrollbar
    GtkVScrollbar — A vertical scrollbar
    GtkScrolledWindow — Adds scrollbars to its child widget
    GtkScrollable — An interface for scrollable widgets
  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 representation of 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
    GtkWidget — Base class for all widgets
    GtkContainer — Base class for widgets which contain other widgets
    GtkBin — A container with just one child
    GtkMenuShell — A base class for menu objects
    GtkMisc — Base class for widgets with alignments and padding
    GtkRange — Base class for widgets which visualize an adjustment
    GtkIMContext — Base class for input method contexts
  Cross-process Embedding
    GtkPlug — Toplevel for embedding into other processes
    GtkSocket — Container for widgets from other processes
  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
  Choosing from installed applications
    GtkAppChooser — Interface implemented by widgets for choosing an application
    GtkAppChooserButton — A button to launch an application chooser dialog
    GtkAppChooserDialog — An application chooser dialog
    GtkAppChooserWidget — Application chooser widget that can be embedded in other widgets
  Interface builder
    GtkBuildable — Interface for objects that can be built by GtkBuilder
    GtkBuilder — Build an interface from an XML UI definition
  Application support
    GtkApplication — Application class
V. Migrating from Previous Versions of GTK+
  Migration Checklist
    Implement GtkWidget::popup_menu
    Use GdkEventExpose.region
    Test for modifier keys correctly
    Use named icons
  Migrating from GTK+ 2.x to GTK+ 3
    Preparation in GTK+ 2.x
      Do not include individual headers
      Do not use deprecated symbols
      Use accessor functions instead of direct access
      Replace GDK_<keyname> with GDK_KEY_<keyname>
      Use GIO for launching applications
      Use cairo for drawing
    Changes that need to be done at the time of the switch
      Replace size_request by get_preferred_width/height
      Replace GdkRegion by cairo_region_t
      Replace GdkPixmap by cairo surfaces
      Replace GdkColormap by GdkVisual
      GdkDrawable is gone
      Event filtering
      Backend-specific code
      GtkPlug and GtkSocket
      The GtkWidget::draw signal
      GtkProgressBar orientation
      Check your expand and fill flags
      Scrolling changes
      GtkObject is gone
      GtkEntryCompletion signal parameters
      Resize grips
      Prevent mixed linkage
      Install GTK+ modules in the right place
  Theming changes
    Migrating themes
    Migrating theme engines
    Extending the CSS parser
    Using the CSS file format
    A checklist for widgets
    Parsing of custom resources
    Bonus points
  Migrating from libunique to GApplication or GtkApplication
    Uniqueness
    Commands and Messages
  Migrating from other containers to GtkGrid
    GtkBox versus GtkGrid: packing
    GtkBox versus GtkGrid: sizing
    GtkBox versus GtkGrid: spacing
VI. GTK+ Tools
  gtk-query-immodules-3.0 — Input method module registration utility
  gtk-update-icon-cache — Icon theme caching utility
Glossary
Index of all symbols
Index of deprecated symbols
Index of new symbols in 3.0
Index of new symbols in 3.2
Annotation Glossary

Generated by GTK-Doc V1.18.1