GTK - GTK

GTK
GTK logo.svg
Gtk4-widget-factory demos.png
GTK versjon 4 ( gtk4-widget-fabrikk , en samling eksempler som demonstrerer mange av GUI-widgetene )
Originale forfattere Spencer Kimball , Peter Mattis
Utvikler (er) GNOME -prosjektet , eXperimental Computing Facility (XCF)
Første utgivelse 14. april 1998 ; 23 år siden ( 1998-04-14 )
Stabil utgivelse
4.4.0 / 23. august 2021 ; 57 dager siden ( 2021-08-23 )
Forhåndsvisningslansering
4.3.1 / 9. juni 2021 ; 4 måneder siden ( 2021-06-09 )
Oppbevaringssted
Skrevet inn C , CSS
Operativsystem Linux , Unix-lignende , macOS , Windows
Type Widgetverktøysett
Tillatelse LGPLv2.1+
Nettsted gtk .org

GTK (tidligere GIMP ToolKit deretter GTK+ ) er en gratis og åpen kildekode -plattform- widgetverktøysett for å lage grafiske brukergrensesnitt (GUI). Den er lisensiert under vilkårene i GNU Lesser General Public License , slik at både gratis og proprietær programvare kan bruke den. Det er en av de mest populære verktøysettene for Wayland og X11 vindussystemer .

GTK -teamet gir ut nye versjoner med jevne mellomrom. GTK 4 og GTK 3 opprettholdes, mens GTK 2 er livets slutt.

Programvarearkitektur

Forenklet programvarearkitektur av GTK . Pango , GDK , ATK , GIO , Kairo og GLib
GDK inneholder back-ender til X11 , Wayland , Broadway ( HTTP ), Quartz og GDI og er avhengig av Kairo for gjengivelsen. Den nye SceneGraph er under arbeid.

GTK -biblioteket inneholder et sett med grafiske kontrollelementer ( widgets ); versjon 3.22.16 inneholder 186 aktive og 36 utdaterte widgets. GTK er en objektorientert widgetverktøysett skrevet på programmeringsspråket C ; den bruker GObject , det vil si GLib -objektsystemet , for objektretningen. Mens GTK hovedsakelig er for vindusystemer basert på X11 og Wayland , fungerer det på andre plattformer, inkludert Microsoft Windows (grensesnitt til Windows API ) og macOS (grensesnitt med Quartz ). Det er også en HTML5- back-end som heter Broadway .

GTK kan konfigureres til å endre utseendet på widgetene som er tegnet; dette gjøres ved hjelp av forskjellige displaymotorer. Det finnes flere displaymotorer som prøver å etterligne utseendet til de opprinnelige widgetene på plattformen som er i bruk.

Fra og med versjon 2.8, utgitt i 2005, GTK begynte overgangen til å bruke Kairo for å gjengi de fleste av sine grafiske kontrollelementer widgets . Siden GTK versjon 3.0 er all gjengivelse utført ved hjelp av Kairo.

Januar 2018 på DevConf.cz ga Matthias Clasen en oversikt over den nåværende tilstanden for GTK 4-utvikling, inkludert en forklaring på høyt nivå om hvordan gjengivelse og input fungerte i GTK 3, hvilke endringer som gjøres i GTK 4 (> 3,90 ), og hvorfor. Februar 2019 ble det kunngjort at GTK 4 slipper “+” fra prosjektets navn.

GTK Drawing Kit (GDK)

GDK fungerer som en omslag rundt funksjonene på lavt nivå som tilbys av de underliggende vindus- og grafikksystemene.

GDK finnes i /gdkkatalogen.

GTK Scene Graph Kit (GSK)

GSK er gjengivelses- og scenediagrammet for GTK. GSK ligger mellom de grafiske kontrollelementene (widgets) og gjengivelsen. GSK ble endelig slått sammen til GTK versjon 3.90 utgitt mars 2017.

GSK finnes i /gskkatalogen.

GtkInspector

GtkInspector ble introdusert med versjon 3.14. GtkInspector kan bare påberopes etter installering av utviklingspakken libgtk-3-dev / gtk+-devel .

GUI designere

Det er flere GUI -designere for GTK. Følgende prosjekter er aktive fra juli 2011:

GtkBuilder

GtkBuilder lar brukergrensesnitt utformes uten å skrive kode. Grensesnittet er beskrevet i en XML -fil ( Extensible Markup Language ), som deretter lastes inn under kjøretid og objektene opprettes automatisk. Glade Interface Designer lar deg opprette brukergrensesnittet på en måte du ser er det du får ( WYSIWYG ). Beskrivelsen av brukergrensesnittet er uavhengig av programmeringsspråket som brukes.

Språkbindinger

Språkbindinger er tilgjengelige for bruk av GTK fra andre språk enn C, inkludert C ++ , Genie , JavaScript , Perl , Python , Vala og andre .

GtkSharp, for ikke å forveksle med Gtk#, støtter GTK 3.

Gtk#

Gtk#
Gtk Sharp Logo.png
Utvikler (er) Xamarin
Første utgivelse 12. mars 2004 ; 17 år siden ( 2004-03-12 )
Stabil utgivelse
2.12.41 / 22. september 2016 ; 5 år siden ( 2016-09-22 )
Forhåndsvisningslansering
2.99.3 (for GTK3) / 6. juni 2014 ; 7 år siden ( 2014-06-06 )
Oppbevaringssted
Skrevet inn C# , XML , Perl , C
Operativsystem Windows , macOS , Linux
Type Widgetverktøysett
Tillatelse GNU Lesser General Public License
Nettsted mono-prosjekt .com / GtkSharp

Gtk# er et sett med .NET Framework -bindinger for verktøykassen for grafisk brukergrensesnitt (GUI) og diverse GNOME -biblioteker . Biblioteket gjør det enklere å bygge grafiske GNOME -applikasjoner ved hjelp av Mono eller en annen kompatibel Common Language Runtime (CLR). Gtk# er et hendelsesdrevet system som alle andre moderne vindusbibliotek der hver widget tillater tilknyttede behandlingsmetoder, som blir ringt opp når visse hendelser oppstår.

Programmer bygget med Gtk# vil kjøre på mange plattformer, inkludert Linux , Windows og macOS . Mono -pakkene for Windows inkluderer GTK, Gtk# og et innfødt tema for å få applikasjoner til å ligne native Windows -applikasjoner. Fra og med Mono 1.9 krever ikke lenger kjøring av Gtk# -programmer på macOS en X11 -server.

Glade Interface Designer kan brukes med Glade# -bindinger for enkelt å designe GUI -applikasjoner. En GUI -designer ved navn Stetic er integrert med MonoDevelop integrerte utviklingsmiljø (IDE).

I tillegg til å støtte standard GTK/GNOME-stabel med utviklingsverktøy, gir gtk-dotnet.dll- forsamlingen en bro for å forbruke funksjonalitet tilgjengelig på .NET-bunken. På dette tidspunktet inkluderer dette funksjonaliteten for å bruke System.Drawing for å tegne på en widget.

Fra september 2020 forblir Gtk# -støtte for Gtk3 i forhåndsvisningsfasen, og prosjekter som GtkSharp , som er forankret , er grunnlagt for å gi full Gtk3 -støtte for C# og andre CLI -språk. Mangelen på en utgitt versjon av Gtk# med støtte for Gtk3 ble nevnt som en grunn til å fjerne Banshee mediespiller i Ubuntu 12.04.

Utvikling

GTK er hovedsakelig utviklet av The GNOME Project , som også utvikler GNOME Development Platform og GNOME Desktop Environment.

GTK -utviklingen styres løst. Diskusjon foregår hovedsakelig på flere offentlige postlister. GNOME -utviklere og brukere samles på et årlig GUADEC -møte for GNOME Users and Developers European Conference og utviklere for å diskutere GNOMEs nåværende tilstand og fremtidige retning. GNOME inkorporerer standarder og programmer fra freedesktop.org for bedre å samarbeide med andre stasjonære datamaskiner.

GTK er i hovedsak skrevet i C . Mange språkbindinger er tilgjengelige .

September 2016 ble et innlegg på GTK -utviklingsbloggen blant annet angitt den fremtidige nummereringsplanen for GTK. GTK versjon 3.22 fra høsten 2016 skal være den siste 3.x -utgivelsen. Versjon 3.24 ble introdusert høsten 2018 med forsinkelsen på GTK 4. Etter det vil alle ressurser flytte til GTK 4 -utviklingsserien med versjonsnavnene 3.90, 3.92, etc. Selv når 4.x -serien går i utvikling, bruker bemerkelsesverdige applikasjoner fortsatt GTK 2.x og har ikke blitt portet til 3.22. Når det gjelder fremtiden for eldre programvare som bruker GTK , var det ikke noe kollektivt prosjekt for å overføre GTK 2.x programvare til 3.22. Versjon 3.24 er i langsiktig støtte og den faktiske og fremtidige basen av programmer som gimp 3.0 og Inkscape 1.0. Så for utviklere er valget stabilt GTK 3.24 med bugfix eller GTK 4 med endringer og nye funksjoner i fremtidig utvikling.

Bygg automatisering

GTK (og GNOME, glatt, etc.) tidligere benyttet GNU Build System (kalt Autotools) som byggesystem system av valget.

Siden 14. august 2017 har hovedgrenen til GTK blitt bygd med Meson , og Autofunksjoner -systemfiler har blitt slettet.

Kritikk

Den vanligste kritikken av GTK er mangelen på bakoverkompatibilitet i store oppdateringer, særlig i applikasjonsprogrammeringsgrensesnittet (API) og tema.

Kompatibilitetsbruddene mellom mindre utgivelser under utviklingssyklusen GTK 3.x ble forklart av Benjamin Otte på grunn av et sterkt press for å innovere, for eksempel å tilby funksjonene moderne brukere forventer og støtte den stadig mer innflytelsesrike Wayland -skjermserverprotokollen . Med lanseringen av GTK 4 vil presset fra behovet for innovasjon ha blitt frigjort og balansen mellom stabilitet og innovasjon vil vippe mot stabilitet. På samme måte er nylige endringer i tema spesielt beregnet på å forbedre og stabilisere den delen av API, noe som betyr at noen investeringer nå bør belønnes senere.

  • Dirk Hohndel, kodeutvikler av Subsurface og medlem av Intels Open-Source Technology Center, kritiserte GTK-utviklerne for å være slitende og ignorere de fleste samfunnsforespørsler.
  • Hong Jen Yee, utvikler av LXDE (hvor GTK -versjonen ble droppet og all innsats fokusert på Qt -porten ), uttrykte forakt for versjon 3 av GTK -verktøysettets radikale API -endringer og økt minnebruk, og overførte PCMan File Manager (PCManFM) til Qt . PCManFM utvikles samtidig med en GTK og med en Qt -backend.
  • Den Audacious musikkspilleren flyttet til Qt i versjon 3.6. Årsakene til utviklerne for dette inkluderer en overgang til vindusdekorasjoner på klientsiden, som de hevder får programmet til å se " GNOME -y og malplassert ut."
  • Wireshark har byttet til Qt på grunn av ikke å ha en god opplevelse med GTKs plattformstøtte.

Bruk

GTK-støtten for Wayland krever at applikasjoner også tilpasses Wayland
Skjermbilde av GIMP 2.8 - GTK er ansvarlig for å administrere grensesnittkomponentene i programmet, inkludert menyer, knapper og inndatafelt.

applikasjoner

Noen bemerkelsesverdige applikasjoner som bruker eller en gang brukte GTK som en widgetverktøysett inkluderer:

Skrivebordsmiljøer

Flere skrivebordsmiljøer bruker GTK som widgetverktøysett.

Strøm

  • GNOME , basert på GTK, noe som betyr at programmer som er opprinnelig til GNOME bruker GTK
  • Budgie , bygget fra bunnen av for SolusOS -etterfølgeren, Solus Operating System
  • Kanel , en gaffel av GNOME 3 som bruker GTK versjon 3
  • MATE , en gaffel av GNOME 2 som bruker GTK 3 siden versjon 1.18
  • Xfce , basert på GTK 3 siden versjon 4.14
  • Pantheon bruker utelukkende GTK 3, som er utviklet av elementært operativsystem
  • Sugar , et skrivebordsmiljø for ungdoms grunnskole , som bruker GTK, spesielt PyGTK
  • KDE , selv om det er basert på Qt , har integrasjon med GTK -skrevne programmer og temaer siden versjon 4.2
  • Phosh , et mobilgrensesnitt designet for PureOS

Inaktiv

Diverse

GTK -programmer kan kjøres på skrivebordsmiljøer basert på X11 og Wayland, eller vindusbehandlere selv de som ikke er laget med GTK, forutsatt at de nødvendige bibliotekene er installert; dette inkluderer macOS hvis X11.app er installert. GTK kan også kjøres på Microsoft Windows , der den brukes av noen populære plattformsapplikasjoner som Pidgin og GIMP. wxWidgets , et plattform-GUI-verktøysett, bruker GTK på Linux som standard. Andre porter inkluderer DirectFB (brukes for eksempel av Debian -installasjonsprogrammet ) og ncurses .

Vindusbehandlere

Følgende vindusbehandlere bruker GTK:

GtkSourceView

For syntaksfremheving er det GtkSourceView , "widget for redigering av kildekode". GtkSourceView vedlikeholdes av GNOME separat fra GTK som et bibliotek: gtksourceview . Det er planer om å gi nytt navn til gsv.

GtkSpell

GtkSpell er et bibliotek atskilt fra GTK. GtkSpell er avhengig av GTK og Enchant . Enchant er en innpakning for ispell, hunspell osv., Selve stavekontrollmotoren /programvaren. GtkSpell bruker GTKs GtkTextView -widget for å markere feilstavede ord og tilby erstatning.

Eksempel

Dokumentasjon er tilgjengelig her:

Følgende kode presenterer et grafisk GTK hei-verden program i programmeringsspråket C . Dette programmet har et vindu med tittelen "Hei, verden!" og en etikett med lignende tekst.

// helloworld.c
#include <gtk/gtk.h>

/* Callback that will be called when the application is activated */
static void
activate_callback(GApplication *app, gpointer user_data)
{
    GtkWidget *window;
    GtkWidget *label;

    /* Create the main, top level window */
    window = gtk_window_new();

    /* Give it the title */
    gtk_window_set_title(GTK_WINDOW(window), "Hello, world!");

    /* Set the window's default size */
    gtk_window_set_default_size(GTK_WINDOW(window), 200, 100);

    /* Assign the variable "label" to a new GTK label,
     * with the text "Hello, world!" */
    label = gtk_label_new("Hello, world!");

    /* Plot the label onto the main window */
    gtk_window_set_child(GTK_WINDOW(window), label);

    /* Make the application aware of the window.
     * The application process will continue to run until all
     * windows are closed */
    gtk_application_add_window(GTK_APPLICATION(app), GTK_WINDOW(window));

    /* Make sure that everything, window and label, are visible */
    gtk_widget_show(window);
}

int main (int argc, char *argv[])
{
    /* Create our test application */
    GtkApplication *application = gtk_application_new("org.wikipedia.gtktest", 0);

    /* Connect our handler to the "activate" callback, which will be called
     * when the application is activated by the user, e.g. on first start */
    g_signal_connect(application, "activate", G_CALLBACK(activate_callback), NULL);

    /* Run the application and return its status */
    return g_application_run(G_APPLICATION(application), argc, argv);
}

Må installere bibliotekene først i Debian eller derivater: $ sudo apt-get install libgtk-4-dev

Ved å bruke pkg-config i et Unix-skall kan denne koden kompileres med følgende kommando: $ cc -Wall $(pkg-config --cflags --libs gtk4) helloworld.c -o helloworld

Start programmet: $ ./helloworld

Historie

Linux

GTK ble opprinnelig utviklet og brukt i GNU Image Manipulation Program (GIMP) som en erstatning av Motif verktøykasse; på et tidspunkt ble Peter Mattis misfornøyd med Motif og begynte å skrive sitt eget GUI -verktøykasse med navnet GIMP -verktøykassen og hadde med hell erstattet Motif med 0.60 -utgivelsen av GIMP. Til slutt ble GTK skrevet om for å være objektorientert og ble omdøpt til GTK+. Dette ble først brukt i 0.99 -utgivelsen av GIMP. GTK ble deretter adoptert for vedlikehold av GNOME Foundation , som bruker det i GNOME -skrivebordsmiljøet.

GTK 2.0.0-utgivelsesserien introduserte nye funksjoner som inkluderer forbedret tekstgengivelse ved hjelp av Pango , en ny temamotor , forbedret tilgjengelighet ved hjelp av Accessibility Toolkit , overgang til Unicode ved bruk av UTF-8- strenger og et mer fleksibelt API. Fra og med versjon 2.8 er GTK 2 avhengig av grafikkbiblioteket i Kairo for gjengivelse av vektorgrafikk.

GTK versjon 3.0.0 inkluderte revidert inndatahåndtering, støtte for temaer skrevet med CSS -lignende syntaks, og muligheten til å motta informasjon om andre åpnede GTK -applikasjoner.

'+' Ble droppet tilbake til ganske enkelt 'GTK' i februar 2019 under et Hackathon .

Mac os

Med Quartz -Backend GTK er tilgjengelig i macOS .

Windows

  • Etter GTK 2.24.10 og 3.6.4 ble utviklingen av Windows med Installer lukket av Gnome. Installasjon av MSYS2 på Windows er en god måte å bruke faktisk GTK.
  • GTK 2.24.10 og 3.6.4 er tilgjengelig på Internett, men veldig buggy og begrenset til faktiske versjoner.
  • En versjon for Windows 64-bit er utarbeidet av Tom Schoonjans med 2.24.33 (faktisk som Linux) og 3.24.24 (faktisk som Linux) fra januar 2021 tilgjengelig.
  • Windows 10s Fall Creators Update inkluderer Windows Subsystem for Linux (WSL). Med Linux -distribusjoner som Ubuntu eller Debian tilgjengelig fra Windows Store og en X -server som Xming eller VcXsvr, kan tusenvis av programmer som GTK 2 eller 3 kjøres med X eller terminalstøtte.

OpenVMS

HP uttalte at målet deres var å slå sammen de nødvendige OpenVMS -endringene i utviklingsstrømmen GTK Version 1.3, men dette ble aldri noe av. Den siste versjonen av GTK for OpenVMS er versjon 1.2.10.

GTK 4

En av de kardinale nyhetene som ble implementert under utviklingssyklusen GTK 4 (dvs. GTK 3.92, etc.) har vært delegering av funksjonalitet til tilleggsobjekter i stedet for å kode den inn i baseklassene levert av GTK.

  • hendelseshåndteringen fra signalbehandlere beskrevet av GtkWidget er delegert til hendelseskontrollere
  • gjengivelsen er delegert til GtkSnapshot -objekter
  • oppsettsmekanismen fra GtkWidget er delegert til GtkLayoutManager

I 2018-Jan-26 på DevConf.cz ga Matthias Clasen en oversikt over den nåværende tilstanden for GTK 4-utviklingen, inkludert en forklaring på høyt nivå om hvordan gjengivelse og input fungerte i GTK 3, hvilke endringer som ble gjort i GTK 4, og årsakene til disse endringene. Eksempler på ting som har blitt mulig med GTK 4 ble også gitt.

Utgivelser

Legende:
Gammel versjon
Eldre versjon, fortsatt vedlikeholdt
Siste versjon
Siste forhåndsversjon
Fremtidig utgivelse
Slippserie Første utgivelse Store forbedringer Siste mindre versjon
Gammel versjon, ikke lenger vedlikeholdt: 1.0 1998-04-13 Første stabile versjon 1.0.6
Gammel versjon, ikke lenger vedlikeholdt: 1.2 1999-02-25 Nye widgets :
  • GtkFontSelector
  • GtkPacker
  • GtkItemFactory
  • GtkCTree
  • GtkInvisible
  • GtkCalendar
  • GtkLayout
  • GtkPlug
  • GtkSocket
1.2.10
Gammel versjon, ikke lenger vedlikeholdt: 2.0 2002-03-11 GObject

Samlet støtte for UTF-8

2.0.9
Gammel versjon, ikke lenger vedlikeholdt: 2.2 2002-12-22 Multihead -støtte 2.2.4
Gammel versjon, ikke lenger vedlikeholdt: 2.4 2004-03-16 Nye widgets:
  • GtkFileChooser
  • GtkComboBox
  • GtkComboBoxEntry
  • GtkExpander
  • GtkFontButton
  • GtkColorButton
2.4.14
Gammel versjon, ikke lenger vedlikeholdt: 2.6 2004-12-16 Nye widgets:
  • GtkIconView
  • GtkAboutDialog
  • GtkCellView

Den siste som støtter Windows 98 / Me

2.6.10
Gammel versjon, ikke lenger vedlikeholdt: 2.8 2005-08-13 De fleste widgets er gjengitt av Kairo 2.8.20
Gammel versjon, ikke lenger vedlikeholdt: 2.10 2006-07-03 Nye widgets:
  • GtkStatusIcon
  • GtkAssistant
  • GtkLinkButton
  • GtkRecentChooser

Utskriftsstøtte: GtkPrintOperation

2.10.14
Gammel versjon, ikke lenger vedlikeholdt: 2.12 2007-09-14 GtkBuilder 2.12.12
Gammel versjon, ikke lenger vedlikeholdt: 2.14 2008-09-04 JPEG 2000 last støtte 2.14.7
Gammel versjon, ikke lenger vedlikeholdt: 2.16 2009-03-13 Ny widget: GtkOrientable

Caps Lock -advarsel i passordoppføring

Forbedringer på GtkScale, GtkStatusIcon, GtkFileChooser

2.16.6
Gammel versjon, ikke lenger vedlikeholdt: 2.18 2009-09-23 Ny widget: GtkInfoBar

Forbedring av filvelger, utskrift

For å fjerne mye av den nødvendige IPC mellom X11-applikasjonen og X11-serveren, skrives GDK om (hovedsakelig av Alexander Larsson) til å bruke "vinduer på klientsiden", dvs. GdkWindow, som hver widget må ha, tilhører nå klienten

2.18.9
Gammel versjon, ikke lenger vedlikeholdt: 2,20 2010-03-23 Nye widgets:
  • GtkSpinner
  • GtkToolPalette
  • GtkOffscreenWindow

Forbedring av filvelger, tastaturhåndtering, GDK

Introspeksjonsdata er nå inkludert i GTK

2.20.1
Gammel versjon, ikke lenger vedlikeholdt: 2.22 2010-09-23 GdkPixbuf flyttet til separat modul

De fleste GDK -tegninger er basert på Kairo

Mange interne data er nå private og kan forsegles som forberedelse til GTK 3

2.22.1
Gammel versjon, ikke lenger vedlikeholdt: 2,24 2011-01-30 Ny widget: GtkComboBoxText

CUPS print backend kan sende utskriftsjobber som PDF

GtkBuilder har fått støtte for tekstetiketter og menyverktøyknapper, og mange korrigeringer for introspeksjonskommentarer ble lagt til

Overfører fra GTK+ 2.x til GTK+ 3

2.24.32
(2018-01-08)
Gammel versjon, ikke lenger vedlikeholdt: 3.0 2011-02-10 Utvikling og design av GTK 3 -utgivelsen av verktøysettet startet i februar 2009 under GTK Theming Hackfest som ble holdt i Dublin
  • Det første utkastet til utviklingsplanen ble utgitt 9. april 2009

Fullførte for det meste Project Ridley

  • forsøket på å konsolidere flere biblioteker som var eksterne for GTK+
  • inkludert libgnome, libgnomeui, libgnomeprint22, libgnomeprintui22, libglade, libgnomecanvas, libegg, libeel, gtkglext, oglibsexy

All gjengivelse er gjort ved hjelp av Kairo

GDK ble mer X11 -agnostiker

XInput2, tema API er basert på Cascading Style Sheets (CSS), noe som forverrer den oppnåelige ytelsen for 60 Hz bildefrekvenser

3.0.12
Gammel versjon, ikke lenger vedlikeholdt: 3.2 2011-09-25 Nye widgets:
  • GtkLockButton
  • GtkOverlay

Ny dialogboks for valg av skrift

Nye eksperimentelle backends:

3.2.4
Gammel versjon, ikke lenger vedlikeholdt: 3.4 2012-03-26 Menystøtte i GtkApplication

En ny fargevelger

Lagt til støtte for berøringsenheter

Lagt til støtte for jevn rulling

GtkScrolledWindow vil gjøre kinetisk rulling med berøringsenheter

macOS -støtte er forbedret

Dette er den første versjonen av GTK 3 som fungerer bra på Windows

Wayland backend er oppdatert til den nåværende Wayland -versjonen

Spinnknapper har fått et nytt utseende

Tilgjengelighet: Treeview -tilgjengelig støtte skrives om

Mer komplett CSS -temastøtte

3.4.4
Gammel versjon, ikke lenger vedlikeholdt: 3.6 2012-09-24 Nye widgets:
  • GtkSearchEntry
  • GtkMenuButton
  • GtkLevelBar

Vertikale rotasjonsknapper

CSS -animasjoner, uskarpe skygger

Støtte for kryssfading og overganger i temaer

3.6.5
Gammel versjon, ikke lenger vedlikeholdt: 3.8 2013-03-25 Wayland 1.0 stabil støtte

Støtte for broadwayd -serveren

Forbedret tema

Bedre geometrihåndtering

Berøringsforbedringer

Støtte med vindusbehandleren for rammesynkroniseringsprotokollen

GdkFrameClock lagt til

3.8.9
Gammel versjon, ikke lenger vedlikeholdt: 3.10 2013-09-23 Nye widgets:
  • GtkHeaderBar
  • GtkPlacesSidebar
  • GtkStack
  • GtkStackSwitcher
  • GtkRevealer
  • GtkSearchBar
  • GtkListBox

Støtte for Wayland 1.2

  • maksimalisering
  • animerte markører
  • flere skjermer
  • innstillinger
  • tilpassede overflater
  • rammesynkronisering

La til:

  • dekorasjoner på klientsiden
  • skalert utskriftsstøtte på høy-dpi-skjermer
  • finjusteringsmodus for rulling

Fjernet:

  • støtte for Motif DND -protokollen
  • støtte for flere skjermer per skjerm
  • gdk_window_get_display
  • gtk_widget_push_composite_child

Riv av menyelementer, pluss mange GTK-innstillinger

Den moderne GTK -tegningsmodellen

3.10.9
Gammel versjon, ikke lenger vedlikeholdt: 3.12 2014-03-25 Dekorasjoner på klientsiden

Støtte for Wayland 1.5

Ny widget: GtkPopover (et alternativ til menyer og dialoger)

3.12.2
Gammel versjon, ikke lenger vedlikeholdt: 3.14 2014-09-22 GtkInspector (en kopi av gtkparasite) introdusert

Forbedret støtte for bevegelser / multi-touch slått sammen

Utgått:

  • GtkMisc
  • GtkAlignment
  • GtkArrow
  • GdkColor
  • Stilregioner
  • støtte for .icon -filer
  • gdk_window_flush
  • tegning utenfor begynnelse/sluttmaling

De fleste widgets konverterte til å bruke bevegelser internt

Wayland støtter klassisk GNOME Shell -modus

3.14.15
Gammel versjon, ikke lenger vedlikeholdt: 3.16 2015-03-22 GDK støtter gjengivelse av vinduer med OpenGL for X11 og Wayland ved bruk av libepoxy

Nye widgets:

  • GtkGLArea
  • GtkStackSidebar
  • GtkModelButton
  • GtkPopoverMeny

Rulling overhalet ( rullefelt skjult som standard)

Eksperimentell Mir backend

3.16.7
Gammel versjon, ikke lenger vedlikeholdt: 3.18 2015-09-23 Legg til CSS -node -infrastruktur

Mer oppdatering av filechooser -design og bedre filechooser -søk

Droppet Windows XP -støtte

Modellstøtte for liste og flytboks

Kinetic touchpad scrolling

Pekefeltbevegelser (Wayland)

gtk-builder-tool-verktøy

Bare utgangsvinduer

3.18.9
Gammel versjon, ikke lenger vedlikeholdt: 3,20 2016-03-21 Videre integrering av CSS -noder

Flytt dra og slipp ned til GDK

Ny widget: GtkShortcutsWindow (viser hurtigtaster og bevegelser for et program)

3.20.10
Gammel versjon, ikke lenger vedlikeholdt: 3.22 2016-09-21 Siste 3.x utgivelse

Støtte for Wayland -nettbrett er slått sammen, støtte for grafikkbrett anses funksjonen fullført

GTK 3.22 skal være like steinstabil (og dermed "kjedelig") som GTK 2

for 3+ år
3.22.29
Eldre versjon, men likevel vedlikeholdt: 3,24 2018-09-03 3.22 skulle være den siste versjonen av GTK 3 -serien

Avhengighetshump - krever:

  • libepoxy 1.4
  • pango 1.41

Nye funksjoner for fontvelger:

  • tillat innstilling av OpenType -skriftfunksjoner
  • vis eksempler på OpenType -skriftfunksjoner
  • tillate valg av OpenType -skriftvariasjoner
  • støtte detaljnivåer for valg

Nye Emoji -funksjoner:

  • støtte en fullførings -popup for Emoji
  • slipp Ctrl-Shift-e snarvei

Andre nye API -er: gdk_window_move_to_rect

Wayland: bruk anonymt delt minne på FreeBSD

Backported hendelseskontrollere fra GTK 4:

  • GtkEventControllerScroll
  • GtkEventControllerMotion
  • GtkEventControllerKey
  • GtkGestureStylus

Utdatere noen få APIer som er borte i GTK 4:

  • fokuskjeder i GtkContainer
  • trinnfølsomhet i GtkRange
3.23.0
3.23.1
3.23.2
3.23.3
3.24.0
3.24.5
3.24.14

3.24.29

Gammel versjon, ikke lenger vedlikeholdt: 3,90 2017-03-31 GTK Scene Graph Kit (GSK) slått sammen

Fjern et API som er merket som utdatert

Kraftig utvikling

  • break API og ABI

En ny Vulkan -gjengivelse forsterker den gamle Kairo -gjengivelsen

3.89.1

3,89,2
3,89,4
3,89,5
3,90

Gammel versjon, ikke lenger vedlikeholdt: 3,92 2017-10-18 Siden GNOME 3.26 ble utgitt allerede 13. september 2017, var det ikke basert på GTK 3.92.

GNU autotools ble erstattet med Meson .

3.91.0

3.91.1
3.91.2
3.92.1

Gammel versjon, ikke lenger vedlikeholdt: 3,94 2018-06-26 3,93
  • GdkScreen, GdkVisual fjernet
  • GdkDeviceManager erstattet av GdkSeat
  • Utklippstavlehåndtering flyttes fra GTK til GDK
  • GdkEvent konverteres til et ugjennomsiktig GObject
  • GL -gjengivelsen i GSK er vesentlig fullført, og er nå på høyde med Vulkan -gjengivelsen
  • bruken av GdkPixbuf i APIer reduseres
    • og GskTexture -objektet flyttes til GDK som GdkTexture, for å ta stedet
  • Wayland-backend implementerer nå dekorasjonsprotokollen på serversiden på KDE
  • Broadway er portet til GSK.

GdkWindow omdøpt til GdkSurface

Ny abstraksjon for tegnbart innhold: GdkPaintable

Det er støtte for å vise medier med:

  • GtkVideo
  • GtkMediaFile
  • GtkMediaStream
  • GtkMediaControls
3,93
3,94,0
Gammel versjon, ikke lenger vedlikeholdt: 3,96 2019-05-07 Kommandoen gtk4-builder-tool simplify har fått et --3to4alternativ for å konvertere GTK3 ui-filer til GTK4; men med AMTK -menyer, er verktøylinjer eller andre objekter som GtkShortcutsWindow opprettet programmatisk (ikke med en *.ui -fil), men med praktiske APIer.

GtkWidget kan nå bruke en GtkLayoutManager for størrelsesallokering

  • layout -ledere kan valgfritt bruke layoutbarn som har layout -egenskaper
  • GtkBinLayout, GtkBoxLayout, GtkGridLayout, GtkFixedLayout og GtkCustomLayout er for øyeblikket tilgjengelig
  • flere layout manager implementeringer vil vises i fremtiden

Fokushåndtering er omskrevet, og hendelsesgenerering med fokusendring har blitt forent med kryssende hendelser

Hendelser er forenklet og brukes bare for innspill:

  • avsløre hendelser har blitt erstattet av et GdkSurface :: gjengivelsessignal
  • konfigurere hendelser har blitt erstattet av et GdkSurface :: størrelsesendret signal
  • karthendelser har blitt erstattet av en GdkSurface :: tilordnet eiendom
  • gdk_event_handler_set er erstattet av et GdkSurface :: hendelsessignal
  • sentrale hendelser inneholder ikke lenger en streng
  • hendelser på ikke -kartlagte widgets ignoreres
3.96.0
Gammel versjon, ikke lenger vedlikeholdt: 3,98 2020-02-10
  • Ytelsesforbedringer
  • Dra og slipp refactoring
  • Flytter GDK mot Wayland
  • Fjerninger
    • GtkMenu, GtkToolbar og lignende klasser har blitt erstattet av GMenu.
  • Tillegg
    • Emoji -velger
    • Tekstmoduler har nå angre stabler
    • En ny layout manager
3,98,5
Gammel versjon, ikke lenger vedlikeholdt: 3,99,0 2020-07-31
  • Introdusert etterfølger av Accessibility Toolkit (ATK) . Den nye tilnærmingen vil implementere WAI-ARIA (World Wide Web Consortium (W3C) Accessibility Initiative-Accessible Rich Internet Applications).
  • Oppdaterte overskrifter for å bruke standard C -typer i stedet for GLib -typer
  • Nye widgets
  • Rettelser og forbedringer
3.99.4
Gammel versjon, ikke lenger vedlikeholdt: 4.0 16.12.2020 4.0.2
Gammel versjon, ikke lenger vedlikeholdt: 4.2 2021-03-30
Gjeldende stabil versjon: 4.4 2021-08-23

Se også

  • Dekorasjon på klientsiden
  • Liste over widgetverktøy
  • GDK -GIMP Drawing Kit ligger mellom xlib og GTK-biblioteket, og håndterer grunnleggende gjengivelse som tegningsprimitiver, rastergrafikk (bitmaps), markører, fonter, samt vindushendelser og dra-og-slipp-funksjonalitet
  • gtkmm - C ++ - bindinger for GTK
  • Qt - rammeverk og verktøykasse på tvers av plattformer
  • Xojo -utviklingsverktøy og rammeverk på tvers av plattformer
  • Enlightenment Foundation Libraries (EFL) - widgetverktøysett skrevet for Enlightenment Window Manager
  • FLTK -et lett, ikke-innfødt widgetverktøysett på tvers av plattformer
  • FOX-verktøykasse -en rask, åpen kildekode-plattform-widgetverktøysett
  • IUP -et verktøy for flere plattformer for å bygge innfødte grafiske brukergrensesnitt
  • Ultimate ++
  • Visual Component Library (VCL)
  • Vala -et objektorientert programmeringsspråk med en selvvertende kompilator som genererer C-kode og bruker GObject-systemet.
  • wxWidgets - et verktøygrensesnitt på tvers av plattformer som har som mål å bruke hver plattforms opprinnelige grafiske API direkte når det er mulig.

Referanser

Bibliografi

Eksterne linker