LINUX.ORG.RU

GUI в общем и Gtk в частности. Накладно ли реализовать фичу?


0

1

Многие пользуются Emacs. В нём есть удобная оконная система, можно как угодно разделять окна на части, пртом допустимо иметь один буфер в разных окнах.

Если сделать подобное (например с помощью Gtk), множество виджетов разбитое горизонтальными и вертикальными панелями.

Может кто-то уже делал подобное?

Нет ли какой-нибудь причины, по которой GUI организованный таким образом будет жутко тормозить?

Ответ на: комментарий от vladimir-vg

> Только это одно приложение.

Гимп --- тоже одно приложение. А окошек в нём видимо-невидимо.

Попробуй ответь на вопрос, зачем прикладной программе исполнять неспецефичную для неё функцию управления окнами, когда ВМ делает это гораздо лучше?

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

> Попробуй ответь на вопрос, зачем прикладной программе исполнять неспецефичную для неё функцию управления окнами, когда ВМ делает это гораздо лучше?

Вы наверное меня не поняли.

Есть Emacs. В нём куча окон, как угодно разбивающихся. Окна отображают буферы.

Мне нужно тоже самое, только окна отображают виджеты.

Смысл это делать ровно такой же что и в Emacs: удобство.

Видимо ответ на вопрос:

Нет ли какой-нибудь причины, по которой GUI организованный таким образом будет жутко тормозить?

будет «нет».

Поэтому тему можно закрывать.

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

> Есть Emacs.

Я в курсе. Это моя основная рабочая программа.

В нём куча окон, как угодно разбивающихся. Окна отображают буферы.

Или фреймы. Сделай C-x 5 X-f и получишь то, что нужно.

Мне нужно тоже самое

Ты хочешь корявую многооконную программу в самописном тормознутом мозаичном ВМ. Про десятое правило Гринспуна слышал? По-моему, отличная аналогия.

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

> Ты хочешь корявую многооконную программу в самописном тормознутом мозаичном ВМ.

Это нужно для удобства. Вариант с кучей окошек не подходит.

Про десятое правило Гринспуна слышал? По-моему, отличная аналогия.

Слышал. Не понял при чём здесь оно. Имелось ввиду не переизобретать Emacs?

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

vladimir-vg

Вариант с кучей окошек не подходит.

А чем окно отличается от буфера?

vladimir-vg

Имелось ввиду не переизобретать Emacs?

Нет. Имелось в виду, что твоя программа будет содержать внутри себя половину xmonad/wmii/etc, причём реализованного дюже погано.

ugoday ★★★★★
()
Ответ на: комментарий от vladimir-vg

Всё равно ничего не понял. Вот смотри, у тебя есть окна, в смысле оконной системы X11, оконный управляющий, задающий взаимное расопложение окон и пользовательская программа, ведающая что в окне происходит, текст там или виджеты не суть важно. Зачем здесь лишние сущности?

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

Это программа должна работать в X11/Windows/MacOSX.

Везде разные WM.

Это программа — что-то вроде IDE (в конкретной предметной области, не для программистов). Суть в удобной интеграции различного функционала. Притом программа ориентирована в основном на работу с клавиатуры.

Мне необходимо удобство обращения с различными подъокнами (скажем так) как в Emacs.

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

vladimir-vg

Windows

Всё понятно. Успеха в разработке.

ugoday ★★★★★
()

Blender что ли? Только там самописный тулкит.

vkos ★★
()

напиши расширение для emacs

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

> или тебе просто нужен GtkPaned?

Да я знаю что он есть. С помощью его я всё сделаю.

Вопрос в том, есть ли какие возможные причины для тормозов? Я вообще не знаю отчего может тормозить GUI.

напиши расширение для emacs

Не вариант вообще. Долго объяснять почему.

vladimir-vg ★★
() автор топика

Я для одной гуйни делал именно такую организацию рабочего пространства. Делалось чтобы удобно было работать вне зависимости от используемого WM (не принуждая пользователя к использованию тайлового wm - а в «обычном» wm работать с кучей маленьких окошек очень неудобно). Делалось, ксатати, с оглядкой именно на то, как это сделано в Blender, писалось на gtk/gtkmm.

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

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