Nyt for udviklere
Følgende ændringer er vigtige for softwareudviklere som bruger GNOME 2.24-udviklingsplatformen. Hvis du ikke er interesseret i ændringer for softwareudvikling kan du springe videre til Afsnit 5 ― Nyt indenfor mobilitet.
- 4.1. Forberedelse til GLib/GTK+ 3.0
- 4.2. GLib 2.18
- 4.3. GTK+ 2.14
- 4.4. Kvikbeskedsbiblioteker (IM-libs)
- 4.5. Kommandofelt
4.1. Forberedelse til GLib/GTK+ 3.0
For at begynde at forberede udviklere på GLib og GTK+ 3.0 vil kommende versioner af begge biblioteker inkludere flag for at gennemtvinge strengere kompatibilitet.
GLib, GTK+ og ATK 3.0 vil kræve at kun topniveauheadere (f.eks. glib.h, gobject.h, gio.h) bliver inkluderet i programmer. Denne ændring er vigtig, fordi den tillader individuelle headere at blive fjernet, omdøbt eller omordnet uden at have indflydelse på kildekode-kompatibiliteten for programmerne.
For at give udviklere mulighed for at teste deres programmers kompatibilitet med det samme er nye kompileringsflag (compile time flag) gjort tilgængelige: G_DISABLE_SINGLE_INCLUDES til GLib, GTK_DISABLE_SINGLE_INCLUDES til GTK+ og ATK_DISABLE_SINGLE_INCLUDES til ATK.
Angiv blot disse disse som kompileringsflag når du bygger dit program (f.eks. -DG_DISABLE_SINGLE_INCLUDES), for at sikre at dit program er korrekt.
GLib, GTK+ og tilknyttede biblioteker gør også andre kompileringsflag tilgængelige, som du kan bruge til kompatibilitetstest med GTK+ 3.0.
Du kan deaktivere understøttelsen af udfasede symboler, som vi blive fjernet i version 3.0, ved at definere følgende ved kompilering: ATK_DISABLE_DEPRECATED, PANGO_DISABLE_DEPRECATED, G_DISABLE_DEPRECATED, GDK_PIXBUF_DISABLE_DEPRECATED, GDK_DISABLE_DEPRECATED og GTK_DISABLE_DEPRECATED til ATK, Pango, GLib, GdkPixbuf, GDK og GTK+ respektivt.
Du kan teste om dit program kun bruger funktioner, som ordentligt understøtter flerskærmssystemer (multihead), ved at definere GDK_MULTIHEAD_SAFE og GTK_MULTIHEAD_SAFE.
4.2. GLib 2.18
GNOME 2.24 er den første GNOME-udgivelse som afhænger af GLib 2.18.
GLib 2.18 giver bedre understøttelse for at give kontekst i strengoversættelse med C_()- og NC_()-makroerne og desuden også ny API i GIO.
En komplet liste over nye symboler er tilgængelig for GLib og GIO.
4.3. GTK+ 2.14
GNOME 2.24 er den første GNOME-udgivelse som afhænger af GTK+ 2.14.
En vigtig ændring i denne version af GTK+ er at alle kontroller som nedarver fra GtkAdjustment (f.eks. drejeknapper og skydeknapper), nu strengt gennemtvinger deres rækkevidde som [nedre, øvre - sidestørrelse], sådan som det står i dokumentationen. Hvis du ønsker at sikre dig en rækkevidde som er [nedre, øvre] så sæt page_size til 0.
Alle udgaver af Glade (inklusive 3.4.1) opretter på nuværende tidspunkter objekter af typerne GtkSpinButton, GtkHScale og GtkVScale med variablen page_size sat til 10 som standard. Udviklere bør kontrollere for enhver Glade-fil de har oprettet, at sidestørrelsen er sat til en meningsfuld værdi.
En ny klasse, GtkMountOperation, er blevet gjort tilgængelig, så den kan bruges til at kalde funktionen g_volume_mount. GtkMountOperation er en GMountOperation, som kan vise brugeren en godkendelsesdialog hvis dette kræves.
En portabel metode til at åbne filer og andre URI'er med det forvalgte program er nu tilgængelig gennem funktionen gtk_show_uri(), så man ikke behøver have libgnome som afhængighed. GDK tilbyder nu en implementation af GAppLaunchContext til at håndtere grafiske programmer (inklusive opstartsbeskeder og forhindring i at stjæle fokus), GdkAppLaunchContext.
Som en yderligere nyhed i GTK+ 2.14, er der en GFile-baseret API til GtkFileChooser, samt muligheden for at lade GtkBuilder bygge dele af et XML-træ.
En komplet liste over nye symboler som er tilgængelige for GTK+ og GDK.
4.4. Kvikbeskedsbiblioteker (IM-libs)
Sammen med den nye kvikbeskedsklient (se Afsnit 2.1 ― Hold forbindelsen), inkluderer GNOME 2.24 bibliotekerne libempathy, libempathy-gtk og telepathy-glib, som kan bruges til at integrere kvikbeskedsfunktionalitet i ethvert GNOME-program.
4.5. Kommandofelt
Match-interfacet inkluderer nu to nye metoder: set_snippet og get_snippet. Hvis en snippet sættes, vil den blive vist i en ny linje neden under matchens get_verb-værdi.
Action-interfacet har fået en ny metode, get_tooltip. Overskrivning af denne metode tillader et værktøjstip at blive vist, når brugeren lader musemarkøren svæve over en match eller action.