За два дня до выхода GNOME 3.14 представлен стабильный релиз новой ветки многоплатформенного тулкита для создания графического интерфейса пользователя - GTK+ 3.14.0. В состав тулкита входит полный набор виджетов, позволяющих использовать 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.14.0 улучшений можно отметить:

  • Значительное улучшение бэкенда, обеспечивающего возможность работы поверх дисплейного сервера Wayland. В том числе обеспечена поддержка Wayland 1.6, добавлена возможность управления с сенсорных экранов, реализован механизм Drag-and-Drop, поддержка использования Wayland в классическом режиме GNOME;
  • Вместо темы оформления "Raleigh" по умолчанию для всех платформ задействована тема "Adwaita". Старая тема "Raleigh" потребляла немного ресурсов и не была привязана ко внутреннему или внешнему движку тем оформления, но была ограничена топорным внешним видом, из-за чего эта тема практически всегда заменялась в дистрибутивах Linux, но приводила к проблемам при поставке GTK-приложений для других платформ. Тема Adwaita позволяет добиться единого современного оформления программ на всех поддерживаемых платформах и учитывает все нововведения GTK+. Кроме того, доступен высококачественный вариант Adwaita, оформленный в тёмных тонах.

    До сих пор тема оформления по умолчанию не заменялась, так как разработчики не решались потерять отсутствие привязки к движкам тем оформления. Данное требование потеряло актуальность, так как в настоящее время GTK+ продвигает средства CSS как основу для организации оформления. Ранее средства CSS не позволяли реализовать всё, что можно было сделать через движки тем (например, тени меню), но в свежей кодовой базе GTK+ данный недостаток уже преодолён. Потребность в движках тем отпала и Adwaita теперь обходится встроенными механизмами CSS. Более того, GTK+ теперь придерживается курса на отказ от движков тем и загружаемых модулей-дополнений, так как они не удовлетворяют требованиям безопасности и требуют стабильного API для внутренних подсистем.

    Было:

    Стало:

    Тёмный вариант:

  • Поддержка мультитач доведена до практического применения: добавлен фреймворк для распознавания жестов, виджеты преобразованы для поддержки управления жестами;
  • В состав GTK+ интегрирован собственный интерактивный отладчик GtkInspector. Поставка отладчика в составе GTK+ даёт возможность развивать средства отладки синхронно с GTK+ и предоставить разработчикам возможность иметь отладчик всегда под рукой. Отладчик можно вызвать на лету для любого GTK-приложения через клавиатурные комбинации Control-Shift-I или Control-Shift-D. Отладчик создан по мотивам проекта gtkparasite (попытка создать подобие Firebug для GTK+) и позволяет наглядно инспектировать иерархию виджетов, на лету менять свойства и наблюдать вызванные этим изменения в интерфейсе, управлять настройками тем оформления (менять темы или отдельные элементы в процессе отладки), использовать режим подсветки обновляемых в процессе работы графических областей, отображать содержимое пиксельного кэша, выводить разметку выравнивания элементов. Предоставляется три основных режима работы: инспектирование объектов, визуальное инспектирование и переопределения свойств оформления через CSS.
  • В состав включён инструмент для просмотра пиктограмм;
  • Улучшен API для формирования визуальных тем, описание стиля в которых задаётся в CSS-подобном представлении с возможностью смены стиля на лету. В новой версии добавлена поддержка задание средствами CSS тем оформления пиктограмм. Добавлены новые состояния для ссылок и выбранных флагов (check button) и переключателей (radio button);
  • В виджет GtkListBox добавлена возможность одновременного выделения нескольких элементов (multi-selection);
  • Обеспечена более плотная интеграция с меню OS X при использовании GtkApplication;
  • Прекращена поддержка виджетов GdkColor, GtkMisc, GtkArrow, GtkStatusIcon, GtkNumerableIcon, GtkThemingEngine, многих свойств стилей, файлов .icon, встроенных пиктограмм , gdk_window_flush, отрисовки за пределами области вывода, вызовов gtk_widget_reparent, gtk_widget_region_intersect, gtk_container_reallocate_redraws.

Одновременно доступна новая стабильная ветка графической библиотеки Clutter - 1.20.0. Clutter активно используется для обеспечения работы пользовательского интерфейса в проекте GNOME 3. Функции библиотеки Clutter ориентированы на активное использование анимации и визуальных эффектов, что позволяет применять при создании обычных GUI приложений методы, используемые при разработке игр. При этом сама библиотека напоминает игровой движок, в котором максимальное число операций выносится на плечи GPU. Одним из основных преимуществ Clutter является то, что для создания сложного интерфейса пользователя требуется написание минимума кода. Библиотека может работать поверх OpenGL, GLib, GObject, GLX, SDL, WGL, Quartz, EGL и Pango. Имеются биндинги для языков Perl, Python, C#, C++, Vala и Ruby.

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