За день до выхода GNOME 3.10 доступен (https://mail.gnome.org/archives/gtk-list/2013-September/msg0...) стабильный релиз новой ветки многоплатформенного тулкита для создания графического интерфейса пользователя - GTK+ 3.10.0 (http://www.gtk.org/). Ветка GTK+ 3.10 полностью обратно совместима с прошлыми выпусками GTK+ серии 3.x.
В состав тулкита входит полный набор виджетов, позволяющих использовать GTK+ для проектов различного уровня и размера. Код GTK+ развивается в рамках проекта GNU и распространяется под лицензией LGPL, что позволяет использовать GTK+ не только для разработки свободного ПО, но и для создания проприетарных приложений, не требуя от производителей закрытых программ выплаты роялти или покупки специальной лицензии. С тех пор, как GTK+ был разработан в рамках проекта GIMP, тулкит используется в различных проектах, например, GTK+ лежит в основе десктоп-окружений GNOME и Xfce или используется в таких продуктах, как Firefox и OpenOffice/LibreOffice.
GTK+ спроектирован для поддержки не только C/C++, но и других языков программирования, таких как Perl и Python, что в сочетании с использованием визуального построителя интерфейса Glade (http://glade.gnome.org/) позволяет существенно упростить разработку и сократить время написания графических интерфейсов. Организация вывода в GTK+ абстрагирована от типа оконных систем, например, поставляется бэкенд, обеспечивающий возможность работы поверх дисплейного сервера Wayland, а также бэкенд, позволяющий отрисовывать вывод библиотеки GTK+ в окне web-браузера (запустив Gtk-приложение на одной машине, можно открыть web-браузер на другой машине и получить доступ к интерфейсу данной программы).
Из добавленных в GTK+ 3.10.0 улучшений (https://developer.gnome.org/gtk3/3.10/) можно отметить:
- В бэкенде (https://live.gnome.org/Wayland/GTK+), обеспечивающем возможность работы поверх дисплейного сервера Wayland, добавлена поддержка протокола Wayland 1.2 (http://www.opennet.dev/opennews/art.shtml?num=37414). Код Wayland-бакеда отмечен как практически завершённый и готовый к реальному применению. В частности, добавлена поддержка максимизации окон, анимированных курсоров, многомониторных конофигураций, настроек и использования собственных поверхностей (custom surfaces). Также реализована поддержка протокола синхронизации кадров, позволяющего учитывать готовность вывода при отрисовке композитным менеджером;
- Расширены возможности бэкенда Broadway (http://git.gnome.org/browse/gtk+/log/?qt=grep&q=broadway), позволяющего отрисовывать вывод библиотеки GTK3+ в окне web-браузера. В новом выпуске улучшена обработка размера окна, добавлена поддержка синхронизации кадров, реализована аутентификация входа по паролю, обеспечена возможность сборки на платформе Windows;
- В бэкенд для операционной системы OS X добавлена поддержка нативных методов ввода;
- Поддержка дочерних обработчиков композитинга (composite children) в GtkWidget, что позволяет создавать сложные виджеты на основе ui-файлов, созданных в GtkBuilder. Существующие сложные виджеты переведены на использованием новой схемы;
- Поддержка декорации на стороне клиента, что позволило придать окнам с приложениями на GTK+ привычный вид, а также обеспечить такие возможности как скруглённые углы, скрытые рамки и оформление области заголовка на стороне приложения.
- Поддержка масштабирования вывода для экранов свервысокого разрешения;
- Режим тонкой регулировки скроллинга, делающий прокрутку более предсказуемой и отзывчивой, а также позволяющий создавать такие функции как автоматическая прокрутка;
- Новый виджет GtkHeaderBar (https://developer.gnome.org/gtk3/3.10/GtkHeaderBar.html), похожий на GtkBox, но отличающийся дополнительными возможностями по центрированию дочерних элементов (обычно заголовка), независимо от другого контента;
<center><a href="https://developer.gnome.org/gtk3/3.10/headerbar.png">... src="http://www.opennet.dev/opennews/pics_base/0_1380008455.png" style="border-style: solid; border-color: #e9ead6; border-width: 15px;" title="" border=0></a></center>
- Новый виджет GtkPlacesSidebar (https://developer.gnome.org/gtk3/3.10/GtkPlacesSidebar.html) с реализацией боковой панели для диалогов выбора файлов. Виджет может быть использован совместно с Nautilus;
<center><a href="https://developer.gnome.org/gtk3/3.10/placessidebar.png"... src="http://www.opennet.dev/opennews/pics_base/0_1380008608.png" style="border-style: solid; border-color: #e9ead6; border-width: 15px;" title="" border=0></a></center>
- Новый виджет GtkStack, предоставляющий альтернативный к GtkNotebook метод для отображения одного из набора дочерних виджетов. При переключении между виджетами используется анимированный переход. Для использования вкладок можно использовать дополнительный виджет GtkStackSwitcher;
<center><a href="https://developer.gnome.org/gtk3/3.10/stack.png"><... src="http://www.opennet.dev/opennews/pics_base/0_1380008642.png" style="border-style: solid; border-color: #e9ead6; border-width: 15px;" title="" border=0></a></center>
- Новый виджет GtkRevealer (https://developer.gnome.org/gtk3/3.10/GtkRevealer.html) для скрытия и показа дочерних виджетов с использованием анимационного эффекта;
- Новый виджет GtkSearchBar (https://developer.gnome.org/gtk3/3.10/GtkSearchBar.html) с реализацией всплывающей панели поиска;
- Новый виджет GtkListBox (https://developer.gnome.org/gtk3/3.10/GtkListBox.html) предоставляющий контейнер для отсортированного и отфильтрованного вывода списков;
<center><a href="https://developer.gnome.org/gtk3/3.10/list-box.png">... src="http://www.opennet.dev/opennews/pics_base/0_1380009017.png" style="border-style: solid; border-color: #e9ead6; border-width: 15px;" title="" border=0></a></center>
- Управление геометрией: Добавлена поддержка механизма базового распределения размеров, позволяющего виджетам экспортировать содержимое текстовых данных и адаптировать для их размещения обрамляющие их контейнеры, которые будут выровнены в соответствии с общей компоновкой элементов. Для объектов GtkEventBox и GtkCheckButton добавлена поддержка адаптации высоты к ширине;
- Прекращение поддержки протокола Motif DND, использование нескольких экранов на один дисплей, функций gdk_window_get_display и gtk_widget_push_composite_child, отделяемых элементов меню, некоторых настроек GTK+. Кроме того, объявлены устаревшими элементы API GtkIconFactory,
GtkIconSet, GtkIconSource, GtkImageMenuItem, GtkAction и
GtkUIManager, поддержка которых будет прекращена в GTK+ 4.
URL: https://mail.gnome.org/archives/gtk-list/2013-September/msg0...
Новость: http://www.opennet.dev/opennews/art.shtml?num=37982