За считанные часы до выхода GNOME 3.12 представлен стабильный релиз новой ветки многоплатформенного тулкита для создания графического интерфейса пользователя - GTK+ 3.12.0. Ветка GTK+ 3.12 полностью обратно совместима с прошлыми выпусками GTK+ серии 3.x.

В состав тулкита входит полный набор виджетов, позволяющих использовать GTK+ для проектов различного уровня и размера. Код GTK+ развивается в рамках проекта GNU и распространяется под лицензией LGPL, что позволяет использовать GTK+ не только для разработки свободного ПО, но и для создания проприетарных приложений, не требуя от производителей закрытых программ выплаты роялти или покупки специальной лицензии. С тех пор, как GTK+ был разработан в рамках проекта GIMP, тулкит используется в различных проектах, например, GTK+ лежит в основе десктоп-окружений GNOME и Xfce или используется в таких продуктах, как Firefox и OpenOffice/LibreOffice.

GTK+ спроектирован для поддержки не только C/C++, но и других языков программирования, таких как Perl и Python, что в сочетании с использованием визуального построителя интерфейса Glade позволяет существенно упростить разработку и сократить время написания графических интерфейсов. Организация вывода в GTK+ абстрагирована от типа оконных систем, например, поставляется бэкенд, обеспечивающий возможность работы поверх дисплейного сервера Wayland, а также бэкенд, позволяющий отрисовывать вывод библиотеки GTK+ в окне web-браузера (запустив Gtk-приложение на одной машине, можно открыть web-браузер на другой машине и получить доступ к интерфейсу данной программы).

Из добавленных в GTK+ 3.12.0 улучшений можно отметить:

  • Бэкенд, обеспечивающий возможность работы поверх дисплейного сервера Wayland, переведён на использование технологий Wayland 1.4. Для организации взаимодействия между приложениями и десктоп-окружением задействован протокол xdg-shell;
  • Расширены возможности бэкенда Broadway, позволяющего отрисовывать вывод библиотеки GTK3+ в окне web-браузера. Для обмена данными теперь применяются только бинарные буферы и современный протокол WebSocket. Для оптимизации прокрутки задействованы кольцевые хэши. Реализована поддержка декорирования окон на стороне клиента. Добавлена обработка событий ввода с сенсорных экранов и поддержка экранной клавиатуры IPad;
  • Добавлен виджет GtkFlowBox, реализующий контейнер для расположения дочерних элементов с вёрсткой по сетке. Поддерживается полный набор режимов выделения, а также функции сортировки и фильтрации;
  • Добавлен виджет GtkActionBar, предоставляющий панель для отображения контекстных действий. Например, для отображения кнопок внизу окна;
  • Добавлен виджет GtkPopover для замены меню и диалогов на контекстно зависимые блоки;
  • Расширено число элементов для которых доступны средства для людей с ограниченными возможностями, том числе такая поддержка добавлена для ссылок в метках, модельных меню, GtkColorChooser и разных виджетах;
  • Улучшена интеграция с системой меню платформы OS X, по умолчанию в OS X теперь предлагается глобальное меню приложения;
  • Объявлены устаревшими режимы изменения размера в GtkContainer, геттеры и сеттеры для изображений в GtkMessageDialog и вызов gtk_dialog_get_action_area();
  • Усовершенствовано оформление внешнего вида всех диалогов, обновлён стиль вкладок в виджете GtkNotebook;
  • В дочерние элементы GtkStack добавлена поддержки индикации наступления события, к которому необходимо привлечь внимание;
  • В GtkProgressBar добавлена поддержка плавной анимации;
  • Во многие контейнеры добавлена поддержка отрисовки фоновых изображений и бордюров;
  • В реализацию диалога управления выводом на печать добавлена поддержка сервиса Google Cloud Print.


Источник: http://www.opennet.ru/opennews/art.shtml?num=39408