OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Суббота, 28 Ноябрь, 2020 02:59

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Tyler - Плиточный BlackBox
СообщениеДобавлено: Понедельник, 30 Декабрь, 2019 00:53 
Аватара пользователя

Зарегистрирован: Суббота, 16 Февраль, 2008 02:47
Сообщения: 356
Коллеги,

Представляю вам Tyler - плиточный оконный менеджер для BlackBox. Клонировать: https://github.com/adimetrius/Tyler или скачать:
Вложение:
Tyler.StdCoded.odc [1.15 МБ]
Скачиваний: 145

Инструкции - в Quick-Start.

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

Проект Tyler - это одноименная подсистема (Tyler) + ряд изменений в стандартных модулях BB, которые оказались необходимы или желательны в связи с существенной перетряской оконной системы. Больше всего изменились интерфейсы Windows и HostWindows, расширена реализация и интерфейс Views, кое-что подправлено в Kernel; ряд модулей потребовали незначительных поправок в связи с изменением интерфейса Windows.

Поэтому Tyler не получится "добавить" к вашему BlackBox secondary directory. Tyler сейчас можно установить в пустую папку и потестировать. Скорее всего, получится "скопировать" в Тайлер ваши рабочие проекты и попробовать их оттуда - если они не завязаны жестко на Windows/HostWindows.

Поставляется в скомпилированном виде. Исходники поставляются только от самой подсистемы Tyler и модуль Config. В ближайшее время опубликую и прочие правленные исходники и "пояснительные записки" к ним - после того, как закончу их "подчистку".

Кратко - возможности и снимок:
Окно разделено на три дорожки. Лог и какой-нибудь блокнотный документ открываются в системной (левой) дорожке, документы - в пользовательской (по центру); в дополнительную (справа) можно перетаскивать документы.
Пользовательская и дополнительная - с вкладками, системная - делится между всеми открытыми там документами.
Границы между дорожками и документами можно двигать мышью (и программно, канешн).

Трапы и прочие дампы Variables отправляются в дополнительный трек (справа); "отправляются" эвристикой, которую можно изменять или настраивать.

Плиточные окна сочетаются с неплиточными - открыто окно поиска.

Состав дорожек определяется гибко, можно сделать "под себя". Можно несколько плиточных окон (метаокон) - для двух- и трехголовых компьютеров.


Вложения:
Снимок Тайлер.png
Снимок Тайлер.png [ 311.93 КБ | Просмотров: 832 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Tyler - Плиточный BlackBox
СообщениеДобавлено: Понедельник, 30 Декабрь, 2019 07:56 
Аватара пользователя

Зарегистрирован: Суббота, 16 Февраль, 2008 02:47
Сообщения: 356
Существенное ограничение: пока только под Linux.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Tyler - Плиточный BlackBox
СообщениеДобавлено: Понедельник, 30 Декабрь, 2019 21:02 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2655
Откуда: Россия, Ярославль
А что конкретно не получилось, ради чего пожертвовали совместимостью базовых интерфейсов? Чисто интересно, что как?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Tyler - Плиточный BlackBox
СообщениеДобавлено: Понедельник, 30 Декабрь, 2019 22:33 
Аватара пользователя

Зарегистрирован: Суббота, 16 Февраль, 2008 02:47
Сообщения: 356
Пётр Кушнир писал(а):
А что конкретно не получилось, ради чего пожертвовали совместимостью базовых интерфейсов? Чисто интересно, что как?


Самое принципиальное расширение - что теперь Views.RootFrame могут быть подфреймами. Это нужно, чтобы окна могли быть внутри окон. Раньше они всегда могли быть только "вверху": RootFrame.up = NIL. Большинству приложений, я полагаю, "по барабану" (коллеги, поправьте меня, если ваши приложения полагаются на этот инвариант).

Самые масштабные изменения - в Windows/HostWindows. Раньше Windows содержал абстрактный интерфейс, в основном вся реализация была в HostWindows. В том числе вещей, которые относятся к ББ, а вовсе не к хосту: например, управление Front и Target window, фокусное окно, и т.п. - платформо-независимые вещи.
Теперь в HostWindows остались только платформо-зависимые вещи (обработчики сигналов Gtk), все, что платформо-независимо, я перенес в Windows. Для сравнения: по числу операторов Windows вдвое увеличился, HostWindows - вдвое уменьшился.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Tyler - Плиточный BlackBox
СообщениеДобавлено: Вторник, 31 Декабрь, 2019 00:36 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2655
Откуда: Россия, Ярославль
Смело, смело. Про rootFrame я бы с вами поспорил о необходимости окон внутри окон (и изменений ради этого), потому что если вы внимательно всё изучили, то понимаете, что окна внутри окон не нужны ни для какой из задач, с которыми не справятся фреймы сами по себе. По сути, окна сами по себе тоже не нужны для большинства задач.

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

Но ок, ок.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Tyler - Плиточный BlackBox
СообщениеДобавлено: Вторник, 31 Декабрь, 2019 14:48 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 2896
Антон, замечательные наработки. Для Linux назрел SDI. Вот еще меню, как делал Иван Кузьмицкий с Петром в Sdl сборке надо будет прикрутить в окно.

adimetrius писал(а):
Самые масштабные изменения - в Windows/HostWindows. Раньше Windows содержал абстрактный интерфейс, в основном вся реализация была в HostWindows. В том числе вещей, которые относятся к ББ, а вовсе не к хосту: например, управление Front и Target window, фокусное окно, и т.п. - платформо-независимые вещи.
Теперь в HostWindows остались только платформо-зависимые вещи (обработчики сигналов Gtk), все, что платформо-независимо, я перенес в Windows. Для сравнения: по числу операторов Windows вдвое увеличился, HostWindows - вдвое уменьшился.

А эти изменения позволяют работать старой оконной системе как раньше? Надо на совместимость с Windows версией проверить.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Tyler - Плиточный BlackBox
СообщениеДобавлено: Вторник, 31 Декабрь, 2019 17:42 
Аватара пользователя

Зарегистрирован: Суббота, 16 Февраль, 2008 02:47
Сообщения: 356
Иван, спасибо.
Иван Денисов писал(а):
А эти изменения позволяют работать старой оконной системе как раньше?

Да, позволяют. Плиточные и неплиточные окна прекрасно сочетаются. На снимке - модуль Windows открыт в независимом окне. В меню Tyler снимается галочка Вкл и все открывается по-прежнему. При желании программист может поправить эвристику, и нужные вам окна будут сами открываться независимыми.
Вложение:
Shot.png
Shot.png [ 342.1 КБ | Просмотров: 711 ]

Кстати, большинство программных несовместимостей сводится к тому, что нужно вместо, напр, Windows.dir.Focus() вызывать Windows.Focus(), так что это очень легко поправляется. При этом можно по-прежнему вызывать Windows.dir.Focus(), но при этом в консоли будет выводиться deprecation warning.

Иван Денисов писал(а):
Антон, замечательные наработки. Для Linux назрел SDI. Вот еще меню, как делал Иван Кузьмицкий с Петром в Sdl сборке надо будет прикрутить в окно.

Согласен, меню нужно сделать. Только я никак не воображу себе, как это должно быть: если меню "вкрутить" в мета-окно (которое содержит плитки), что тогда во втором мета-окне, которое, напр, на втором мониторе? Дублировать? А что делать независимым окнам? метаокно предполагается на весь экран; если открыть независимое (поверх), а потом нужно в меню - то всплывает большое метаокно и перекрывает независимое. Дублировать меню в каждом окне? Связываться с хост-менеджером окон и независимые делать Always on top? тогда они перекрывать будут окна других программ. А какие потребности будут в Production? все-таки я тайлер больше вижу как часть IDE, для продакшн людям наэн больше подойдут независимые окна со special containers/wrappers?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Tyler - Плиточный BlackBox
СообщениеДобавлено: Вторник, 31 Декабрь, 2019 18:06 
Аватара пользователя

Зарегистрирован: Суббота, 16 Февраль, 2008 02:47
Сообщения: 356
Пётр Кушнир писал(а):
Про rootFrame я бы с вами поспорил о необходимости окон внутри окон

Про окна внутри окон я выразился неясно: визуально они внутри др др, на программном же уровне - как вы и говорите, фреймы вложены во фреймы и со всем справляются.
Пётр Кушнир писал(а):
сделать из одного окна полуабстракцию для контейнера окон (StdМультиОкно)

Я рассматривал такой вариант, но не смог так сделать. Если Мультиокно расширяет Windows.Window, то это как раз то, что сделал я - пришлось переучивать модуль Views, чтобы корни могли быть внутри корней. Если же Мультиокно не расширяет Windows.Window, то оно "выпадает" из системы доставки сообщений, и для реализации его собственного содержимого (табы, крестики, границы) нельзя использовать вьюшки.
С положительной стороны - в окно теперь кроме документа (представляющего персистентные данные - сохраняемый вид) можно вставить дополнительные произвольные (неперсистентные) виды - например, тулбар, или немодальный диалог. Пример такого диалога есть в тайлере - это диалог при закрытии несохраненного файла. (Визуально он не доведен до красоты, но как пример работоспособности выбранного подхода - вполне. И работоспособен, хоть и не красив.) См. TylerWindows.InstallAsPane.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2020, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB