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

  • В GDK (GIMP Drawing Kit) встроена поддержка OpenGL, которая позволяет организовать отрисовку через OpenGL без использования внешних надстроек. Для рендеринга через OpenGL представлен новый виджет GtkGLArea, который ранее распространялся в виде внешнего дополнения. В обиход введён новый тип объекта GdkGLContext, который позволяет прикрепить контекст OpenGL к определённому окну GdkWindow и использовать команды OpenGL для отрисовки произвольных элементов GTK+ в данном окне. Реализация позволяет использовать OpenGL для отрисовки в окружениях X11 и Wayland через libepoxy с использованием GLX или EGL.

  • В состав включён экспериментальный GDK-бэкенд, обеспечивающий возможность работы поверх дисплейного сервера Mir. Бэкенд включает в себя около 5 тысяч строк кода и пока не собирается по умолчанию - для его сборки требуется указать опцию "--enable-mir-backend". Для запуска приложения с использованием данного бэкенда следует установить переменную окружения "GDK_BACKEND=mir";
  • Для объекта GtkStack реализован новый контроллер GtkStackSidebar, позволяющий создавать боковые панели;
  • Добавлен новый тип кнопок GtkModelButton, в которых в качестве модели выступает GAction;
  • В объект GtkPopover добавлен подкласс GtkPopoverMenu, упрощающий создание кнопок в заголовке окна (popover) в форме меню;
  • Переработаны компоненты, отвечающие за прокрутку содержимого окон. Добавлена поддержка перекрытия (overlay) полос прокрутки. Обеспечена возможность индикации запрета прокрутки ('scrolled off'). Представлены новые сигналы "::edge-reached" и "::edge-overshot", а также новое правило GTK_POLICY_EXTERNAL, например, позволяющее реализовать сдвиг без видимых полос прокрутки.
  • Удалены или объявлены устаревшими вызовы: gdk_window_set_static_gravities, gdk_window_set_composited, gtk_style_context_get_background_color, gtk_style_context_get_border_color, gtk_settings_set_string/long/double_property, gtk_settings_install_property, GtkStyleProperties, gdk_cursor_new, gdk_*_libgtk_only, GtkCellRendererPixbuf::follow-state.


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