Nowości dla programistów
Poniższe zmiany są ważne dla osób korzystających z platformy programistycznej GNOME 2.28. Niezainteresowani czytelnicy mogą przejść dalej, do części Rozdział 6 ― Internacjonalizacja.
GNOME 2.28 to, obok środowiska GNOME, także wydanie platformy programistycznej GNOME ― zestawu bibliotek o stabilnych interfejsach programistycznych (API) oraz binarnych (ABI). Biblioteki te umożliwiają tworzenie oprogramowania dla wielu platform i są dostępne na licencji GNU LGPL.
W wydaniu GNOME 3.0 usunięte będą różne przestarzałe części platformy GNOME. Są to między innymi biblioteki GNOME takie jak libart_lgpl, libbonobo, libbonoboui, libglade, libgnome, libgnomecanvas libgnomeprint, libgnomeprintui, libgnomeui oraz libgnomevfs. Dla programów środowiska GNOME przygotowano listę zadań mających na celu usunięcie odwołań do przestarzałego kodu. Pozwoli to zapewnić łagodne przejście na platformę GNOME 3.0.
Zachęcamy programistów do wykonania tego kroku także w ich własnych programach. Dla wszystkich programistów (także potencjalnych) na stronie wiki GNOME goals przygotowaliśmy listę zadań do wykonania. Stan modułów obsługiwanych przez narzędzie JHBuild jest automatycznie śledzony i aktualizowany na tej stronie.
- 5.1. Sprzątanie platformy
- 5.2. GTK+ 2.18
- 5.3. Biblioteka GLib
- 5.4. Dokumentacja środowiska GNOME
- 5.5. Moduł GNOME Bluetooth
- 5.6. Przeglądarka WWW Epiphany
- 5.7. Aplet zarządzania czasem
- 5.8. Moduł GNOME-Media
- 5.9. Program Totem
- 5.10. Program Vinagre
- 5.11. Brasero
5.1. Sprzątanie platformy
Podjęto poważne działania mające na celu usunięcie przestarzałych modułów i funkcjonalności na drodze do GNOME 3.0.
W GNOME 2.28 nie ma już programów zależnych od modułów esound, libgnomevfs, libgnomeprint, czy libgnomeprintui.
Inne ulepszenia platformy GNOME w GNOME 2.28:
- Zależność od libart_lgpl została usunięta z dwóch modułów (eog i gtkhtml).
- Zależność od libbonobo(ui) została usunięta z pięciu modułów (gnome-control-center, gcalctool, gnome-media, gtkhtml oraz accerciser).
- Zależność od libglade została usunięta z 28 modułów (accerciser, alacarte, gnome-control-center, dasher, empathy, gcalctool, gnome-games, gnome-netstatus, gnome-nettool, gnome-mag, gnome-menus, gnome-panel, gnome-power-manager, gnome-screensaver, gnome-session, gnome-settings-daemon, gnome-system-tools, gnome-utils, gtkhtml, hamster-applet, libgnomekbd, orca, pessulus, seahorse, vino, vinagre, yelp oraz zenity).
- Zależność od libgnome została usunięta z 14 modułów (anjuta, gnome-control-center, dasher, evolution-webcal, gconf, gdl, gdm, gnome-desktop, gnome-media, gnome-system-tools, gok, gtkhtml, vino oraz yelp).
- Zależność od libgnomecanvas została usunięta z trzech modułów (anjuta, gtkhtml oraz zenity).
- Zależność od libgnomeprint(ui) została usunięta z jednego modułu (gnome-games).
- Zależność od libgnomeui została usunięta z 16 modułów (anjuta, gnome-control-center, dasher, deskbar-applet, gnome-mag, gnome-media, gnome-settings-daemon, gnome-system-tools, gnome-utils, gok, gtkhtml, hamster-applet, nautilus, orca, vino oraz yelp).
- Zależność od libgnomevfs została usunięta z trzech modułów (dasher, gnome-mag oraz gnome-utils).
- Wiele modułów wyświetla teraz lepsze i bardziej przejrzyste komunikaty podczas ich budowania z opcją AM_SILENT_RULES lub Shave. Więcej informacji znajduje się pod adresem http://live.gnome.org/GnomeGoals/NicerBuilds (w języku angielskim).
- Niektóre moduły zaczęły korzystać z GIntrospection — więcej informacji na stronie http://live.gnome.org/GnomeGoals/AddGObjectIntrospectionSupport (w języku angielskim).
W wielu programach pozbyto się przestarzałych symboli GTK+ i GLib oraz zastosowano nowe zasady, aby dołączać tylko pliki nagłówkowe GTK+ i GLib najwyższego poziomu.
5.2. GTK+ 2.18
GTK+ 2.18 to najnowsze wydanie biblioteki GTK+, która stanowi serce platformy GNOME. Wersja GTK+ 2.18 zawiera nowe funkcje dla programistów oraz wiele poprawek błędów. W kodzie źródłowym rozpoczęto także przygotowania do nadchodzącej wersji GTK+ 3.0.
Okno wyboru plików zostało ulepszone. Teraz zapamiętuje stan sortowania i ma lepsze ustawienia domyślnie, takie jak ukrywanie plików kopii zapasowych oraz wyświetlanie kolumny rozmiaru. Usprawnione zostało także skracanie nazw w belce ścieżki.
Biblioteka GTK+ zyskała także wiele innych ulepszeń:
- Kontrolki GtkEntry mogą także wyświetlać pasek postępu.
- Kontrolka GtkEntry obsługuje wzorzec model-widok.
- Kontrolka GtkLabel może wyświetlać osadzone adresy URI.
- Drukowanie obsługuje wydruk zaznaczenia.
- Kontrolki ustawień strony mogą zostać osadzone w oknie dialogowym drukowania.
- Ikony stanu mają własność tytułu, aby polepszyć dostępność.
- Dodana została nowa kontrolka GtkInfoBar, która wyświetla komunikaty w oknie głównym zamiast w oknie dialogowym.
- Biblioteka GTK może zostać skompilowana za pomocą nowoczesnej wersji automake (automake 1.7 nie jest już wymagany), a także w trybie wyciszonym, używając polecenia "make V=0".
5.3. Biblioteka GLib
Biblioteka GNIO została scalona z biblioteką GIO. Dostępne są interfejsy programistyczne do pracy z adresami IPv4 i IPv6, rozwijania nazw hostów, odwrotnego wyszukiwania adresów IP, niskopoziomowych gniazd wejścia/wyjścia oraz do połączeń i usług sieciowych.
Dla klas GArray, GMappedFile i GTree stosowana jest metoda zliczania referencji.
Pętla główna obsługuje domyślne konteksty dla wątków.
Dodano obsługę dostępu do odczytu i zapisu do klasy GIOStream i jej podklas.
Biblioteka GLib obsługuje także metadane dla pojedynczych plików.
5.4. Dokumentacja środowiska GNOME
Do modułów Yelp oraz gnome-doc-utils została dodana obsługa nowego języka XML dokumentacji GNOME - Mallard.
Mallard jest pełnowartościowym językiem XML dla twórców dokumentacji, zaprojektowanym dla tematycznych plików pomocy, który jest łatwiejszy do opanowania od języka Docbook.
Pomoc do programu Empathy (pierwsza napisana w języku Mallard) jest także pierwszą dokumentacją, której licencję zmieniono na Creative Commons Share-Alike 3.0. W przyszłości wszystkie pliki pomocy będą dostępne na tej licencji.
5.5. Moduł GNOME Bluetooth
Dodano obsługę wtyczek, która dostępna jest podczas ustawiania urządzeń. Umożliwia to obsługę urządzeń Bluetooth przez programy środowiska GNOME.
Dodano nowoczesne kontrolki wyboru urządzeń Bluetooth, włączając w to przycisk oraz element wybierający.
5.6. Przeglądarka WWW Epiphany
Podczas zmiany modułu wyświetlania stron Epiphany na WebKit programiści uzyskali kilka nowych funkcji.
WebKitGTK+ umożliwia bardzo szybkie przetwarzanie języka JavaScript, zużywa mniej pamięci, posiada interfejs programistyczny GObject oraz wbudowanego inspektora stron internetowych. Przeglądarka Epiphany zawiera także obsługę nowych rozszerzeń Seed (w języku JavaScript). Wraz z tym dodatkiem obsługa języka Python została usunięta.
Przeglądarka Epiphany korzysta z implementacji HTTP z biblioteki libsoup, a serwery pośredniczące funkcjonują teraz w jednolity sposób w środowisku GNOME. Brakujące funkcje w bibliotece libsoup to buforowanie HTTP i kodowanie zawartości.
Menu kontekstowe i widok strony nie są jeszcze dopasowane do przeglądarki Epiphany, używany jest domyślny widok WebKit.
5.7. Aplet zarządzania czasem
Wszystkie funkcje są teraz dostępne poprzez interfejs programistyczny D-Bus, który umożliwia podgląd wywołań funkcji.
5.9. Program Totem
Moduł xine-lib został usunięty z programu Totem, a dodany został nowy, asynchroniczny interfejs programistyczny.