OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 23 Март, 2023 01:29

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




Начать новую тему Ответить на тему  [ Сообщений: 80 ]  На страницу 1, 2, 3, 4  След.
Автор Сообщение
СообщениеДобавлено: Четверг, 02 Февраль, 2023 09:06 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 535
предлагаю забрать у меня из репозитория HostPictures. оно, конечно, адово кривое, но хотя бы диаграммки рисует уже терпимо. всяко лучше, чем скучный крестик в документации.


Вложения:
Комментарий к файлу: 4
2023_02_02_08_00_31_225x247.png
2023_02_02_08_00_31_225x247.png [ 3.38 КБ | Просмотров: 1020 ]
Комментарий к файлу: 3
2023_02_02_07_59_33_288x135.png
2023_02_02_07_59_33_288x135.png [ 2.52 КБ | Просмотров: 1020 ]
Комментарий к файлу: 2
2023_02_02_08_01_35_569x392.png
2023_02_02_08_01_35_569x392.png [ 9 КБ | Просмотров: 1019 ]
Комментарий к файлу: 1
2023_02_02_08_03_58_203x113.png
2023_02_02_08_03_58_203x113.png [ 1.79 КБ | Просмотров: 1020 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox 2.0
СообщениеДобавлено: Четверг, 02 Февраль, 2023 18:31 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3583
arisu писал(а):
предлагаю забрать у меня из репозитория HostPictures. оно, конечно, адово кривое, но хотя бы диаграммки рисует уже терпимо. всяко лучше, чем скучный крестик в документации.

Волшебно. Вопрос только в том, что подсистемы Host больше нет. Поэтому как его назвать. Может раз он теперь кросс-платформенный, то назвать его StdPictures. Но вот назадача, надо сделать некоторый механизм в Stores.Store, чтобы поддерживались зарегистрированные алиасы/синонимы. В целом там в Stores предполагается маппинг, к примеру, есть поддержка обратной совместимости для Desk
Код:
   PROCEDURE GetThisTypeName (t: Kernel.Type; VAR type: TypeName);
      VAR i, j: INTEGER; ch: CHAR; modName, name: Kernel.Name;
   BEGIN
      Kernel.GetModName(t.mod, modName);
      Kernel.GetTypeName(t, name);
      type := modName$;
      i := 0; ch := type[0]; WHILE ch # 0X DO INC(i); ch := type[i] END;
      type[i] := "."; INC(i);
      j := 0; REPEAT ch := name[j]; type[i] := ch; INC(i); INC(j) UNTIL ch = 0X;
      (*
      type := modName + "." + name;
      *)
      IF compatible THEN
         IF type[i-2] = "^" THEN   (* for backward compatibility *)
            type[i-2] := "D"; type[i-1] := "e"; type[i] := "s"; type[i+1] := "c"; type[i+2] := 0X
         END
      END
   END GetThisTypeName;

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox 2.0
СообщениеДобавлено: Четверг, 02 Февраль, 2023 19:29 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 535
Иван Денисов писал(а):
Я думаю, что надо сделать какое-то обобщение для отображений типов, чтобы виды HostPictures, могли при совместимости футпринтов открываться модулями с другими названиями.
да. я назвал как назвал чтобы документы Просто Открывались пока. иметь какую-то универсальную систему отображений имён для загрузки/выгрузки было бы хорошо. я думаю, можно временно кинуть как Host, это лучше чем ничего. а потом адаптируем, как придумаем красивый механизм отображений.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 02 Февраль, 2023 22:43 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3583
Посмотрите, я добавил StdPictures и механизм в Stores для подмены HostPictures на StdPictures

Код:
(* support for type mapping *)

   PROCEDURE ReadPath (VAR rd: Reader; VAR path: TypePath);
      VAR h: TypeDict; id, extId: INTEGER; i: INTEGER; kind: SHORTCHAR;

      PROCEDURE ReadUtf8(OUT x: ARRAY OF CHAR);
         VAR utf8: Kernel.Utf8Name; res: INTEGER;
      BEGIN
         rd.ReadSString(utf8); Utf.Utf8ToString(utf8, x, res); ASSERT(res = 0);
         IF mapTypes THEN
            Dialog.MapString("#System:"+x, x)     (*  <<<<<<<<<   *)
         END
      END ReadUtf8;


Есть небольшие артефакты, но в целом хочется отметить, что это отлично для совместимости со старыми файлами! Спасибо!


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 03 Февраль, 2023 07:49 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 535
да, там есть проблемки в закрасках некоторых (я не очень понял, как и что), и ещё всякие мелочи (включая отсутствие закраски паттернами, потому что её нет в bottleneck). я постепенно это доделаю. пока я хотел, чтобы в документации хотя бы основные картинки видно было.

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

на механизм замены посмотрю, спасибо.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 03 Февраль, 2023 09:57 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 535
кстати, при записи тоже подменять бы надо, чтобы прошлые версии BBCB могли такие документы читать. я, например, довольно активно правлю документацию, когда что-то добавляю, и в принципе — нет причин, по которым её нельзя писать в совместимом формате; кое-какие наши улучшения потом можно будет предложить в версию Центра тоже, почему бы и да.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 03 Февраль, 2023 11:24 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3583
arisu писал(а):
кстати, при записи тоже подменять бы надо, чтобы прошлые версии BBCB могли такие документы читать. я, например, довольно активно правлю документацию, когда что-то добавляю, и в принципе — нет причин, по которым её нельзя писать в совместимом формате; кое-какие наши улучшения потом можно будет предложить в версию Центра тоже, почему бы и да.

В чате ещё мнения людей поспрашивал. И другие разработчики не хотели бы на постоянку оставлять такой механизм подмены. То есть это только как механизм миграции. Пусть он будет включён достаточно долгое время, чтобы у людей не было проблем, но через N лет отключим. Поэтому при сохранении пусть пишет новый вариант модуля в названии. Про версию Центра не беспокойтесь, там уже маловероятно будет движение какое-то, Йозеф выполнил некий общественный долг, который на себя возложил, Роберт ушел на пенсию, а я ушел в проект BlackBox Cross-Platform, который мы сейчас с вами обсуждаем. Луови нас и тут иногда читает, и помогает своей экспертностью. Так что нормально, если наши новые файлы будут несовместимы по этому аспекту со старыми сборками. Также в старых сборках нет поддержки png "из коробки", так что уже мы пошли по этому пути.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 03 Февраль, 2023 12:34 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 535
ну, раз так, то возражений не имею: мне лично совместимость с 1.x версиями (на запись, в смысле) вообще не нужна.

sidenote: получается, что cross-platform сейчас bleeding edge? неплохо бы тогда иметь отдельный сайт для него, хотя бы просто со страницей, где написаны project goals, ссылки на скачивание, да и интернациональный раздел форума не помешает, мне кажется. конечно, там будет от силы полтора инвалида, но Центр выглядит очень мёртвым, и создаёт впечатление, что проект (BlackBox) опять приказал долго жить. что, очевидно, не так. ;-)

p.s.: забавно, что у нас есть — пусть и полурабочая — читалка pictures, но нет никакого инструмента, чтобы их создавать. ;-)

p.p.s.: но раз нам нужно только читать, но не писать документы от старых версий — то внезапно слова Антона Александровича про то, что StdStdCFrames надо выкинуть к чёрту, и сделать вместо этого контролы нормально становятся очень актуальными. я морочусь с CFrames только из-за обратной совместимости на запись.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 03 Февраль, 2023 13:15 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4661
Откуда: Россия, Орёл
arisu писал(а):
sidenote: получается, что cross-platform сейчас bleeding edge? неплохо бы тогда иметь отдельный сайт для него, хотя бы просто со страницей, где написаны project goals, ссылки на скачивание, да и интернациональный раздел форума не помешает, мне кажется. конечно, там будет от силы полтора инвалида, но Центр выглядит очень мёртвым, и создаёт впечатление, что проект (BlackBox) опять приказал долго жить. что, очевидно, не так. ;-)

У него и так есть сайт https://blackbox.oberon.org/
Интрнациональный раздел форума не нужен. Тут кому надо прекрасно читают через переводчик или пишут сразу на английском.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 03 Февраль, 2023 13:18 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3583
arisu писал(а):
p.s.: забавно, что у нас есть — пусть и полурабочая — читалка pictures, но нет никакого инструмента, чтобы их создавать. ;-)

Да их надо выкинуть эти старые картинки, и перерисовать в нормальном редакторе. У меня уже есть прототип для SVG, вот лучше его бы допилить.
https://blackbox.oberon.org/extension/Svg


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 03 Февраль, 2023 13:21 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3583
arisu писал(а):
p.p.s.: но раз нам нужно только читать, но не писать документы от старых версий — то внезапно слова Антона Александровича про то, что StdStdCFrames надо выкинуть к чёрту, и сделать вместо этого контролы нормально становятся очень актуальными. я морочусь с CFrames только из-за обратной совместимости на запись.

Я не разделяю это мнение, в этом решении читается применение Блэкбокса как вещи самой в себе. В то же время создание приложений Windows, в которых есть нативные элементы управления также до сих пор представляет ценность. И неизвестно куда ещё приведёт нас эволюция, какие ещё элементы управления придётся делать, может даже пробрасывать их по сети. Этот bottleneck я бы поберёг.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 03 Февраль, 2023 13:39 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3583
Иван Денисов писал(а):
arisu писал(а):
p.s.: забавно, что у нас есть — пусть и полурабочая — читалка pictures, но нет никакого инструмента, чтобы их создавать. ;-)

Да их надо выкинуть эти старые картинки, и перерисовать в нормальном редакторе. У меня уже есть прототип для SVG, вот лучше его бы допилить.
https://blackbox.oberon.org/extension/Svg

Вот тут ещё стоит добавить. Что эти картинки потянут тогде XmlCore, а это уже куча модулей. И поэтому это большой минус для базового дистрибутива. В целом для простейших диаграмм в документации, можно бы сделать в качестве примера такой миниредактор по типу ObxLines. И в нём нарисовать именно то, что будет идти в минималичтичном комплекте для всех векторных картинок в документациях.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 03 Февраль, 2023 16:41 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 535
делать svg нет смысла — я считаю — как минимум потому, что его невозможно отрендерить: не хватит мощности рисовалки. а если огрызок — так проще, действительно, сделать минималистичный редактор и писать в мак-формате.

Иван Денисов писал(а):
И неизвестно куда ещё приведёт нас эволюция, какие ещё элементы управления придётся делать, может даже пробрасывать их по сети. Этот bottleneck я бы поберёг.
так это не bottleneck, это хак для нативных контролов. довольно кривой хак, и очень ограниченый. в итоге вместо пользоваться всеми удобствами среды — мне приходится делать довольно низкоуровневый рендер. и пробросу это не поможет: его всё равно если делать — то на уровне бэкэнда. хотя контролам с редактором, например, вполне естественно иметь TextModel; а скроллбары лучше не делать полностью руками, дублируя код. как я уже говорил — это доставляет мне некоторое извращённое удовольствие, но это кривизна.

но вы правы в том, что я рассматриваю BBCB как вещь в себе, операционную систему. попытки омиков сделать из неё кадавра, замаскировав под «обычное приложение», особым коммерческим успехом не увенчались. зато теперь из BBCB торчат костыли, и впиваются в неудобные места. ещё один из прекрасных примеров таких костылей — использование в коде модальных диалогов. например, написать цикл, который закрывает все окна с запросом на сохранение в текущем варианте без модальных диалогов невозможно. а сделать модальные диалоги своими средствами среда не позволяет.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 03 Февраль, 2023 16:44 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4661
Откуда: Россия, Орёл
Во-первых, был какой-то векторный редактор ещё для 1.3.2. Может его реанимировать стоит.
Во-вторых, есть eps например. SVG тяжеловесен, я бы его тоже не стал использовать в основном ББ.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 03 Февраль, 2023 16:46 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 535
Борис Рюмшин писал(а):
У него и так есть сайт https://blackbox.oberon.org/
это не совсем то, что я имел в виду, я говорил скорее про сайт-презентацию проекта. но я такой сделать не могу, потому что у меня лапки, увы.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 03 Февраль, 2023 18:53 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3583
Борис Рюмшин писал(а):
Во-первых, был какой-то векторный редактор ещё для 1.3.2. Может его реанимировать стоит.

А есть исходники?

Борис Рюмшин писал(а):
Во-вторых, есть eps например. SVG тяжеловесен, я бы его тоже не стал использовать в основном ББ.

Да, согласен, что в основном дистрибутиве для документации - это лишнее.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 03 Февраль, 2023 18:57 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3583
arisu писал(а):
но вы правы в том, что я рассматриваю BBCB как вещь в себе, операционную систему. попытки омиков сделать из неё кадавра, замаскировав под «обычное приложение», особым коммерческим успехом не увенчались. зато теперь из BBCB торчат костыли, и впиваются в неудобные места. ещё один из прекрасных примеров таких костылей — использование в коде модальных диалогов. например, написать цикл, который закрывает все окна с запросом на сохранение в текущем варианте без модальных диалогов невозможно. а сделать модальные диалоги своими средствами среда не позволяет.

Это возможно, если вы почитаете DirtyHook. Антон предусмотрел такие немодальные диалоги закрытия в программе. Но так как это необычно, и слишком много изменений для обычного пользователя, то сейчас пока такой модальный вариант. А так гибкость свойственная Блэкбоксу запроектирована. Ну и я думаю, что оно хорошо работает, так как Антон это под себя делал как раз. Я у себя в проектах не тестировал это пока.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 03 Февраль, 2023 20:02 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 535
Иван Денисов писал(а):
Борис Рюмшин писал(а):
Во-первых, был какой-то векторный редактор ещё для 1.3.2. Может его реанимировать стоит.
А есть исходники?
прямо в маковской 1.3.2 и есть, если я верно помню.

Иван Денисов писал(а):
Это возможно, если вы почитаете DirtyHook.
это невозможно не потому что нельзя сделать другой механизм, а потому что существующий код к другим механизмам просто-напросто не готов. и «подготовить» его никак нельзя без полной потери совместимости. любой цикл закрытия окон просто ожидает, что можно пройтись в этом цикле по окнам — и всё. он не готов ставить колбэки (или ожидать сообщений) и отдавать управление, его тогда надо полностью переписывать — причём везде, где такое есть. вот в этом проблема, и поэтому я называю это костылём. то же самое с модальными диалогами выбора шрифтов, цветов, etc. даже с выбором файлов: ну, open мы можем сделать отложено — а остальное всё ещё вынуждено вызывать диалоги из GTK, потому что ожидает модальности. всё это можно переписать постепенно (с потерей совместимости), но оно изначально костыльно, увы.

p.s.: ну, или мы сдадимся и добавим в среду возможность создания модальных окон (что лично я считаю более верным подходом практически, хотя и не идеологически, и делать такое не очень хочу).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 03 Февраль, 2023 20:15 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3583
arisu писал(а):
Иван Денисов писал(а):
Это возможно, если вы почитаете DirtyHook.
это невозможно не потому что нельзя сделать другой механизм, а потому что существующий код к другим механизмам просто-напросто не готов. и «подготовить» его никак нельзя без полной потери совместимости. любой цикл закрытия окон просто ожидает, что можно пройтись в этом цикле по окнам — и всё. он не готов ставить колбэки (или ожидать сообщений) и отдавать управление, его тогда надо полностью переписывать — причём везде, где такое есть. вот в этом проблема, и поэтому я называю это костылём.

Я думаю, что вы всё же не вникли. Так как я видел, как это работает с закрытием окон и немодальными диалогами закрытия.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 03 Февраль, 2023 20:18 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 535
Иван Денисов писал(а):
Я думаю, что вы всё же не вникли. Так как я видел, как это работает с закрытием окон и немодальными диалогами закрытия.
да, я глубоко не читал, вы правы. но я физически не могу представить механизм реализации этого без модальности. вот у нас есть WHILE-цикл, который не отдаёт управление среде, пока не прокрутит и не закроет все окна. и… а как тут без модальности? или сопрограммы и неявный yield в хуке, или модальность, или переписывать WHILE-цикл. это может работать для одного окна, но не для случая, когда нам надо закрыть все окна сразу в цикле (как делает, например, «restore workspace»).

хук, собственно, может крутить свой event loop — но это и получается довольно костыльная реализация механизма модальных окон ведь.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 80 ]  На страницу 1, 2, 3, 4  След.

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


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

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


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

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