Увидел свет (http://mail.gnome.org/archives/gtk-list/2011-February/msg00031.html) первый стабильный релиз новой ветки интструментария для создания графического интерфейса пользователя - GTK+ 3.0.0 (http://www.gtk.org/). Ключевым изменением новой ветки является значительная переработка (http://library.gnome.org/devel/gtk3/3.0/migrating.html) программного интерфейса, которая вылилась не только в расширении (http://library.gnome.org/devel/gtk3/3.0/api-index-3-0.html) API (http://library.gnome.org/devel/gtk3/3.0/), но и в его чистке и реструктуризации - удалены (http://library.gnome.org/devel/gtk3/3.0/api-index-deprecated.html) признанные устаревшими элементы API, все "public" структуры переведены в область видимости "private". Ценой нарушения обратной совместимости с прошлыми версиями Gtk стало повышение производительности и уменьшение размера библиотеки.
Из базовых изменений GTK+ 3.0 можно отметить:
- Полностью независимый от экрана рендеринг - все функции отрисовки переведены на использование векторной графической библиотеки Cairo (http://www.opennet.ru/opennews/art.shtml?num=27879) и больше не задействуют для вывода на экран устаревший API системы X11. Вывод в GTK+ 3 полностью абстрагирован от типа графических подсистем. Также были убраны некоторые другие концепции, специфичные для X11, такие как colormaps и pixmaps;
- Поддержка новых устройств ввода за счёт использования по умолчанию подсистемы X Input 2 (http://www.x.org/wiki/XI2), позволяющей обеспечить полную поддержку множественных указателей, клавиатур и других гаджетов. Ранее поддержка работы с устройствами ввода была развита недостаточно и потребовала переработки;
- Новый API для формирования визуальных тем, описание стиля в котором задаётся в CSS-подобном представлении с возможностью смены стиля на лету, анимированного отражения изменения состояний и т.п.;
- Более гибкое управление геометрией c поддержкой соотношений высота-ширина для виджетов и обработчиков отрисовывания ячеек. Обеспечение независимости от экранного разрешения, благодаря адаптивной прорисовке, оптимальной для текущих параметров экрана, таких элементов, как виджеты и шрифты. На системах с большим или низким разрешением, все элементы автоматически будут иметь размер соизмеримый с размером экрана, не требуя ручной настройки шрифтов, пиктограмм и других элементов интерфейса;
- Поддержка работы с несколькими GDK-бэкэндами (GIMP Drawing Kit). Для GTK+ 2.x для работы с другим бэкэндом необходимо было перекомпилировать приложение. В GTK+ 3 несколько GDK-бэкэндов могут быть собраны в одну библиотеку и выбираться во время выполнения программы. Добавлена поддержка бэкенда, обеспечивающего возможность работы поверх дисплейного сервера Wayland (http://linuxforum.kz/index.php?/topic/4385-wayland/), который в будущем вместо классического X-сервера будет использован (http://linuxforum.kz/index.php?/topic/4350-ubuntu/page__view__findpost__p__13053) в Linux-дистрибутивах Ubuntu и MeeGo. В разработке находится (http://linuxforum.kz/index.php?/topic/4392-gtk/) HTML5-бэкенд, позволяющий отрисовывать вывод библиотеки GTK+ 3 в окне web-браузера. Также добавлен бэкенд для Mac OS X фреймворка Quartz и прекращена поддержка DirectFB;
- Поддержка "лёгких" (прим. пер.: "минимизация кода") приложений. После внедрения поддержки D-Bus в GIO разработчики смогли добавить класс GtkApplication, который управляет многими рутинными аспектами интеграции приложений на уровне платформы при их написании, а именно: отслеживание открытых окон, проверка на уникальность, действия по экспорту и т.п.;
- Добавлено несколько новых виджетов, таких как Switch и Application chooser.
GTK+ -- мультиплатформенный инструментарий для создания графических интерфейсов пользователя. Предлагая полный набор виджетов, GTK+ подходит для различных проектов от самых маленьких до полноценных программных пакетов. GTK+ был разработан с нуля для поддержки разных языков, не только C/C++. Использование GTK+ на таких языках, как Perl и Python (особенно в комбинации с Glade GUI builder) обеспечивает эффективный метод для быстрой разработки приложений (RAD).
GTK+ -- свободное программное обеспечение и часть проекта GNU. Однако, положения лицензии GNU LGPL позволяют использование GTK+ всеми разработчиками, включая разработку проприетарного программного обеспечения без лицензирования и выплат отчислений. GTK+ -- полностью бесплатный, свободный инструментарий графических интерфейсов промышленного уровня, доступный на сегодняшний день. С тех пор, как GTK+ был разработан в рамках проекта GNU Image Manipulation Program (GIMP), GTK+ используется в большом диапазоне программного обеспечения. В частности, на GTK+ основан рабочий стол GNOME. GTK+ 3 будет включён в третью версию GNOME.
# opennet.ru (http://www.opennet.ru/opennews/art.shtml?num=29565)