НеОфициальный theBAT!
Одежда для The Bat! версии 3.хх
...или особенности новобатовского скинорисования...

Предисловие

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

Из чего состоит скин теперь?

Теперь скин состоит из двух файлов: из картинки и сопровождающего её файла-описания batskin.ini. Отмечу, что так обстоят дела по крайней мере на момент написания этой статьи и в будущем возможны изменения. Оригиналы этих файлов (заводские настройки, так сказать) включены в ресурсы thebat.exe и без труда извлекаются Restorator’ом. Для ленивых вот выковырянные таким образом файлы из The Bat! 3.0.2.10. Можете использовать их в качестве опорных.

Картинка

Изображения могут быть в формате jpg, bmp или png. Последние два позволяют использовать полупрозрачность для сглаживания краёв изображения. Их без проблем можно создавать и редактировать, например, в Photo Shop.

Расположение элементов в графическом файле теперь задаётся в сопровождающем batskin.ini. Об этом ниже.

Batskin.ini

Структура файла довольно громоздкая, пользовательскими удобствами тут не пахнет, но тем не менее гибкая. Ну ничего, прорвёмся. Это классический ini-файл. Заголовки разделов заключены в квадратные скобки, названия переменных и их значения разделены знаком равенства, комментарием считается всё от ; до конца строки.

General

Начинается история с раздела General. Он пока что не используется, но в перспективе не исключено, что эта информация будет проскакивать где-нибудь в самом Бате.

[General]
Title=Colorful icon scheme
Copyright=(C) 2004 Ritlabs

Bitmaps

Для начала определяемся, в каких именно графических файлах содержатся наши картинки. Они перечисляются в разделе Bitmaps.

[Bitmaps]
Bitmap0=new_icons.png,,28,33,608,384

Должен быть, понятное дело, как минимум один графический файл (но при желании можете разделить свой скин и на несколько, тогда они именуются по порядку: Bitmap0, Bitmap1 и так далее). Сначала указывается имя true color файла. Затем через запятую имя файла с 16-цветными картинками (но, поскольку нам это скорее всего не нужно, после запятой не пишем ничего). После этого через запятые пишем координаты и размеры области с иконками (отсчет от верхнего левого угла): позиция по горизонтали, позиция по вертикали, ширина области и высота области. Всё, что по краям, будет обрезано ещё при загрузке картинки Батом. При желании последние 4 цифры можно не указывать, тогда ничего обрезаться не будет. Но учтите, что после обрезания исходного графического файла он целиком загружается в память в распакованном виде (png, например, на диске хранится сжатым). Потому в ваших интересах указать неиспользуемые поля, если они есть.

Schemes

Затем перечисляем, какие списки картинок в каком наборе картинок находятся.

[Schemes]
WorkIcons=GlyphList16x16
Buttons=GlyphList32x32
ListIcons=GlyphList24x16
Folders=GlyphList16x16
Controls=GlyphList16x16
AddrBook=GlyphList20x20
BigIcons=GlyphList32x32

Эти семь списков картинок должны быть описаны обязательно. Имена наборов картинок в которых фактически находятся сами изображения, вы можете менять по вкусу, если не боитесь запутаться :) .

GlyphSets

Описываем наборы картинок, которые были упомянуты выше. Имена ключей до знака «равно» строго фиксированные: GlyphSet0, GlyphSet1 и так далее. Затем идёт имя набора, как оно упоминалось в разделе Schemes. Затем ширина и высота самих картинок, содержащихся в этом наборе.

[GlyphSets]
GlyphSet0=GlyphList16x16,16,16
GlyphSet1=GlyphList24x24,24,24
GlyphSet2=GlyphList24x16,24,16
GlyphSet3=GlyphList20x20,20,20
GlyphSet4=GlyphList32x32,32,32

Наборы картинок

После определения наборов картинок расписываем их подробно. Называем раздел ini файла как тот или иной набор и перечисляем изображения из этого набора.

[GlyphList32x32]
fixup=32,32,0,0
bFetch=0,1,0
bSend=0,0,0
bNewMsg=0,2,0
bReply=0,3,0
bReplyAll=0,4,0
bForward=0,5,0
...

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

Затем следует перечисление всевозможных картинок, которые используются в Бате. Здесь ничего сочинять не приходится, полный их список приведен в оригинальном файле и изменять его не стоит. После имени картинки через запятые перечисляются: номер графического файла (см. раздел Bitmaps), координаты ячейки с картинкой в воображаемой сетке в этом файле (координаты столбца и строки, отсчет начинается с нуля), смещение данной конкретной картинки относительно описанной в fixup позиции (по горизонтали и вертикали, этого можно не указывать, как это сделано в оригинальном файле).

Послесловие

В оригинальном batskin.ini содержится ряд неясностей и неточностей. Некоторые кнопки (например, «корзина» – удаление) берутся не совсем оттуда, откуда следовало бы ожидать. Вы обязательно это заметите, если начнете рисовать свой скин. Не удивляйтесь, пока что вся система работает на честном слове и, скорее всего, в будущем будет изменена.

Ну а пока довольствуемся тем, что есть. Удачи! ;)

Вариаты одежды для The Bat! 3.xx

Да, и не забывайте присылать нам свои варианты одежды для The Bat!

Андрей Переводчик