За несколько дней до выхода GNOME 3.2 увидел свет стабильный релиз новой ветки многоплатформенного тулкита для создания графического интерфейса пользователя - GTK+ 3.2.0. В состав тулкита входит полный набор виджетов, позволяющих использовать GTK+ для проектов различного уровня и размера. Код GTK+ развивается в рамках проекта GNU и распространяется под лицензией LGPL, что позволяет использовать GTK+ не только для разработки свободного ПО, но и для создания проприетарных приложений, не требуя от производителей закрытых программ выплаты роялти или покупки специальной лицензии.

GTK+ специально спроектирован для поддержки не только C/C++, но и других языков программирования, таких как Perl и Python, что в сочетании с использованием визуального построителя интерфейса Glade позволяет существенно упростить разработку и сократить время написания графических интерфейсов. С тех пор, как GTK+ был разработан в рамках проекта GIMP, тулкит используется в различных проектах, например, GTK+ лежит в основе десктоп-окружений GNOME и Xfce или используется в таких продуктах, как Firefox и OpenOffice.org/LibreOffice.

Ветка GTK+ 3.2.0 полностью обратно совместима с GTK+ 3.0. Кроме проведения большой работы над ошибками, новая версия содержит ряд интересных улучшений:

  • Включение в стандартную поставку экспериментального бэкенда, обеспечивающего возможность работы поверх дисплейного сервера Wayland;
  • Интеграция HTML5-бэкенда, позволяющего отрисовывать вывод библиотеки GTK+ в окне web-браузера. Запустив Gtk-приложение с использованием данного бэкенда на одной машине, можно открыть web-браузер на другой машине и получить доступ к интерфейсу данной программы. С технической стороны, каждое окно сопоставляется с элементом canvas и для обновления содержимого окна организуется передача потока команд через "multipart/x-mixed-replace"-запросы XMLHttpRequest, использующие gzip-сжатие для сокращения объема передаваемых данных. Содержимое окон передается клиенту в виде копий слоев (для скроллинга) и блоков, описывающих изменения между изображениями. Изображения отправляются в виде несжатых данных в PNG-формате. Пользовательский ввод перехватывается через DOM-события и затем транслируется на сервер через WebSocket API, позволяющий организовать двунаправленный обмен данными с сервером.
  • Многочисленные улучшения, связанные с расширением API для формирования визуальных тем, описание стиля в котором задаётся в CSS-подобном представлении с возможностью смены стиля на лету;
  • Расширение числа виджетов, поддерживающих гибкое управление геометрией, включая возможность адаптивного учета соотношения высоты к ширине. Среди таких виджетов упомянуты GtkPaned, GtkMenuBar и GtkNotebook, которые теперь имеют размер, соизмеримый с текущим экранным разрешением и размером экрана;
  • Переработано оформление виджетов GtkFileChooser (диалог выбора файлов) и GtkAssistant;
  • Виджет GtkFontSelection, с реализацией интерфейса для просмотра и выбора шрифтов, заменен на новый более универсальный набор виджетов GtkFontChooser;
  • Новые виджеты: GtkLockButton и GtkOVerlay.


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