Выкладываю 3 практически готовых скина
http://gorsash.at.tut.by/kol_skin/aqua/aqua.7z
http://gorsash.at.tut.by/kol_skin/aqua/aqua.rar
http://gorsash.at.tut.by/kol_skin/metallic/metallic.7z
http://gorsash.at.tut.by/kol_skin/metallic/metallic.rar
http://gorsash.at.tut.by/kol_skin/sky/sky.7z
http://gorsash.at.tut.by/kol_skin/sky/sky.rar
Для их корректной работы нужно перекомпилировать ядро (файл skindata.inc прилагается).
В процессе тестирования обнаружилось, что очень мало программ поддерживают произвольную высоту скина (т. е. используют функцию 48 ). Поэтому пришлось делать все скины примерно той же высоты, что и стандартный, иначе выглядело некрасиво . Кнопки максимизации сделаны с расчётом на будщее, как и картинки для неактивного окна.
Кто-нибудь может красиво рисовать ?
Для Sash, Count_Raven_Amiant и других, кто занимается созданием скинов. Начиная с версии 0.5.3.0 будет введён новый формат скинов, позволяющий отделить их от ядра. С новым форматом, перекомпиляция и в принципе какие либо изменения ядра не понадобятся. Все данные о скине будут находиться в одном файле (и это естественно будет не файл ядра ).
Для создания файла скина понадобится FASM. Пример описания скина в новом формате (7z|zip):
Для создания файла скина понадобится FASM. Пример описания скина в новом формате (7z|zip):
Code: Select all
include 'me_skin.inc'
SKIN_PARAMS \
height = bmp_base.height, \ ; высота скина
margins = [5:1:43:1], \ ; поля заголовка, [слева:сверху:справа:снизу]
colors active = [binner=0x00081d: \ ; цвет внутренней линии границы окна
bouter=0x00081d: \ ; цвет внешней линии границы окна
bframe=0x0054e7],\ ; цвет границы окна
colors inactive = [binner=0x00081d: \ ; то же самое,
bouter=0x00081d: \ ; только для неактивных
bframe=0x1a8acc],\ ; окон
dtp = 'myblue.dtp' ; dtp файл цветов для окон без скина
SKIN_BUTTONS \
close = [-21:3][16:16],\ ; положение кнопок на заголовке
minimize = [-39:3][16:16] ; [слева:сверху][ширина:высота]
SKIN_BITMAPS \
left active = bmp_left, \ ; ассоциация битмапов
left inactive = bmp_left1,\ ; ясно, что один битмап может
oper active = bmp_oper, \ ; быть использован несколько раз,
oper inactive = bmp_oper1,\ ; тем самым можно уменьшить размер скина
base active = bmp_base, \ ; (например, отображение части окна
base inactive = bmp_base1 ; одинаково в активном и неактивном состоянии)
BITMAP bmp_left ,'left.bmp' ; битмапы
BITMAP bmp_oper ,'oper.bmp' ; формат: BMP, 24 бита
BITMAP bmp_base ,'base.bmp'
BITMAP bmp_left1,'left_1.bmp'
BITMAP bmp_oper1,'oper_1.bmp'
BITMAP bmp_base1,'base_1.bmp'
Круто, особенно получение размеров BMP файла во время компиляции. Так держать!
Наконец-то нормальный формат скинов. Заодно экономится место на диске, потому что каждый маленький файл не занимает отдельный кластер. И вообще на каждый скин один файл - это правильно
Спасибо за лестные отзывы. Значит не зря старался. Хотел ещё добавить, что т.к. скин теперь будет практически исходником, можно использовать и директивы условной компиляции. Не знаю зачем, но можно
Я заметил, что тут есть такая вещь, как margins. Не совсем понятно, что они обозначают: позицию центральной картинки, позицию всех картинок или размеры полей, за которые можно будет взяться мышкой и изменить размер окна?
Скины имхо рулёзные, вот только кнопку закрытия окна надо отодвинуть чуть дальше от остальных. Это сократит вероятность случайного нажатия на неё.
На данный момент средняя кнопка (развернуть) всё равно не работает, поэтому нет смысла на неё нажимать. Когда появится её поддержка, тогда, может, и переделаюipr wrote:Скины имхо рулёзные, вот только кнопку закрытия окна надо отодвинуть чуть дальше от остальных. Это сократит вероятность случайного нажатия на неё.
Sash
Margins - это "поля заголовка", т.е. если у тебя есть координаты заголовка окна (а они есть, и равны [0:0:window width:skin height]), и от каждой координаты отнять соответствуюшее число из margins, то получатся координаты прямоугольника, в котором должен располагаться текст заголовка. Для получения этих margins будет введена новая системная функция (видимо, 48/7). Также, margins будут использоваться самим ядром после введения функции установки заголовка окна, при этом ядро само будет рисовать заголовок в нужном месте, и с "..." если нужно. Пока же это будут делать сами приложения (если захотят, конечно). Очень рекомендую этими margins пользоваться, как дизайнерам, так и программистам.
Margins - это "поля заголовка", т.е. если у тебя есть координаты заголовка окна (а они есть, и равны [0:0:window width:skin height]), и от каждой координаты отнять соответствуюшее число из margins, то получатся координаты прямоугольника, в котором должен располагаться текст заголовка. Для получения этих margins будет введена новая системная функция (видимо, 48/7). Также, margins будут использоваться самим ядром после введения функции установки заголовка окна, при этом ядро само будет рисовать заголовок в нужном месте, и с "..." если нужно. Пока же это будут делать сами приложения (если захотят, конечно). Очень рекомендую этими margins пользоваться, как дизайнерам, так и программистам.
Sash
А почему бы её тогда не убрать временно?
А почему бы её тогда не убрать временно?
Насколько я знаю, она скоро уже будет работать, тока т-с-с!
Heavyiron
Ладно, никому не скажу
Ладно, никому не скажу
Насколько я понял, теперь dtp-файл (таблица стандартных цветов) включен прямо в файл скина. Если так, то есть предложение удалить нафиг приложение GRSCREEN, а в autorun.dat заменить его на JPEGVIEW с параметром BOOT. Вот все, что делает grscreen:
- загружает /rd/1/myblue.dtp (игнорируя ошибки)
- устанавливает таблицу стандартных цветов (функция 48::2)
- устанавливает отрисовку фона как "растянуть" (функция 15::4)
- запускает /rd/1/jpegview BOOT
- ждет 1 секунду
- завершается
После чего JPEGVIEW сам загружает файл /rd/1/default.dtp и устанавливает таблицу цветов оттуда. Отрисовка фона также устанавливается в jpegview.
- загружает /rd/1/myblue.dtp (игнорируя ошибки)
- устанавливает таблицу стандартных цветов (функция 48::2)
- устанавливает отрисовку фона как "растянуть" (функция 15::4)
- запускает /rd/1/jpegview BOOT
- ждет 1 секунду
- завершается
После чего JPEGVIEW сам загружает файл /rd/1/default.dtp и устанавливает таблицу цветов оттуда. Отрисовка фона также устанавливается в jpegview.
diamond
Не в той теме ты написал, но идея хорошая. Сам я бы не допер до этого еще некоторое время.
Пожалуй, так и сделаю.
Не в той теме ты написал, но идея хорошая. Сам я бы не допер до этого еще некоторое время.
Пожалуй, так и сделаю.
а когда однофайловые скины будут в жизни реализуемы или я старый дистр юзаю
Who is online
Users browsing this forum: No registered users and 1 guest