Plugin:Clist modern/ru/Руководство по разработке скинов: Difference between revisions
Dart Raiden (talk | contribs) |
Dart Raiden (talk | contribs) |
||
Line 99: | Line 99: | ||
для типа Solid: | |||
<pre style="overflow:auto;"> | <pre style="overflow:auto;"> | ||
$object_name =sGlyph,Solid,RedValue,GreenValue,BlueValue,AlphaValue | $object_name =sGlyph,Solid,RedValue,GreenValue,BlueValue,AlphaValue | ||
</pre> | </pre> | ||
RedValue, GreenValue, BlueValue, AlphaValue — | RedValue, GreenValue, BlueValue, AlphaValue — интенсивности соответственно красного, зеленого, синего и канала прозрачности. | ||
для типа Image: | |||
<pre style="overflow:auto;"> | <pre style="overflow:auto;"> | ||
$object_name =sGlyph,Image,File_Name,Fit_Mode,Left,Top,Right,Bottom,AlphaValue | $object_name =sGlyph,Image,File_Name,Fit_Mode,Left,Top,Right,Bottom,AlphaValue | ||
</pre> | </pre> | ||
File_Name — | File_Name — имя файла рисунка с расширением, без пути, сам рисунок должен находится в одноименной с описателем папке. | ||
Fit_Mode — | Fit_Mode — один из режимов трансформации: StretchBoth, TileHorz, TileVert, TileBoth. | ||
Left, Top, Right, Bottom — | Left, Top, Right, Bottom — поля трансформации. | ||
Примеры: | |||
<pre style="overflow:auto;"> | <pre style="overflow:auto;"> | ||
$window=sGlyph,Image,back.bmp,TileBoth,1,1,1,1,150 | $window=sGlyph,Image,back.bmp,TileBoth,1,1,1,1,150 |
Revision as of 17:31, 18 March 2021
Основные понятия
В основу скин-движка модуля положены следующие определения и понятия:
- Объект (Object) — элемент скина. Все объекты скина создаются при загрузке модуля. Объект описывает что и каким образом необходимо нарисовать на соответствующий Запрос.
- Глиф (Glyph) — некоторый рисунок. В настоящий момент поддерживаются типы изображений: BMP, JPG и PNG (c прозрачностью). Размеры глифа определяются размерами рисунка. Изображение глифа загружается в память только при первой попытке нарисовать его и остается в памяти до выгрузки модуля или загрузки нового скина.
- Правило (Rule) — строка с Запросом (условиями отбора) Объекта.
- Запрос (Request) — требование нарисовать соответствующий объект, который удовлетворяет запрашиваемой строке в соответствии с правилами в определенном месте и с указанными размерами.
Алгоритм работы
Принцип работы следующий:
- При необходимости нарисовать некоторый объект окна, модуль формирует запрос. Запрос содержит координаты прямоугольника, в котором необходимо нарисовать объект. Но наиболее важным параметром является «строка запроса».
- Получив запрос, движок ищет в списке первое правило, под которое подойдет переданная строка запроса и выбирает соответствующий найденному правилу объект.
- Если найденный объект относится к типу Solid (сплошная заливка) то в ответ на запрос указанный рисунок заполняется соответствующим цветом и прозрачностью.
- Если же объект относится к типу Image (глиф), то прямоугольник заполняется трансформированным по размерам до размеров требуемого прямоугольника глифом.
Правила и строки запросов, принцип отбора объектов
Правило состоит из следующих частей:
- порядковый номер правила;
- имя соответствующего правилу объекта;
- набор параметров правила, разделённых запятыми.
Каждый параметр состоит из:
- имени параметра (имя первого параметра не указывается и всегда равно «Module»);
- условия («=» означает «соответствует», «^» означает «не соответствует»);
- проверяемого значения параметра.
Строка запроса имеет те же части что и правила, за исключением порядкового номера.
Строка запроса и правило считаются подходящими друг другу если:
- Все параметры правила есть в запросе (also request can contain the parameter that is not mention in rule).
- Все значения параметров правила с условием «соответствует (=)» соответствуют значениям этих параметров в запросе, а также все значения параметров правила с условием «не соответствует (^)» не соответствуют значениям этих параметров в запросе.
Значение параметра правила может быть задано в виде маски содержащей символы: «*» — любое количество (в том числе и отсутствие) любых символов и «?» — один любой символ. Длина имён параметров и значений не может превышать 24 символа. Значения не могут содержать запятые (запятые заменяются точками). Имена параметров и их значения чувствительны к регистру букв.
Масштабирование (трансформация) глифов
Рассмотрим следующий пример: необходимо нарисовать глиф размером 70х70 в прямоугольнике размером 100х100.
Зададим ширину четырех полей для глифа: Left (лево), Top (верх), Right (право) и Bottom (низ). Эти поля делят рисунок глифа на 9 частей:
- 4 угла;
- 4 края;
- центр.
При трансформации:
- Угловые части глифа рисуются в прямоугольнике назначения «как есть», без изменений размеров.
- Краевые части рисуются масштабированными в соответствии с заданным режимом вдоль своего края. Перпендикулярный к краю размер не изменяется.
- Центр масштабируется по обоим направлениям.
После трансформации (режим StretchBoth)
Существует 4 режима трансформации:
- StretchBoth — растянуть по обоим направлениям;
- TileHorz — мозаика по горизонтали, растянуть по вертикали;
- TileVert — мозаика по вертикали, растянуть по горизонтали;
- TileBoth — мозаика по обоим направлениям.
Формат скина
Скин представляет собой совокупность файла описания скина (*.msf) и папки с необходимыми графическими ресурсами. Имя папки должно быть таким же, как и имя файла описания, без расширения. Внутри файла описателя ссылки на графические ресурсы идут без указания путей.
Файл описания имеет структуру полностью аналогичную ini-файлам. Все описания могут быть напрямую импортированы в базу. Формат файла следующий:
[имя_секции_базы] ; комментарий КлючСекции=#Значение КлючСекции2=#Значение
Вместо знака «#» подразумевается указание одного из типов значения ключа:
- «b» — байт;
- «w» — слово (два байта);
- «d» — двойное слово (четыре байта);
- «s» — произвольная текстовая строка.
Все данные об объектах скина хранятся в секции базы данных [ModernSkin] в ключах строкового типа. So in this section all keys have "s" after "=" e.g.:
$hotopengroup=sGlyph,Image,hotopengroup.png,StretchBoth,2,2,2,2,250 @0=s$window:Main,ID=Background
Spaces inside are not allowed (only for string parameters like …,Name=First Name,…).
Описание объектов
Итак, скин состоит из нескольких частей. Первая из них описывает Объекты.
Объект описывается следующим образом:
$object_name=sGlyph,object_type,parameters,…
object_name — собственно имя объекта, используемое при ссылке из правил.
object_type — один из типов Image или Solid.
parameters,… — перечень параметров порядок которых определяется в зависимости от типа объекта:
для типа Solid:
$object_name =sGlyph,Solid,RedValue,GreenValue,BlueValue,AlphaValue
RedValue, GreenValue, BlueValue, AlphaValue — интенсивности соответственно красного, зеленого, синего и канала прозрачности.
для типа Image:
$object_name =sGlyph,Image,File_Name,Fit_Mode,Left,Top,Right,Bottom,AlphaValue
File_Name — имя файла рисунка с расширением, без пути, сам рисунок должен находится в одноименной с описателем папке.
Fit_Mode — один из режимов трансформации: StretchBoth, TileHorz, TileVert, TileBoth.
Left, Top, Right, Bottom — поля трансформации.
Примеры:
$window=sGlyph,Image,back.bmp,TileBoth,1,1,1,1,150 $closed_miranda_group=sGlyph,Solid,0,0,255,200
Rule description
Rules are described in next way:
@rule_number=s$object_name:Module_parameter_value,param_name=value,parameter_name^value,…
rule_number — number. Numbers should starts from zero and be in sequence without skipping.
Example:
@0=s$window:Main,ID=Background @1=s$closed_miranda_group:CL,ID=Row,Type=Group,Open^True,Name=Mir*a*
For this example object $window (image back.bmp) will be painted if request contain first parameter value "Main»" and parameter "ID" value will be "Background»".
Object $closed_miranda_group (fill it with blue and alpha 200) will be painted if request will contain first parameter "CL", and "ID" equal to "Row", "Type" equal "Group", parameter "Open" NOT equal to "True" and "Name" like "Mir*a*" (e.g Miranda-IM).
Buttons description
Buttons can be placed in any area of window (but prefer on margins, otherwise they will be covered by frames.
Buttons can be to types Push and Switch.
Push button description is:
#name=sPush,ServiceNameToCall,fromLeft,fromTop,fromRight,fromBottom,Flags,MinWindowWidth,MinWindowHeigh,HintText
Switch button description is:
#name=sSwitch,ServiceNameToCall,StateDBKey,ValueTypeandDefault,fromLeft,fromTop,fromRight,fromBottom,Flags,MinWindowWidth,MinWindowHeigh,HintText
ServiceNameToCall — name of service to be called on key pressure.
StateDBKey — name of key to be quoted in request to draw.
ValueTypeandDefault — type of parameter (first char (b, w, d or s)) and default value.
fromLeft,fromTop — position of left-top corner relativity to specified in flags.
fromRight,fromBottom — position of right-bottom corner relative to specified in flags.
Flags — relativity and behaviour flags is sequence of chars in next order: "ABCDE": A — relativity of left edge, B — top edge, C — right edge, D — from bottom (value is "R" — from right (for A and C), "B" — from bottom (for B and D), or "-" from left (A&C) and top (B&D)), E — can be "I" immediately call service as user press button, or "-" wait till he release it.
MinWindowWidth, MinWindowHeigh — minimal window size to show button (otherwise hide it).
HintText — tooltip text to show ("," (comma) is not allowed).
Then module is need to paint button it form request like (button was desribed like: #statusmenu=sPush,CList/ShowStatusMenu,24,4,40,20,-----,100,0,Show Status Menu)
MButton,ID=statusmenu,Hovered=1,Down=0
If switch button is specified it add value: Value=0 (database key value instead of ‘0’)
Modern paint request sequence
- Paint backgrounds via request
Main,ID=Background - Paint StatusBar, Frame captions backgrounds via
Main,ID=StatusBar
Main,ID=FrameCaption - Paint buttons via request
MButton,ID=buttonname,Hovered=x,Down=y,Value=z
MButton,ID=buttonname,Hovered=x,Down=y - Paint contact list in next sequence:
- a. Paint contact list background
CL,ID=Background - b. Paint row background (request forms according to row content)
CL,ID=Row,Type=Contact,Selected=True,… - c. Paint common selection if selected
CL,ID=Selection - d. Paint common hottracking if hot
CL,ID=HotTracking - e. Draw row content (avatar, text, icons)
- f. Paint row overlay (request forms according to row content)
CL,ID=Ovl,Type=Contact,Selected=True,… - Repeats b.—f. for each row
- a. Paint contact list background
- Paint scroll bar in next
- Paint scroll bar background
Main,ID=ScrollBar,Part=Back - Paint scroll bar items
Main,ID=ScrollBar,Part= UpLineButton
Main,ID=ScrollBar,Part= DownLineButton
Main,ID=ScrollBar,Part= Thumb
- Paint scroll bar background
Table of available params and values
Param | Value | Description | |
---|---|---|---|
Module | Main | Main window parts | |
ID | Background
StatusBar FrameCaption |
Window back
Status bar back Frame caption back | |
ID | ScrollBar | Scrollbar | |
Part | Back
UpLineButton DownLineButton Thumb |
Scroll bar parts | |
Module | CL | Contact list objects | |
ID | Row
Ovl |
For each row back is generated with param ID=Row, for overlay with ID=Ovl | |
Type | Group
Contact MetaContact SubContact Divider Info |
Type of row: group name, contact, metacontact etc. | |
GroupPos
|
First
First-Single Middle Last |
Position of contact in parent group or position of subcontact in metacontact and its parent meta in group | |
Open
Selected Hot Odd |
True
False |
Collapse, selection, hot and odd values of row | |
Index
Indent |
Number | Number of line in list
Indent of row (0 — in root, 1 — in first leveled group etc.) | |
Status | OFFLINE
ONLINE AWAY DND NA OCCUPIED FREECHAT INVISIBLE IDLE |
Status of contact | |
Protocol
Name GroupName |
Text | Names of protocol, nick (row text), parent group (parent row text)
(commas replace to dots) | |
ID | GreyAlternate
Selection HotTracking |
Common objects for Selection, Hot and Odd | |
Module | MButton | Buttons | |
ID | Text | Button name (without "#") | |
Down
Hovered |
0
1 |
Pressure and hot states | |
Value | Text | Value of associated with triggered button database key |
Example of dump of Crystal skin at real list
Time stamp | Request | Painted object |
---|---|---|
120817359: | Main,ID=FrameCaption | |
120817375: | Main,ID=StatusBar | |
120817375: | CL,ID=Background | |
120817375: | CL,ID=Row,Type=Group,Open=True,GroupPos=First,Selected=False,Hot=False,Odd=False,Indent=0,Index=0,Name=Friends | $normalopengroup |
120817375: | CL,ID=Ovl,Type=Group,Open=True,GroupPos=First,Selected=False,Hot=False,Odd=False,Indent=0,Index=0,Name=Friends | |
120817375: | CL,ID=Row,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=True,GroupPos=First,Selected=False,Hot=False,Odd=True,Indent=1,Index=1,Name=Олег,Group=Friends | $normalcontact |
120817390: | CL,ID=Ovl,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=True,GroupPos=First,Selected=False,Hot=False,Odd=True,Indent=1,Index=1,Name=Олег,Group=Friends | |
120817390: | CL,ID=Row,Type=Contact,Protocol=ICQ,Status=NA,HasAvatar=True,GroupPos=Last,Selected=False,Hot=False,Odd=False,Indent=1,Index=2,Name=Юля,Group=Friends | $normalcontact |
120817390: | CL,ID=Ovl,Type=Contact,Protocol=ICQ,Status=NA,HasAvatar=True,GroupPos=Last,Selected=False,Hot=False,Odd=False,Indent=1,Index=2,Name=Юля,Group=Friends | |
120817406: | CL,ID=Row,Type=Group,Open=True,GroupPos=Mid,Selected=False,Hot=False,Odd=True,Indent=0,Index=3,Name=MIRANDA | $normalopengroup |
120817406: | CL,ID=Ovl,Type=Group,Open=True,GroupPos=Mid,Selected=False,Hot=False,Odd=True,Indent=0,Index=3,Name=MIRANDA | |
120817406: | CL,ID=Row,Type=Group,Open=False,GroupPos=First,Selected=False,Hot=False,Odd=False,Indent=1,Index=4,Name=Bugs reporters,Group=Friends | $normalclosedgroup |
120817406: | CL,ID=Ovl,Type=Group,Open=False,GroupPos=First,Selected=False,Hot=False,Odd=False,Indent=1,Index=4,Name=Bugs reporters,Group=Friends | |
120817406: | CL,ID=Row,Type=Group,Open=True,GroupPos=Mid,Selected=False,Hot=False,Odd=True,Indent=1,Index=5,Name=Developers,Group=Friends | $normalopengroup |
120817406: | CL,ID=Ovl,Type=Group,Open=True,GroupPos=Mid,Selected=False,Hot=False,Odd=True,Indent=1,Index=5,Name=Developers,Group=Friends | |
120817406: | CL,ID=Row,Type=Contact,Protocol=ICQ,Status=NA,HasAvatar=True,GroupPos=First,Selected=False,Hot=False,Odd=False,Indent=2,Index=6,Name=Joe,Group=Bugs reporters | $normalcontact |
120817421: | CL,ID=Ovl,Type=Contact,Protocol=ICQ,Status=NA,HasAvatar=True,GroupPos=First,Selected=False,Hot=False,Odd=False,Indent=2,Index=6,Name=Joe,Group=Bugs reporters | |
120817421: | CL,ID=Row,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=True,GroupPos=Last,Selected=False,Hot=False,Odd=True,Indent=2,Index=10,Name=Bio,Group=Bugs reporters | $normalcontact |
120817421: | CL,ID=Ovl,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=True,GroupPos=Last,Selected=False,Hot=False,Odd=True,Indent=2,Index=10,Name=Bio,Group=Bugs reporters | |
120817421: | CL,ID=Row,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=False,GroupPos=Mid,Selected=False,Hot=False,Odd=False,Indent=1,Index=11,Name=LexSys,Group=Friends | $normalcontact |
120817421: | CL,ID=Ovl,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=False,GroupPos=Mid,Selected=False,Hot=False,Odd=False,Indent=1,Index=11,Name=LexSys,Group=Friends | |
120817437: | CL,ID=Row,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=True,GroupPos=Last,Selected=False,Hot=False,Odd=True,Indent=1,Index=12,Name=NullBie,Group=Friends | $normalcontact |
120817437: | CL,ID=Ovl,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=True,GroupPos=Last,Selected=False,Hot=False,Odd=True,Indent=1,Index=12,Name=NullBie,Group=Friends | |
120817437: | CL,ID=Row,Type=Group,Open=True,GroupPos=Last,Selected=False,Hot=False,Odd=False,Indent=0,Index=13,Name=>Developers | $normalopengroup |
120817437: | CL,ID=Ovl,Type=Group,Open=True,GroupPos=Last,Selected=False,Hot=False,Odd=False,Indent=0,Index=13,Name=>Developers | |
120817437: | CL,ID=Row,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=True,GroupPos=First,Selected=False,Hot=False,Odd=True,Indent=1,Index=14,Name=Артем,Group=Friends | $normalcontact |
120817437: | CL,ID=Ovl,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=True,GroupPos=First,Selected=False,Hot=False,Odd=True,Indent=1,Index=14,Name=Артем,Group=Friends | |
120817437: | CL,ID=Row,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=True,GroupPos=Last,Selected=False,Hot=False,Odd=False,Indent=1,Index=15,Name=Angi,Group=Friends | $normalcontact |
120817453: | CL,ID=Ovl,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=True,GroupPos=Last,Selected=False,Hot=False,Odd=False,Indent=1,Index=15,Name=Angi,Group=Friends | |
120817453: | MButton,ID=close,Down=0,Focused=0,Hovered=0 | $BTNclosenorm |
120817453: | MButton,ID=minimize,Down=0,Focused=0,Hovered=0 | $BTNminnorm |
120817453: | MButton,ID=hideoffline,Down=0,Focused=0,Hovered=0,Value=1 | $BTNstatusDn |
120820296: | Main,ID=FrameCaption | |
120820296: | Main,ID=Background | $window |
120820343: | Main,ID=FrameCaption | |
120820343: | MButton,ID=close,Down=0,Focused=0,Hovered=0 | $BTNclosenorm |
120820343: | MButton,ID=minimize,Down=0,Focused=0,Hovered=0 | $BTNminnorm |
120820343: | MButton,ID=hideoffline,Down=0,Focused=0,Hovered=0,Value=1 | $BTNstatusDn |
120820359: | Main,ID=Background | $window |
120820390: | Main,ID=FrameCaption | |
120820406: | Main,ID=StatusBar | |
120820406: | CL,ID=Background | |
120820406: | CL,ID=Row,Type=Group,Open=True,GroupPos=First,Selected=False,Hot=False,Odd=False,Indent=0,Index=0,Name=Friends | $normalopengroup |
120820406: | CL,ID=Ovl,Type=Group,Open=True,GroupPos=First,Selected=False,Hot=False,Odd=False,Indent=0,Index=0,Name=Friends | |
120820406: | CL,ID=Row,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=True,GroupPos=First,Selected=False,Hot=False,Odd=True,Indent=1,Index=1,Name=Олег,Group=Friends | $normalcontact |
120820421: | CL,ID=Ovl,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=True,GroupPos=First,Selected=False,Hot=False,Odd=True,Indent=1,Index=1,Name=Олег,Group=Friends | |
120820421: | CL,ID=Row,Type=Contact,Protocol=ICQ,Status=NA,HasAvatar=True,GroupPos=Last,Selected=False,Hot=False,Odd=False,Indent=1,Index=2,Name=Юля,Group=Friends | $normalcontact |
120820421: | CL,ID=Ovl,Type=Contact,Protocol=ICQ,Status=NA,HasAvatar=True,GroupPos=Last,Selected=False,Hot=False,Odd=False,Indent=1,Index=2,Name=Юля,Group=Friends | |
120820421: | CL,ID=Row,Type=Group,Open=True,GroupPos=Mid,Selected=False,Hot=False,Odd=True,Indent=0,Index=3,Name=MIRANDA | $normalopengroup |
120820421: | CL,ID=Ovl,Type=Group,Open=True,GroupPos=Mid,Selected=False,Hot=False,Odd=True,Indent=0,Index=3,Name=MIRANDA | |
120820421: | CL,ID=Row,Type=Group,Open=False,GroupPos=First,Selected=False,Hot=False,Odd=False,Indent=1,Index=4,Name=Bugs reporters,Group=Friends | $normalclosedgroup |
120820437: | CL,ID=Ovl,Type=Group,Open=False,GroupPos=First,Selected=False,Hot=False,Odd=False,Indent=1,Index=4,Name=Bugs reporters,Group=Friends | |
120820437: | CL,ID=Row,Type=Group,Open=True,GroupPos=Mid,Selected=False,Hot=False,Odd=True,Indent=1,Index=5,Name=Developers,Group=Friends | $normalopengroup |
120820437: | CL,ID=Ovl,Type=Group,Open=True,GroupPos=Mid,Selected=False,Hot=False,Odd=True,Indent=1,Index=5,Name=Developers,Group=Friends | |
120820437: | CL,ID=Row,Type=Contact,Protocol=ICQ,Status=NA,HasAvatar=True,GroupPos=First,Selected=False,Hot=False,Odd=False,Indent=2,Index=6,Name=Joe,Group=Bugs reporters | $normalcontact |
120820437: | CL,ID=Ovl,Type=Contact,Protocol=ICQ,Status=NA,HasAvatar=True,GroupPos=First,Selected=False,Hot=False,Odd=False,Indent=2,Index=6,Name=Joe,Group=Bugs reporters | |
120820437: | CL,ID=Row,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=True,GroupPos=Last,Selected=False,Hot=False,Odd=True,Indent=2,Index=10,Name=Bio,Group=Bugs reporters | $normalcontact |
120820453: | CL,ID=Ovl,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=True,GroupPos=Last,Selected=False,Hot=False,Odd=True,Indent=2,Index=10,Name=Bio,Group=Bugs reporters | |
120820453: | CL,ID=Row,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=False,GroupPos=Mid,Selected=False,Hot=False,Odd=False,Indent=1,Index=11,Name=LexSys,Group=Friends | $normalcontact |
120820453: | CL,ID=Ovl,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=False,GroupPos=Mid,Selected=False,Hot=False,Odd=False,Indent=1,Index=11,Name=LexSys,Group=Friends | |
120820453: | CL,ID=Row,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=True,GroupPos=Last,Selected=False,Hot=False,Odd=True,Indent=1,Index=12,Name=NullBie,Group=Friends | $normalcontact |
120820453: | CL,ID=Ovl,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=True,GroupPos=Last,Selected=False,Hot=False,Odd=True,Indent=1,Index=12,Name=NullBie,Group=Friends | |
120820453: | CL,ID=Row,Type=Group,Open=True,GroupPos=Last,Selected=False,Hot=False,Odd=False,Indent=0,Index=13,Name=>Developers | $normalopengroup |
120820468: | CL,ID=Ovl,Type=Group,Open=True,GroupPos=Last,Selected=False,Hot=False,Odd=False,Indent=0,Index=13,Name=>Developers | |
120820468: | CL,ID=Row,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=True,GroupPos=First,Selected=False,Hot=False,Odd=True,Indent=1,Index=14,Name=Артем,Group=Friends | $normalcontact |
120820468: | CL,ID=Ovl,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=True,GroupPos=First,Selected=False,Hot=False,Odd=True,Indent=1,Index=14,Name=Артем,Group=Friends | |
120820468: | CL,ID=Row,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=True,GroupPos=Last,Selected=False,Hot=False,Odd=False,Indent=1,Index=15,Name=Angi,Group=Friends | $normalcontact |
120820468: | CL,ID=Ovl,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=True,GroupPos=Last,Selected=False,Hot=False,Odd=False,Indent=1,Index=15,Name=Angi,Group=Friends | |
120820468: | MButton,ID=close,Down=0,Focused=0,Hovered=0 | $BTNclosenorm |
120820484: | MButton,ID=minimize,Down=0,Focused=0,Hovered=0 | $BTNminnorm |
120820484: | MButton,ID=hideoffline,Down=0,Focused=0,Hovered=0,Value=1 | $BTNstatusDn |
120820500: | Main,ID=FrameCaption | |
120820500: | Main,ID=Background | $window |
120820546: | Main,ID=FrameCaption | |
120820546: | Main,ID=StatusBar | |
120820546: | CL,ID=Background | |
120820562: | CL,ID=Row,Type=Group,Open=True,GroupPos=First,Selected=False,Hot=False,Odd=False,Indent=0,Index=0,Name=Friends | $normalopengroup |
120820562: | CL,ID=Ovl,Type=Group,Open=True,GroupPos=First,Selected=False,Hot=False,Odd=False,Indent=0,Index=0,Name=Friends | |
120820562: | CL,ID=Row,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=True,GroupPos=First,Selected=False,Hot=False,Odd=True,Indent=1,Index=1,Name=Олег,Group=Friends | $normalcontact |
120820562: | CL,ID=Ovl,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=True,GroupPos=First,Selected=False,Hot=False,Odd=True,Indent=1,Index=1,Name=Олег,Group=Friends | |
120820562: | CL,ID=Row,Type=Contact,Protocol=ICQ,Status=NA,HasAvatar=True,GroupPos=Last,Selected=False,Hot=False,Odd=False,Indent=1,Index=2,Name=Юля,Group=Friends | $normalcontact |
120820562: | CL,ID=Ovl,Type=Contact,Protocol=ICQ,Status=NA,HasAvatar=True,GroupPos=Last,Selected=False,Hot=False,Odd=False,Indent=1,Index=2,Name=Юля,Group=Friends | |
120820562: | CL,ID=Row,Type=Group,Open=True,GroupPos=Mid,Selected=False,Hot=False,Odd=True,Indent=0,Index=3,Name=MIRANDA | $normalopengroup |
120820578: | CL,ID=Ovl,Type=Group,Open=True,GroupPos=Mid,Selected=False,Hot=False,Odd=True,Indent=0,Index=3,Name=MIRANDA | |
120820578: | CL,ID=Row,Type=Group,Open=False,GroupPos=First,Selected=False,Hot=False,Odd=False,Indent=1,Index=4,Name=Bugs reporters,Group=Friends | $normalclosedgroup |
120820578: | CL,ID=Ovl,Type=Group,Open=False,GroupPos=First,Selected=False,Hot=False,Odd=False,Indent=1,Index=4,Name=Bugs reporters,Group=Friends | |
120820578: | CL,ID=Row,Type=Group,Open=True,GroupPos=Mid,Selected=False,Hot=False,Odd=True,Indent=1,Index=5,Name=Developers,Group=Friends | $normalopengroup |
120820578: | CL,ID=Ovl,Type=Group,Open=True,GroupPos=Mid,Selected=False,Hot=False,Odd=True,Indent=1,Index=5,Name=Developers,Group=Friends | |
120820578: | CL,ID=Row,Type=Contact,Protocol=ICQ,Status=NA,HasAvatar=True,GroupPos=First,Selected=False,Hot=False,Odd=False,Indent=2,Index=6,Name=Joe,Group=Bugs reporters | $normalcontact |
120820593: | CL,ID=Ovl,Type=Contact,Protocol=ICQ,Status=NA,HasAvatar=True,GroupPos=First,Selected=False,Hot=False,Odd=False,Indent=2,Index=6,Name=Joe,Group=Bugs reporters | |
120820593: | CL,ID=Row,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=True,GroupPos=Last,Selected=False,Hot=False,Odd=True,Indent=2,Index=10,Name=Bio,Group=Bugs reporters | $normalcontact |
120820593: | CL,ID=Ovl,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=True,GroupPos=Last,Selected=False,Hot=False,Odd=True,Indent=2,Index=10,Name=Bio,Group=Bugs reporters | |
120820593: | CL,ID=Row,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=False,GroupPos=Mid,Selected=False,Hot=False,Odd=False,Indent=1,Index=11,Name=LexSys,Group=Friends | $normalcontact |
120820593: | CL,ID=Ovl,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=False,GroupPos=Mid,Selected=False,Hot=False,Odd=False,Indent=1,Index=11,Name=LexSys,Group=Friends | |
120820593: | CL,ID=Row,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=True,GroupPos=Last,Selected=False,Hot=False,Odd=True,Indent=1,Index=12,Name=NullBie,Group=Friends | $normalcontact |
120820609: | CL,ID=Ovl,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=True,GroupPos=Last,Selected=False,Hot=False,Odd=True,Indent=1,Index=12,Name=NullBie,Group=Friends | |
120820609: | CL,ID=Row,Type=Group,Open=True,GroupPos=Last,Selected=False,Hot=False,Odd=False,Indent=0,Index=13,Name=>Developers | $normalopengroup |
120820609: | CL,ID=Ovl,Type=Group,Open=True,GroupPos=Last,Selected=False,Hot=False,Odd=False,Indent=0,Index=13,Name=>Developers | |
120820609: | CL,ID=Row,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=True,GroupPos=First,Selected=False,Hot=False,Odd=True,Indent=1,Index=14,Name=Артем,Group=Friends | $normalcontact |
120820625: | CL,ID=Ovl,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=True,GroupPos=First,Selected=False,Hot=False,Odd=True,Indent=1,Index=14,Name=Артем,Group=Friends | |
120820625: | CL,ID=Row,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=True,GroupPos=Last,Selected=False,Hot=False,Odd=False,Indent=1,Index=15,Name=Angi,Group=Friends | $normalcontact |
120820625: | CL,ID=Ovl,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=True,GroupPos=Last,Selected=False,Hot=False,Odd=False,Indent=1,Index=15,Name=Angi,Group=Friends | |
120820625: | MButton,ID=close,Down=0,Focused=0,Hovered=0 | $BTNclosenorm |
120820625: | MButton,ID=minimize,Down=0,Focused=0,Hovered=0 | $BTNminnorm |
120820625: | MButton,ID=hideoffline,Down=0,Focused=0,Hovered=0,Value=1 | $BTNstatusDn |
120820640: | MButton,ID=close,Down=0,Focused=0,Hovered=0 | $BTNclosenorm |
120820640: | MButton,ID=minimize,Down=0,Focused=0,Hovered=0 | $BTNminnorm |
120820640: | MButton,ID=hideoffline,Down=0,Focused=0,Hovered=0,Value=1 | $BTNstatusDn |
120820640: | Main,ID=StatusBar | |
120820640: | CL,ID=Background | |
120820640: | CL,ID=Row,Type=Group,Open=True,GroupPos=First,Selected=False,Hot=False,Odd=False,Indent=0,Index=0,Name=Friends | $normalopengroup |
120820656: | CL,ID=Ovl,Type=Group,Open=True,GroupPos=First,Selected=False,Hot=False,Odd=False,Indent=0,Index=0,Name=Friends | |
120820656: | CL,ID=Row,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=True,GroupPos=First,Selected=False,Hot=False,Odd=True,Indent=1,Index=1,Name=Олег,Group=Friends | $normalcontact |
120820656: | CL,ID=Ovl,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=True,GroupPos=First,Selected=False,Hot=False,Odd=True,Indent=1,Index=1,Name=Олег,Group=Friends | |
120820656: | CL,ID=Row,Type=Contact,Protocol=ICQ,Status=NA,HasAvatar=True,GroupPos=Last,Selected=False,Hot=False,Odd=False,Indent=1,Index=2,Name=Юля,Group=Friends | $normalcontact |
120820656: | CL,ID=Ovl,Type=Contact,Protocol=ICQ,Status=NA,HasAvatar=True,GroupPos=Last,Selected=False,Hot=False,Odd=False,Indent=1,Index=2,Name=Юля,Group=Friends | |
120820656: | CL,ID=Row,Type=Group,Open=True,GroupPos=Mid,Selected=False,Hot=False,Odd=True,Indent=0,Index=3,Name=MIRANDA | $normalopengroup |
120820671: | CL,ID=Ovl,Type=Group,Open=True,GroupPos=Mid,Selected=False,Hot=False,Odd=True,Indent=0,Index=3,Name=MIRANDA | |
120820671: | CL,ID=Row,Type=Group,Open=False,GroupPos=First,Selected=False,Hot=False,Odd=False,Indent=1,Index=4,Name=Bugs reporters,Group=Friends | $normalclosedgroup |
120820671: | CL,ID=Ovl,Type=Group,Open=False,GroupPos=First,Selected=False,Hot=False,Odd=False,Indent=1,Index=4,Name=Bugs reporters,Group=Friends | |
120820671: | CL,ID=Row,Type=Group,Open=True,GroupPos=Mid,Selected=False,Hot=False,Odd=True,Indent=1,Index=5,Name=Developers,Group=Friends | $normalopengroup |
120820671: | CL,ID=Ovl,Type=Group,Open=True,GroupPos=Mid,Selected=False,Hot=False,Odd=True,Indent=1,Index=5,Name=Developers,Group=Friends | |
120820671: | CL,ID=Row,Type=Contact,Protocol=ICQ,Status=NA,HasAvatar=True,GroupPos=First,Selected=False,Hot=False,Odd=False,Indent=2,Index=6,Name=Joe,Group=Bugs reporters | $normalcontact |
120820687: | CL,ID=Ovl,Type=Contact,Protocol=ICQ,Status=NA,HasAvatar=True,GroupPos=First,Selected=False,Hot=False,Odd=False,Indent=2,Index=6,Name=Joe,Group=Bugs reporters | |
120820687: | CL,ID=Row,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=True,GroupPos=Last,Selected=False,Hot=False,Odd=True,Indent=2,Index=10,Name=Bio,Group=Bugs reporters | $normalcontact |
120820687: | CL,ID=Ovl,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=True,GroupPos=Last,Selected=False,Hot=False,Odd=True,Indent=2,Index=10,Name=Bio,Group=Bugs reporters | |
120820703: | CL,ID=Row,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=False,GroupPos=Mid,Selected=False,Hot=False,Odd=False,Indent=1,Index=11,Name=LexSys,Group=Friends | $normalcontact |
120820703: | CL,ID=Ovl,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=False,GroupPos=Mid,Selected=False,Hot=False,Odd=False,Indent=1,Index=11,Name=LexSys,Group=Friends | |
120820703: | CL,ID=Row,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=True,GroupPos=Last,Selected=False,Hot=False,Odd=True,Indent=1,Index=12,Name=NullBie,Group=Friends | $normalcontact |
120820703: | CL,ID=Ovl,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=True,GroupPos=Last,Selected=False,Hot=False,Odd=True,Indent=1,Index=12,Name=NullBie,Group=Friends | |
120820703: | CL,ID=Row,Type=Group,Open=True,GroupPos=Last,Selected=False,Hot=False,Odd=False,Indent=0,Index=13,Name=>Developers | $normalopengroup |
120820703: | CL,ID=Ovl,Type=Group,Open=True,GroupPos=Last,Selected=False,Hot=False,Odd=False,Indent=0,Index=13,Name=>Developers | |
120820718: | CL,ID=Row,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=True,GroupPos=First,Selected=False,Hot=False,Odd=True,Indent=1,Index=14,Name=Артем,Group=Friends | $normalcontact |
120820718: | CL,ID=Ovl,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=True,GroupPos=First,Selected=False,Hot=False,Odd=True,Indent=1,Index=14,Name=Артем,Group=Friends | |
120820718: | CL,ID=Row,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=True,GroupPos=Last,Selected=False,Hot=False,Odd=False,Indent=1,Index=15,Name=Angi,Group=Friends | $normalcontact |
120820718: | CL,ID=Ovl,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=True,GroupPos=Last,Selected=False,Hot=False,Odd=False,Indent=1,Index=15,Name=Angi,Group=Friends | |
120820718: | MButton,ID=close,Down=0,Focused=0,Hovered=0 | $BTNclosenorm |
120820734: | MButton,ID=minimize,Down=0,Focused=0,Hovered=0 | $BTNminnorm |
120820734: | MButton,ID=hideoffline,Down=0,Focused=0,Hovered=0,Value=1 | $BTNstatusDn |
120823812: | Main,ID=FrameCaption | |
120823828: | Main,ID=StatusBar | |
120823843: | CL,ID=Background | |
120823843: | CL,ID=Row,Type=Group,Open=True,GroupPos=First,Selected=False,Hot=False,Odd=False,Indent=0,Index=0,Name=Friends | $normalopengroup |
120823843: | CL,ID=Ovl,Type=Group,Open=True,GroupPos=First,Selected=False,Hot=False,Odd=False,Indent=0,Index=0,Name=Friends | |
120823843: | CL,ID=Row,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=True,GroupPos=First,Selected=False,Hot=False,Odd=True,Indent=1,Index=1,Name=Олег,Group=Friends | $normalcontact |
120823843: | CL,ID=Ovl,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=True,GroupPos=First,Selected=False,Hot=False,Odd=True,Indent=1,Index=1,Name=Олег,Group=Friends | |
120823843: | CL,ID=Row,Type=Contact,Protocol=ICQ,Status=NA,HasAvatar=True,GroupPos=Last,Selected=False,Hot=False,Odd=False,Indent=1,Index=2,Name=Юля,Group=Friends | $normalcontact |
120823859: | CL,ID=Ovl,Type=Contact,Protocol=ICQ,Status=NA,HasAvatar=True,GroupPos=Last,Selected=False,Hot=False,Odd=False,Indent=1,Index=2,Name=Юля,Group=Friends | |
120823859: | CL,ID=Row,Type=Group,Open=True,GroupPos=Mid,Selected=False,Hot=False,Odd=True,Indent=0,Index=3,Name=MIRANDA | $normalopengroup |
120823859: | CL,ID=Ovl,Type=Group,Open=True,GroupPos=Mid,Selected=False,Hot=False,Odd=True,Indent=0,Index=3,Name=MIRANDA | |
120823859: | CL,ID=Row,Type=Group,Open=False,GroupPos=First,Selected=False,Hot=False,Odd=False,Indent=1,Index=4,Name=Bugs reporters,Group=Friends | $normalclosedgroup |
120823875: | CL,ID=Ovl,Type=Group,Open=False,GroupPos=First,Selected=False,Hot=False,Odd=False,Indent=1,Index=4,Name=Bugs reporters,Group=Friends | |
120823875: | CL,ID=Row,Type=Group,Open=True,GroupPos=Mid,Selected=False,Hot=False,Odd=True,Indent=1,Index=5,Name=Developers,Group=Friends | $normalopengroup |
120823875: | CL,ID=Ovl,Type=Group,Open=True,GroupPos=Mid,Selected=False,Hot=False,Odd=True,Indent=1,Index=5,Name=Developers,Group=Friends | |
120823875: | CL,ID=Row,Type=Contact,Protocol=ICQ,Status=NA,HasAvatar=True,GroupPos=First,Selected=False,Hot=False,Odd=False,Indent=2,Index=6,Name=Joe,Group=Bugs reporters | $normalcontact |
120823890: | CL,ID=Ovl,Type=Contact,Protocol=ICQ,Status=NA,HasAvatar=True,GroupPos=First,Selected=False,Hot=False,Odd=False,Indent=2,Index=6,Name=Joe,Group=Bugs reporters | |
120823890: | CL,ID=Row,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=True,GroupPos=Last,Selected=False,Hot=False,Odd=True,Indent=2,Index=10,Name=Bio,Group=Bugs reporters | $normalcontact |
120823890: | CL,ID=Ovl,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=True,GroupPos=Last,Selected=False,Hot=False,Odd=True,Indent=2,Index=10,Name=Bio,Group=Bugs reporters | |
120823890: | CL,ID=Row,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=False,GroupPos=Mid,Selected=False,Hot=False,Odd=False,Indent=1,Index=11,Name=LexSys,Group=Friends | $normalcontact |
120823890: | CL,ID=Ovl,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=False,GroupPos=Mid,Selected=False,Hot=False,Odd=False,Indent=1,Index=11,Name=LexSys,Group=Friends | |
120823890: | CL,ID=Row,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=True,GroupPos=Last,Selected=False,Hot=False,Odd=True,Indent=1,Index=12,Name=NullBie,Group=Friends | $normalcontact |
120823906: | CL,ID=Ovl,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=True,GroupPos=Last,Selected=False,Hot=False,Odd=True,Indent=1,Index=12,Name=NullBie,Group=Friends | |
120823906: | CL,ID=Row,Type=Group,Open=True,GroupPos=Last,Selected=False,Hot=False,Odd=False,Indent=0,Index=13,Name=>Developers | $normalopengroup |
120823906: | CL,ID=Ovl,Type=Group,Open=True,GroupPos=Last,Selected=False,Hot=False,Odd=False,Indent=0,Index=13,Name=>Developers | |
120823906: | CL,ID=Row,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=True,GroupPos=First,Selected=False,Hot=False,Odd=True,Indent=1,Index=14,Name=Артем,Group=Friends | $normalcontact |
120823906: | CL,ID=Ovl,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=True,GroupPos=First,Selected=False,Hot=False,Odd=True,Indent=1,Index=14,Name=Артем,Group=Friends | |
120823906: | CL,ID=Row,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=True,GroupPos=Last,Selected=False,Hot=False,Odd=False,Indent=1,Index=15,Name=Angi,Group=Friends | $normalcontact |
120823906: | CL,ID=Ovl,Type=Contact,Protocol=ICQ,Status=ONLINE,HasAvatar=True,GroupPos=Last,Selected=False,Hot=False,Odd=False,Indent=1,Index=15,Name=Angi,Group=Friends | |
120823921: | MButton,ID=close,Down=0,Focused=0,Hovered=0 | $BTNclosenorm |
120823921: | MButton,ID=minimize,Down=0,Focused=0,Hovered=0 | $BTNminnorm |
120823921: | MButton,ID=hideoffline,Down=0,Focused=0,Hovered=0,Value=1 | $BTNstatusDn |