GTK+ 3.2.0
За несколько дней до выхода GNOME 3.2 увидел свет стабильный релиз новой ветки многоплатформенного тулкита для создания графического интерфейса пользователя - GTK+ 3.2.0.
🕛 27.09.2011, 00:52
В состав 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.