GTK

A GTK, más néven The GIMP Toolkit a legelterjedtebb vezérlőelem-készletek egyike az X Window System alatt. Kezelőfelületek tervezésére szolgál, mint a Qt vagy a Motif.

A GTK-t eredetileg a GIMP képszerkesztő szoftverhez fejlesztette Spencer Kimball, Peter Mattis és John MacDonald – a berkeley-i Kaliforniai Egyetem eXperimental Computing Facility tagjai. Az LGPL szerződés értelmében a GTK szabad szoftver, és a GNU projekt része.

Programozási nyelvek 

A GTK a C programozási nyelvet használja a GObject rendszerrel, de más programnyelvekre is vannak portjai, például C++ra (gtkmm), Perlre, Pythonra (pyGTK), Rubyra és Javára. A GTK-server segítségével bármilyen IO képességekkel rendelkező nyelvvel használható stream alapú IPC kommunikáció segítségével. Vannak direkt a GTK-hoz írt nyelvek, mint a GOB2 és a Vala.

Sok vezérlőelem-készlettel ellentétben nem az Xt-n alapul, ezért több rendszeren használható, és nagyobb rugalmasságot tesz lehetővé. Emiatt viszont nem vezérelhető a megszokott X erőforrás fájlokkal, mint a többi (régebbi) X11-es vezérlőelem-készlet.

Kinézet 
A felhasználó a GTK-t különböző „meghajtókkal” (engine) szabhatja testre. Ezek a meghajtók képesek más környezetek kinézetét utánozni (például Microsoft Windows, Motif, Qt vagy NEXTSTEP. Egyes meghajtók, illetve a GTK 3 alapértelmezetten is témákkal tehető egyénivé. A témák egyszerűen telepíthetők a gnome-tweak-tool segítségével. A szöveges formátumleírást és képállományokat tartalmazó témák könnyen módosíthatóak, a ~/.themes könyvtárba helyezve akár személyre is szabhatóak.

GTK-t használó környezetek 

 A wxWidgets platformfüggetlen kezelőfelületek Unix rendszereken a GTK-t használják.
 Xfce desktop-környezet "könnyűsúlyú" (kis erőforrás igényű) asztali környezet
 GNOME desktop-környezet (saját kiegészítésekkel)
 ROX desktop-környezet
 GPE Palmtop Environment desktop-környezet hordoszható eszközökre
 Maemo, a Nokia internet-készülék felhasználói felülete
 Access Linux Platform, a Palm OS utódja
 OLPC laptopok kezelőfelüleze

Azonban ezek a környezetek nem szükségesek ahhoz, hogy GTK-os programokat futtassunk. Amennyiben a szükséges GTK programkönyvtárak telepítve vannak, a GTK-os programok használhatók KDE és Mac OSX alatt, sőt, ha a program támogatja, akár Microsoft Windows alatt is (erre példa a GIMP és a Pidgin üzenetküldő).

Nem grafikai funkciók 
A GTK-ban számos programozást megkönnyítő funkció volt megtalálható, mint struktúrák tárolása és kapcsolt listák létrehozása (GObject néven). Ezeket különválasztották, és ma a Glib programkönyvtárban találhatóak meg.

GTK 2 
A GTK 2 a GTK utódja. Fejlettebb szövegrendereléssel (a Pangóval), új, témákat kezelő meghajtóval, a fogyatékos embereket segítő funkciókkal, és teljes UTF-8 támogatással bővült. A GTK 2 azonban nem kompatibilis elődjével, tehát a GTK-t használó programok futtatásához az 1-es verziót is telepíteni kell.

A 2.8-as verziótól a GTK a Cairo könyvtárat használja a vektoros grafikák rendereléséhez és a legtöbb vezérlőelem megrajzolásához.

GTK 3 

A 2010. április elsején kiadott 2.20-as verzióval a 2.x sorozat fejlesztése véget ér, már csak hibajavító kiadások várhatóak. A fejlesztés a 2009-ben indult GTK 3-ra összpontosított, amelynek fejlesztési kódneve eredetileg Project Ridley volt.

A GTK 3 számos külső könyvtárat integrált a GTK-szal, már teljes mértékben a Cairóra alapozva. Az alapértelmezett témakezelés a webes CSS leírást használja.
Az új vezérlőelemek mellett jelentős újdonság az OpenGL és Wayland támogatás. A GTK 3-ra való átállás nem zökkenőmentes, például a LibreOffice irodai programcsomag GTK 3-as kísérleti változata 2015-ben vált „használhatóvá” a Red Hat Linux fejlesztéseinek köszönhetően.

GTK 4 
2012. december 16-án jelentette be a fejlesztői közösség a GTK 4.0 kiadását. Ebben többek között a beépített médialejátszás, skálázható listák, shaderek vagy a megújított drag-and-drop  kezelés jelent meg.

Fejlesztés a GTK-szal 
Kezelőfelületek megtervezése a programkódban igencsak hely- és időigényes feladat. Ezért ajánlatos a Glade felülettervező és programkönyvtár használata, amivel grafikusan (mint például a Visual Basicben) tervezhetjük meg a kezelőfelületet.

Lásd még 
 wxWidgets
 Motif
 Qt
 Enlightenment Foundation Libraries

Külső hivatkozások 

 GTK honlap
 GTK+ for Win32, a GTK windows portja Glade-del
 Gtk+ for Mac OS X, natív port a macOS-re
 Foundations of GTK Development , egy könyv a GTK-val való fejlesztéshez
 GTK 2.0 tutorial
 GTK 2.0 Tree View Tutorial
 GTK API
 GTK Drawing Model
 Keresztplatformos programozás GTK-val 
 GTK programozás C nyelven
 GTK Tutorial - magyar fordítás 
 Pere László - A GNU/Linux programozása grafikus felületen

Jegyzetek 

GNU projektek
Szabad szoftverek
Linux
API-k
GNOME