четверг, 24 марта 2016 г.

Создание собственных тем оформления

Как и просили выкладываю схему для создания собственных тем оформления для Nomad. Для тех кто не в курсе, что это такое и с чем это едят, немного дополнительных подробностей.

Тема оформления в Nomad это специально сформированный xml файл содержащий ссылки на все необходимые типы рендеров (рендер панелей, рендер вкладок), на все необходимые типы цветовых таблиц, а также даёт возможность менять практически все используемые в офомлениии цвета.

Схема это специальный xsd файл который описывает структуру файла с темой оформления, содержит названия всех возможных элементов, а также допустимые значения для параметров. Используя специальное ПО и данную схему можно проверять валидность созданной вами темы.

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

Пример готовых тем вы можете найти в каталоге Themes (ClassicDN.theme и ClassicNC.theme), в этот же каталог необходимо сохранять созданные вами темы, Nomad должен подхватить их автоматически.

4 комментария:

Brawler комментирует...

Замутил пару стилей аля VS Black (пока черновики так сказать)
BrawlerFullDark.theme - https://yadi.sk/d/P0b275QnqWQvf
BrawlerMainWindowDark.theme - https://yadi.sk/d/WMRFTCjQqWQvc

Отличаются лишь тем, что в первом окрашиваются и диалоговые окна, а во главное окно и немного окно настроек.

Внутри в основном использовал цвета указывая их в HEX, а там, где они записаны словами типа "Red", то это значит я нифига не понял, где этот цвет вообще появляется.

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

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

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

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

Задал цвета для строки состояния, но ее или вообще нет или цвет не используется, короче снизу не появилось ничего светлосиненького как в студии, рамка окна тоже не окрашивается(((

Кучка мелочей короче, пока мои недоделанные темы сложно юзать, так как черный текст в меню сложно читается на темном фоне, все остальное не страшно(((

Бум ждать развития программы.

Я никому не запрещаю взять мои темы за основу, обозвать их как им нравится, довести до ума и поделиться с общественностью.

Евгений Сичкарь комментирует...

Так, да, система тем подстраивалась под мои нужды и неидеальна в данный момент. Я её усовершенствую немного, но полной кастомизации не будет, это слишком затратно сейчас. Итак по пунктам:
1. Действительно, задать цвет текста для элементов меню сейчас нельзя, это регулируется рендерами. В следующей версии добавлю новый параметр для тем, который позволит это сделать (уже сделано).
2. Цвет текста в диалогах, аналогично пункту 1 (уже сделано).
3. Цвет текста кнопок, полей ввода, combobox-ов, так и нельзя будет пока что изменить.
4. Комментарии добалвлять можно, стандартные xml комментарии () работают.
5. Если включена визуальная тема проводника, то подсветка файлов в панелях регулируется системой и не изменяется никак (к сожалению). Визуальную тему проводника можно отключить в настройках, тогда подсветки при наведении мышкой не будет.
6. Действительно цвета для строки состояния из темы сейчас игнорируются, это будет исправлено в следующей версии (уже сделано).

Вроде бы всё. В будущем подобные развёрнутые посты лучше писать в группы (https://groups.google.com/forum/#!forum/nomad-net), они конечно полумёртвые, но всё же лучше подходят для сложного общения, по сравнению с комментариями здесь :)

Brawler комментирует...

1. круть
2. круть
3. не смертельно
4. Разобрался, сам файл темы был не в кодировке UTF-8 и в этом случае, если есть комментарии на кириллице, то Nomad тему не грузит и у него еще окно настроек сильно возмущается так называемыми красными окошками.
5. да, точно лучше стало.
Тут такое дело, выстройте пожалуйста приоритеты у цвета текста в файловых панелях в таком порядке: не выделенная строка, выделенная строка, Параметры/Подсветка, отмеченная пользователем строка.
А то вроде отмечаешь строку, потом тыкаешь в нее, а цвет становится как у обычной строки и так можно грохнуть файл подумав, что он не отмечен при нескольких выделенных файлах.
Приоритет "Параметры/Подсветка" над "выделенная строка" может быть в настройках шаблона вообще стоит предусмотреть, а то мало ли какой фон выберут в выделенной строке и все сольется.
Ну тут на ваше усмотрени все конечно.
6. круть

Да, дальше лучше там продолжать, а пока здесь написал, так как весь контекст общения находится именно тут и проще сориентироваться.

Brawler комментирует...

Кому интересно.
Подправил темы, теперь черного на черном стало меньше)).

BrawlerFullDark.theme
https://yadi.sk/d/WO-oTnVerLdWe

BrawlerMainWindowDark.theme
https://yadi.sk/d/7DO8X9CFrLdWY