Предварительный план разработки библиотеки Gtk+ 3.0

Автор turbo, 10 Апреля 2009, 20:18

« предыдущая тема - следующая тема »

0 Пользователей и 1 Гость просматривают эту тему.

turbo

Разработчики 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