GTK

De Viquipèdia
Salta a la navegació Salta a la cerca
Crystal Clear app winprops bw.pngGTK
GTK logo.svg Modifica el valor a Wikidata
Gtk3-demo 3.11.8.png Modifica el valor a Wikidata
Tipusmarc d'aplicacions Modifica el valor a Wikidata
Versió inicial14 abril 1998 Modifica el valor a Wikidata
Versió estable
3.24.21 (28 juny 2020)
3.99.2 (30 setembre 2020) Modifica el valor a Wikidata
LlicènciaGNU LGPL v2.1
GNU LGPL Modifica el valor a Wikidata
Disponible en
EpònimGIMP Modifica el valor a Wikidata
Característiques tècniques
Sistema operatiuGNU/Linux, macOS, Unix-like, Microsoft Windows i Linux Modifica el valor a Wikidata
Plataformamultiplataforma Modifica el valor a Wikidata
Escrit enC Modifica el valor a Wikidata
Equip
Desenvolupador(s)Fundació Gnome i Projecte GNU Modifica el valor a Wikidata
Més informació
Lloc webWeb oficial Modifica el valor a Wikidata
Stack ExchangeEtiqueta Modifica el valor a Wikidata
SourceForgegtk-mingw Modifica el valor a Wikidata
Free Software DirectoryGtk+ Modifica el valor a Wikidata

GTK (originalment GTK+, de l'anglès, Gimp ToolKit) és un conjunt de biblioteques per a crear interfícies gràfiques. En un primer moment s'inspirà en Motif[1] i es desenvolupà per a GIMP. Quan va rebre una major integració va ser emprat per gran quantitat de programaris.[2] És un dels paquets d'eines més populars per a les interfícies d'usuari X juntament amb QT.[3] GTK és adequat per a projectes que van des de petites eines fins a paquets de programari complets.[4]

Característiques[modifica]

  • GTK inicialment fou escrit per a Linux i ha esdevingut multiplataforma rebent suport per a Microsoft Windows, Solaris,[5] Mac OS X entre d'altres.[6]
  • GTK està sota la llicència lliure Lesser General Public License per la qual cosa tothom té la possibilitat d'utilitzar-lo per als seus projectes o adaptar-lo.
  • GTK+ ha estat escrit en llenguatge C però, empra el concepte de classes i realitza demandes de funcions.[7] Suporta una àmplia gamma de llenguatges per a interfícies de programació, no només C/C++; emprant GTK+ amb Perl o Python maximitza el flux de treball en el desenvolupament d'aplicacions.[8]

Història[modifica]

GTK va ser dissenyat i utilitzat originalment en l'editor gràfic digital de GNU (GIMP) en substitució de Motif. Motif era una biblioteca comercial, de manera que guanyar popularitat entre els usuaris de GIMP no era fàcil.[9] Peter Mattis va començar a escriure el seu propi conjunt d'eines per a la interfície de programari anomenant-lo Gimp ToolKit; Motif fou reemplaçant amb èxit des del llançament de GIMP 0.60 al voltant de l'any 1996.[10] Posteriorment GTK va ser reescrit per ser orientat a objectes i va ser rebatejat com a GTK+.[11] Aquesta nomenclatura esdevingué pública en el llançament de GIMP 0.99 de febrer de 1997. Els desenvolupadors d'aquell llançament de GTK+ foren Peter Mattis, Spencer Kimball i Josh MacDonald. L'any 1997, els tres treballaven a eXperimental Computing Facility (XCF) de la Universitat de Califòrnia a Berkeley. Sota la llicència LGPL, GTK+ va ser adoptat per al manteniment de la Fundació GNOME, que l'utilitza en l'entorn d'escriptori GNOME i també per XFCE.[12][13] Des d'aleshores membres de la Fundació GNOME n'han fet el manteniment.

GTK+ Pot utilitzar diferents llenguatges de programació com: C, C++, Python, Perl, Java, Ada.[14]

Actualment hi ha tres versions estables de GTK+: Són mútuament incompatibles. No obstant això, les biblioteques de les versions correlatives es poden instal·lar en paral·lel.[15]

GTK+ 1[modifica]

La primera versió estable de GTK+ 1.0 que contenia tot allò necessari per a donar suport al GIMP és de l'abril de 1998.[16] Inicialment GTK constava de 3 biblioteques que funcionaven com capes, cadascuna depenia de les que tenia a sota. Aquestes biblioteques també són anomenades widgets i són reutilitzables per separat.[17]

  • GLib (Gimp Libray): Es tracta d'una biblioteca d'estructures de dades de baix nivell i de subrutines que proporciona suport per a assignar i alliberar memòria.[6] Forma el nucli del conjunt i ha estat d'utilitat a programari C divers, fins i tot programari que no és per a interfícies gràfiques.[18]
  • GDK (Gimp Drawing Kit): Primordialment actua com a contenidor prim per a accedir a les funcions de les finestres X11 . Així els usuaris del programari no han de veure les biblioteques subjacents per realitzar tasques ordinàries.[19] Interactuen amb botons, finestres, mapes de bits de colors etc.[15] GTK+ des de la versió 1.2, deixa de ser exclusiu per a Linux i passa a ser multiplataforma amb programaris de fons per a X11. En MacOS X amb Quartz i Cocoa.[20][21] En Windows amb GDI; encara que GNOME[22] n'ha donat un suport discontinuat, MSY2 i gvsbuild en són alternatives.[23]
  • GTK (Gimp Toolkit): Aquesta biblioteca és l'escorça de GTK+ al voltant de les funcions de baix nivell. Allí es defineixen tots els elements de la interfície gràfica d'usuari com el tema de l'escriptori, d'altra banda dóna suport a l'acció d'arrossegar i deixar anar.[14] Aquesta biblioteca es recolza en gdk i glib per a fer el seu treball.[18]

GTK+ 2[modifica]

Un renovat equip format per Owen Taylor, Matthias Clasen, Federico Mena Quintero, Soeren Sandmann, Padraig O'Briain, Manish Singh, Kristian Rietveld i Tor Lillqvist es va fer càrrec de la segona versió del projecte.[24] Per afegir una sèrie d'eines més complexes varen trencar la compatibilitat amb la primera versió, reescrivint les llibreries existents.[25][12] La versió GTK+ 2.0 incorporava dues llibreries noves Pango i ATK fou llançada el març de 2002.[9]

  • GLib (Gimp Libray): Renovada biblioteca de subrutines de baix nivell que proveeix de definicions i funcions al programari de GTK+. Per la compatibilitat multiplataforma es converteix en una de les biblioteques més valorades, sovint aprofitada de manera independent al paquet GTK+ 2.
  • GObject (GLib Object System): GTK+ 2.0 implementa en aquesta llibreria el sistema orientat a objectes (GType) del que depèn tot el sistema GTK+.[26] Traient funcionalitat a GLib alhora que hi té un vincle de dependència. Una de les funcions que el caracteritza és generar una capa que funciona com a vincle a altres llenguatges, el que s'anomena language binding. Gràcies a aquesta capa Python, Perl entre d'altres tenen accés a la resta de biblioteques escrites en C.[27][28]
  • GDK (GIMP Drawing Kit): Renovada biblioteca de gràfics i temes de l'ordinador dissenyada originalment per a Linux amb X 11 . GTK 2.24.10 fou la darrera versió de la serie amb suport de GNOME per a Windows.[22]
  • Pango : GTK+ 2.0 implementa una biblioteca per a renderitzar text, empra la codificació UTF-8 , proporciona suport per a la internacionalització.[29][30] Pango es pot utilitzar amb quatre rerefons (backends) de fonts tipogràfiques diferents:[31]
  • ATK (Accessibility Toolkit): GTK+ 2.0 implementa una biblioteca per a millorar l'accessibilitat a les persones discapacitades.[29]
  • GdkPixbuf : GTK+ 2.0 implementa una nova biblioteca que proporciona funcions de manipulació i emmagatzematge d'imatges del costat-client.[12] Emprat per generar widgets GtkImage. Abans de ser una biblioteca independent havia format part de GTK+.[29][32][33]
  • X-Server: Servidor gràfic que proporciona una interfície compatible amb el sistema X11 per a visualitzar al dispositiu.
  • Cairo : GTK+ 2.8 implementa una biblioteca biblioteca creada per a gràfics vectorials de manera consistent en totes les plataformes i sistemes. També permet al gestor de finestres aprofitar l'acceleració del maquinari quan és possible.[34]
  • GTK+: La pròpia biblioteca GTK+ conté widgets, és a dir, components de la Interfície gràfica com GtkButton o GtkTextView.

GTK 2.24 és l'última versió de la sèrie 2.x.

GTK+ 3[modifica]

La versió 3.0 va ser llançada el 10 de febrer de 2011.[35]​ Moltes funcions que es van classificar com a obsoletes s'han eliminat i s'han millorat les interfícies existents.

GTK 4[modifica]

Des de la versió 4 GTK deixa de portar el caràcter "+" al final del nom.[36]

Language bindings[modifica]

GTK està escrit utilitzant el llenguatge de programació C, però també està disponible per a diversos llenguatges de programació a través de language bindings, que permeten escriure programaris GTK des d'aquests llenguatges. Les vinculacions lingüístiques són relativament fàcils de crear perquè GTK va ser dissenyat pensant en aquesta possibilitat.[37]

Ús de GTK[modifica]

GTK s'ha emprat per a entorns d'escriptori com XFCE, gestors de finestres com xfwm4 i en més de 350 aplicacions.[16][38]

Programari Funció Comentaris
Abiword Processador de text Libstylus és una biblioteca d'estils d'escriptura dissenyada per a donar suport a aplicacions del tipus GTK +.[39][40]
Brasero Enregistrador de discos òptics de GNOME La versió de Brasero publicada el 22 de novembre de 2011, mantenía un paquet opcional que permetía a l'usuari accedir a més informació.[41]
Drakconf Centre de control de Mandriva Adwaita gtk3 i Adwaita gtk3 desenvolupats per GNOME són emprats per Open Mandriva i altres distribucions de Linux.[42]
Pidgin, abans anomenat Gaim Client multiplataforma i multiprotocol de missatgeria instantània Empra un paquet GTK per controlar el tema del programari.[43]
Inkscape Editor de gràfics vectorials Inkscape 1.0 emprava GTK 3[44]
GIMP Editor gràfic digital Els desenvolupadors de GIMP foren també els responsables de l'aparició de GTK. Es preveu que GIMP 3.0 empri GTK 3 el 2021.[45]
Tux Typing Mecanografia per a nens GTK facilita la navegació entre lliçons.[46]
The GNOME Project La comunitat que hi ha a GNOME És el major contribuidor del projecte. Emprat a GNOME Panel, GNOME Core Applications (més de 30 programaris), GNOME Games, GNOME Shell, Cinnamon entre altres.

Referències[modifica]

  1. «Part I. GTK+ Overview: GTK+ 3 Reference Manual». [Consulta: 24 novembre 2020].
  2. «GIMP cumple 25 años, ¡felicidades, Wilber!» (en castellà), 23-11-2020. [Consulta: 25 novembre 2020].
  3. Vergain, Patrick. «Development tools» p. 99, 22-06-2012. [Consulta: 26 novembre 2020].
  4. «Gtk 3.0 (3.24.23) - Gtk 3.0». [Consulta: 30 novembre 2020].
  5. «Solaris GTK themes» (en anglès). [Consulta: 30 novembre 2020].
  6. 6,0 6,1 «CS 23 Software Design and Implementation». [Consulta: 30 novembre 2020].
  7. Güngör, Özcan «GUI Programming with GTK». LinuxFocus.
  8. «What is GTK+? [GTK 2.x]». [Consulta: 25 novembre 2020].
  9. 9,0 9,1 Grönholm, Kaj «GTK+ toolkit on mobile Linux devices». LAPPEENRANTA UNIVERSITY OF TECHNOLOGY, 18-12-2005, pàg. 22.
  10. «Where did Spencer Kimball and Peter Mattis go?», 17-04-1999. [Consulta: 25 novembre 2020].
  11. «What is the + in GTK+? [GTK 2.x]». [Consulta: 25 novembre 2020].
  12. 12,0 12,1 12,2 Krause, Andrew. Foundations of GTK+ Development. Apress. ISBN 978-1-59059-793-4. 
  13. «GIMP - A Brief (and Ancient) History of GIMP» (en anglès). [Consulta: 25 novembre 2020].
  14. 14,0 14,1 «Current GTK+ development». [Consulta: 25 novembre 2020].
  15. 15,0 15,1 Weiss, Stewart «TheFoundation of GTK+». GTK+.
  16. 16,0 16,1 «GTK+ FAQ: General Information». [Consulta: 24 novembre 2020].
  17. Callejas Herrera, Álvaro Martín «APLICACIÓN DE ESCRITORIO PARA MONITOREO, RASTREO Y CONTROL DEL PRIMER SATÉLITE EDUCATIVO BOLIVIANO CHITISAT». Universidad Mayor de San Andrés, pàg. 35 - 39.
  18. 18,0 18,1 «An Introduction to the GIMP Tool Kit | Linux Journal». [Consulta: 25 novembre 2020].
  19. «GTK+ 1.2 Tutorial» (en anglès). [Consulta: 24 novembre 2020].
  20. «Gtk+-Cocoa -- Gtk for Mac OS X». [Consulta: 26 novembre 2020].
  21. «Projects/GTK/OSX - GNOME Wiki!». [Consulta: 26 novembre 2020].
  22. 22,0 22,1 «GTK explained». [Consulta: 26 novembre 2020].
  23. Team, The GTK. «The GTK Project - A free and open-source cross-platform widget toolkit» (en anglès). [Consulta: 26 novembre 2020].
  24. «Authors [GTK 2.x]». [Consulta: 25 novembre 2020].
  25. «GTK+ Widgets». [Consulta: 25 novembre 2020].
  26. «GTK+ 2 Reference Manual: Changes from 1.2 to 2.0». [Consulta: 27 novembre 2020].
  27. Team, The GTK. «The GTK Project - A free and open-source cross-platform widget toolkit» (en anglès). [Consulta: 27 novembre 2020].
  28. «Overview — GObject Introspection». [Consulta: 27 novembre 2020].
  29. 29,0 29,1 29,2 «GTK+ user interface libraries, version 2.0». [Consulta: 27 novembre 2020].
  30. «Pango». [Consulta: 27 novembre 2020].
  31. «Files · PANGO_1_3_0 · GNOME / pango» (en anglès). [Consulta: 1r desembre 2020].
  32. «GTK+ 2.22.0 released». [Consulta: 27 novembre 2020].
  33. «Decoding images with GDK-PixBuf — cairocffi 1.2.0 documentation». [Consulta: 27 novembre 2020].
  34. «GTK+ 2.8.0 released». [Consulta: 27 novembre 2020].
  35. «GTK+ 3.0.0 released». [Consulta: 26 novembre 2020].
  36. CodeNerd, Author. «GTK Programming Introduction» (en anglès), 07-10-2019. [Consulta: 30 novembre 2020].
  37. Team, The GTK. «The GTK Project - A free and open-source cross-platform widget toolkit» (en anglès). [Consulta: 30 novembre 2020].
  38. Carles, Joan. «Qué son las librerías GTK y que versión usamos» (en castellà), 29-05-2016. [Consulta: 26 novembre 2020].
  39. «AbiSource Projects». [Consulta: 25 novembre 2020].
  40. «AbiWord: Procesador de Textos Open Source» (en castellà). [Consulta: 25 novembre 2020].
  41. «GTK-Doc-1.33.1». [Consulta: 25 novembre 2020].
  42. «Adwaita-gtk3-theme Download (RPM)». [Consulta: 25 novembre 2020].
  43. «Theming Pidgin» (en anglès), 01-06-2020. [Consulta: 25 novembre 2020].
  44. «Inkscape 1.0 Theming Guide - Beyond the Basics - Inkscape Forum». [Consulta: 25 novembre 2020].
  45. «GIMP 2.99.2 Released with GTK3 Support» (en anglès), 08-11-2020. [Consulta: 25 novembre 2020].
  46. «gnu.org» (en anglès). [Consulta: 25 novembre 2020].

Vegeu també[modifica]

Enllaços externs[modifica]