Выпуск графического тулкита GTK+ 3.20 и графической библиотеки Clutter 1.26
За день до выхода GNOME 3.20 представлен стабильный релиз новой ветки многоплатформенного тулкита для создания графического интерфейса пользователя — GTK+ 3.20.0. Код GTK+ развивается в рамках проекта GNU и распространяется под лицензией LGPL, что позволяет использовать GTK+ не только для разработки свободного ПО, но и для создания проприетарных приложений, не требуя от производителей закрытых программ выплаты роялти или покупки специальной лицензии. В состав тулкита входит полный набор виджетов, позволяющих использовать GTK+ для проектов различного уровня и размера, например, GTK+ лежит в основе десктоп-окружений GNOME и Xfce, и используется в таких продуктах, как GIMP, Firefox и OpenOffice/LibreOffice.
GTK+ спроектирован для поддержки не только C/C++, но и других языков программирования, таких как Perl и Python, что в сочетании с использованием визуального построителя интерфейса Glade позволяет существенно упростить разработку и сократить время написания графических интерфейсов. Организация вывода в GTK+ абстрагирована от типа оконных систем, например, поставляется бэкенд, обеспечивающий возможность работы поверх дисплейного сервера Wayland, а также бэкенд, позволяющий отрисовывать вывод библиотеки GTK+ в окне web-браузера (запустив Gtk-приложение на одной машине, можно открыть web-браузер на другой машине и получить доступ к интерфейсу данной программы).
Из добавленных в GTK+ 3.20.0 улучшений можно отметить:
- Значительное улучшение бэкенда, обеспечивающего возможность работы поверх дисплейного сервера Wayland. Реализована полная поддержка механизма Drag-and-Drop, кинетической прокрутки, передачи уведомлений о запуске, первичного буфера обмена, корректного позиционирования диалоговых окон, управление миганием курсора в GtkTextView;
- Улучшен API для формирования визуальных тем, описание стиля в которых задаётся в CSS-подобном представлении с возможностью смены стиля на лету. Добавлены CSS-имена для виджетов и их компонентов. Более целостно обеспечена поддержка средств для задания полей, отступов, рамок и минимальных размеров. Добавлены новые возможности CSS: радиальные градиенты, перекраска символьных пиктограмм (-gtk-recolor), функций image () и calc ();
- Добавлена тема оформления HighContrastInverse;
- Реализованы блоки-подсказки для документирования горячих клавиш и экранных жестов;
- Реализовано чтение клавиатурных раскладок из файлов .XCompose;
- Поддержка использования предоставляемого GTK+ диалога выбора файлов на платформе Windows;
- Удалены или переведены в разряд устаревших: свойства Style, инфраструктура тестирования, геометрических преобразований при определении размера окон, GdkDeviceManager, gtk_text_iter_begins_tag и gdk_display_get_screen.
Одновременно доступна новая стабильная ветка графической библиотеки Clutter — 1.26.0. Clutter активно используется для обеспечения работы пользовательского интерфейса в проекте GNOME 3. Функции библиотеки Clutter ориентированы на активное использование анимации и визуальных эффектов, что позволяет применять при создании обычных GUI приложений методы, используемые при разработке игр. При этом сама библиотека напоминает игровой движок, в котором максимальное число операций выносится на плечи GPU. Одним из основных преимуществ Clutter является то, что для создания сложного интерфейса пользователя требуется написание минимума кода. Библиотека может работать поверх OpenGL, GLib, GObject, GLX, SDL, WGL, Quartz, EGL и Pango. Имеются биндинги для языков Perl, Python, C#, C++, Vala и Ruby.
В новом выпуске Clutter 1.26:
- Улучшена работа бэкенда системы ввода evdev для композитных серверов на базе Clutter.
- Добавлена возможность выбора основного и запасных Cogl-драйверов (GL, GL3, GLES2) как на этапе сборки, так и во время выполнения.
- Реализована возможность смены последовательности выбора Clutter-бэкендов, позволяющей во время работы откатиться на другой бэкенд в случае если основной бэкенд не поддерживается;
- Возможность создания текстовых actor-композиций, в которых запрещено редактирования или выделение текста.
© OpenNet