Разработчики Gnome представили предварительный план подготовки релиза Gtk+ 3.0, в котором собраны основные идеи по улучшению библиотеки. Ожидается изменение структуры API, полная переработка некоторых подсистем, перевод всех "public" структур в область видимости "private" и проведение значительной чистки библиотеки от устаревшего кода. Нарушение программной и бинарной совместимости Gtk с некоторыми приложениями, обернется повышением производительности и уменьшением размера библиотеки. На основе Gtk+ 3.0 уже в марте 2010 года будет выпущен инновационный релиз GNOME 3.0.
Версия Gtk+ 2.0 была выпущена в 2002 году и на протяжении всей линейки 2.x сохранила обратную бинарную совместимость, позволяя не прибегать к перекомпиляции приложений после обновления библиотеки в системе. Тем не менее поддержание неизменного ABI позволяет вносить в код библиотеки только незначительные улучшения, а проблем и новшеств, которые не могут быть реализованы без переработки ABI, накопилось уже много.
При разработке Gtk+ 3 предлагается трезво оценить возможности комьюнити и не задавать участникам проекта жесткие временные рамки, а использовать систему приоритетов, при которой Gtk core team подготовит базовую функциональность, а работа независимых участников сообщества будет разбита на два класса: то что хотелось бы успеть добавить в 3.0 и то, что можно отложить до будущих релизов ветки 3.x.
Возможности, которые должны войти в Gtk+ 3.x:
* Полностью независимый от экрана рендеринг;
* Удаление всех публичных структур в API. Упрощение DnD API для поддержки drag-and-drop операций не только в древовидных списках. Упрощение API для управления прозрачностью виджетов;
* Поддержка нового механизма виджетов рабочего стола с описанием стиля в CSS-подобном представлении и возможностью смены стиля на лету. Поддержка нового класса "прокручиваемых" виджетов, которые помогут упростить реализацию виджетов для просмотра текста или работы с древовидными структурами. Поддержка определения настраиваемого RGBA фона для виджетов, контролируемого через систему визуальных тем;
* Обеспечение независимости от экранного разрешения, благодаря адаптивной прорисовке, оптимальной для текущих параметров экрана, таких элементов, как виджеты и шрифты. На системах большим или низким разрешением, все элементы автоматически будут иметь размер соизмеримый с размером экрана, не требуя ручной настройки шрифтов, пиктограмм и других элементов интерфейса.
Новые возможности, которые хотелось бы реализовать в Gtk+ 3.x силами независимых разработчиков:
* Улучшение поддержки анимационных эффектов c определением внешних подключаемых алгоритмов компоновки (layout) и перемещения (transition), в стиле Clutter, но на базе механизма обработки событий GLib;
* Добавление компонентов для обсчета физики, например, для создания эффектов инертной прокрутки, магнетизма, влияния трения, отскока элементов, растягивания, затухания, размывания, отбрасывания тени и т.п.
* Поддержка визуальных тем для "padding" блоков;
* Поддержка стандартных стилевых меток (label styles), отталкивающихся от стандартного размера шрифта. Напирмер, увеличенных шрифт, шрифт для заголовков и т.п.;
* Высокоуровневый способ стилевого выделения текста, нормально работающий не зависимо от языка и кодировки;
* Добавление автоматизированного тестового набора для оценки корректности отображения на экране;
* Добавление вращающегося круглого виджета для индикации прогресса выполнения операции;
* Обобщенная обработка событий, не привязанная к X11 и действенная для скрытых окон;
* Разделение группировки виджетов (родитель/потомок) и их геометрического позиционирования на холсте;
* Полная поддержка мультитач режима и возможности одновременной работы с несколькими указателями мыши и элементами ввода.
* Упрощение создания виджетов, вероятно будет подготовлена какая-то система шаблонов, дополнительные классы и автоматизированы типовые операции;
* Предоставление набора утилит для анализа кода сторонних проектов с целью упрощения их портирования на Gtk+ 3.
Новые возможности, которые могут быть реализованы в Gtk+ 3.x если независимые разработчики успеют их реализовать:
* Переработка системы определения визуальных тем;
* Возможность использования визуальных трансформаций силами тулкита, вероятно через интеграцию библиотеки clutter для задействования OpenGL или через добавление недостающих 3D функций в библиотеку Cairo;
* Поддержка микро-виджетов - небольших и очень простых виджетов, которые могут объединяться в более большой комплексный виджет.
* Поддержка API для организации связи виджетов.
http://www.opennet.ru/opennews/art.shtml?num=21201 (//\"http://www.opennet.ru/opennews/art.shtml?num=21201\")