Я обещал писать посты тогда, когда у меня происходят более-менее значимые продвижения в работе. Ну вот так состоялось и на этот раз. Так что вот, на сей, четвертый день работы, я уже почти что сделал контрол пользовательского надстраиваемого и функционального окна. Там я реализовал базовые функции, которые могут понадобится в дальнейших реализациях диалоговых окон программы. Ну и, конечно, без улучшений и оптимизаций не обошлось. И не обошлось без выкинутого лишнего мусора, который был сделан в прошлые разы по причине несвоевременного осознания того, как некоторые вещи можно было сделать лучше и проше. А самое главное - стабильнее. Весь базовый функционал окна реализован, ну а для того, чтобы его расширить, теперь не нужно захламлять базовую реализацию, а можно создать расширение реализации. Я говорю о ленточном окне "RibbonWindow". Его я буду реализовывать дальше по очереди. И только там у меня будет функционал вкладочной ленты, и он теперь не будет примешан к реализации базовых окон, как было в черновой версии программы.
Ну а до тех пор мне ещё предстоит реализовать все необходимые диалоговые окна. Это окна для вывода сообщений, подтверждений действий и ввода данных. А ещё диалоги для работы с файловой системой, для настройки шрифта и так далее. С этим за день не справишься. Но завтра сделаю то, что успею сделать. Так что вот так.
Ну а в новой реализации окна теперь всё работает четче и код стал прозрачнее. Теперь его легче поддерживать и расширять. А это очень важные условия в продвижении программы, да и, собственно, бизнеса. Например, теперь у окна имеется три прогрессбара, для кнопок "Применить", "Ок" и "Выполнить". И с ними связаны свои прерываемые задачи. Теперь запутаться будет труднее. Так как всё понятнее. Вот такие пироги. Ну и вот, на этом пока и всё. Завтра займусь диалоговыми окнами. Да, тут будет работу чуть меньше. Потому что мне теперь нет надобности создавать свой файловый менеджер. Воспользуюсь файловыми менеджерами Авалонии. Для этого, кстати, мне сегодня пришлось допиливать стили окон по умолчанию. Так как оттуда Авалония берет оформление для диалоговых окон файловой системы. И пришлось для этих дефолтных окон реализовать собственную систему событий и кэширования данных, чтобы сохранялись размеры и положение окна. С одной стороны удобно, с другой - неудобняк, что пришлось докручивать стили. Ну, наверное, второй вариант предпочтительней, потому как стилизованы не только пользовательские окна, но и дефолтные. Так то.
Ну и вот, это пока что всё. На сегодня. Так что до новых постов и до новых свершений. И до скорейшей реализации всей программы. До победы, короче.
