Oberon space

General Category => Общий раздел => Тема начата: X512 от Март 31, 2014, 06:00:56 pm

Название: BlackBox без MDI
Отправлено: X512 от Март 31, 2014, 06:00:56 pm
Уже более полтора года назад сделал версию BlackBox без MDI, т.к. оно мешает при одновременной работе с другими программами и занимает лишнее время на экране. Правда тогда я не решился выложить ту версию ввиду разных глюков, вызванными экспериментами с Framework'ом. Сегодня ещё раз реализовал тот же функционал поверх BlackBox 1.6 final (http://archive.oberoncore.org/blackbox16.7z).

В данной версии нет окна, в котором находятся все документы, окна BlackBox можно без проблем совмещать с окнами других программ. Меню по-прежнему общее. Теперь оно работает аналогично MacOS. Оно разположено в отдельном окне вверу экрана на всю ширину. Меню автоматически скрывается, если фокус переходит к другой программе, чтобы не мешать работе с другими программами. Также по-прежнему можно запускать несколько экзэмпляров BlackBox, правда их тогда будет трудно различить (для различия можно например первый пункт меню назвать по разному). Alt комбинации работают корректно.

Для установки декодировать файл во вложении на BlackBox 1.6 final. Возможно на других версиях тоже будет работать, но результат не гарантирован.
Название: Re: BlackBox без MDI
Отправлено: Geniepro от Март 31, 2014, 06:29:53 pm
Для среды разработки это ужасное решение. Такой стиль интерфейса меня бесил в старых дельфях и до сих пор бесит в сибилдере 6, который приходится использовать для одного из проектов...
Название: Re: BlackBox без MDI
Отправлено: X512 от Март 31, 2014, 06:42:45 pm
Какие моменты конкретно не устраивают? Как по вашему должна быть организована среда разработки?
Название: Re: BlackBox без MDI
Отправлено: Valery Solovey от Март 31, 2014, 06:57:04 pm
Речь, скорее всего, о предпочтениях "окошки vs табы". Мне лично нравятся оба варианта, которые я использую в разных случаях.
Название: Re: BlackBox без MDI
Отправлено: X512 от Март 31, 2014, 07:18:37 pm
Я уже давно хочу сделать тайловое рабочее пространство, но всё пока лень разбираться. Во-первых framework не имеет встроенной возможности вставить в документ другой документ из другого файла (не копию). Напрямую вставить View в другой View из другого домена нельзя (не меняя ничего в Framework'е). Можно только Frame. Во-вторых надо делать реализацию Containers.Model / View / Controller, опыта чего у меня пока нет. Когда-нибудь надо решиться сделать.

В очереди улучшений ещё числятся нативный рендер с субпиксельным сглаживанием (некоторые результаты уже есть) и ликвидация tracking циклов, парализующих работу задач, сообщений, а иногда и всего окна.
Название: Re: BlackBox без MDI
Отправлено: Valery Solovey от Март 31, 2014, 07:56:59 pm
Я тоже задумывался о тайловом интерфейсе. Но так как я не определился, каким он должен быть, то за реализацию так и не взялся.
Название: Re: BlackBox без MDI
Отправлено: valexey_u от Март 31, 2014, 10:21:02 pm
Ну, вообще то и маковская версия BlackBox (которая была еще ТОГДА), и текущая версия под линукc/bsd реализованы как раз без MDI. Вот, запустил рассекреченную версию BB под линуксом и получилось такое (кликабельно):

(http://cdn.imghack.se/images/6cd674c5ed1288a5ae1d721b07555559.png) (http://cdn.imghack.se/images/6cd674c5ed1288a5ae1d721b07555559.png)
Название: Re: BlackBox без MDI
Отправлено: Geniepro от Апрель 01, 2014, 05:06:50 am
Я тоже задумывался о тайловом интерфейсе. Но так как я не определился, каким он должен быть, то за реализацию так и не взялся.

Сейчас одним из лучших тайловых (фреймовых) интерфейсов считается xmonad (http://ru.wikipedia.org/wiki/Xmonad) в линуксах/юниксах...
Чем-то напоминает обероновский интерфейс:
(http://www.haskell.org/wikiupload/1/18/Screen-sjanssen-kde-kicker.png)
Название: Re: BlackBox без MDI
Отправлено: Romiras от Апрель 12, 2014, 02:03:16 pm
Пожалуй, в предложенном варианте, без MDI, мне тоже было бы неудобно работать. С закладками для окон работать гораздо приятнее.

А в чём усть следующего изменения?
@@ -2007,13 +1812,13 @@ MODULE HostWindows;
        BEGIN
                instance := WinApi.GetModuleHandleW(NIL);
                dc := WinApi.GetDC(0);
-               unit := Ports.inch DIV WinApi.GetDeviceCaps(dc, WinApi.LOGPIXELSY);
+               unit := 47664*Ports.mm DIV 192000 (* Ports.inch DIV WinApi.GetDeviceCaps(dc, WinApi.LOGPIXELSY) *);
                res := WinApi.ReleaseDC(0, dc);
                scW := WinApi.GetSystemMetrics(0);      (* screen width *)
                scH := WinApi.GetSystemMetrics(1);      (* screen height *)
                NEW(d); d.l := -1; d.t := -1; d.r := -1; d.b := -1; dir := d; Windows.SetDir(d);
                NEW(winAnchor); winAnchor.next := NIL;  (* dummy header *)

Кроме того, WinApi.SystemParametersInfo не обяъвлен, поэтому заменил на WinApi.SystemParametersInfoW.
Название: Re: BlackBox без MDI
Отправлено: X512 от Апрель 13, 2014, 12:43:55 pm
Пожалуй, в предложенном варианте, без MDI, мне тоже было бы неудобно работать. С закладками для окон работать гораздо приятнее.
Тем не менее работать с MDI Blackbox одновременно с другими программами затруднительно. Убирание MDI Облегчает ситуацию. Конкретно для меня очень важно работать одновременно с несколькими программами. Например писать код ориентируясь на другой код, документацию, иллюстрации и т.п.
Конечно добавить вкладки было бы тоже неплохо, но они от MDI не зависят. Вообще MDI - плохая идея; это поняли даже в Microsoft. Новые программы с MDI уже никто не делает.
А в чём усть следующего изменения?
Извиняюсь, думал я не публиковал этого изменения. Это предназначено для точной настройки единиц измерения для моего монитора (для мониторов с другими размерами и разрешением надо поменять константы в соостветствии с инструкцией на монитор). Оказывается, что Windows даёт неверный DPI монитора.
Название: Re: BlackBox без MDI
Отправлено: Geniepro от Апрель 13, 2014, 05:09:31 pm
Вообще MDI - плохая идея; это поняли даже в Microsoft. Новые программы с MDI уже никто не делает.
о_О это что за такое новое поветрие?
Название: Re: BlackBox без MDI
Отправлено: valexey_u от Апрель 14, 2014, 08:44:30 pm
Вообще MDI - плохая идея; это поняли даже в Microsoft. Новые программы с MDI уже никто не делает.
о_О это что за такое новое поветрие?
Ну, MDI (в виде в том который есть в WinAPI) действительно выпилили практически из всех приложений. Ибо почти никогда не нужно. По сути MDI - это свой рабочий стол с окошками. GUI операционной системы с парадигмой рабочего стола в операционной системе. Мир в мире. Это не удобно.
Название: Re: BlackBox без MDI
Отправлено: Oleg N. Cher от Апрель 26, 2014, 09:28:55 pm
Гельмут Цинн (http://www.zinnamturm.eu) интересуется:
Цитата: Helmut Zinn
Dear Oleg,

I like this experiment. It is very exciting to have windows by its own. I
only miss the Toolbar and the Status bar. Can those be add to the menu line?
It would be nice to switch MDI on and off via menu.

Can you tell me the name of the author? Will he be agree to add his solution
to BB 1.7? This will be like a revolution after the discussion of
underlining spaces.

With best regards

Helmut
Хотелось бы спросить уважаемого X512: имеет ли он что-нибудь ответить на эти вопросы? И если да, прошу связаться с Гельмутом (автором неофициального продолжения проекта BlackBox CPC Edition (http://www.zinnamturm.eu/downloads.htm)). Мейл есть на сайте. Спасибо.
Название: Re: BlackBox без MDI
Отправлено: Ivan Denisov от Октябрь 15, 2018, 03:56:43 am
Переделал для 1.7