LINUX.ORG.RU

Вышел GTK+ 3.0

 ,


0

0

10 февраля состоялся релиз GTK+ 3.0.0.

Работа над GTK+ 3 начиналась как «большая чистка» и длилась в течение нескольких лет, во время которой было несколько поворотов и уроков.

Итак, новшества:

  • Отображением всего теперь занимается Cairo. GDK больше не является обёрткой устаревших X11 drawing API. Это позволило удалить несколько X11-ориентированных концепций (GCs, colormaps, pixmaps). Большую часть работы сделал Benjamin Otte из RedHat.
  • Поддержка современных устройств ввода. Ранее этим пренебрегали (немногие основные разработчики пользуются «экзотическими» устройствами ввода). С приходом 3.0.0 в GTK+ появилась поддержка нескольких указателей, клавиатур и т.д. Отдельной благодарности заслуживает Carlos Garnacho (Lanedo).
  • Новые API для тем со знакомым синтаксисом CSS для настройки и другие усовершенствования, например, анимированное изменение состояний. Это также заслуга Карлоса.
  • Более гибкое управление геометрией.
  • Поддержка нескольких бекэндов GDK. С GTK+ 2.x нужно было пересобирать приложения для их работы с различными бекэндами GDK, так как они были реализованы отдельными библиотеками. В GTK+ 3 их можно встроить в одну библиотеку и выбирать во время выполнения. Это облегчит переход с X11 на Wayland или с Quartz на X11.
  • Лёгкая поддержка приложений. С интеграцией D-Bus в GIO стало возможным добавить класс, который обрабатывает большое количество аспектов интеграции платформы написания приложений, таких как отслеживание открытых окон, обеспечение уникальности, экспорт действий, и т.д. Это всё в стадии разработки и будет расширено в будущем. То, что мы имеем сейчас — это, в основном, заслуга Colin Walters (Red Hat) и Ryan Lortie (Codethink).

Скачать можно с HTTP или FTP.

Документация (GTK+ 3 Reference Manual)

>>> Подробности

★★★★

Проверено: svu ()
Последнее исправление: Dendy (всего исправлений: 3)
Ответ на: Традиционно от AX

В крайнем гтк ветки 2.+ он вполне себе.

Deleted
()
Ответ на: комментарий от Jihad

>почему тогда после обновления cairo у меня шрифты в фаерфоксе превратились в говно?

Потому что из-за поломанной анимации в gif с новым cairo мейнтейнеры стали линковать ff с cairo статически.

madgnu ★★★★★
()
Ответ на: комментарий от GotF

Чувствую, что это «большинство» - вендузятники, ломающие свои бубунты...

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от anonymous

Предположим, что Nokia вливается в MS и забрасывает разработку Qt. Что меняется? В Qt вполне достаточно средств для разработки desktop-приложений. Все время с покупки Nokia пилила только порт на Symbian, да всякие средства, актуальные для мобильных платформ, и что-то никто не умер.

PayableOnDeath
()

[непонятки] KDE4 против GNOME3

Что-то я не понял. Может объяснит кто по простому?

Что хуже? KDE4 или GNOME3? Или всё плохо?

Evgueni ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

> Почему все программы на GTK отличаются неразумно крупными кнопками и комбобоксами? Хорошо, пусть бы таких программ было 5%, ну бывает руки кривые, но когда таких программ множество...

Ты конкретно давай: где, что, откуда?

Хорошо, вот я открываю Nutilus, я там вижу комбобокс 30 пикселов в высоту.

http://i053.radikal.ru/1102/ca/f00efc9faccd.png Где? Кто? Какие кнопки? Какие комбобоксы?

geekless ★★
()
Ответ на: комментарий от praseodim

>Означает ли это, что теперь в Linux практически окончательно загублены возможности X работать и отображать работу на разных компьютерах, X-терминалы и прочее? Вендузятнеги тихой сапой превращают Linux в Windows выкидывая, то чего венда никогда не умела? Или я чего упустил.

Упустил немного. Посмотри в исходный код cairo (cairo-xlib-*.c, cairo-xcb-*.c). С X11 как с одним из бекэндов работает именно эта библиотека. Раньше GTK самостоятельно работал с иксами и имел несколько специфичных для X11 примитивов, от которых сейчас избавились.

Zubok ★★★★★
()
Ответ на: комментарий от thesis

> Личные ощущения. Добавление/удаление контролов медленнее, ресайз медленный. Здесь уже чистое имхо, разумеется.

Ага. При разворачивании многих gtk приложений я успеваю увидеть ресайз и отрисовку контроллов. 2011 год, это ни в какие ворота не лезет.

geekless ★★
()
Ответ на: комментарий от Jihad

about:buildconfig

about:buildconfig

Build platform
target
i686-pc-linux-gnu

Build tools
Compiler 	Version 	Compiler flags
i686-pc-linux-gnu-gcc 	gcc version 4.4.3 (Gentoo 4.4.3-r2 p1.2) 	-I/usr/include -Wall -W -Wno-unused -Wpointer-arith -Wcast-align -W -Wno-long-long -march=prescott -pipe -Wno-return-type -w -fno-strict-aliasing -pthread -pipe -DNDEBUG -DTRIMMED -O2
i686-pc-linux-gnu-g++ 	gcc version 4.4.3 (Gentoo 4.4.3-r2 p1.2) 	-I/usr/include -fno-rtti -fno-handle-exceptions -Wall -Wpointer-arith -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -Wcast-align -Wno-invalid-offsetof -Wno-long-long -march=prescott -pipe -Wno-return-type -w -fno-strict-aliasing -fshort-wchar -pthread -pipe -DNDEBUG -DTRIMMED -O2

Configure arguments
--enable-application=xulrunner --enable-optimize=-O2 --disable-installer --disable-pedantic --enable-crypto --with-system-jpeg --with-system-zlib --disable-updater --enable-pango --enable-svg --enable-system-cairo --disable-strip --disable-strip-libs --disable-install-strip --with-distribution-id=org.gentoo --enable-single-profile --disable-profilesharing --disable-profilelocking --enable-default-toolkit=cairo-gtk2 --enable-dbus --disable-startup-notification --disable-debug --disable-tests --enable-elf-dynstr-gc --disable-gnomevfs --disable-gnomeui --with-default-mozilla-five-home=/usr/lib/xulrunner-1.9.2 --enable-application=xulrunner --disable-mailnews --disable-crashreporter --enable-image-encoder=all --enable-canvas --enable-default-toolkit=cairo-gtk2 --enable-oji --enable-mathml --enable-storage --enable-places --enable-safe-browsing --enable-jsd --enable-xpctools --disable-installer --disable-updater --disable-strip --disable-install-strip --enable-system-cairo --enable-system-hunspell --with-system-nspr --with-nspr-prefix=/usr --with-system-nss --with-nss-prefix=/usr --x-includes=/usr/include --x-libraries=/usr/lib --with-system-bz2 --with-system-libevent=/usr --enable-ipc --disable-libnotify --enable-javaxpcom --disable-necko-wifi --enable-ogg --enable-wave --disable-system-sqlite --enable-extensions=default --prefix=/usr --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib 

тут видно какой используется

ZuBB ★★★★★
()
Ответ на: комментарий от Nebulosa

Смотря кто. Я для себя его пока не закопал. Жду релиза. Но даже если gnome-shell провалиться, то можно использовать будет стандартный внешний вид с wm mutter и переписанной gnome-panel на gtk3.

daemonpnz ★★★★★
()
Ответ на: комментарий от daemonpnz

Нет. Развитие, ИМХО, это повышение производительности + упрощение написания приложений.

Boboms ★★
()
Ответ на: комментарий от GotF

> Большинство огорчает отсутствие функциональности файл-менеджера в диалоге открытия %)

Это не «огорчает», это просто идиотизм. В консоли всё — текст, и вся интеграция посредством голого текста, в гуях же у пользователя должна быть четкая объектая модель, иначе они не нужны как явление природы. Тут никакой объектной модели нет: возможность оперировать потоками байт отняли, возможность тыкнуть правой кнопкой мыши в любой объект и получить его предсказуемые методы (команды меню) — не дали. Бред.Файл и в файловом менеджере, и в диалоге окрытия, и в списке недавних документов должен быть одной и той же сущностью, для которой я могу централизовано задать меню в каком-нибудь конфиге и не париться.

geekless ★★
()
Ответ на: комментарий от DoctorSinus

gtk-update-icon-cache это теперь отрезанный кусок gtk2

http://projects.archlinux.org/svntogit/packages.git/tree/gtk2/trunk/PKGBUILD

хз, есть ли в репах, но можно или пересобрать gtk2 или если оно стоит, просто проигнорировать эту зависимость.

sergej ★★★★★
()
Ответ на: комментарий от geekless

Мне кажется, на кутешных еще отчетливее виднр. Может, потому, что я их чаще юзаю.

Ни в какие ворота, верно.

thesis ★★★★★
()
Ответ на: комментарий от thesis

Напиши тривиальный пример в десяток строк. У меня вначале подгружается содержимое каталога (как и обещали в документации: в отдельном thread, чтобы не было заморозки окна), после чего дергаю ползунок из начала в конец и обратно без всяких тормозов.

PayableOnDeath
()
Ответ на: комментарий от baverman

> Note: GObject Introspection is still in development - the first stable release is scheduled for release with GTK+ 3.

Как бы раньше вылезать из танка было бесполезно, или нет?

queen3 ★★★★★
()
Ответ на: комментарий от daemonpnz

Развитие - это не только добавление свистоперделок. ;)

Большая Советская Энциклопедия

Развитие — необратимый процесс, направленный на изменение материальных и духовных объектов с целью их усовершенствования.

«Выпиливание» - это никак не развитие, ибо не изменение, а уничтожение. ;)

amus ★★★
()
Ответ на: комментарий от Jihad

накатывать патчи для возвращения выпиленной неадекватными разрабами опции

cleartype Add ClearType-style behavior for sub-pixel hinting. Patch taken from Arch Linux

Её там никогда и не было. Просто для 1.8 патч включили в портаж, а для 1.10 все лежит в оверлеях, как когда-то было и для 1.8.

daemonpnz ★★★★★
()
Ответ на: комментарий от PayableOnDeath

Я не имел в виду тормоза при подгрузке, о коих я когда-то постил баг. Список файлов подгружен, скроллинг в трех упомянутых мной ФМ тормозит.

Методика: открываешь каталог, где всего дофига-дофига, делаешь вид в колонок 5-6 и мышкой таскаешь туда-сюда ползунок. Сравни Thunar | PCManFM и Dolphin | QtFM | Krusader.

thesis ★★★★★
()
Ответ на: комментарий от amus

Выпиливание устаревших вещей, чистка кода - это определенно изменение и развитие.

daemonpnz ★★★★★
()
Ответ на: комментарий от amus

«Выпиливание» - это никак не развитие, ибо не изменение, а уничтожение. ;)

Большая Советская Энциклопедия

Развитие

— необратимый процесс, направленный на изменение материальных и духовных объектов с целью их усовершенствования.

Boboms ★★
()
Ответ на: комментарий от thesis

Я не очень понимаю, что ты от меня хочешь. Я написал только что простой пример с использованием QFileSystemModel, собрал его, запустил и отписался о результатах. Разве это не есть подтверждение того, что проблема в самих указанных ФМ? А с тем, что она в них есть, я вроде и не спорил.

PayableOnDeath
()
Ответ на: комментарий от PayableOnDeath

Чувак. Теперь смотри сюда:

Я не очень понимаю, что ты от меня хочешь. Я написал только что простой пример с использованием QFileSystemModel, собрал его, запустил и отписался о тормозах. Разве это не есть подтверждение того, что проблема в Qt4? А с тем, что она есть и в ФМ, я вроде и не спорил.

thesis ★★★★★
()
Ответ на: комментарий от Jihad

> стандартный путь решения проблем у гномосеков - накатывать патчи для возвращения выпиленной неадекватными разрабами

Это вообще стандартный путь в линуксе...

queen3 ★★★★★
()
Ответ на: комментарий от thesis

Вот код, который я запускал. Каталог для проверки специально взял пожирнее. Извини, но под Linux сейчас не могу проверить.

#include <QtCore>
#include <QtGui>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QTreeView w;
    QFileSystemModel model;
    w.setModel(&model);
    QModelIndex index = model.setRootPath("C:/Windows/system32");
    w.setRootIndex(index);
    w.show();
    return a.exec();
}
PayableOnDeath
()
Ответ на: комментарий от baverman

> Вот, например, чего тебе бы хотелось в gtk3?

Поддержка цветовых профилей на уровне тулкита, а не несколькими уровнями выше (gnome-color-manager).

anonymous
()
Ответ на: комментарий от Deleted

Хм,

Оптимизация — модификация/изменение системы для улучшения её эффективности.

Так что мы уяснили, что удаление deprecated кода это есть оптимизация, т.е изменение, т.е развитие. Ч.Т.Д.

daemonpnz ★★★★★
()

Осталось дождаться, когда всякие PyGTK и wxWidgets перепишут для поддержки GTK3.

Vudod ★★★★★
()

Отлично, хорошо что gtk не отстает от qt

GoodwinLSD
()
Ответ на: комментарий от daemonpnz

С каких пор удаление deprecated кода - это оптимизация? Это всего лишь избавление от устаревших решений в пользу более современных, к скорости никакого отношения не имеющее.

PayableOnDeath
()
Ответ на: комментарий от queen3

Как бы раньше вылезать из танка было бесполезно, или нет?

В питоне gi работает уже около года.

baverman ★★★
()
Ответ на: комментарий от daemonpnz

Эффективность чего? Разработки что ли? Нет, ибо перед тем, как какой-то код стал deprecated вместо него был предложен другой, который все начали использовать уже тогда, а не в момент удаления.

PayableOnDeath
()
Ответ на: комментарий от baverman

У мну тема Nimbus. Посоветуй, пожалуйста, минималистичную темку для GTK.

Могут ли программы на GTK/GTK# самостоятельно переопределять параметры своего внешнего вида из кода, надо чтобы моя программа по дефолту по размерам не отличалось от минимализма в оффтопной ОС, пишу кроссплатформенное GUI, и гигантизм GUI на Linux не просто ужасает, но и просто мешает.

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от anonymous

> Так как теперь выглядит диалог открытия файлов?

Ждём в галерее...

queen3 ★★★★★
()
Ответ на: комментарий от PayableOnDeath

> То есть идейным гткрастам :)

ты кого козлом назвал?!

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.