Oberon space
General Category => Общий раздел => Тема начата: 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. Возможно на других версиях тоже будет работать, но результат не гарантирован.
-
Для среды разработки это ужасное решение. Такой стиль интерфейса меня бесил в старых дельфях и до сих пор бесит в сибилдере 6, который приходится использовать для одного из проектов...
-
Какие моменты конкретно не устраивают? Как по вашему должна быть организована среда разработки?
-
Речь, скорее всего, о предпочтениях "окошки vs табы". Мне лично нравятся оба варианта, которые я использую в разных случаях.
-
Я уже давно хочу сделать тайловое рабочее пространство, но всё пока лень разбираться. Во-первых framework не имеет встроенной возможности вставить в документ другой документ из другого файла (не копию). Напрямую вставить View в другой View из другого домена нельзя (не меняя ничего в Framework'е). Можно только Frame. Во-вторых надо делать реализацию Containers.Model / View / Controller, опыта чего у меня пока нет. Когда-нибудь надо решиться сделать.
В очереди улучшений ещё числятся нативный рендер с субпиксельным сглаживанием (некоторые результаты уже есть) и ликвидация tracking циклов, парализующих работу задач, сообщений, а иногда и всего окна.
-
Я тоже задумывался о тайловом интерфейсе. Но так как я не определился, каким он должен быть, то за реализацию так и не взялся.
-
Ну, вообще то и маковская версия BlackBox (которая была еще ТОГДА), и текущая версия под линукc/bsd реализованы как раз без MDI. Вот, запустил рассекреченную версию BB под линуксом и получилось такое (кликабельно):
(http://cdn.imghack.se/images/6cd674c5ed1288a5ae1d721b07555559.png) (http://cdn.imghack.se/images/6cd674c5ed1288a5ae1d721b07555559.png)
-
Я тоже задумывался о тайловом интерфейсе. Но так как я не определился, каким он должен быть, то за реализацию так и не взялся.
Сейчас одним из лучших тайловых (фреймовых) интерфейсов считается xmonad (http://ru.wikipedia.org/wiki/Xmonad) в линуксах/юниксах...
Чем-то напоминает обероновский интерфейс:
(http://www.haskell.org/wikiupload/1/18/Screen-sjanssen-kde-kicker.png)
-
Пожалуй, в предложенном варианте, без 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.
-
Пожалуй, в предложенном варианте, без MDI, мне тоже было бы неудобно работать. С закладками для окон работать гораздо приятнее.
Тем не менее работать с MDI Blackbox одновременно с другими программами затруднительно. Убирание MDI Облегчает ситуацию. Конкретно для меня очень важно работать одновременно с несколькими программами. Например писать код ориентируясь на другой код, документацию, иллюстрации и т.п.
Конечно добавить вкладки было бы тоже неплохо, но они от MDI не зависят. Вообще MDI - плохая идея; это поняли даже в Microsoft. Новые программы с MDI уже никто не делает.
А в чём усть следующего изменения?
Извиняюсь, думал я не публиковал этого изменения. Это предназначено для точной настройки единиц измерения для моего монитора (для мониторов с другими размерами и разрешением надо поменять константы в соостветствии с инструкцией на монитор). Оказывается, что Windows даёт неверный DPI монитора.
-
Вообще MDI - плохая идея; это поняли даже в Microsoft. Новые программы с MDI уже никто не делает.
о_О это что за такое новое поветрие?
-
Вообще MDI - плохая идея; это поняли даже в Microsoft. Новые программы с MDI уже никто не делает.
о_О это что за такое новое поветрие?
Ну, MDI (в виде в том который есть в WinAPI) действительно выпилили практически из всех приложений. Ибо почти никогда не нужно. По сути MDI - это свой рабочий стол с окошками. GUI операционной системы с парадигмой рабочего стола в операционной системе. Мир в мире. Это не удобно.
-
Гельмут Цинн (http://www.zinnamturm.eu) интересуется:
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)). Мейл есть на сайте. Спасибо.
-
Переделал для 1.7