OberonCore

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

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




Начать новую тему Ответить на тему  [ Сообщений: 387 ]  На страницу Пред.  1 ... 10, 11, 12, 13, 14, 15, 16 ... 20  След.
Автор Сообщение
 Заголовок сообщения: Re: BlackBox 2.0
СообщениеДобавлено: Понедельник, 06 Февраль, 2023 14:31 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1163
а, ещё. понадобится правка Controls, чтобы сделать выделение и копипасту из read-only редактора. сейчас Controls для read-only просто не вызывает обработчики. надо будет сделать, чтобы вызывал, и проверять флажки уже в самих обработчиках (и WinCFrames поправить соответственно).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox 2.0
СообщениеДобавлено: Понедельник, 06 Февраль, 2023 15:29 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
arisu писал(а):
а, ещё. понадобится правка Controls, чтобы сделать выделение и копипасту из read-only редактора. сейчас Controls для read-only просто не вызывает обработчики. надо будет сделать, чтобы вызывал, и проверять флажки уже в самих обработчиках (и WinCFrames поправить соответственно).

Возьмите у меня обновлённый Controls, это я сделал, так как Fields уже внедрял в проект на основе 2.0.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox 2.0
СообщениеДобавлено: Понедельник, 06 Февраль, 2023 15:31 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1163
Иван Денисов писал(а):
Возьмите у меня обновлённый Controls, это я сделал, так как Fields уже внедрял в проект на основе 2.0.
в основном репозитории, в смысле? я просто когда смотрел в прошлый раз — ещё этого не было. щаз обновлю, спасибо!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox 2.0
СообщениеДобавлено: Понедельник, 06 Февраль, 2023 15:47 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Вот теперь в MDI сборке можно скопировать данные из read-only полей. В сборке ~MDI это появится, когда ваши наработки перенесу.


Вложения:
copyFromField.png
copyFromField.png [ 26.9 КБ | Просмотров: 1826 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox 2.0
СообщениеДобавлено: Понедельник, 06 Февраль, 2023 16:34 

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox 2.0
СообщениеДобавлено: Четверг, 09 Февраль, 2023 15:20 
Аватара пользователя

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

Как ваши успехи на этом поприще?


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

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1163
Иван Денисов писал(а):
arisu писал(а):
вы не спешите пока, я сейчас планирую как раз заняться доделыванием мультистрочности. остальные PoC-и работают, доводить их потом буду, а сейчас — редактор.

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

я немножко увлёкся и зачем-то начал делать механизм, который может работать с мегабайтами текста, и даже кое-что сделал, но однажды утром вспомнил, что пишу не новый текстовый редактор, блин, а просто edit control, и если он с полусотней строк и десятком кб справится нормально — то этого будет более чем достаточно. так что фальстарт выкинул, и делаю намного проще. ;-)


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

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1163
кстати. беда, беда, огорчение! с тайлингом не получается красивого зума окошек: ведь они, по сути, все делят один порт, и в нём уже нельзя свободно менять unit. очень обидно, что в Mdi-версии есть ctrl+wheel, а в более удобной тайловой — нет.

хочется узнать у Антона Александровича, не делал ли он в своей ветке какого-то механизма для решения этой проблемы. и если нет — то есть ли какие-то идеи, как это можно сделать красиво и с минимумом хаков. я кроме варианта вводить unitDelta во Frame, и учитывать это во фреймовых рисовалках, придумать ничего не могу пока. но это криво, и может поломать (обязательно поломает?) код, заточеный на unit/dot.

p.s.: только что подумал: делать отдельный порт-прокси для каждого окошка, может?


это не в смысле что я прямо сейчас бегу реализовывать фичу. просто хочется на будущее.


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

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1163
в линуксовых Fonts не хватает strikeout. в `PROCEDURE ShapeUString` надо так:
Код:
      Pango.layout_set_text(layout, us,-1);
      attrs := Pango.attr_list_new();
      IF font # NIL THEN
         Pango.layout_set_font_description(layout, font(Font).desc);
         IF Fonts.underline IN font.style THEN attr := Pango.attr_underline_new(1)
         ELSE attr := Pango.attr_underline_new(0)
         END;
         attr.start_index := 0;
         attr.end_index := LEN(us$);
         Pango.attr_list_insert(attrs, attr);
         IF Fonts.strikeout IN font.style THEN
            attr := Pango.pango_attr_strikethrough_new(1);
            Pango.attr_list_insert(attrs, attr)
         END
      END;
      Pango.layout_set_attributes(layout, attrs);
      Pango.attr_list_unref(attrs)

и в панго-модуле экспорт `pango_attr_strikethrough_new` поставить. и можно будет зачёркивать на всё здоровье.


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

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1163
перед тем, как я полезу рыть сам, спрошу.

как минимум на лин-версии есть такая особенность: если вдруг трапнулось что-то в подсистеме Text, то после закрытия трапнувшегося окошка остальные окна с документами начинают вести себя странно: такое впечатление, что некоторые сообщения им приходить перестают. больше не моргает курсор, например; если выделять текст мышью — перерисовка не всегда активируется; другие мелкие аномалии. при этом редактировать текст всё ещё можно, но уже не очень комфортно. кто-нибудь из уважаемого общества предполагает, в чём может быть причина?

возможно, трапы с другими view тоже могут к такому привести, я не проверял пока.

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

возможно, трап в неожиданном месте Text какой-то глобал не чистит?

(как я добился трапов в Text — не так важно сейчас. это можно сделать и без мощных модификаций, просто налетев на ASSERT с обычным расширением редактора из своего модуля. ну, так и налетел в первый раз.)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox 2.0
СообщениеДобавлено: Среда, 15 Февраль, 2023 22:13 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
arisu писал(а):
в линуксовых Fonts не хватает strikeout. в `PROCEDURE ShapeUString` надо так:

Спасибо, утащил в сборку это исправление.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox 2.0
СообщениеДобавлено: Среда, 15 Февраль, 2023 22:14 
Аватара пользователя

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

как минимум на лин-версии есть такая особенность: если вдруг трапнулось что-то в подсистеме Text, то после закрытия трапнувшегося окошка остальные окна с документами начинают вести себя странно....

К сожалению, не смогу подсказать. Сам также замечал это, но пока исправление не искал.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox 2.0
СообщениеДобавлено: Среда, 15 Февраль, 2023 22:33 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Народ, свершилось. Мы голосовали, обсуждали, и в Блэкбокс 2.0 был добавлен постороитель векторных рисунков на основе редактора Brahe.

Подсистема получила название Fig, и добавить новый рисунок вы можете с помощью команды Tools -> Insert Figure

Подсистема позволит заменить рисунки в документации на кросс-платформенный вариант, и впредь рисовать нужные иллюстрации для ваших проектов, документации и иных нужд.

Если вдруг у вас остались какие-то рисунки нарисованные в Brahe, то сборку 133 вы сможете использовать для конвертирования, достаточно просто открыть ваш старый рисунок в ней и пересохранить. В последлующих сборках автоматическая конверсия не гарантируется.


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

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1163
я тут подумал: в Sql есть такая клёвая штука, как anchor. она от самого Sql не зависит вообще, просто Так Исторически Сложилось, что она там сидит. может, её оттуда выколупнуть в StdAnchor (собственно, я в LC уже начерно выколупнул, можно взять)?

rationale: удобная штучка чтобы добавить к формочкам данетку на закрытие, и чтобы делать cleanup по закрытию. а то я смотрю — люди периодически начинают лепить заново навешивание нотификаторов и вот это все, а зачем: оно ж есть уже готовое, прямо в среде. а вытащить надо потому что Sql пока в лин-версиях не собирается, ибо не адаптировано толком, и драйверов нет. ну и вообще: компонент-то независимый, по сути. заодно можно использовать как пример того, как делать «визуальные невизуальные» компоненты, которые в режиме маски невидимы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox 2.0
СообщениеДобавлено: Четверг, 16 Февраль, 2023 10:52 
Аватара пользователя

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

Цитата:
я тут подумал: в Sql есть такая клёвая штука, как anchor. она от самого Sql не зависит вообще, просто Так Исторически Сложилось, что она там сидит. может, её оттуда выколупнуть в StdAnchor (собственно, я в LC уже начерно выколупнул, можно взять)?

rationale: удобная штучка чтобы добавить к формочкам данетку на закрытие, и чтобы делать cleanup по закрытию. а то я смотрю — люди периодически начинают лепить заново навешивание нотификаторов и вот это все, а зачем: оно ж есть уже готовое, прямо в среде.


Про StdAnchor, у меня такое мнение, что Борис и так высказывал недовольство, что мы много чего накидали в подсистему Std. Первым от туда уже вылетел StdLibrarian в System. И тут у меня нет никаких возражений, так как инструмент супернизкоуровневый. Сам такой компонент было бы удобно иметь отдельно, но так как пользуются им довольно редко, то его стоит выделить в отдельное расширение, и опубликовать на сайте https://blackbox.oberon.org/ так он будет даже заметнее. Выделение в Std может привести к тому, что нам захочется его добавлять на формы самого Блэкбокса где-то. И если в подсистеме Sql это обосновано, как приём по открытию, закрытию сетевых соединений, то в других формах это применять нет какого-то смысла. Так что пусть там и живет себе в Sql. Но повторюсь, чтоб было бы полезно ваш StdAnchor опубликовать на сайте https://blackbox.oberon.org/


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

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1163
Иван Денисов писал(а):
Выделение в Std может привести к тому, что нам захочется его добавлять на формы самого Блэкбокса где-то. И если в подсистеме Sql это обосновано, как приём по открытию, закрытию сетевых соединений, то в других формах это применять нет какого-то смысла.
а почему, собственно, нет, если он будет в стандартной системе? как по мне — он не так уж сильно отличается от StdLinks каких-нибудь: просто удобная штучка. лежащий в Sql он тянет за собой всю подсистему Sql, потому что он в кучке с табличками лежит, и там импорт SqlDB и прочей механики. а если его оттуда выковырять — то и сама Sql может его использовать вместо своего (или вместе, чтобы совместимость не ломать), и если кому-то нужен именно anchor — не надо будет всю Sql из-за него тащить. впрочем, как знаете: моё дело — предложить. ;-)

Иван Денисов писал(а):
Но повторюсь, чтоб было бы полезно ваш StdAnchor опубликовать на сайте https://blackbox.oberon.org/
я пока не готов его оформлять как standalone component: это надо квикстарт писать, примеры делать, всё такое вот. я хотел эту задачу (как минимум описание и примеры) подло взвалить на остальных разработчиков BB 2.0. но, кажется, мой Хитрый План раскусили.


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

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1163
так anchor-то совершенно официально экспортирован как раз. ну не боги ящик сколачивали: довольно очевидно, что за пределами диссертации в BBCB добавляли вещи по принципу: «понадобилось — сделали», не было там особого Гранд-Плана (кроме здравого смысла). якорь им понадобился когда начали делать Sql, однако даже в родной документации написано, что это штука общего назначения, хоторая просто оказалась в Sql, потому что так вышло. выносить его не стали, чтобы новую подсистему Sql можно было бы ставить просто копипастой, и не гадить в другие подсистемы. подход логичный.

однако нам это вряд ли сейчас актуально, никаких прошлых версий BB 2.0 не существует. поэтому самое время компонент общего назначения достать из Sql и положить в какую-нибудь подсистему общего назначения. Std отлично подходит. ну, много там всего — не страшно. на самом деле не так и много ведь, и там в том числе лежат компоненты, которые независимы, но подсистему им создавать на каждый как-то…

а `FileExists()` — это совсем другое дело: хак по месту, потому и не экспортирован. нет в BBCB никакого подходящего для всех случаев механизма проверки на существование файла просто. где-то лучше сканировать список по локатору, где-то лучше просто открыть файл и посмотреть, что получится, а где-то вдобавок надо ещё и открытые документы просканировать, например.

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

Note that actually the anchor controls can be used universally for any kind of pointers, they need not be table pointers. Whenever you need to clear global pointers when no document references (i.e., anchors) to them exist anymore, you can use these anchors.

в итоге получается довольно некрасиво, когда код, который с БД ни сном ни духом — вдруг требует подсистему Sql, потому что оттуда якорь потянули. в Std было бы логичней.

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

оно ладно, там копипасты-то кот наплакал, нестрашно. но ведь оно уже официально в системе есть! что лучше: сказать новичку «вот эту кучу себе скопипасти», или «а в системе уже компонент готовый есть»? я ж не предлагаю новый добавлять, а просто «повысить видимость» уже существующего.

ладно, на этом прекращаю дозволеные речи. вроде бы rationale раскрыл. вы, пожалуйста, поймите, что я это не ради спора, а чтобы полнее пояснить, почему именно я считаю, что имеет смысл. а нет — так нет, без проблем.

p.s.: да распронаедрит его в качель через пятое колесо кривой телеги! опять стена текста получилась. что ж такое-то…


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox 2.0
СообщениеДобавлено: Четверг, 16 Февраль, 2023 21:11 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Сама подсистема Sql в целом на мой личный взгляд не требуется Блэкбоксу как базовая для работы. Её бы выделить в расширение, и кому требуется, пусть устанавливают. Это когда-то с интернетом были проблемы. Фёдор Васильевич рассказал, как на двух дискетах из Нью-Йорка привез первый Блэкбокс в Россию. И подсистему Ctl также лучше выделить как отдельную. Мало кто работает с офисом, а кому потребуется есть выбор: Ctl, Odf.

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

Отключение Ctl и Sql, к слову сбалансировало бы дистрибутив для Windows после добавления Fig.


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

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
arisu писал(а):
Иван Денисов писал(а):
И надо сделать FAQ для упрощения этого, форум это конечно хорошо, но хорошего FAQ не хватает.
этот FAQ будет называться «многотомная книга про программирование в BBCB». ну, или: «читай исходники, Люк, тебе для этого навигация по ним дана!» ;-)

Проблема на самом деле серьёзная,

Несколько хороших заметок есть на международной вики
https://wiki.blackboxframework.org/inde ... =Main_Page

в частности там мини заметка про секвенсер и уведомитель при закрытии окон
https://wiki.blackboxframework.org/inde ... Sequencers

я вот тут тоже про локализацию писал заметку
https://vk.com/@componentpascal-lokalizaciya-prosto

надо бы хорошее место для статей, заметок, вот на вики в целом смотрится не плохо
https://wiki.oberon.org/blackbox/noappwin
тему бы только какую-то более современную установить ещё туда

А также последние годы была проблема, что Блэкбокс быстро изменялся, и полезные заметки теряли актуальность.
Как например вот эта заметка про "приложение без главного окна", в 2.0 это всё уже делается иначе.


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

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1163
Иван Денисов писал(а):
Сама подсистема Sql в целом на мой личный взгляд не требуется Блэкбоксу как базовая для работы. … И подсистему Ctl также лучше выделить как отдельную.
тут я с вами согласный буду.

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

в принципе, это решается дистрибутивным инсталлятором, конечно. но и в самой среде было бы неплохо такую фичу иметь: чтобы, например, они ставились в каталог /USE.

Иван Денисов писал(а):
Про ваш вопрос тоже, якорь нужен, когда знаешь, как им пользоваться. Про то как пользоваться якорем надо сделать статью в нашей википедии, там же и ссылку на модуль-компонент.
да, это одна из основных причин, по которым я его вытащить предлагал: повысить видимость для программиста.

кстати, сборник знаний было бы неплохо не только в вики иметь, но и в виде набора .odc, и поставлять со средой. чтобы можно было и оффлайново читать, и поиск по нему работал. тоже надо будет над этим подумать, как покрасившее сделать, мне кажется.

Ole и Ctl, кстати, в LC собираются только для конфигурации WinMdi. это я к тому, что отчасти вашу идею отделения протелепатировал. ;-)

Иван Денисов писал(а):
arisu писал(а):
Иван Денисов писал(а):
И надо сделать FAQ для упрощения этого, форум это конечно хорошо, но хорошего FAQ не хватает.
этот FAQ будет называться «многотомная книга про программирование в BBCB». ну, или: «читай исходники, Люк, тебе для этого навигация по ним дана!» ;-)
Проблема на самом деле серьёзная,
да, согласен. это была скорее грустная шутка.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 387 ]  На страницу Пред.  1 ... 10, 11, 12, 13, 14, 15, 16 ... 20  След.

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


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

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


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

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