GTK+
GTK+ atau GIMP Toolkit adalah sebuah widget toolkit antar-platform untuk menghasilkan GUI. GTK+ adalah salah satu toolkit terpopular untuk Sistem X Window, bersama-sama dengan Qt.
GTK+ mulanya dibuat untuk GNU Image Manipulation Program, sebuah penyunting grafik raster, pada 1997 oleh Spencer Kimball dan Peter Mattis, anggota eXperimental Computing Facility di University of California, Berkeley.
GTK+ ditulis di dalam bahasa pemrograman C, dan desainnya menggunakan sistem objek GObject. Platform GNOME menyediakan language binding untuk:
Yang lainnya telah menuliskan beberapa binding untuk banyak bahasa pemrograman lainnya (termasuk Ada, D), Fortran, Haskell, Lua, Ocaml, Pascal, Pike, Javascript Tcl, Euphoria, dan semua bahasa pemrograman.NET). GTK-server menyediakan antarmuka IPC bagi GTK+ yang memungkinkannya digunakan dari beraneka bahasa dengan kapabilitas I/O, termasuk shell script. Binding untuk banyak bahasa dapat dibangkitkan secara automatik melalui GObject-introspection.
Seperti Qt, tetapi tidak sama dengan beberapa toolkit widget lainnya, GTK+ tidak didasarkan pada Xt. Ini memungkinkan fleksibilitas dan memungkinkan GTK+ dapat digunakan pada semua platform yang tidak memiliki Sistem X Window. Tetapi, tanpa kebergantungan ini, GTK+ memiliki kelemahan akses terhadap basis data X resources, cara tradisional untuk mengkustomisasi aplikasi-aplikasi X11.
GTK+ mulanya menyertakan beberapa rutin utilitas yang tidak secara tegas berhubungan dengan grafik, misalnya menyediakan beberapa struktur data sebagai daftar-daftar yang saling terpaut dan beberapa pohon biner. Utilitas-utilitas umum sedemikian, bersama-sama dengan sistem objek disebut GObject, kini telah bermigrasi menjadi pustaka terpisah, GLib, yang dapat digunakan para programer untuk mengembangkan kode yang tidak memerlukan antarmuka grafis.
GTK+ mulanya ditargetkan pada Sistem X Window, dan masih menyisakan platform target utamanya. Platform lain yang ditargetkan adalah Microsoft Windows (Windows 2000 dan yang lebih baru, hampir didukung sepenuhnya), DirectFB, dan Quartz (Mac OS X v10.4 dan yang lebih baru, masih dikembangkan).
Pengguna-akhir dapat mengonfigurasi tampilan toolkit-nya, hingga kepada pemberian sejumlah "mesin" tampilan yang berbeda. Mesin-mesin yang ada yang berupaya mengemulasi tampilan toolkit atau platform popular lainnya seperti Windows 95, Motif, Qt dan NEXTSTEP.
GTK+ 2 adalah pengganti GTK+ 1. Fitur-fitur barunya antara lain render teks yang diperbaiki menggunakan Pango, mesin tema baru, aksesibilitas yang diperbaiki menggunakan Accessibility Toolkit, peralihan sepenuhnya ke Unicode menggunakan string-string UTF-8 dan API yang lebih fleksibel. Tetapi, GTK+ 2 kurang kompatibel dengan GTK+ 1, dan para programer harus menge-port aplikasi ke GTK+ 2.
"Projek Ridley" adalah upaya untuk mengonsolidasi beberapa pustaka yang saat ini masih di luar GTK+, misalnya libgnome, libgnomeui, libgnomeprint22, libgnomeprintui22, libglade, libgnomecanvas, libegg, libeel, dan gtkglext.
Para pengembanga juga memperhatikan arah-arah baru pustaka, termasuk penghentian ABI, penghilangan komponen-komponen API yang diperselisihkan, dan menambahkan sistem scene graph yang utuh, sama dengan pustaka grafis Clutter, mengintegrasikan GTK+ secara utuh dengan OpenGL.