Автор Тема: BlackBox без MDI  (Прочитано 23534 раз)

X512

  • Newbie
  • *
  • Сообщений: 45
    • Просмотр профиля
BlackBox без MDI
« : Март 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. Возможно на других версиях тоже будет работать, но результат не гарантирован.

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: BlackBox без MDI
« Ответ #1 : Март 31, 2014, 06:29:53 pm »
Для среды разработки это ужасное решение. Такой стиль интерфейса меня бесил в старых дельфях и до сих пор бесит в сибилдере 6, который приходится использовать для одного из проектов...
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

X512

  • Newbie
  • *
  • Сообщений: 45
    • Просмотр профиля
Re: BlackBox без MDI
« Ответ #2 : Март 31, 2014, 06:42:45 pm »
Какие моменты конкретно не устраивают? Как по вашему должна быть организована среда разработки?

Valery Solovey

  • Hero Member
  • *****
  • Сообщений: 509
    • Просмотр профиля
Re: BlackBox без MDI
« Ответ #3 : Март 31, 2014, 06:57:04 pm »
Речь, скорее всего, о предпочтениях "окошки vs табы". Мне лично нравятся оба варианта, которые я использую в разных случаях.

X512

  • Newbie
  • *
  • Сообщений: 45
    • Просмотр профиля
Re: BlackBox без MDI
« Ответ #4 : Март 31, 2014, 07:18:37 pm »
Я уже давно хочу сделать тайловое рабочее пространство, но всё пока лень разбираться. Во-первых framework не имеет встроенной возможности вставить в документ другой документ из другого файла (не копию). Напрямую вставить View в другой View из другого домена нельзя (не меняя ничего в Framework'е). Можно только Frame. Во-вторых надо делать реализацию Containers.Model / View / Controller, опыта чего у меня пока нет. Когда-нибудь надо решиться сделать.

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

Valery Solovey

  • Hero Member
  • *****
  • Сообщений: 509
    • Просмотр профиля
Re: BlackBox без MDI
« Ответ #5 : Март 31, 2014, 07:56:59 pm »
Я тоже задумывался о тайловом интерфейсе. Но так как я не определился, каким он должен быть, то за реализацию так и не взялся.

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: BlackBox без MDI
« Ответ #6 : Март 31, 2014, 10:21:02 pm »
Ну, вообще то и маковская версия BlackBox (которая была еще ТОГДА), и текущая версия под линукc/bsd реализованы как раз без MDI. Вот, запустил рассекреченную версию BB под линуксом и получилось такое (кликабельно):

Y = λf.(λx.f (x x)) (λx.f (x x))

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: BlackBox без MDI
« Ответ #7 : Апрель 01, 2014, 05:06:50 am »
Я тоже задумывался о тайловом интерфейсе. Но так как я не определился, каким он должен быть, то за реализацию так и не взялся.

Сейчас одним из лучших тайловых (фреймовых) интерфейсов считается xmonad в линуксах/юниксах...
Чем-то напоминает обероновский интерфейс:
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

Romiras

  • Sr. Member
  • ****
  • Сообщений: 264
    • Просмотр профиля
    • Romiras Dev Lab
Re: BlackBox без MDI
« Ответ #8 : Апрель 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.

X512

  • Newbie
  • *
  • Сообщений: 45
    • Просмотр профиля
Re: BlackBox без MDI
« Ответ #9 : Апрель 13, 2014, 12:43:55 pm »
Пожалуй, в предложенном варианте, без MDI, мне тоже было бы неудобно работать. С закладками для окон работать гораздо приятнее.
Тем не менее работать с MDI Blackbox одновременно с другими программами затруднительно. Убирание MDI Облегчает ситуацию. Конкретно для меня очень важно работать одновременно с несколькими программами. Например писать код ориентируясь на другой код, документацию, иллюстрации и т.п.
Конечно добавить вкладки было бы тоже неплохо, но они от MDI не зависят. Вообще MDI - плохая идея; это поняли даже в Microsoft. Новые программы с MDI уже никто не делает.
А в чём усть следующего изменения?
Извиняюсь, думал я не публиковал этого изменения. Это предназначено для точной настройки единиц измерения для моего монитора (для мониторов с другими размерами и разрешением надо поменять константы в соостветствии с инструкцией на монитор). Оказывается, что Windows даёт неверный DPI монитора.

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: BlackBox без MDI
« Ответ #10 : Апрель 13, 2014, 05:09:31 pm »
Вообще MDI - плохая идея; это поняли даже в Microsoft. Новые программы с MDI уже никто не делает.
о_О это что за такое новое поветрие?
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: BlackBox без MDI
« Ответ #11 : Апрель 14, 2014, 08:44:30 pm »
Вообще MDI - плохая идея; это поняли даже в Microsoft. Новые программы с MDI уже никто не делает.
о_О это что за такое новое поветрие?
Ну, MDI (в виде в том который есть в WinAPI) действительно выпилили практически из всех приложений. Ибо почти никогда не нужно. По сути MDI - это свой рабочий стол с окошками. GUI операционной системы с парадигмой рабочего стола в операционной системе. Мир в мире. Это не удобно.
Y = λf.(λx.f (x x)) (λx.f (x x))

Oleg N. Cher

  • Full Member
  • ***
  • Сообщений: 152
    • Просмотр профиля
    • Оберон-клуб «VEDAsoft»
Re: BlackBox без MDI
« Ответ #12 : Апрель 26, 2014, 09:28:55 pm »
Гельмут Цинн интересуется:
Цитата: 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). Мейл есть на сайте. Спасибо.

Ivan Denisov

  • Jr. Member
  • **
  • Сообщений: 67
    • Просмотр профиля
Re: BlackBox без MDI
« Ответ #13 : Октябрь 15, 2018, 03:56:43 am »
Переделал для 1.7