# GTK+ Reference Manual

## GTK+

GTK+ is a multi-platform open source GUI Toolkit. Everything about GTK+ from the object-oriented design to the Free Software LGPL licensing allows you to code your project with the most freedom possible. You can develop open software, free software, or even commercial non-free software without having to spend a dime for licenses or royalties.

GTK+ is a set of libraries to create graphical user interfaces. It works on many Unix-like platforms, and a Windows version is in development. 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+ consists of the following component libraries:

GLib

  Provides many useful data types, macros, type conversions, string utilities and a lexical scanner. Includes Win32 support.

GDK

  A wrapper for low-level windowing functions.

GTK+

  An advanced widget set.

&gtk-General; &gtk-Feature-Test-Macros; &gtk-Graphics-Contexts; &gtk-Styles; &gtk-Themes; &gtk-Resource-Files; &gtk-Keyboard-Accelerators; &gtk-Selections; &gtk-Drag-and-Drop; &gtk-Signals; &gtk-Object-Properties; &gtk-Types; &gtk-Bindings; &gtk-Standard-Enumerations;

## GTK+ Widgets and Objects

### Object Hierarchy

&index-Object-Tree;

### Windows

&GtkDialog; &GtkInvisible; &GtkPlug; &GtkWindow;

### Display Widgets

&GtkAccelLabel; &GtkImage; &GtkLabel; &GtkProgressBar; &GtkStatusbar;

### Buttons and Toggles

&GtkButton; &GtkCheckButton; &GtkRadioButton; &GtkToggleButton;

### Numeric/Text Data Entry

&GtkEntry; &GtkHScale; &GtkSpinButton; &GtkVScale;

### Multiline Text Editor

&gtk-TextWidget; &gtk-GtkTextIter; &gtk-GtkTextMark; &GtkText; &GtkTextBuffer; &GtkTextTag; &GtkTextTagTable; &GtkTextView;

### Tree and List Widget

&gtk-TreeWidget; &gtk-gtktreemodel; &gtk-GtkTreeSelection; &gtk-GtkTreeStore; &gtk-GtkTreeViewColumn; &gtk-GtkTreeView; &gtk-GtkModelSimple; &gtk-GtkCellRenderer; &gtk-GtkCellRendererPixbuf; &gtk-GtkCellRendererText; &gtk-GtkCellRendererTextPixbuf; &gtk-GtkCellRendererToggle; &gtk-GtkListStore;

### Menus, Combo Box, Toolbar

&GtkCheckMenuItem; &GtkCombo; &GtkItemFactory; &GtkMenu; &GtkMenuBar; &GtkMenuItem; &GtkMenuShell; &GtkOptionMenu; &GtkRadioMenuItem; &GtkTearoffMenuItem; &GtkToolbar;

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

&GtkColorSelection; &GtkColorSelectionDialog; &GtkFileSelection; &GtkFontSelection; &GtkFontSelectionDialog; &GtkInputDialog;

### Layout Containers

&GtkAlignment; &GtkAspectFrame; &GtkHBox; &GtkHButtonBox; &GtkFixed; &GtkHPaned; &GtkLayout; &GtkNotebook; &GtkTable; &GtkVButtonBox; &GtkVBox; &GtkVPaned;

### Ornaments

&GtkFrame; &GtkHSeparator; &GtkVSeparator;

### Scrolling

&GtkHScrollbar; &GtkScrolledWindow; &GtkVScrollbar;

### Miscellaneous

&GtkAdjustment; &GtkArrow; &GtkCalendar; &GtkDrawingArea; &GtkEventBox; &GtkHandleBox; &GtkIMContext; &GtkIMMulticontext; &GtkTooltips; &GtkViewport;

### Abstract Base Classes

&GtkBin; &GtkBox; &GtkContainer; &GtkEditable; &GtkButtonBox; &GtkMisc; &GtkObject; &GtkPaned; &GtkRange; &GtkScale; &GtkScrollbar; &GtkSeparator; &GtkWidget;

### Cross-process Embedding

&GtkSocket;

### Deprecated

&GtkCList; &GtkCTree; &GtkCurve; &GtkData; &GtkGammaCurve; &GtkHRuler; &GtkItem; &GtkList; &GtkListItem; &GtkPacker; &GtkPixmap; &GtkPreview; &GtkProgress; &GtkRuler; &GtkTipsQuery; &GtkTree; &GtkTreeItem; &GtkVRuler;