OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 28 Март, 2024 21:35

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




Начать новую тему Ответить на тему  [ Сообщений: 121 ]  На страницу Пред.  1 ... 3, 4, 5, 6, 7  След.
Автор Сообщение
СообщениеДобавлено: Воскресенье, 08 Декабрь, 2013 01:35 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Пётр Кушнир писал(а):
Или не решат.
Не знаю. Но, я бы не стал недооценивать Роберта :) думаю, он сам кому надо поможет.

А вот благодаря тому, что ты нашел формулу петли, мы скоро узнаем как это можно будет сделать на двух ОС. Мне придется делать так-же для своих графиков, не зря изучал этот hook )))


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 08 Декабрь, 2013 01:42 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2662
Откуда: Россия, Ярославль
Напомню, что оригинал обсуждаемой схемы вот здесь.
Как можно увидеть в правой части - стрелочки красные только внизу.
А Host-для-компонентов не импортирует Host.
Поэтому не подойдет твое решение, Иван. Ты закопаешься в гонке за интерфейсом хоста.
А уж новым пользователям я вообще не хочу повторять пять страниц этого обсуждения.


Вложения:
Комментарий к файлу: обсуждаемая схема
Снимок.PNG
Снимок.PNG [ 30.39 КБ | Просмотров: 10953 ]
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 08 Декабрь, 2013 01:52 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Не понял тебя, если честно. Сегодня нет возможности продолжить, до связи. Я подозреваю, что противоречие исключительно внешнее, терминологическое, а говорим мы про одно и то-же.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 08 Декабрь, 2013 02:05 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2662
Откуда: Россия, Ярославль
Что делает Роберт:
Код:
IMPORT HostPorts, WinApi;
и по накатанным рельсам.
При том, что HostPorts меняется от ОС к ОС, это забавно.
В общем, я прекрасно понимаю, о чем вы мне рассказываете, но мы этот вариант уже обдумали, он недостаточно верный. Полумеры не нужны, только время на них тратить. :|


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 08 Декабрь, 2013 07:48 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Пётр Кушнир писал(а):
Что делает Роберт:
Код:
IMPORT HostPorts, WinApi;
и по накатанным рельсам.
При том, что HostPorts меняется от ОС к ОС, это забавно.
В общем, я прекрасно понимаю, о чем вы мне рассказываете, но мы этот вариант уже обдумали, он недостаточно верный. Полумеры не нужны, только время на них тратить. :|
Просто, чтобы получить доступ к HostPorts.Rider или к константам нажатия клавиш мыши... это поправить, все равно, что пыль смахнуть. Вы потрудитесь посмотреть дальше секции импорта! Есть логика в дизайне ББ, и она годится как исходная точка для исправления и аккумуляции фиксов, которых наберется отсилы 5%.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 24 Декабрь, 2013 14:22 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2662
Откуда: Россия, Ярославль
Для лучшего понимания структуры ББ визуализировал схему взаимных реализаций для трех подсистем System + Std + Host (для Windows).
Можно заметить, что левая крупная группа реализует возможности работы ББ вообще, а правая часть реализует все, что касается пользовательского интерфейса и работы с документами.


Вложения:
Комментарий к файлу: схема
bbdirhooks.png
bbdirhooks.png [ 38.72 КБ | Просмотров: 10828 ]
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 28 Декабрь, 2013 20:39 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
Произвёл собственную герметизацию хоста для лучшего понимания. Взял эталон ББ и прошёл по пути Петра (кое-где сделал по-своему).

На уровне хоста зафиксированы подсистемы Comm, Ole, Win, x86win32host. Ещё пара модулей SqlOdbc, SqlOdbc3 нетронуты. Все стандартные менюшки указывают на новый хост (на мой взгляд, изменить меню под новый хост совершенно несложно, дело нескольких минут). С подсистемой Comm даже не стал разбираться. На данный момент это для меня неактуально, а гарантировать работоспособность перелопаченной Comm пока что не возьмусь.

Мою сборку можно поднять по следующему алгоритму:

1. Склонировать репозиторий
Код:
hg clone https://akastargazer@bitbucket.org/akastargazer/bb.kia

2. Положить в папку bb.kia комплект ББ в одном .EXE (инструкцию по сборке такого комплекта брать здесь, а собирать лучше всего в эталоне)

3. Запустите однофайловый ББ. Скорее всего, это будет MyBlackBox.exe, и перетащите в него документ bb.kia\Docu\KuzmitskyIA\About.odc (через меню File, Open это сделать не получится - так как будет мешать System\Rsrc\Menus, нацеленное на новый хост).

4. Выполните все три шага из раздела 1.2 Компиляция сборки. Там надо методично откомпилировать все исходники (методично - потому что компилятор будет постоянно запрашивать разрешение на создание каталогов Code и Sym для каждой подсистемы), скомпилировать псевдомодуль и собрать новый пускач.

Закрывайте ненужный теперь MyBlackBox и запускайте x86win32.exe.

История герметизации описана в документе "bb.kia\Docu\KuzmitskyIA\My hermetization.odc".

Что я могу сказать по итогам работы? Хотя система и носит название BlackBox, но есть довольно много архитектурных вещей, которые по тем или иным причинам нарушают провозглашённый принцип чёрного ящика. Для меня было важно разобраться с этими нарушениями для того, чтобы было легче строить новые хосты.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 29 Декабрь, 2013 01:32 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2662
Откуда: Россия, Ярославль
Иван Кузьмицкий писал(а):
1. Склонировать репозиторий
Код:
hg clone https://akastargazer@bitbucket.org/akastargazer/bb.kia
Только не нужно использовать имя пользователя akastargazer :)
Иван Кузьмицкий писал(а):
История герметизации описана в документе "bb.kia\Docu\KuzmitskyIA\My hermetization.odc".

Что я могу сказать по итогам работы? Хотя система и носит название BlackBox, но есть довольно много архитектурных вещей, которые по тем или иным причинам нарушают провозглашённый принцип чёрного ящика. Для меня было важно разобраться с этими нарушениями для того, чтобы было легче строить новые хосты.
Отличная работа, она демонстрирует, какой относительно небольшой переход необходим для улучшения ситуации с заменой хост-части. Теперь действительно, ничего не мешает сделать x86ubuntu из содержимого известной сборки и получить полноценную кроссплатформенную виндовс+линукс сборку ББ.
"My hermetization.odc", "Мои университеты" :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 29 Декабрь, 2013 09:44 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
Да, вот правильная ссылка:
Код:
hg clone https://bitbucket.org/akastargazer/bb.kia


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 29 Декабрь, 2013 14:47 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Info21 писал(а):
Иван Кузьмицкий писал(а):
ББ выглядит так, будто его кроили из двух важных концепций.
Первая из них - это объектная оберон-ОС, к её реализации отнеслись серьёзно и она проработана прекрасно.
Вторая из них - прокладка между первой концепцией и гостевой ОС, где возникают явные сложности с качественной проработкой абстракций самой ОС.
В этои и была главная фишка замысла: к оберон-ОС приделать skin, подстраивающийся под look-and-feel гостевой ОС.

И все сложности именно оттуда, от гостевых ОС, за которыми не угонишься.

Возможно, надо наплевать на look-and-feel. Не гнаться.
Иметь чирикающий Оберон с более-менее общепринятыми интерфейсами важнее, чем фокусы с полной мимикрией под гостевую ОС.
По-моему, замысел оказался не удачен. Сначала приклепали кнопки, потом их вид под look-and-feel. Вот до сих пор формы с кнопками и клепаются... лет 20 уже?

А вопрос портирования того, что получилось, о проблемах которого говорит Иван, может быть ещё одним примером пробивания стены (viewtopic.php?p=85010#p85010). Очевидно, что портировать ББ без кнопок и форм, особенно look-and-feel, гораздо проще, чем с ними. Но сама проблема рассмотрения этого вопроса обычно упирается в "а как же мы без форм и кнопок?"...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 29 Декабрь, 2013 15:42 

Зарегистрирован: Вторник, 26 Январь, 2010 09:31
Сообщения: 717
Откуда: Барнаул
Иван Кузьмицкий писал(а):
Мою сборку можно поднять по следующему алгоритму:

Почему бы не сделать нормальную сборку, чтобы исключить эти танцы с бубном, чтобы скачать и запустить.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 29 Декабрь, 2013 16:09 
Аватара пользователя

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
Kemet писал(а):
Иван Кузьмицкий писал(а):
Мою сборку можно поднять по следующему алгоритму:

Почему бы не сделать нормальную сборку, чтобы исключить эти танцы с бубном, чтобы скачать и запустить.

Потому, полагаю, что это work in progress.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 29 Декабрь, 2013 16:36 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
Kemet писал(а):
Иван Кузьмицкий писал(а):
Мою сборку можно поднять по следующему алгоритму:

Почему бы не сделать нормальную сборку, чтобы исключить эти танцы с бубном, чтобы скачать и запустить.
Откуда вы знаете, где я компилирую мою сборку? Кодовые могут быть совершенно левые. Чтобы гарантировать кодовые, я храню в репе только исходники. И правильно Димыч сказал, работа всё ещё in progress. Кстати, создать запускаемую сборку очень легко - это всего лишь вопрос упаковки папки bb.kia, только какой в этом смысл? Там обычный ББ, ничего интересного :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 22 Декабрь, 2017 16:30 

Зарегистрирован: Суббота, 16 Февраль, 2008 07:58
Сообщения: 358
Откуда: Россия, Стерлитамак
Иван Денисов писал(а):
Как показывает опыт с Gtk2 + Pango, а также с Cairo, Ports доделывать не сложно. Современные требования к каркасу в плане графики возросли, поэтому логично рассмотреть вопрос о его обновлении.

А нет исходников, где можно было бы глянуть работу с панго? А то как понял, через cairo текст не очень то просто выводить.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 22 Декабрь, 2017 17:35 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
adva писал(а):
Иван Денисов писал(а):
Как показывает опыт с Gtk2 + Pango, а также с Cairo, Ports доделывать не сложно. Современные требования к каркасу в плане графики возросли, поэтому логично рассмотреть вопрос о его обновлении.

А нет исходников, где можно было бы глянуть работу с панго? А то как понял, через cairo текст не очень то просто выводить.

https://github.com/bbcb/bbcp/blob/maste ... /Fonts.odc


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 22 Декабрь, 2017 18:31 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1428
Через pango текст тоже непросто выводить. Pango вообще текст не выводит, а только размечает, как его надо выводить.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 22 Декабрь, 2017 19:09 

Зарегистрирован: Суббота, 16 Февраль, 2008 07:58
Сообщения: 358
Откуда: Россия, Стерлитамак
Спасибо, Иван!

Trurl писал(а):
Через pango текст тоже непросто выводить. Pango вообще текст не выводит, а только размечает, как его надо выводить.

На первый взгляд, сложность будет сопоставима с работой через cairo. Видимо пока отложу вывод "разнокалиберного" текста, на конец, пока буду простой через cairo выводить.

Вопрос такой: не смог через кайро вывести русскую строку.

Тип для вывода текста, задан как:

Код:
String* =  POINTER TO ARRAY [untagged] OF SHORTCHAR; (* UTF-8 encoded string *) (* unsafe *)


Если пытаюсь типу присвоить, например, "Привет", то ругается на несовместимость. Если же меняю массив на CHAR, то для английского выводится только первая буква (или так выглядит), а для русского какие-то непонятные комбинации


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 22 Декабрь, 2017 19:15 

Зарегистрирован: Суббота, 16 Февраль, 2008 07:58
Сообщения: 358
Откуда: Россия, Стерлитамак
Хотя про вывод текста еще вопрос: в принципе хватило бы стандартного вывода текста блекбоксом, но можно ли как то его поместить на поверхность кайро? Как вариант наверное можно в рисунок преобразовать, а рисунок уже использовать в кайро, или есть другие варианты? Опять же, как в рисунок сохранить можно стандартную текстовую вьюшку?


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

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Текст надо конвертировать в UTF8 с помощью команды Strings.StringToUtf8. В Блэкбоксе строки в UTF16.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 23 Декабрь, 2017 12:26 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1428
Alexander Shiryaev писал(а):
А если HostFiles ("EmbedFiles") уже и так будет загружен (статически), то зачем ещё один HostFiles?

А вот почему у TextModels есть внутри StdModel, а у Files нету? Хотя заменить реализацию текстов куда больше поводов.


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

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


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

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


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

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