GTK+

Wikipedia
Loikkaa: valikkoon, hakuun
GTK+
New Gtk+.svg
Kehittäjä The GTK+ Team
Viimeisin versio 3.0.10 (8. toukokuuta 2011)
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äriippumattomissa ohjelmissa kuten Pidginissä.

Sisällysluettelo

[muokkaa] Historia

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ä.[1] GIMPin edeltävät versiot olivat käyttäneet kaupallista Motif-kirjastoa, johon Mattis ei ollut tyytyväinen.[2] 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.

[muokkaa] GTK+ 2

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[3].

[muokkaa] GTK+ 3

Pitkän vakaan kauden edetessä alkoi esiintyä keskustelua seuraavasta suuremmasta uudistuksesta, osittaisesta yhteensopivuuden rikkomisesta ja vanhentuneiden rajapintojen poistamisesta.[4][5] Luonnos GTK+ 3:n kehityssuunnitelmasta julkaistiin huhtikuussa 2009[6] ja lopullinen versio 3.0 julkaistiin helmikuussa 2011[7]. 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 renderointi [7].

[muokkaa] Tuleva kehitys

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

[muokkaa] Arkkitehtuuri

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

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!".

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.

[muokkaa] Käyttö

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

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

  • Qt, kilpaileva käyttöliittymäkirjasto
  • Motif, vanhempi käyttöliittymäkirjasto

[muokkaa] Lähteet

  • GTK+ History Viitattu 30. huhtikuuta 2009. (englanniksi)
  • GTK+ - Overview The GTK+ Project. Viitattu 30. huhtikuuta 2009. (englanniksi)

[muokkaa] Viitteet

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

[muokkaa] Aiheesta muualla

[muokkaa] Käyttö ohjelmoinnissa

Henkilökohtaiset työkalut
Nimiavaruudet
Muuttujat
Toiminnot
Valikko
Osallistuminen
Tulosta tai vie
Työkalut
Muilla kielillä