GTK

Wikipediasta
(Ohjattu sivulta GTK plus)
Siirry navigaatioon Siirry hakuun
Tämä artikkeli käsittelee käyttöliittymäkirjastoa. Lyhenteen muita merkityksiä on lueteltu täsmennyssivulla.
GTK
Kehittäjä The GTK Team
Kehityshistoria
Ensijulkaisu 14. elokuuta 1998
Vakaa versio 4.14.3 ()[1]
Tiedot
Ohjelmistotyyppi käyttöliittymäkirjasto
Alusta Alustariippumaton
Ohjelmointikielet C
Lisenssi LGPL
Aiheesta muualla
Verkkosivusto

GTK eli GIMP Toolkit (aikaisemmin GTK+[2]) 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:ta. Se on käytössä joissakin suosituissa käyttöjärjestelmäriippumattomissa ohjelmissa kuten Pidginissä.

Historia[muokkaa | muokkaa wikitekstiä]

GTK kehitettiin GIMPin tarpeisiin.

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ä.[3] GIMPin edeltävät versiot olivat käyttäneet kaupallista Motif-kirjastoa, johon Mattis ei ollut tyytyväinen.[4] 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 tarkoitettu pelkän GIMPin sijaan yleiseen käyttöön.

Vuonna 2019 projektin nimi muuttui takaisin muotoon GTK.[2]

GTK+ 2[muokkaa | muokkaa wikitekstiä]

GNOME-työpöytä tummalla GTK+-teemalla

Seuraava versio, GTK+ 2.0 julkaistiin maaliskuussa 2002 yli kolmen vuoden kehitystyön jälkeen. Se sisälsi 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. Viimeinen 2.x-sarjan versio oli tammikuussa 2011 julkaistu 2.24, jonka jälkeen kaikki uusi kehitys kohdennettiin 3.x-sarjaan[5].

GTK+ 3[muokkaa | muokkaa wikitekstiä]

Pitkän vakaan kauden edetessä alkoi esiintyä keskustelua seuraavasta suuremmasta uudistuksesta, osittaisesta yhteensopivuuden rikkomisesta ja vanhentuneiden rajapintojen poistamisesta.[6][7] Luonnos GTK+ 3:n kehityssuunnitelmasta julkaistiin huhtikuussa 2009[8] ja lopullinen versio 3.0 julkaistiin helmikuussa 2011[9]. Ohjelmointiteknisten parannusten ja refaktoroinnin lisäksi muutoksia 2.x-sarjaan verrattuna ovat muun muassa nykyaikaistettu syötelaitteiden tuki, uusi CSS:ään perustuva teemajärjestelmä ja yksinomaan Cairoon perustuva renderöinti[9].

GTK 4[muokkaa | muokkaa wikitekstiä]

GTK 4.0 on ensimmäinen pääjulkaisu, jossa on palattu aiempaan nimeen GTK (ei enää GTK+).[2] GTK 4.0 on julkaistu joulukuussa 2020.[10]

Tuleva kehitys[muokkaa | muokkaa wikitekstiä]

Jatkossa projektin suunnitelmissa on muun muassa asettelu- ja teemajärjestelmän laajentaminen sekä yhteensopivuuden kehittäminen Gnome 3:n kanssa.[11]

Arkkitehtuuri[muokkaa | muokkaa wikitekstiä]

GTK:n piirtämä liukusäädin.
Glade on ohjelma GTK-käyttöliittymien suunnitteluun ja rakentamiseen.

GTK perustuu neljään projektin kehittämään kirjastoon:

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 kehitteillä[12].

Käyttöliittymän elementtien ulkoasua on GTK:ssa mahdollista vaihdella erilaisilla teemamoottoreilla sekä niille tehdyillä teemoilla.

Esimerkkiohjelma[muokkaa | muokkaa wikitekstiä]

Seuraava C-kielinen ohjelma luo GTK+ 2:ta käyttäen ikkunan, joka sisältää tekstin ”Hello, world!”.

Esimerkkiohjelma Human-teemalla.
#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. Lopputulos näkyy oheisessa kuvassa.

Käyttö[muokkaa | muokkaa wikitekstiä]

GIMPissä GTK vastaa käyttöliittymäelementtien kuten valikoiden, vierityspalkkien sekä painikkeiden piirtämisestä ja hallinnasta.

GTK:ta 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:hon, 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:ta käyttäviä ohjelmia ovat muun muassa Abiword, Mozilla Firefoxin Linux-versio, GIMP, Inkscape ja Pidgin.

Katso myös[muokkaa | muokkaa wikitekstiä]

Lähteet[muokkaa | muokkaa wikitekstiä]

Viitteet[muokkaa | muokkaa wikitekstiä]

  1. 4.14.3, (viitattu ). Tieto on haettu Wikidatasta.
  2. a b c GTK+ renamed to GTK lwn.net. Viitattu 24.3.2019. (englanniksi) 
  3. What is the + in GTK+? [GTK 2.x] GTK+ FAQ. Viitattu 30. huhtikuuta 2009. (englanniksi)
  4. http://web.archive.org/web/19990417052141/http://www.linuxworld.com/linuxworld/lw-1999-01/lw-01-gimp.html
  5. Matthias Clasen: GTK+ 2.24.0 gtk-devel-list -sähköpostilista. 30.1.2011. Viitattu 22.2.2011. (englanniksi)
  6. Gtk+ Hackfest 2008: Day one and a half Silicon Island. 11.3.2008. Viitattu 23.5.2009. (englanniksi)
  7. Steps to get to GTK+ 3.0 gtk-devel-list -postituslista. 3.6.2008. Viitattu 23.5.2009. (englanniksi)
  8. Gtk+ 3 Roadmap Draft gtk-devel-list -postituslista. 9.4.2009. Viitattu 23.5.2009. (englanniksi)
  9. a b GTK+ 3.0.0 released gnome-announce-list -postituslista. 10.2.2011. Viitattu 11.2.2011. (englanniksi)
  10. GTK 4.0 blog.gtk.org. 16.12.2020. Viitattu 1.1.2021. (englanniksi) 
  11. GTK+ 3 is here blogs.fedoraproject.org. 10.2.2011. Viitattu 11.2.2011. (englanniksi)[vanhentunut linkki]
  12. Information about the native Mac OS X port of GTK+ live.gnome.org. Viitattu 30. huhtikuuta 2009. (englanniksi)

Aiheesta muualla[muokkaa | muokkaa wikitekstiä]

Commons
Commons
Wikimedia Commonsissa on kuvia tai muita tiedostoja aiheesta GTK.

Käyttö ohjelmoinnissa[muokkaa | muokkaa wikitekstiä]