LINUX.ORG.RU

Gtk+ 3 Roadmap

 , , ,


0

0

Список самых интересных возможностей будущего GTK 3, включая Contributor features и Wishlist

Запланированные

  • Полное offscreen рисование. Необходимо для анимации и эффектов за пределами компонентов
  • Удаление всех public полей из структур. Сделает поддержку ABI намного проще путем доступа только через функции
  • Независимость от разрешения, легкое масштабирование элементов графического интерфейса, включая шрифты и изображения
  • Иконки в полях ввода
  • Простая прозрачность для компонентов. Должно работать даже без XComposite
  • RGBA фон для компонентов

Contributor features

  • Контейнер с поддержкой анимации
  • Физика в графическом интерфейсе: кинетическая прокрутка, магнетизм, трение, отскок элементов, растягивание, затухание, смешивание, тени и другие оптические эффекты
  • Стили меток как в Mac
  • Throbber
  • Облегчение создания виджетов

Wishlist

  • Проективная трансформация компонентов

Многие из этих возможностей можно реализовать через другие библиотеки, то в GTK 3 они станут доступны out of the box. Список будет расширятся

Полный список читаем в подробностях.

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

★★★★★

Проверено: maxcom ()
Последнее исправление: maxcom (всего исправлений: 3)
Ответ на: комментарий от vertexua

В Debian Thunderbird уже из Ubuntu ... ((
и просто уже глюки достали с старыми учетными записями.
Год пробовал приручить себя к claws-mail - не то.
В Evolution сразу и очень понравился импорт-експорт и архивирование
почты и пр.

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

> Чтобы цвета диалога были такие же как и в гимпе на принтскрине этого самого диалога. В гимпе с подключёным цветовым профилем. То есть, я говорю про то, что все эти преобразования должны быть не на уровне приложений, а на уровне самого гтк.

И получится совершенно ненужный костыль. Покури vcgt :)

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

>отскок и трение - особенно необходимы в интерфейсе! а то, что-то курсор легко бегает, собака...

Теперь гномеры будут гоняться курсором за отскакивающими и кублящимися в кучу кнопочками, а процесс работы с приложением будет похож на занимательную игру «убей тапком таракана»

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

у меня сегодня настроение хорошее, поэтому продолжу тебя кормить

payableondeath@linux-mfxu:~> zypper search qt3
С | Имя                          | Заключение                                                             | Тип                   
--+------------------------------+------------------------------------------------------------------------+-----------------------
  | aqbanking-ofx-qt3            | Library for Online Banking Functions and Financial Data Import/Export  | пакет                 
  | aqbanking-ofx-qt3-debuginfo  | Debug information for package aqbanking-ofx-qt3                        | пакет                 
  | aqbanking-qt3                | Library for Online Banking Functions and Financial Data Import/Export  | пакет                 
  | aqbanking-qt3-debuginfo      | Debug information for package aqbanking-qt3                            | пакет                 
  | aqbanking3-ofx-qt3           | Aqbanking tools for Qt3                                                | пакет                 
  | aqbanking3-ofx-qt3-debuginfo | Debug information for package aqbanking3-ofx-qt3                       | пакет                 
  | aqbanking3-qt3               | Aqbanking tools for Qt3                                                | пакет                 
  | aqbanking3-qt3-debuginfo     | Debug information for package aqbanking3-qt3                           | пакет                 
  | aqbanking4-ofx-qt3           | Aqbanking tools for Qt3                                                | пакет                 
  | aqbanking4-ofx-qt3-debuginfo | Debug information for package aqbanking4-ofx-qt3                       | пакет                 
  | aqbanking4-qt3               | Aqbanking tools for Qt3                                                | пакет                 
  | aqbanking4-qt3-debuginfo     | Debug information for package aqbanking4-qt3                           | пакет                 
  | dbus-1-qt3                   | QT3/KDE bindings for D-Bus                                             | пакет                 
  | dbus-1-qt3                   | QT3/KDE bindings for D-Bus                                             | пакет с исходным кодом
  | dbus-1-qt3-debuginfo         | Debug information for package dbus-1-qt3                               | пакет                 
  | dbus-1-qt3-debugsource       | Debug sources for package dbus-1-qt3                                   | пакет                 
  | dbus-1-qt3-devel             | Developer package for QT3/KDE bindings for D-Bus                       | пакет                 
  | dbusxml2qt3                  | Generate Qt3-classes from DBus-introspection data                      | пакет                 
  | dbusxml2qt3-debuginfo        | Debug information for package dbusxml2qt3                              | пакет                 
  | libdbus-1-qt3-0              | Qt3 DBus Bindings                                                      | пакет
  | libdbus-1-qt3-0              | Qt3 DBus Bindings                                                      | пакет с исходным кодом
  | libdbus-1-qt3-0-debuginfo    | Debug information for package libdbus-1-qt3-0                          | пакет
  | libdbus-1-qt3-0-debugsource  | Debug sources for package libdbus-1-qt3-0                              | пакет
  | libdbus-1-qt3-0-devel        | Development files for libdbus-1-qt3                                    | пакет
  | libpoppler-qt3-devel         | PDF rendering library - Qt3 Wrapper                                    | пакет
i | libqt4-qt3support            | C++ Program Library, Core Components                                   | пакет
  | libqt4-qt3support-debuginfo  | Debug information for package libqt4-qt3support                        | пакет
i | qt3                          | A library for developing applications with graphical user interfaces   | пакет
  | qt3                          | A library for developing applications with graphical user interfaces   | пакет с исходным кодом
  | qt3-debuginfo                | Debug information for package qt3                                      | пакет
  | qt3-debugsource              | Debug sources for package qt3                                          | пакет
  | qt3-devel                    | Include Files and Libraries mandatory for Development                  | пакет
  | qt3-devel-debuginfo          | Debug information for package qt3-devel                                | пакет
  | qt3-devel-doc                | Qt 3 Development Kit                                                   | пакет
  | qt3-devel-doc                | Qt 3 Development Kit                                                   | пакет с исходным кодом
  | qt3-devel-examples           | Programming Examples for Qt 3                                          | пакет
  | qt3-devel-examples-debuginfo | Debug information for package qt3-devel-examples                       | пакет
  | qt3-devel-tools              | User Interface Builder and other tools (designer, assistant, linguist) | пакет
  | qt3-devel-tools-debuginfo    | Debug information for package qt3-devel-tools                          | пакет
  | qt3-extensions               | Qt3 Extensions                                                         | пакет
  | qt3-extensions               | Qt3 Extensions                                                         | пакет с исходным кодом
  | qt3-extensions-debuginfo     | Debug information for package qt3-extensions                           | пакет
  | qt3-extensions-debugsource   | Debug sources for package qt3-extensions                               | пакет
  | qt3-man                      | Qt 3 Man Pages                                                         | пакет
  | qt3-mysql                    | MySQL Plug-In for Qt                                                   | пакет
  | qt3-mysql-debuginfo          | Debug information for package qt3-mysql                                | пакет
  | qt3-postgresql               | A PostgreSQL Plug-In for Qt                                            | пакет
  | qt3-postgresql-debuginfo     | Debug information for package qt3-postgresql                           | пакет
  | qt3-sqlite                   | SQLite Database Plug-In for Qt                                         | пакет
  | qt3-sqlite-debuginfo         | Debug information for package qt3-sqlite                               | пакет
  | qt3-unixODBC                 | A UnixODBC Plug-In for Qt                                              | пакет
  | qt3-unixODBC-debuginfo       | Debug information for package qt3-unixODBC                             | пакет
PayableOnDeath
()
Ответ на: комментарий от ramon13666

> Теперь гномеры будут гоняться курсором за отскакивающими и кублящимися в кучу кнопочками, а процесс работы с приложением будет похож на занимательную игру «убей тапком таракана»

Конечно, ведь KDE золотая середина. В ней есть плазма и она рулит своей мультимедийностью и плюшками. А если у другого DE будет больше анимации, то это слишком. Ибо KDE - эталон )))

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

единая человеческая база контактов

Поподробнее пожалуйста. А с чем единая? Может перейду...

ну к примеру вбиваешь ты в поле «To:» не icannotrememberthisemail647149@gmail.com, а «Петров Иван» (дополнение в комплекте)

у меня настроена синхронизация контактов с моей Нокией (Симбиан), так что я имею действительно единый список контактов с номерами телефонов и емейлами

ferhiord ★★
()

Ну что я могу сказать? Прикольно!

hibou ★★★★★
()

А кто знает, каким образом в GIMP'е добились возможности расстановки виджетов «by Drag-n-Drop»? Такую фичу бы в GTK тоже добавить. Я немного почитал как там и чего у GTK делается и понял, что это делается довольно-таки непросто(я неправ?). И я бы предложил сделать такие виджеты-контейнеры виджетов(извините за каламбур). Чтобы можно было с такой же простотой писать программы не с монолитным интерфейсом, а тупо со сборником виджетов, а затем мог бы расставить всё так как ему хочется. Эдакий принцип KISS чтоли...

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

> И получится совершенно ненужный костыль.

Объясни, почему ненужный? Я говорю о переносе некоторого функционала из приложений на низлежащий уровень. В данном случае — в гтк. Тогда я смогу написать самое примитивное графическое приложение с поддержкой цветовых профилей просто вставив в свой код нечто похожее на:

gtk_color_profile_select(«Monitor»);
gtk_show_widget(widget);

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

> Покури vcgt

И как при таком подходе мне вывести картинку с цветовым профилем печатного станка, чтобы при этом все цвета интерфейса не поплыли?

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

Это вариации на тему «слива» уже такие ?

Покажи мне qt2 времен gtk1 шутник в дистрах сегодня
http://www.kde.org/announcements/announce-2.2.2.php

А этот свой списочек через годик покажешь ))

И да, так какие у тебя еще вопросы именно к gtk1 по сути ?

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

Такое делается все без проблем. Без проблем, но прогать надо.

Но это еще не все. Есть

GtkSocket — Container for widgets from other processes

Вы запускаете ДРУГОЕ приложение и оно встраивает свой виджет внутрь окна вашего приложения. Плагин в виде процесса. Упал плагин, ваша программа невозмутимо продолжила работу.

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

Да нет, я вовсе не собираюсь поднимать холивар Гном/КДЕ или доказывать гениальность последнего. Просто представил себе эти эффекты как позволяет воображение. Мне показалось это забавным.

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

Вообще считаю, что плюшки очень положительно сказываются на работе. Они позволяют оператору расслабиться и поднять настроение => повышается качество работы.

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

> А кто знает, каким образом в GIMP'е добились возможности расстановки виджетов «by Drag-n-Drop»? Такую фичу бы в GTK тоже добавить.

Наверное очень просто: GTK == GIMP ToolKit. Всё что есть в гимпе делается через гтк (в части отображения). Правда я не понял о какой расстановке виджетов идёт речь.

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

И если эту фичу вкрутят, например, в какой-нибудь браузер - получим очередного ослика с дырами^Wангарными воротами для вирусов =)

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

> Что-то мне это здорово напоминает... А! Вспомнил! актив-Х и КОМ, вот!

Не. Gtk такое не умеет. Только Qt с ActiveX и COM дружат. А GtkSocket использует XEmbed.

vertexua ★★★★★
() автор топика

А вообще - одного хочу от ГТК: нормальных диалогов. Ну невозможно с этими обрубками работать, как ни старался привыкнуть - невозможно!

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

vertexua:

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

а я о том, чтобы добавить виджет или другую систему которая позволяет запаковать n виджетов в готовый виджет, который даст пользователю весь «энтерпрайз». ибо по сути такие вещи вполне можно универсализировать и стандартизировать.

anonymous (*) (23.12.2009 22:35:35):

вспомните GIMP. Там есть всяческие панели красок, заливок, инструментов рисования и т.д. и есть два вертикальных окошка, в которые всё это можно скомпановать по нужде пользователя для удобной работы. простым перетаскиванием.

В-общем, это просто предложение вставить известную фичу в библиотеку, которое возможно многие разработчики оценили бы...

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

>> Не. Gtk такое не умеет. Только Qt с ActiveX и COM дружат. А GtkSocket использует XEmbed.

Дружит, но только на венде. Да он ещё много с чем дружит, это таки фреймворк, а ГТК сам по себе - набор виджетов. Чем-то это конечно хорошо, а чем-то - нет. В кутях даже ВебКит встроенный есть, очень хорошо интегрированный, что является весьма и весьма удобным =) (как тебе, например, доступ к объектам твоей С++ программы прям из JavaScriptа отображаемой в вебките странички?)

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

> И если эту фичу вкрутят, например, в какой-нибудь браузер - получим очередного ослика с дырами^Wангарными воротами для вирусов =)

Ох, какой Gtk плохой... Было б такое в Qt, вы бы ругались? Наверное нет. Но я цитирую доки Gtk

The communication between a GtkSocket and a GtkPlug follows the XEmbed protocol. This protocol has also been implemented in other toolkits, e.g. Qt, allowing the same level of integration when embedding a Qt widget in GTK or vice versa.

В-общем, это просто предложение вставить известную фичу в библиотеку, которое возможно многие разработчики оценили бы...

Такое где то есть? Я просто не понимаю наверное что точно вы имеете ввиду. Если есть, хочу посмотреть. Тогда оценю. Не помню ничего такого в GIMP. А где там?

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

>> вспомните GIMP. Там есть всяческие панели красок, заливок, инструментов рисования и т.д. и есть два вертикальных окошка, в которые всё это можно скомпановать по нужде пользователя для удобной работы. простым перетаскиванием.

В-общем, это просто предложение вставить известную фичу в библиотеку, которое возможно многие разработчики оценили бы...

Кстати, КДЕ в дополнение к набору стандартных виджетов Qt добавляет кучу своих - и файлбраузеры, и панели с красками, и прочий хлам (вон Marble добавляет в панель виджетов Qt Designerа вполне себе реальный глобус с картами). Это не оно?

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

>> Такое где то есть? Я просто не понимаю наверное что точно вы имеете ввиду. Если есть, хочу посмотреть. Тогда оценю. Не помню ничего такого в GIMP. А где там?

Да, есть, я чуть выше написал. Это оно, или я таки неправильно понял?

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

> Кстати, КДЕ в дополнение к набору стандартных виджетов Qt добавляет кучу своих - и файлбраузеры, и панели с красками, и прочий хлам (вон Marble добавляет в панель виджетов Qt Designerа вполне себе реальный глобус с картами). Это не оно?

Не КДЕ тащить не предлагайте. Я ведь Gnome не тащу. А ручки тянутся к Gnome-VFS и GConf.

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

>> Эх...

http://trac.webkit.org/wiki/ApplicationsGtk

Да, я знаю, я вот не знаю только, можно ли так же просто и удобно интегрировать WebKit в приложение в ГТК? Например - я могу получить доступ к объекту из JavaScript и наоборот - вызвать JavaScript-функцию на странице из кода приложения?

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

>> Не КДЕ тащить не предлагайте. Я ведь Gnome не тащу. А ручки тянутся к Gnome-VFS и GConf.

А что, разве подобные «контейнеры» в ГТК не будут требовать обязательного наличия либы, экспортирующей этот контейнер? Просто в Qt это уже реализовано..

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

не знаю, не совсем понял что там в кт-дизайнере.

в гимпе откройте главном окне меню => панели => консоль ошибок. появится окно. если щёлкнуть на надпись «консоль ошибок»(не на заголовок окна), то можно переташить консоль ошибок в любую панель или во вкладку на панели. я говорил об этом. Но только чтобы расстановка была более гибкой(ну там по вертикали, по горизонтали и т.п.)

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

Если мы говорим о WebKit, то я как минимум нашел

void webkit_web_view_execute_script (WebKitWebView *web_view, const gchar *script);

Там еще доков много было. Обратное не искал. Или есть уже, или скоро будет. WebKit слава Богу один на Gtk и Qt.

А вот если мы говорим о Gecko, то там все хорошо.

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

Сейчас они требуют некоторое количество кода, который довольно непросто написать если ты не отец в гтк.

Конечно, может стоит использовать так называемый «шаблон программирования», тоесть просто написать такую программу и выставить на всеобщее обозрение и использование в начинаниях, но наверно было бы приятнее и удобние иметь это в самом GTK

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

> если софта на нем нет, зачем он нужен в репах?

И когда про qt3 продвинутые такое будут говорить ?
Делаем ставки.)

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

> А что, разве подобные «контейнеры» в ГТК не будут требовать обязательного наличия либы, экспортирующей этот контейнер? Просто в Qt это уже реализовано..

Либа, KDE и GNOME - три разные вещи

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

>> а я о том, чтобы добавить виджет или другую систему которая позволяет запаковать n виджетов в готовый виджет, который даст пользователю весь «энтерпрайз». ибо по сути такие вещи вполне можно универсализировать и стандартизировать.

Тут понимаешь, такое дело. А что будет представлять из себя этот самый «виджет»? Есть два варианта: 1) .soшка. С исходниками или без. Так это - банальный плагин, есть сто лет в обед как, вон смотри, выше написал 2) Программа (пакет), которая для отображения «виджета» и всего его функционала запускает отдельный (являющийся по сути полноценной этой программой) процесс, который ведёт отрисовку в указанный контейнер, и управляется посредством сообщений по какой-нибудь командной шине. Так это, по сути, КОМ и активХ, который в принципе нафик не нужен.

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

>> в гимпе откройте главном окне меню => панели => консоль ошибок. появится окно. если щёлкнуть на надпись «консоль ошибок»(не на заголовок окна), то можно переташить консоль ошибок в любую панель или во вкладку на панели. я говорил об этом. Но только чтобы расстановка была более гибкой(ну там по вертикали, по горизонтали и т.п.)

А блин, я неправильно видимо понял. Так это ж доки, они тыщу лет уже существуют, ровестники динозавров и мамонтов.

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

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

вменяемые люди при разработке будут использовать свежий фреймворк, как ты тут не крутись

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

>> void webkit_web_view_execute_script (WebKitWebView *web_view, const gchar *script);

Там еще доков много было. Обратное не искал. Или есть уже, или скоро будет. WebKit слава Богу один на Gtk и Qt.

Ага, оно. Значит - можно. Интересно вот только обратное, тоже достаточно полезная штука.

А вот если мы говорим о Gecko, то там все хорошо.

Угу, отличная штука, только тяжеловат слегка.

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

> А блин, я неправильно видимо понял. Так это ж доки, они тыщу лет уже существуют, ровестники динозавров и мамонтов.

Ну если доки, то понятно. Это уже давно. Причем док по тому же GtkSocket. Будем иметь фишку типо отсоедияющихся табов в Chrome в разных процессах. (не нужно, да?)

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

> Ага, оно. Значит - можно. Интересно вот только обратное, тоже достаточно полезная штука.

Ну GObject уже javascriptом заскриптовали. Вот не знаю как в рамках WebKit

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

>> Либа, KDE и GNOME - три разные вещи

А что есть KDE и GNOME, как не набор либ?

Для вызова, например, палитры с красками - необязательно тащить все либы ДЕ, достаточно подтащить либу, которая его экспортирует.

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

> Для вызова, например, палитры с красками - необязательно тащить все либы ДЕ, достаточно подтащить либу, которая его экспортирует.

Конечно вы правы. Но как то оно тащит, и тащит... Особенно друзья пакет менеджеры

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

>> Ну GObject уже javascriptом заскриптовали. Вот не знаю как в рамках WebKit

М-да, видимо там пилят аналог QtScript: тоже JavaScript (точнее - ECMAScript), которым можно скриптовать Qtшные объекты. Удобная штука, скажу я вам. Вовсю у себя использую. В сочетании с подгружаемыми XMLными УИшками.

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

> в гимпе откройте главном окне меню => панели => консоль ошибок. появится окно. если щёлкнуть на надпись «консоль ошибок»(не на заголовок окна), то можно переташить консоль ошибок в любую панель или во вкладку на панели. я говорил об этом. Но только чтобы расстановка была более гибкой(ну там по вертикали, по горизонтали и т.п.)

В гимпе, не поверишь, это сделано через гтк. Так что всё уже есть. Ну, возможно, не так гибко как тебе хочется.

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

>> Конечно вы правы. Но как то оно тащит, и тащит... Особенно друзья пакет менеджеры

Если пишешь прогу, и в ней необходим виджет, реализуемый, например, какой-то либой от КДЕ (или от ГНОМЕ, или от ХФЦЕ - пофик) - можно просто собрать эту либу, и поставлять в дистрибутиве своей программы. Но это кагбэ не UNIX-way. UNIX-way требует присутствия всего данного пакета, конкретной версии, в системе. А тот пакет, в свою очередь, тянет по зависимостям ещё пакеты... Тут уж ничего не поделаешь. Тут в любом случае если нужна какая-то хреновина - прийдётся тянуть саму хреновину, и все её зависимости. Ну, либо брать исходник хреновины (править, или не править...), и опять таки поставлять в дистрибутиве своей программы. Тоже не юникс-вей. Так что то, что что-то пытается вытянуть за собой половину чего-то другого - всего лишь последствия UNIX-way, тут ничего не изменишь, не меняя идеологию.

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

> Объясни, почему ненужный?

Потому что цветокоррекция по профилю должна выполняться глобально, а не по воле одного несчастного тулкита :)

И как при таком подходе мне вывести картинку с цветовым профилем печатного станка, чтобы при этом все цвета интерфейса не поплыли?

Начнём с того, что профиль печатающего устройства скорее всего будет цмиковым. Это автоматически означает, что тебе придётся не просто реализовать

gtk_color_profile_select(«Monitor»); gtk_show_widget(widget);

Тебе ещё придется добавлять дохренищи параметров вроде типа цветопередачи, BPC и прочей мутотени, которая в интерфейсе в принципе не нужна.

Всё что нужно для нормальной публикации цветного скриншота — профилированный монитор, вменяемая система DTP и стиль оформления в спокойных светлых тонах тонах вроде Glossy, упокой господь его gtkrc.

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