Планы по выпуску GTK+ версии 3
В списке рассылки gtk-devel-list обсуждаются планы выпуска GTK+ версии 3. Основные подготовительные действия, которые необходимо предпринять в текущей ветке:
- Спрятать все открытые поля структур с помощью макроса GSEAL(). В случае необходимости предоставить новые методы доступа к этим полям. Также должны быть скрыты поля-указатели "priv" на структуры, содержащие закрытые данные. Эти действия уже практически полностью проведены в репозитории git://git.imendio.com/projects/gtk+.git
- Реализовать закрытые члены класса, что включает изменения в коде GType.
- Объявить как deprecated публичные данные класса с помощью макроса GSEAL().
- Поскольку не останется простого способа для доступа к полям класса, а использование g_object_[sg]et() утомительно, необходимо ввести новые методы доступа, вроде g_object_get_int(), *double(), *string() и т.д.
- Существует множество макросов, таких как GTK_WIDGET_GET_FLAGS(), которые всегда были причиной многочисленных проблем (см. bug #69872). Необходимо реализовать нормальные методы доступа (в виде функций) и избавиться от этих макросов.
- GtkStyle, без сомнений, самый сложный тип, нуждающийся в скрытии публичных полей, и до релиза должно быть проведено множество исследований.
- Избавиться от всего кода, объявленного deprecated в 2.x. Это подразумевает все соответствующие виджеты и функции.
- Удалить все поля структур из публичного API. Есть два способа достичь этого:
a) переместить все структуры в закрытые заголовки;
b) переместить структуры в C-файл реализации, но тогда всей библиотеке придтся использовать соответствующие методы доступа.
Эти варианты ещ обсуждаются.
- Отключить deprecated-код по умолчанию во флагах компиляции.
Таким образом, версия 3.0 будет готова к релизу. Все приложения, которые собираются для ветки 2.x с макросом GSEAL() и не используют deprecated-кода, будут без проблем собираться для ветки 3.x. Наверное, таким образом разработчики пытаются избежать кошмара миграции, который можно видеть на примере библиотеки Qt.
>>> Подробности
Метки: gtk
Bohtvaroh



(Score: 390 MaxScore: 390)
(04.06.2008 13:52:35)
(
93.84.36.227)
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9b5) Gecko/2008050509 Firefox/3.0b5
Проверено: JB (04.06.2008 14:21:19)
[
Править]
[
Удалить]
Ограничение на отправку комментариев: только для зарегистрированных пользователей, score>=50