![]() | |
| Настройка внешнего вида The Bat! |
Для того чтобы изменить внешний облик The Bat! необходимо сделать некоторые изменения в файле batskin.xml, о котором дальше и пойдёт речь.
Структура этого XML файла типична для файлов данного формата, а, стало быть, он должен содержать следующие разделы:
<BATSKIN> ... </BATSKIN>
является высшим уровнем. Внутри же этого раздела можно поместить 2 дополнительных подраздела:
здесь находится описание файла<title> Text </title>
поле для указания авторских прав
<copyright> Text </copyright>
Затем следуют обязательные разделы:
в этот разделе указывается количество используемых картинок. Их не может быть меньше одной:
<bitmaps> ... </bitmaps> <bitmap id="ID" file="FILE" cropx="CROPX" cropy="CROPY" cropwidth="CROPWIDTH" cropheight="CROPHEIGHT" />
Подобные строки указывают, какие именно файлы картинок будут использоваться для работы. В данном случае, задаваемый пользователем ID представляет собой уникальный идентификатор отдельно взятой картинки, на которую в последствии будет ссылка в файле batskin.xml; FILE является именем файла картинки, поддерживаются такие форматы как .PNG, .BMP, .JPG. В случае .PNG-файлов альфа-слой будет использоваться в разделах с прозрачным отображением. Что касается .JPG-файлов, то прозрачные разделы будут определяться левым верхним пикселем цвета, который станет "прозрачным". Для .BMP- файлов, если только исходный файл является 32-битным альфа, то альфа-слой будет определять уровень прозрачности, в противном случае это сделает левый верхний пиксель.
CROPX/CROPY/CROPWIDTH/CROPHEIGHT – (опционально) целые числа, определяющие используемую часть загружаемой картинки, т.к. иногда исходный файл больше, чем это необходимо. Этот параметр позволяет обрезать картинку до нужного размера при загрузке, по примеру того, как это делается функцией "Crop Image" программы Photoshop.
За разделом <bitmaps> следует ещё один обязательный раздел:
этот подраздел используется для определения размера групп глифов внутри основной программы (The Bat!)
<sizes> ... </sizes>
Он включает в себя такие строки как:
<size id="GROUP_ID" width="WIDTH" height="HEIGHT" />
Такие строки определяют размеры групп глифов внутри основной программы. Значения GROUP_ID предопределены основной программой и перечислены в Приложении A.
В разделе <glyphs> определяется как глифы расположены в исходных файлах.
<glyphs> ... </glyphs>
Внутрь данного раздела можно поместить следующие подстроки:
<source bitmap="BITMAP_ID" width="GLYPH_WIDTH" height="GLYPH_HEIGHT" />
Где BITMAP_ID должен быть точным значением ID одной из картинок в разделе <bitmaps>, GLYPH_WIDTH/GLYPH_HEIGHT определяет размер следующих параметров глифов.
<grid width="GRID_WIDTH" height="GRID_HEIGHT" xofs="XOFS" yofs="YOFS" />
Идея batskin.xml состоит в том, чтобы иконки находились в виртуальной таблице. Принцип действия таков:
Исходное изображение как бы разделено на одинаковые ячейки. Каждая из них может содержать 1 глиф. Ссылки на глифы делаются по значениям столбцов и рядов, начиная с нуля.
GRID_WIDTH/GRID_HEIGHT определяет размер линии сетки.
XOFS/YOFS определяет отступ каждого глифа от линии сетки, по умолчанию 0/0, если не указано иначе.
<glyph id="GLYPH_ID" col="COL" row="ROW" xofs="XOFS" yofs="YOFS" width="GLYPH_WIDTH" height="GLYPH_HEIGHT" />
Эта строка определяет один глиф, который будет использоваться основной программой.
GLYPH_ID является значением, предопределённым программой, перечислен в Приложении B.
COL/ROW – место глифа в текущей виртуальной таблице.
XOFS/YOFS (опционально) переопределят значения сетки только для этого глифа.
GLYPH_WIDTH/GLYPH_HEIGHT (опционально) переопределят значения
<glyphex id="GLYPH_ID" file="FILE" xofs="XOFS" yofs="YOFS" width="GLYPH_WIDTH" height="GLYPH_HEIGHT" />
Эта строка определяет один глиф из отдельного файла.
FILE - указывает исходное имя файла.
XOFS/YOFS (опционально) определят точку отсчёта (верхняя левая) точка глифа, по умолчанию (0, 0)
GLYPH_WIDTH/GLYPH_HEIGHT (опционально) определение размера глифа.
MenuIcons - icons used for menus;
ToolbarIcons - icons used for toolbars;
Buttons - icons used for buttons;
ListIcons - icons used for message lists;
Folders - icons used for tree folders;
AddrBook - icons used for Address Book folders;
Controls - icons used in some controls;
BigIcons;
WorkIcons.
bFetch;
bFetchAllAccounts;
bSend;
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;