PDA

Просмотр полной версии : Окна и рамы



PPC
09.08.2023, 04:39
Меня всегда привлекали оконные интерфейсы.

Когда-то в 90х я наконстролил нечто рудиментарное с окошками для редактирования шрифтов в МикроДОСе с BoldBIOS.

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

Пока удалось сделать десктоп, горизонтальные и выпадающие меню, листбокс, модальные диалоги, обработку групбоксов, property sheets, push button и checkbox. Ну и минимальный набор для управления оконным API и WINDOW messaging (хоть и без очередей). Меню и листбокс сделаны пока криво, без прокрутки хотя "правильный" код у меня тоже на руках.

7925779258

Так как я начал с имеющегося кода с 90х, выбор С компилятора - не самый удачный. Это SuperSoft C, даже не K&R и оптимизировать генерируемый им код - постоянный вызов. С другой стороны, я обожаю недокомпиляторы и перспективу впихивать невпихуемое. Как вышло - судить вам. Весь исходный код прилагается в аттаче. Там же образ дискеты fonted.fdd. Чтобы запустить редактор шрифтов, просто смонтируйте в эмуле на приводе A, загрузитесь и нажмите <ВК>. На диске есть несколько разных видов шрифтов для примера. Их можно загружать в редактор а потом в ОС. Также можно сгенерить ОС с новым шрифтом

Зачем я это всё делаю? Мечта на самом деле вместо МикроДОСа подключить графические библиотеки и получить многоцветные окошки на нативном Векторе. Естественно, при этом будет смена компилятора, а в какой-то момент возможно вместо C будет portasm ;) чтобы ужать и сделать некий API с поддержкой различных языков высокого уровня.

Ну и потом, может кому сырки пригодятся. Буду рад комментам/замечаниям/предложениям. Ну а пока вот как есть.

Обновление до версии 1.2
79268

Пофикшено сохранение символа в окне редактирования (забыл доделать начатую оптимизацию)

ivagor
09.08.2023, 06:07
Очень жаль, что для вектора нет нормальной мыши.

Improver
09.08.2023, 06:41
Тут не столько про отсутствие мыши надо жалеть, сколько про отсутствие текстовых режимов экрана -- с ними ресурсов на обработку изображения потребовалось в разы меньше. А так окна красивые, похожи на окна борландовского TurboVision...

KTSerg
09.08.2023, 07:54
Очень жаль, что для вектора нет нормальной мыши.
А подключение ps/2-мыши к разъёму "ПУ" разве не интересно?
https://zx-pk.ru/threads/30224-vektor06ts-klava-i-mysh-ps-2-cherez-quot-pu-quot.html?p=1003249&viewfull=1#post1003249
Если из-за перегруженности ПУ другим железом, то можно выделить новый адрес и на "ВУ" дешифратор адреса собрать, главное, что-бы применение нашлось.
Только не представляю как её в эмуляторах поддержать...

ivagor
09.08.2023, 08:05
Если я правильно понимаю, это вариант примерно как в вектор-user и он меня не устраивает. Нужен "интеллектуальный" контроллер.

svofski
09.08.2023, 12:10
PPC, окартотечил https://caglrc.cc/scalar/ware/934/
Если надо что-то поменять и добавить, говори.

Очень круто! На Векторе очень мало было бизнес-софта.

PPC
09.08.2023, 18:19
Тут не столько про отсутствие мыши надо жалеть, сколько про отсутствие текстовых режимов экрана -- с ними ресурсов на обработку изображения потребовалось в разы меньше. А так окна красивые, похожи на окна борландовского TurboVision...

Спасибо. Да, основной пар там уходит на вывод символа МикроДОСом. Хоть весь вывод и через BIOS, но даже в таком формате шрифта, режим 512x256 это не подарок. Есть некая обоснованная надежда на то, что если использовать библиотеку отдельно от ДОСа в режиме 256x256, то всё будет пошустрее. Думается, раз в 5 как минимум. Надеюсь, мы это когда-нибудь увидим.

- - - Добавлено - - -


PPC, окартотечил https://caglrc.cc/scalar/ware/934/
Если надо что-то поменять и добавить, говори.

Очень круто! На Векторе очень мало было бизнес-софта.

Спасибо! Всё замечательно прописано. Теперь такого рода софта стало чуточку больше :)

А может быть возможно/стоит и вот это (https://zx-pk.ru/threads/33387-bmp.html) тоже добавить в картотеку?

Оно вроде тоже под ОСь, и тоже прикладного характера. Правда, я там не поделился сырками, но никто вроде сильно не просил. Но картинки она конвертит прямо на Векторе.

svofski
10.08.2023, 02:06
А может быть возможно/стоит и вот это тоже добавить в картотеку?
Добавил.

Improver
10.08.2023, 06:47
Добавил.Странная какая-то категория "business" получается -- пять игрушек про торговлю и редактор шрифтов. :)

svofski
10.08.2023, 12:29
Странная какая-то категория "business" получается -- пять игрушек про торговлю и редактор шрифтов. :)

Есть такое. Категории тут скорее просто теги, а одиночные теги без контекста часто бывают мимо. Можно добавить в нее текстовые редакторы по крайней мере.

PPC
10.08.2023, 21:06
Такой значит бизнес вышел...со смысловыми коннотациями
Мы фонтами не торгуем :)

PPC
14.08.2023, 14:16
Обновление до версии 1.2 (в первом посте)

Пофикшено сохранение символа в окне редактирования. Забыл доделать начатую ещё до первой версии оптимизацию, и код остался ни два ни полтора.
К счастью, запустил редактирование.с сохранением изменений. Зато сразу на 35 байт короче. Такой вот компилятор.

svofski
14.08.2023, 18:49
Обновление до версии 1.2 (в первом посте)
Если ты планируешь работать над этим бизнес-решением, может быть лучше тогда его в гитхаб, а в картотеку ссылку на него?

PPC
15.08.2023, 06:43
может быть лучше тогда его в гитхаб, а в картотеку ссылку на него?

Сразу приношу благодарности за апдейт в картотеке и извинения за доставленные неудобства! В общем-то даже изначально не планировал.

Редактор фонтов - это byproduct, сыворотка от разработки оконной библиотеки. Просто он уже был в каком-то виде в 93 году. И какой-то библиотечный оконный код тоже. И поэтому я решил продолжить доработку существовавшего редактора чтобы не выдать бизнес-решение в виде вакуумного сфероконя в гильбертовом пространстве. Хотя, сейчас это в тренде, похоже...

У редактора хотя-бы теоретически есть возможное применение - моделируйте ваши фонты по ваааашему вкууусу, взорвитесь радугой глифов и лигатур. Это пиар. Такой...
Хотелось доделать редактор до уровня как сейчас. Больше никаких фичей в нём не планирую, только сопровождение в виде багофиксов. А github сразу накладывает ответственность и предполагает дальнейшее развитие проекта куда-то. Просто я в конце настолько обнаглел, что одновременно оптимизировал в разных местах кода без проверок, и вот, недопилил.

В оправдание, и для большего фана предлагаю почитать первые 50 строчек файла "wios.h". Многое станет понятным в смысле "почему у вас код такой"...

Возможно, надо было сразу менять компилятор и нацеливаться на конечную задачу - графическая оконная библиотека с многоцветием Вектора в нативном режиме. А может - и надстройка над ОС, кстати. Тогда надо FileOpenDialog приделывать и ещё кой-чего (бизнес-секреты, не раскрою :) )

Но в общем ты прав. Как только сменю цомпилер, библиотека пойдёт в гитхаб или другой какой online source control. Однозначно приду к тебе за советами как там всё организовать. Времени бы ещё на всё это побольше!