Що нового для розробників
Важливі зміни для розробників на платформі GNOME 3.2. Якщо ці зміни не цікавлять, можете перейти далі до Розділ 5 ― Інтернаціоналізація.
У GNOME 3.2 входить останній випуск розробницької платформи для GNOME. Вона містить набір стабільних бібліотек API і ABI на умовах ліцензії GNU LGPL, які можна використати для розроблення багатоплатформових програм.
Інформацію для розробників можна знайти у Центрі розроблення GNOME .
- 4.1. GLib 2.30
- 4.2. GTK+ 3.2
- 4.3. Clutter 1.8
- 4.4. Використання застарілих бібліотек
- 4.5. Просте компілювання GNOME через JHBuild
- 4.6. Різні розробницькі оновлення
4.1. GLib 2.30
Низькорівнева бібліотека програмних засобів GLib має кілька покращень:
- GApplication тепер може використовуватись для неунікальних програм.
- GLib тепер встановлює окремі заголовки для специфічних у Unix API: glib-unix.h. Серед іншого, це забезпечує джерело головної лупи для сигналів Unix.
- GDBus забезпечує шаблон «менеджера об'єктів» з рядом нових інтерфейсів.
- GDBus тепер має породжувача коду: gdbus-codegen.
- Атомні операції переписані, щоб використовувати gcc builtins; виклики з явними трансляціями можуть бути проблемними.
- Додано атомні операції на вказівниках, зокрема замикання бітів на місцях розміру вказівника.
- Політика щодо одиниць віддає перевагу одиницям SI; g_format_size_for_display стало на місце g_format_size.
- Додано підтримування оглядів для HMAC: GHmac.
- Додано інтерфейс для пошуку сертифікатів і ключів: GTlsDatabase. Реалізація забезпечено за допомогою glib-networking.
4.2. GTK+ 3.2
GTK+ 3.2 — останній випуск набору інструментів GTK+, який є серцем GNOME. GTK+ 3.2 містить як нові можливості для розробників, так і чимало виправлень вад.
- Записи тепер можуть містити підказки. Дивіться gtk_entry_set_placeholder_text.
- Багато інших віджетів підтримують керування висоти і ширини. Це важливо для встановлення розумних розмірів на розмірах вікон з мітками і галочками.
- Нові віджети:
- GtkLockButton для привілейованих операцій, деякі з яких можна знайти в панелі центру керування.
- GtkOverlay для рухомого контролю над ділянкою вмісту, деякі з яких можна побачити у переглядачах тенет.
- GtkFontChooserDialog, нове вікно для вибору шрифтів.
- Значно покращено підтримування тем CSS, у тому числі класи стилів для первинних і вбудованих панелей інструментів.
- Модуль HTML Broadway, який відтворює в переглядачі тенет через веб-сокети, вдосконалено, однак усе ще це експериментальна можливість. Це дозволяє або запускати власні програми на сервері й одержувати доступ до них звідусіль, або розміщати на публічних серверах, щоб показувати нові зразки програм для кожного користувача. Зауважте, потрібно скомпілювати GTK+ з --enable-x11-backend --enable-broadway-backend і різним середовищем GDK_BACKEND протягом роботи.
- Підтримування для reftests додано, щоб простіше писати тести.
- Різні покращення виконання GTK+ відбулись у ділянці запитів розміру кешування, інформації про читання стилів CSS і розрахування розміру віджета.
4.3. Clutter 1.8
Графічна бібліотека GNOME для прискорення роботи користувацького інтерфейсу Clutter надає такі вдосконалення:
- Такі нові дії, я ClutterGestureAction для написання розпізнавань жестів, ClutterSwipeAction для виявлення жестів проведення, ClutterDropAction для кидання акторами ціллю протягом використання ClutterDragAction, і підтримування затяжного натиску для ClutterClickAction.
- Перехід ClutterState може бути прив'язаним до сигналів об'єкта протягом створення сцени в ClutterScript.
- Покращено інтеграцію рисування Cairo.
- Cogl, інтерфейс програмування GPU для Clutter, його виділено як окрему бібліотеку.
4.4. Використання застарілих бібліотек
Подальший поступ досягнуто в безперервній роботі заміни застарілих технологій з чудовими можливостями.
- GConf тепер використовує D-Bus типово, тож більше не потребує ORBit2. Унаслідок цього, застарілі бібліотеки ORBit2 і libIDL вилучено з GNOME.
- Основні модулі GNOME тепер залежать тільки від самоспостережних прив'язок базованих на Python (pygobject-3), отже pygtk, gnome-python і gnome-python-desktop більше непотрібні.
- Декілька програм (наприклад, Accerciser, Dasher, GHex, графічне перетягування Nemiver, засіб керування паролями і зашифрованими ключами Seahorse) тепер використовує GSettings як програму пам'яті замість GConf.
- Деякі такі пакунки, як переглядач тенет Epiphany, перероблено з використання dbus-glib на GDBus і з libunique на G(tk)Application.
4.5. Просте компілювання GNOME через JHBuild
Засіб збирання GNOME JHBuild більше не збирає модулі, якщо достатньо версії встановленого в системі. Це керується через параметри налаштування partial_build і це типово ввімкнено. Команда jhbuild sysdeps перелічує, які системні модулі знайдено й які потрібно зібрати.
Якщо ви почали збирати GNOME з нуля з недавнього випуску, це елементарно може зіпсувати роботу 50 модулів зі списку модулів для компілювання.
4.6. Різні розробницькі оновлення
Інші покращення розробницької платформи GNOME у версії 3.2 містять:
- Класичні (статичні) прив'язки Python вилучено для PyGObject 3.0 і надається тільки динамічні прив'язки (через самоспостереження). PyGObject 2 і 3 типово не можна встановити паралельно як самоспостережні у пакунки PyGObject 2. Інформація доступна на як перенести програми з PyGObject 2 на PyGObject 3.
- Tracker версії 0.12 забезпечує підтримування для Firefox ≥ 4.0, Thunderbird ≥ 5.0, MeeGoTouch, декількох додаткових параметрів SPARQL, витягнення інформації з файлів EPub і локальних каталогів XDG для стільничних файлів.
- NetworkManager версії 0.9 забезпечує підтримування самоспостереження і спрощене API для D-Bus. Доступна інформація про те, як перенести програми з NetworkManager 0.8 до 0.9.
- У рамках згаданих зусиль з використання і просування PKCS#11 як об'єднання між бібліотеками шифрування різні частинами gnome-keyring розділено на незалежні від стільниці бібліотеки.
- GtkSourceView тепер підтримує синтаксис підсвічування Markdown і файли Standard ML.
- Evolution-Data-Server одержало багато самоспостережних виправлень.
- libfolks тепер містить модуль Evolution-Data-Server, який використано новою програмою Contacts.
- Серед засобів для оброблення документації, gnome-doc-utils і xml2po поволі замінено на yelp-tools і itstool. yelp-xsl містить кілька таких експериментальних розширень Mallard, як умовне оброблення і динамічні глосарії.