Generated by GPT-5-mini| GTK+ 2 | |
|---|---|
![]() Andreas Nilsson · CC BY-SA 3.0 · source | |
| Name | GTK+ 2 |
| Developer | Miguel de Icaza, Red Hat, GNOME Project |
| Released | 2002 |
| Latest release version | 2.24 |
| Programming language | C (programming language) |
| Operating system | Linux, Microsoft Windows, macOS |
| License | GNU Lesser General Public License |
GTK+ 2 is a version of the GIMP Toolkit family of graphical user interface libraries introduced in the early 2000s as part of the GNOME Project's effort to standardize desktop application development for Linux and related systems. It was developed by contributors including Miguel de Icaza and organizations such as Red Hat to provide a widget toolkit used by desktop environments, applications, and toolchains. GTK+ 2 formed the foundation for major applications and environments in the era of GNOME 2, influencing projects like GIMP, Inkscape, Evolution (software), and the Xfce desktop.
GTK+ 2 emerged from the evolution of the original GIMP widget library during a period marked by activity from developers associated with GIMP, Red Hat, and the GNOME Project. Major milestones included adoption by the GNOME 2 desktop, integration with toolkits used by applications such as GIMP, Rhythmbox, Epiphany (web browser), and incorporation into distributions like Debian, Ubuntu, Fedora, and openSUSE. The release cycle intersected with other projects such as Pango, ATK (software), and GTK+ 3's later emergence; GTK+ 2's timeline overlaps events like the maturation of X.Org Server and portability efforts toward Microsoft Windows and macOS. Community governance involved entities like the GNOME Foundation, contributors from Novell, and volunteers participating through mailing lists and repositories hosted by organizations such as GNOME Project and Freedesktop.org.
GTK+ 2's architecture centers on an object system implemented via GObject derived from the GLib library. The design couples a widget set with rendering and event handling layers that interact with display servers like X.Org Server and toolkits such as Cairo (graphics) for drawing. Accessibility integration relied on ATK (software) and input method support through frameworks such as ibus, while internationalization used Pango for text layout and gettext for localization. The modular structure allowed bindings to languages such as Python (programming language), C++, Perl, and Ruby (programming language), enabling projects like GNOME Games and Gnumeric to adopt GTK+ 2 through language-specific wrappers.
GTK+ 2 provided a comprehensive widget set including containers, controls, dialogs, menus, and text widgets used by applications like GIMP, AbiWord, and Evolution (software). The toolkit included theming and style engines compatible with engines developed by contributors from Red Hat and themes used in environments like GNOME 2 and Xfce. Key components comprised GDK, the low-level drawing and event abstraction; GObject for object-oriented features; Pango for international text; and integration points with ATK (software) for assistive technologies and with display servers like X.Org Server. Developers benefited from features such as signal systems, theming engines, and internationalization employed by projects including OpenOffice.org, Pidgin (software), and Evolution (software).
Programming with GTK+ 2 usually involved the C (programming language) API built atop GLib and GObject, with common patterns used in applications such as GIMP, Gedit, and Inkscape. Language bindings—such as PyGTK for Python (programming language), gtkmm for C++, and bindings for Perl and Ruby (programming language)—were essential to projects like Anjuta and Gnome System Monitor. Tooling and build systems used in GTK+ 2 development included Autotools, pkg-config, and later integration strategies with systems like CMake for some downstream ports. Developers interacted with events, widgets, and themes while integrating with libraries such as Cairo (graphics) and services like D-Bus for inter-process communication in applications like Evolution (software) and GNOME Keyring.
GTK+ 2 targeted X.Org Server on Linux and ports for Microsoft Windows and macOS provided varying degrees of native integration adopted by projects like GIMP and Inkscape. Distributions such as Debian, Ubuntu, Fedora, and openSUSE packaged GTK+ 2 for systemwide use in desktops like GNOME 2 and Xfce. Compatibility layers and transitional efforts involved GTK+ 3, migration tooling used by projects such as Evolution (software) and Gnome Shell's predecessors, and cross-platform concerns that attracted contributors from companies such as Red Hat and communities around Freedesktop.org.
Maintenance for GTK+ 2 was driven by the GNOME Project community, corporate contributors like Red Hat and volunteer maintainers, with security and patch releases coordinated through distribution maintainers at Debian and Ubuntu. As GTK+ 3 and later alternatives advanced, many upstream projects migrated, while legacy applications and enterprise deployments continued using GTK+ 2 with backports and long-term support in distributions such as Red Hat Enterprise Linux and Debian Stable. The lifecycle intersected with events and projects like GNOME 3's release, forks and adaptations in environments like MATE (software), and archival policies maintained by organizations such as the GNOME Foundation.
Category:Graphical user interface libraries