![]() | |
| Руководство по созданию скина |
Файл batskin.xml предназначен для настройки собственного набора иконок в программе The Bat!
Этот файл должен быть в обычном XML-формате с требуемой структурой. Структура XML-файла должна иметь главный раздел batskin:
<batskin> ... </batskin>
Формат этого файла может не в полной мере отвечать стандарту XML (файл является текстовым конфигурационным файлом со структурой приближенной к XML). В частности можно не соблюдать все требования XML, а также отсутствуют <лишние> возможности формата.
В тексте можно вставлять комментарии в стиле XML, например:
<!-- Здесь может располагаться ваш комментарий -->
Внутри раздела batskin могут быть необязательные элементы title (описание или название скина) и copyright (информация об авторе и условиях распространения), например:
<title> Скин "Альфа" для программы The Bat! </title> <copyright> Иван Иванов - ivan@mail.com, (c) 2005 </copyright>
Далее должен следовать обязательный раздел bitmaps (все используемые файлы изображений).
<bitmaps> ... </bitmaps>
Этот раздел должен содержать несколько описаний элементов bitmap (отдельный файл изображения). В разделе bitmaps должен быть по крайней мере один элемент bitmap в следующем виде:
<bitmap id="ID" file="FILE" cropx="CROPX" cropy="CROPY" cropwidth="CROPWIDTH" cropheight="CROPHEIGHT" />
Каждому используемому файлу с изображением должка соответствовать один такой элемент.
Значение параметров:
ID - уникальный код для файла, на который вы сможете в ссылаться в следующих разделах Batskin.xml;
FILE - имя файла с используемым изображением. Поддерживаются форматы PNG, BMP и JPG;
В случае если исходный файл в формате PNG, то альфа-канал (alpha layer) будет использоваться для задания (полу)прозрачных областей.
В случае если исходный файл в формате JPG, тогда в качестве прозрачного цвета будет использован цвет самой верхней левой точки.
В случае если исходный файл в формате BMP с 32-битным цветом и альфа-каналом, тогда альфа-канал будет использоваться для задания прозрачности. В случае простого BMP-файла в качестве прозрачного цвета будет выбран цвет верхней левой точки.
Дополнительные необязательные параметры CROPX, CROPY, CROPWIDTH, CROPHEIGHT могут быть целыми числами, которые задают параметры используемого фрагмента из всего изображения. В некоторых случаях изображение может быть бо'льшим, чем это необходимо. Эти параметры позволяют задать области для отсекания при загрузке, процесс такой обрезки похож на функцию "Обрезать" (Crop) в большинстве графических редакторов.
После раздела bitmaps должен располагаться раздел sizes:
<sizes> ... </sizes>
Этот подраздел должен определять размеры используемых иконок в программе (The Bat!).
В разделе должны располагаться несколько элементов size следующего вида:
<size id="GROUP_ID" width="WIDTH" height="HEIGHT" />
Обязательный параметр GROUP_ID (код группы иконок) должен быть одним из предопределенных значений, полный список которых вы можете найти в Приложении A (которое находится в конце документа).
Остальные обязательные параметры WIDTH и HEIGHT должны содержать целочисленные размеры иконок (ширину и высоту соответственно).
Обязательный раздел glyphs, определяет соответствие иконок в программе фрагментам в используемых изображениях.
<glyphs> ... </glyphs>
Внутри этого раздела могут быть помещены элементы source, grid, glyph, glyphex.
<source bitmap="BITMAP_ID" width="GLYPH_WIDTH" height="GLYPH_HEIGHT" />
Здесь параметр BITMAP_ID должен в точности соответствовать одному из изображений описанных в разделе bitmaps (параметр ID из элемента bitmap).
Параметры GLYPH_WIDTH/GLYPH_HEIGHT определяют размер следующих ниже определений иконок.
<grid width="GRID_WIDTH" height="GRID_HEIGHT" xofs="XOFS" yofs="YOFS" />
Одна из концепций batskin.xml состоит в том, что иконки должны располагаться в ячейках виртуальной таблицы. Это работает следующим образом:
Исходное изображение виртуально делится на таблицу с одинаковыми ячейками. Каждая ячейка может содержать только одну иконку. Ссылки на конкретную иконку делаются посредством указания номера колонки и строки. Нумерация колонок и строк начинается с 0.
Параметры GRID_WIDTH/GRID_HEIGHT определяют размер ячейки таблицы.
Необязательные параметры XOFS/YOFS определяют смещение каждой иконки внутри ячейки. Если параметры не указаны, то оба параметра считаются равными 0.
<glyph id="GLYPH_ID" col="COL" row="ROW" xofs="XOFS" yofs="YOFS" width="GLYPH_WIDTH" height="GLYPH_HEIGHT" />
Этот элемент определяет конкретную иконку в The Bat!.
Параметр GLYPH_ID должен содержать одно из предопределённых значений (полный список приведён в Приложении B).
Параметры COL/ROW указывают на позицию иконки в текущей виртуальной таблице.
Эти параметры могут быть опущены, в этом случае новые координаты будут автоматически браться согласно сетки таблицы по строке слева направо и со сдвигом вниз в случае окончания строки.
Дополнительные параметры XOFS/YOFS можно использовать для переопределения параметров из предшествующего элемента grid. Параметры grid используются по умолчанию.
Дополнительные параметры GLYPH_WIDTH/GLYPH_HEIGHT можно использовать для переопределения размеров, которые по умолчанию берутся из предшествующего элемента source.
<glyphex id="GLYPH_ID" file="FILE" xofs="XOFS" yofs="YOFS" width="GLYPH_WIDTH" height="GLYPH_HEIGHT" />
Такой элемент может быть использован для определения иконки, которая может быть взята из отдельного файла (файл в таком случае содержит только одну иконку и может быть не описан в секции bitmaps).
Параметр FILE содержит имя файла с иконкой.
Дополнительные (необязательные) параметры XOFS/YOFS определяют смещение иконки от верхнего левого угла. По умолчанию принимаются равными 0.
Дополнительные (необязательные) параметры GLYPH_WIDTH/GLYPH_HEIGHT указывают на размер иконки. По умолчанию иконка берется по всему размеру изображения в файле.
При написании собственного файла batskin.xml следует учитывать, что пользовательский файл лишь переопределяет и дополняет стандартный набор иконок, так как будут использоваться стандартные иконки в случае отсутствия требуемых иконок в пользовательском файле.
| Параметр ID | Описание |
| MenuIcons | Иконки для меню |
| ToolbarIcons | Иконки для панелей инструментов |
| Buttons | Иконки для кнопок |
| ListIcons | Иконки, используемые в списке писем |
| Folders | Иконки, используемые в дереве папок |
| AddrBook | Иконки, используемые для папок в Адресной книге |
| Controls | Иконки, используемые в элементах интерфейса |
| BigIcons | |
| WorkIcons |
MenuIcons - Иконки для меню;
ToolbarIcons - Иконки для панелей инструментов;
Buttons - Иконки для кнопок;
ListIcons - Иконки, используемые в списке писем;
Folders - Иконки, используемые в дереве папок;
AddrBook - Иконки, используемые для папок в Адресной книге;
Controls - Иконки, используемые в элементах интерфейса;
BigIcons;
WorkIcons.
bFetch;
bFetchAllAccounts;
bSend;
SendCheckAll;
bNewMsg;
bReply;
bReplyAll;
bForward;
bRedirect;
bAddrBook;
bSaveAs;
bSaveAll;
bPrint;
bDelete;
bNewContact;
bNewGroup;
bUserProps;
bSearchAddr;
bCancelSearch;
bStore;
bDraft;
bSave;
bCopy;
bCut;
bPaste;
bQPaste;
bReplace;
bCopyTo;
bPasteFrom;
bQPasteFrom;
bAttach;
bCancel;
bStartTransfer;
bHeaderView;
bOpen;
bBrowse;
bSaveMsgAs;
bPrev;
bNext;
bDelUp;
bDelDown;
bTextCopyClp;
bTextCopyTo;
bTextSearch;
bTextFindNext;
bFindMsg;
bDispatchAll;
bViewLog;
bLock;
bNewUser;
bCfgAccount;
bCfgFilters;
bCfgNetwork;
bLeft;
bDown;
bUp;
bRight;
bNewFilter;
bScheduler;
bSmartBat;
CertBigNormal;
CertBigError;
bEditSchedule;
bMarkAsSpam;
bMarkNoSpam;
UnknownSignature;
ValidSignature;
InvalidSignature;
EncryptedMessage;
ExpiredSignature;
bKeyManager;
bViewSource;
bNewCustFolder;
bPlaceCustFolder;
cbUnchecked;
cbChecked;
logInfo;
logError;
logDown;
logUp;
NewAddrBook;
iSave;
pgpKeyPair;
pgpKey;
pgpUID;
pgpSignature;
pgpRevokedSignature;
pgpRevokedKeyPair;
pgpRevokedKey;
pgpDisabledKey;
pgpInvalidUID;
pgpValidUID;
pgpValidKey;
AccountNewMsgs;
Account;
FolderClosed;
Trash;
FolderOpened;
UnemptyTrash;
UnsentClosed;
UnsentOpened;
RecentClosed;
RecentOpened;
RecentOutboxClosed;
RecentOutboxOpened;
UnreadSubfolders;
UnreadTrash;
RedCross;
ImapFlag;
ovrInboxSign;
ovrOutboxSign;
ovrSentSign;
ovrChat;
ovrOutboxDraft;
ovrJunkFlag;
ImapTrash;
BlueRuleClosed;
BlueRuleOpened;
GreyRuleClosed;
GreyRuleOpened;
AddrBook;
Transport;
MailMgm;
Options;
FilesDirs;
BrowseFolder;
Templates;
NewTpl;
ReplyTpl;
FwdTpl;
CfmTpl;
SaveMsg;
Cookies;
Sound;
Network;
Memo;
Chat;
ImapFineTune;
AddrGroup;
RasLogReceive;
RasLogSend;
NoPark;
ParkLst;
NormalPriority;
HighPriority;
LowPriority;
CfmReceipt;
CfmRead;
acUnspec;
acMale;
acFemale;
DropDown;
RightArrow;
OpenAddrBook;
CertSmallNormal;
CertWithPrivateKey;
CertFieldV1;
CertFieldV3NExt;
CertFieldV3CExt;
CertProp;
CertSmallError;
CertSmallWarning;
CertUnknown;
KeyOnToken;
CertHasPrivateKey;
ValidSignature;
InvalidSignature;
AddrBookLocalClosed;
AddrBookLocalOpened;
AddrBookRemoteClose;
AddrBookRemoteOpene;
AddrBookSearch;
AddrBookTrash;
AddrBookGroup;
AddrBookTrustCAClose;
AddrBookTrustCAOpen;
AddrBookIntermCAClose;
AddrBookIntermCAOpen;
mlvNormalEnvelope;
mlvHighEnvelope;
mlvLowEnvelope;
mlvNormalOpen;
mlvHighOpen;
mlvLowOpen;
mlvNoPark;
mlvNoDraft;
mlvNoFlag;
mlvPark;
mlvDraft;
mlvFlag;
mlvAttach;
mlvHdrPark;
mlvHdrDraft;
mlvHdrFlag;
mlvHdrAttach;
mlvHdrMessage;
mlvHdrPriority;
mlvNormalPriority;
mlvHighPriority;
mlvLowPriority;
mlvSortUp;
mlvSortDown;
mlvReply;
mlvForward;
mlvSigned;
iFontStyleBold;
iFontStyleItalic;
iFontStyleUnderline;
iTextColor;
iTextAlignLeft;
iTextAlignRight;
iTextAlignCenter;
iTextAlignJustify;
iSearch;
iMail;
iBook;
iSearchNext;
iHelp;
iPageSetup;
iWinCascade;
iPaste;
iClock;
iTextHeight;
iWinTile;
iCopy;
iCalendar;
iDateTime;
iCut;
iOpen;
iUndo;
iRedo;
iDelete;
iSome;
bNewFilter;
iSmallBat;
iMenubar;
iToolbar;
iPopup;
iShortcuts;
iForm;
bLeft;
bDown;
bUp;
bRight;
bNewFilter;
iAlignRight;
iBold;
iItalic;
iUnderline;
iTextColor;
iBkColor;
iDocBkg;
iAlignLeft;
iAlignCenter;
iAlignJust;
iTextImage;
iAddLink;
iAddHrLine;
iListBullets;
iListNumbers;
iInsertTable;
iDelCol;
iDelRow;
iInsertColL;
iInsertColR;
iInsertRowD;
iInsertRowU;
iMergeCell;
batskin.doc - Этот документ;
batskin.xml - Оригинальный файл в качестве примера;
new_icons.png - Оригинальный файл с основными иконками в качестве примера;
new_icons_grid.png - Вспомогательный файл в качестве подложки для удобства редактирования файла new_icons.png;
HtmlEditorIcons.png - Оригинальный файл с иконками HTML-редактора;
GlyphCollection.png - Оригинальный файл с дополнительными иконками.
Перевод (вольный): Иван Болховитинов