LINUX.ORG.RU
ФорумTalks

[gui][и всё-таки она вертится] FOX toolkit, adie


0

1

В продолжение треда. Наткнулся совершенно случайно на тулкит FOX и редактор adie. Ну то есть я про FOX и раньше слышал краем уха, но посмотреть не было повода.

Про его внутренности говорить не буду, так как не в курсе — просто несколько чисто внешних наблюдений:

* Диалог открытия файлов. Практически полностью скопирован из винды — хорошие идеи нужно нагло копировать, всё правильно. Довольно гибко настраиваемый режим просмотра, сортировка, простейшие файловые операции, букмарки. Не как кдешный, конечно, но и отнюдь не убогий by design gtk-шный file chooser, все фичи которого — это на самом деле задокументированные баги.

* Диалог выбора цвета. Выбор по цветовому кругу. Выбор по значениям RGB, HSV и CMY ползунками или вводом точных значений. Выбор по палитре стандартных цветов. Выбор/сохранение цветов в пользовательскую палитру из 24-х элементов. Возможность взять цвет «пипеткой» прямо с экрана. Единственное, чего не хватает — возможности ввести цвет в виде значения #RRGGBB.

* В диалоге выбора шрифта можно фильтровать список по character set, width, pitch и scalable.

Казалось бы, неужели так сложно в дизайне стандартных диалогов: не делать хуже, чем есть в уже существующих реализациях. Вот почему у разработчика FOX toolkit это получилось, а у всей толпы авторов gtk - нет?

Текстовый редактор adie - отдельная песня. Боковая панель с деревом файлов. Подсветка синтаксиса. Персистентные букмарки. Поиск с регэкспами. Куча мелких удобств вида «открыть выделенное», «вставить из файла/извлечь в файл», «goto (..», «goto ..)», «select (..)», запоминание позиции в файлах, «search and replace history is stored persistently» и т.п. Разумеется, почти всё это вроде как очевидно и должно быть в любом уважающем себя редакторе. Но почему, блджад, этого нет в редакторах «для простого пользователя»?!

Быстрый. Реально, зараза, быстрый gui. Между двумя окнами редактора переключение происходит мгновенно, я как ни старался, не смог обнаружить никакой задержки отрисовки. Всё остальное — открытие диалогов, реакция на ввод и т.п. — тоже реактивно. Глянул еще пару софтин на этом тулките, но у них отрисовка подтормаживает, не так сильно, как в приложениях на gtk, но подтормаживает. Возможно, кривовато написаны. А этот редактор - непосредственно от автора тулкита, показывает нам, что тулкит на самом деле реально быстрый.

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

Жручесть памяти пониженная (в редакторе открыто 2 окна, в одном из которых - html главной страницы ЛОРа) :

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
vadim    10448  1.5  1.3  33412 17844 pts/7    S+   19:36   1:08 adie
При том что на самом деле кучу места там просто сожрал libGLcore:
vadim@host3:~$ pmap -q 10448 | grep -v ':' | awk '$4 != "[" {print $2 " " $4}' | sort -rh | head -n5
11960K /usr/lib/libGLcore.so.173.14.30
3092K /usr/lib/libFOX-1.6.so.0.0.43
2048K /usr/lib/locale/locale-archive
1588K /usr/lib/libGLcore.so.173.14.30
1404K /lib/libc-2.13.so

После открытия 5-мегабайтного html стало так:

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
vadim    10448  1.5  2.2  43988 28616 pts/7    S+   19:36   1:19 adie
Для сравнения: на этом же файле gedit и emacs отъедают больше сотни метров и наааачинааааюююют туууупииить.

Разумеется, есть мелкие баги. Т.к. и девелоперская, и пользователськая база у проекта маленькая, это понятно и простительно. Баги можно поправить, недореализованное - реализовать, были бы разработчики.

Что характерно, этот редактор обычно даже не упоминается в статьях типа «обзор 10-ти лучших редакторов для linux» и подобных.

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

>Практически полностью скопирован из винды — хорошие идеи нужно нагло копировать, всё правильно. Довольно гибко настраиваемый режим просмотра, сортировка, простейшие файловые операции, букмарки. Не как кдешный, конечно, но и отнюдь не убогий by design gtk-шный file chooser, все фичи которого — это на самом деле задокументированные баги.

Ну толсто же. Кутешно-кедерастские диалоги уже научились открывать файлы по именам, начинающимся с «~/»? Вот в них у меня что-то оно не работает, а вот в гткшном - на ура. Дух Unix жив только в GTK!

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

> Дух Unix жив только в GTK!

После вброса такой толстоты земля содрогнулась от Британии до Камчатки, а в Японии случился переполох.

geekless ★★ ()

> FOX toolkit

у него нет и не было будущего, если размер и скорость критичны - есть FLTK, иначе лучше брать qt/wx/gtk

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

> По причинам?

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

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

>Кутешно-кедерастские диалоги уже научились открывать файлы по именам, начинающимся с «~/»?

Можно конкретный пример? У меня почему-то всё работает так, как я ожидаю.

Yareg ★★★ ()

А вообще оно хоть живо? Как с биндингами для пихтона?

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

задели за живое? то что диалог открытия файлов гтк убог - общеизвестный факт

memnek ()

Да. Нормальный тулкит. Ещё xfe на нём написан - легкий, быстрый и очень хороший файловый менеджер без привязки к DE.

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

>уже научились открывать файлы по именам, начинающимся с «~/»?

УМВР

Дух Unix жив только в GTK!


Это ты про реестр и гнум3, где всё прибито гвоздями друг к другу? :)

AX ★★★★★ ()

Редактор прикольный, чем то http://www.sublimetext.com/2 напоминает, только последний проприетарен и тормознут.
Есть Qt и FLTK на тех же плюсах, так что FOX несколько велосипеден, но приятен.

Valeg ★★★ ()

Когда-то начинал делать перевод руководства по FOX Toolkit:
http://php.kirovnet.ru/download/FOX-Tutorials-ru.pdf

(эта библиотека для тех, кому нужно делать простые коммерческие программки с GUI, под LGPL)

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

>Это ты про реестр и гнум3, где всё прибито гвоздями друг к другу? :)

ни разу не замечал, что «реестр и гнум3» гвоздями прибиты к gtk.

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

>Дух Unix жив только в GTK!
Если вспомнить, что изначально GTK был набором костылей, написанным для написания графического редактора...

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

>Если вспомнить, что изначально GTK был набором костылей, написанным для написания графического редактора...

Если вспомнить, что изначально Unix была набором костылей, написанным для запуска игрушки Томпсона на PDP-7, всё сходится

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

Всё субъективно. Я нахожу убогим диалог открытия файлов в qt/kde

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

> Если вспомнить, что изначально Unix была набором костылей, написанным для запуска игрушки Томпсона на PDP-7, всё сходится

Я ждал этого коммента :D

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

А что сразу реестр и гнум3? Мы вроде только про графический тулкит говорим.

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

А, ну это стандартный кутешный диалог, его обычно нечасто видно. В кдеешном всё работает. По идее же ~ является фичей конкретных приложений (баша в том числе), и вовсе не обязана работать везде. Но да, для себя можешь считать минусом...

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

> Я нахожу убогим диалог открытия файлов в qt/kde

А не надо «находить». Можно просто достать и сравнить.

Сортировка
qt: имя, размер, дата, тип, а также режим «сначала каталоги»
gtk: имя, размер, дата

Вид
qt: 4 режима, 2 варианта расположения иконки относительно подписи, вкл/выкл превьюшек на месте иконок
gtk: унылая ненастраиваемая таблица

Отдельные превьюшки:
qt: включабельно
gtk: только по воле конкретного приложения

Букмарки, боковая панель
qt: отдельно букмарки и отдельно панель Places, отображение обеих фич включабельно/отключабельно
gtk: панель Places сбоку

Панель Places:
qt: можно скрыть часть девайсов, можно размонтировать девайс
gtk: можно скрыть только букмарки, но не девайсы; размонтировать девайс тоже нельзя

Файловые операции:
qt: создание каталога, удаление в корзину, открытие каталога в файловом менеджере, вызов окна свойств и прав доступа файла
gtk: создание каталога

Удобство навигации при помощи мыши:
qt: кнопки вперёд/назад/вверх/обновить + выпадающие меню в файловом пути со списком подкаталогов того каталога, по которому щелкнул
gtk: унылая панель из кнопок, символизирующих текущий путь

Это при том, что я kde, вообще-то, не пользуюсь. А КДЕшники наверное еще различий назовут.

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

Ну или с учетом замечания в комменте выше, s/qt/kde/ , т.к. написанное справедливо для kdeшного диалога

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

Не лень было?

>а также режим «сначала каталоги»

У меня в gtkшных диалогах они и так сначала

qt: 4 режима, 2 варианта расположения иконки относительно подписи, вкл/выкл превьюшек на месте иконок

И что, часто ты их меняешь? Только честно. Или тебе просто спокойнее, потому что они есть? И вообще, часто пользуешься диалогами открывания? У меня в 90% случаев это C-x C-f в емаксе. Это так, к слову

gtk: унылая ненастраиваемая таблица

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

qt: отдельно букмарки и отдельно панель Places, отображение обеих фич включабельно/отключабельно

gtk: панель Places сбоку

Букмарки там же, только секцией ниже

удаление в корзину

Куда-куда? :) Это в этих ваших DE, у меня вот нет никаких корзин

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

Зачем тебе это всё? Ты лезешь файл открывать/сохранять.

gtk: унылая панель из кнопок, символизирующих текущий путь

Она удобная. Можно одним щелчком на 4 уровня вверх перескочить. И потом оттуда - на 3 уровня обратно. Qtшный так умеет? Эту фичу даже в винду перетащили потом. Ну, в общем то, раз оно есть уже и в винде, кедерасты скоро аналогичное наклепают, полюбас.

Меню выпадает при авто-комплите. А в дополнение к панели кнопок есть пимпа Location, которая позволяет путь от руки написать.

Вывод - ничем кутешный диалог не лучше

yoghurt ★★★★★ ()
Ответ на: Не лень было? от yoghurt


У меня в gtkшных диалогах они и так сначала


А теперь попробуй выключить этот режим.

И что, часто ты их меняешь? Только честно. Или тебе просто спокойнее, потому что они есть?


Часто ты меняешь тему оформления виджетов и наборы иконок? Или тебе просто спокойнее, потому что они есть и настраивабельны? Может лучше вкопилить одну тему в гтк, а остальные объявить deprecated? Это будет точно соответствовать стилю мышления gtk-шных фанбоев.

И вообще, часто пользуешься диалогами открывания? У меня в 90% случаев это C-x C-f в емаксе.


Тролль запутался в показаниях, ок.

по-больше, - справа


А ты включи этот режим. Включи его в открытом диалоге, а не в сорцах приложения.

Куда-куда? :) Это в этих ваших DE, у меня вот нет никаких корзин


Уныло. Кури fd.o-шную спецификацию на корзину и список её реализаций. Потом будешь рассказывать сказки про привязку к DE.

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

Зачем тебе это всё? Ты лезешь файл открывать/сохранять.


Пациент не нашел ничего похожего в gtk и решил прибегнуть к лучшему аргументу юного ЛОРовца: «не нужен». Слив зассчитывать?

Она удобная. Можно одним щелчком на 4 уровня вверх перескочить. И потом оттуда - на 3 уровня обратно. Qtшный так умеет?


Открой и посмотри.

Эту фичу даже в винду перетащили потом.


Охщи. Если сравнить «эту фичу» в gtk и винде, то диалог в gtk — Лада Калина, в то время как в винде — крутейший Мерседес.

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


В кде давно уже сделали выпадающие списки подкаталогов для удобной мышиной навигации, о чем я уже упоминал в предыдущем комменте, мой подслеповатый друг. Теперь посмотрим, сколько времени потребуется, гткрастам, чтобы осилить реализовать эту фишку у себя. Вполне вероятно, что как и в случае с другими неслучившимися доработками file chooser, это время заведомо превышает рассчетное время жизни gtk как живого проекта, «полюбас».

А в дополнение к панели кнопок есть пимпа Location, которая позволяет путь от руки написать.


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

Вывод - ничем кутешный диалог не лучше


Вывод — ты невероятно упитанный тролль.

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

>А теперь попробуй выключить этот режим.

Зачем?

Часто ты меняешь тему оформления виджетов и наборы иконок? Или тебе просто спокойнее, потому что они есть и настраивабельны? Может лучше вкопилить одну тему в гтк, а остальные объявить deprecated?

А это-то здесь причём? Отвечая на вопрос - вообще не менял, у меня сейчас дефолтная Raleigh

Тролль запутался в показаниях, ок.

А где я говорил, что _активно юзаю_ гткшные диалоги? Это всё твоё воображение :)

А ты включи этот режим. Включи его в открытом диалоге, а не в сорцах приложения.

Зачем его включать там, где он не нужен? Там, где надо, он есть. В гимпе при открытии есть, в фаерфоксе, при, например, аплоадинге на омплдр, тоже был.

Пациент не нашел ничего похожего в gtk и решил прибегнуть к лучшему аргументу юного ЛОРовца: «не нужен»

Ты на вопрос не ответил

Открой и посмотри.

В скриншоте выше у меня там какой-то неюзабельный дурацкий раскрывающийся список? Это и есть оно?

Охщи. Если сравнить «эту фичу» в gtk и винде, то диалог в gtk — Лада Калина, в то время как в винде — крутейший Мерседес.

Ты что-то перепутал

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

А нафига она нужна в gtkшном диалоге? Там уже есть клевый кнопочный переключатель, а этому раскрывающемуся уродству нет пути

yoghurt ★★★★★ ()

Нетормозящий тулкит на плюсах? Заинтересовался) Не думал, что такое возможно. // Далеко не фанат C++, C+GObject решают.

byss ()

Не знаю как сейчас, а раньше проектом FOX Toolkit руководил феерический ушлёпок. Не знаю, кому как, но мне кажется существенной адекватность руководителя проекта, поскольку это накладывает отпечаток на весь проект.

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

> Заинтересовался) Не думал, что такое возможно.

FLTK же - быстрей него кроссплатформенного тулкита вроде как и нет

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

Есть - Tk, а сильно ли востребованы клоны Tk на плюсах и еще без биндингов ЯП ? - Вот это еще большой вопрос.

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

> Есть - Tk

фанатики такие фанатики :) Tk медленнее, если не верите - можно проверить, придумайте бенчмарк - я напишу вариант на FLTK

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

> вперед, пиши:

и что ты там мерять собрался?

«быстро» это комплексное понятие.))


о как, и по каким параметрам Tk быстрее?

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

из «Есть - Tk» ты, и совсем не фанатик, вывел некие параметры быстродействия, и усомнился в них.
Вот я и выбрал не академическую херню, изобразите аналог ))

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

> Вот я и выбрал не академическую херню, изобразите аналог ))

такой же пример с текстовым редактором есть в стандартных примерах FLTK, и расписывается в документации, вам просто хочется посмотреть как он выглядит?

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

Ну раз вы тут лупите пяткой себя, то может у вас есть уже готовые результаты тестов ?
Зачем томить зрителей ? ))

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

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

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

> фанатики такие фанатики :) Tk медленнее, если не верите - можно проверить, придумайте бенчмарк - я напишу вариант на FLTK

так и запишем : это был выброс не_фантика и к тому же еще не_хама.))

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

> так и запишем : это был выброс не_фантика и к тому же еще не_хама.))

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

П.С. интересно - все идиоты всегда ставят две закрывающие скобки в конце предложений, или он такой уникальный

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

> интересно - все идиоты всегда ставят две закрывающие скобки в конце предложений, или он такой уникальный

обычно, это беспокоит только определенный контингент.

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

> обычно, это беспокоит только определенный контингент.

что вы - я просто интересуюсь, а беспокоить это должно только психиатров, хотя вы, конечно же, в курсе

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

ps: ты почему-то напоминаешь одного Жлобенка, что не может и двух слов связать без зуботычины.
Придется таки тебя запихнуть в игнор, так как могу не сдержаться
и уподобится твоей жлобской манере общаться. Увы ))

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

> ты почему-то напоминаешь одного Жлобенка, что не может и двух слов связать без зуботычины.

если люди с вами так разговаривают - не обязательно в этом виноваты именно/только они

Придется таки тебя запихнуть в игнор

Увы ))



и вопрос о скобках останется нераскрытым - это действительно грустно

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

> Не знаю как сейчас, а раньше проектом FOX Toolkit руководил феерический ушлёпок.

В чем это выражалось?

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

> Tk

Кстати, где-нибудь есть тесты производительности тулкитов? Сходу не нагуглил.

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

Ну это довольно мутная тема
собирать можно статически или динамически, и с разными опциями - будут совсем разные результаты (ну как для tk - это точно).
С разными ЯП и плюс разное качество биндингов, возможностей самих тулкитов.
Тут будет много субъективного.
А в конечном итоге, все может упрется в стабильность, качество реализации, доки , инфраструктуру, поддержку, проработанные и проверенные годами api, кроссплатформенность, ...




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

> ede

Судя по всему, глючная, ненужная фигня. Панелек, треев и оконных менеджеров, в том числе маложрущих, понаделано уже over 9000.

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

> Ну это довольно мутная тема

только для вас - есть вполне объективные параметры вроде скорости отрисовки примитивов, создания/удаления компонентов гуя, скорости обработки событий

А в конечном итоге, все может упрется в стабильность, качество реализации, доки , инфраструктуру, поддержку, проработанные и проверенные годами api, кроссплатформенность


ну тут Qt во все поля, но к скорости это отношения не имеет

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