GTK+
Wikipedia
| GTK+ | |
|---|---|
| Kehittäjä | The GTK+ Team |
| Viimeisin versio | 2.16.1 / 12.3.2009 |
| Alusta | Alustariippumaton |
| Ohjelmistotyyppi | käyttöliittymäkirjasto |
| Lisenssi | GNU LGPL |
| Kotisivu | www.gtk.org |
GTK+ eli GIMP Toolkit on useissa käyttöjärjestelmissä toimiva graafinen käyttöliittymäkirjasto. Se on Qt:n ohella suosituimpia X-ikkunointijärjestelmälle kehitettyjä käyttöliittymäkirjastoja. GTK+ on ohjelmoitu C-kielellä ja lisensoitu LGPL-lisenssillä. Nykyään se on GNU-projektin osa.
Alun perin GTK+ kehitettiin GIMP-kuvankäsittelyohjelmaa varten. Nykyään GTK+ on käytössä useissa merkittävissä Unix/Linux-järjestelmien työpöytäympäristöissä. Esimerkiksi GNOME ja Xfce rakentuvat sen päälle. Myös kämmenmikrojen Maemo-kehitysalusta käyttää GTK+:aa. Se on käytössä joissakin suosituissa käyttöjärjestelmäriippumattomattomissa ohjelmissa kuten Pidginissä.
Sisällysluettelo |
[muokkaa] Historia
GTK+:n kehittivät alun perin Spencer Kimball, Peter Mattis ja Josh MacDonald vuonna 1997 GIMP-kuvankäsittelyohjelman käyttöön Unix-käyttöjärjestelmien (mm. Linuxin) X Window Systemissä. Aluksi projektin nimenä oli pelkästään GTK, mutta se muutettiin GTK+:ksi oliopohjaisten laajennosten myötä.[1] Vähitellen GTK+:a alkoivat käyttää myös useat muut ohjelmistot, mukaan lukien samana vuonna alkunsa saanut GNOME-työpöytäympäristö.
Ensimmäinen vakaa versio, GTK+ 1.0 julkaistiin huhtikuussa 1998. Se sisälsi GIMPin tarvitsemat peruskomponentit. Helmikuussa 1999 julkaistu 1.2-versio käsitti useita laajennuksia ja oli kohdennetu pelkän GIMPin sijaan yleiseen käyttöön.
Seuraava versio, GTK+ 2.0 julkaistiin maaliskuussa 2002 yli kolmen vuoden kehitystyön jälkeen. Se sisälti useita merkittäviä muutoksia ja rikkoi yhteensopivuuden aiempien versioiden kanssa. Uudistuksia olivat muun muassa tekstin renderöinnin siirtäminen Pango-kirjastolle, GObject-oliojärjestelmän eriyttäminen GLib-kirjastoon ja tuki Windows-alustalle.
Tämän jälkeen projektissa siirryttiin nopeampaan julkaisuaikatauluun ja yhteensopivuuden säilyttäviin aiemman päälle rakentaviin päivityksiin. Uusia versioita on julkaistu vaihtelevin väliajoin noin kerran vuodessa. Uusin versio on 2.16 ja se julkaistiin 13. maaliskuuta 2009.[2]
[muokkaa] Tuleva kehitys
Käynnissä on projekti useiden pienten ja huonosti ylläpidettyjen kirjastojen yhdistämiseksi GTK+:aan.[3] Pitkän vakaan kauden edetessä on esiintynyt keskustelua seuraavasta suuremmasta uudistuksesta, osittaisesta yhteensopivuuden rikkomisesta ja vanhentuneiden rajapintojen poistamisesta.[4][5] Luonnos GTK+ 3:n kehityssuunnitelmasta julkaistiin huhtikuussa 2009.[6] Ohjelmointiteknisten parannusten ja refaktoroinnin lisäksi suunnitelmissa on esimerkiksi resoluutiosta riippumaton käyttöliittymäkomponenttien skaalaaminen, tuki läpinäkyvyydelle ja mahdollisesti uusittu teemajärjestelmä.[7]
[muokkaa] Arkkitehtuuri
GTK+ perustuu neljään projektin kehittämään kirjastoon:
- GLib on matalan tason kirjasto, joka sisältää yleisiä rajapintoja ja funktioita esimerkiksi tietorakenteden ja säikeiden hallintaan sekä tapahtumien käsittelyyn.
- Pango on tekstin renderöintiin tarkoitettu kirjasto, jossa on huomioitu erityisesti tuki eri kielille ja kirjoitusjärjestelmille.
- Cairo on kirjasto kaksiulotteisen grafiikan tuottamiseen.
- ATK on esteettömyyskäyttöliittymäkirjasto, jonka avulla ohjelmat voivat tukea esimerkisi suurennosta ja vaihtoehtoisia syöttölaitteita.
GTK+ on kirjoitettu C-kielellä käyttäen GLibin GObject-oliojärjestelmää. Sitä on mahdollista käyttää useimmilla suosituilla ohjelmointikielillä kuten esimerkiksi C++, Java, C sharp ja Python. GTK+ on pääasiassa kohdennettu X Window Systemille, mutta se toimii myös Windowsissa ja tuki Mac OS:n Quartzille on kehitteille[8].
Käyttöliittymän elementtien ulkoasua on GTK+:ssa mahdollista vaihdella erilaisilla teemamoottoreilla sekä niille tehdyillä teemoilla.
[muokkaa] Esimerkkiohjelma
Seuraava C-kielinen ohjelma luo GTK+ 2:ta käyttäen ikkunan, joka sisältää tekstin "Hello, world!".
#include <gtk/gtk.h> int main(int argc, char* argv[]) { /* Alustaa GTK:n. */ gtk_init(&argc, &argv); /* Luo uuden ikkunan ja asettaa sille otsikon. */ GtkWidget* window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(window), "Hello World"); /* Asettaa ikkunalle 60 pikseliä leveän marginaalin reunoille. */ gtk_container_set_border_width(GTK_CONTAINER(window), 60); /* Luo tekstin "Hello World" ja liittää sen ikkunaan. */ GtkWidget* label = gtk_label_new("Hello, world!"); gtk_container_add(GTK_CONTAINER(window), label); /* Yhdistää ikkunansulkemisviesti pääsilmukan lopettamiseen niin, että * ohjelma sammuu kun ikkuna suljetaan. */ g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL); /* Näyttää ikkunan ja sen sisällön. */ gtk_widget_show_all(window); /* Siirtyy suorittamaan pääsilmukkaa. */ gtk_main(); return 0; }
Esimerkkiohjelman voi kääntää GCC-kääntäjällä komennolla gcc -Wall helloworld.c -o helloworld $(pkg-config --cflags --libs gtk+-2.0) ja suorittaa tämän jälkeen ./helloworld -komennolla.
[muokkaa] Käyttö
GTK+:aa on käytetty pohjana monissa graafisissa ympäristöissä ja niiden ohjelmissa. Sitä käyttäviä työpöytäympäristöjä ovat muun muassa GNOME, Xfce ja ROX Desktop. Lisäksi se on käytössä esimerkiksi Nokian kämmentietokoneille suunnatussa Maemo-kehitysalustassa sekä OLPC-projektin Sugar-käyttöliittymässä.
Käytössä olevan työpöydän tai alustan ei kuitenkaan tarvitse perustua GTK+:aan, jotta sitä hyödyntäviä ohjelmia voisi käyttää; riittää, että järjestelmä sisältää tarvittavat kirjastotiedostot. Tästä syystä GTK+ onkin käytössä myös useissa monella käyttöjärjestelmällä toimivissa ohjelmissa. Yleisiä GTK+:aa käyttäviä ohjelmia ovat muun muassa Abiword, Mozilla Firefoxin Linux-versio, GIMP, Inkscape ja Pidgin.
[muokkaa] Katso myös
[muokkaa] Lähteet
- GTK+ History Viitattu 30. huhtikuuta 2009. (englanniksi)
- GTK+ - Overview The GTK+ Project. Viitattu 30. huhtikuuta 2009. (englanniksi)
[muokkaa] Viitteet
- ↑ What is the + in GTK+? [GTK 2.x] GTK+ FAQ. Viitattu 30. huhtikuuta 2009. (englanniksi)
- ↑ The GTK+ Project (Recent News) Viitattu 30. huhtikuuta 2009. (englanniksi)
- ↑ Project Ridley live.gnome.org. Viitattu 23.5.2009. (englanniksi)
- ↑ Gtk+ Hackfest 2008: Day one and a half Silicon Island. 11.3.2008. Viitattu 23.5.2009. (englanniksi)
- ↑ Steps to get to GTK+ 3.0 gtk-devel-list -postituslista. 3.6.2008. Viitattu 23.5.2009. (englanniksi)
- ↑ Gtk+ 3 Roadmap Draft gtk-devel-list -postituslista. 9.4.2009. Viitattu 23.5.2009. (englanniksi)
- ↑ Gtk+ 3 Roadmap Draft2 9.4.2009. Viitattu 23.5.2009. (englanniksi)
- ↑ Information about the native Mac OS X port of GTK+ live.gnome.org. Viitattu 30. huhtikuuta 2009. (englanniksi)
[muokkaa] Aiheesta muualla
- GTK+:n viralliset sivut (englanniksi)
- Kokoelma kehittäjien blogeja (englanniksi)
- GTK+-ohjelmia listaava sivu (englanniksi)
- GTK+ Linux.fi-wikissä
[muokkaa] Käyttö ohjelmoinnissa
- GTK+ 2.0 -manuaali (englanniksi)
- GTK+ 2.0 -tutoriaali (englanniksi)
- X-ohjelmoinnin opas, sisältää osuuden GTK+:n käytöstä

