Plugin:Clist modern/en/Skin development guide: Difference between revisions
Dart Raiden (talk | contribs) |
Dart Raiden (talk | contribs) |
||
(78 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
{{PageLang|en}} | |||
== Common definitions == | == Common definitions == | ||
Skin engine is based on next definitions and concepts: | Skin engine is based on next definitions and concepts: | ||
* Object — component of skin. All skin objects are created during module loading. Objects | * Object — component of skin. All skin objects are created during module loading. Objects describe what and how is need to paint as a reply to the request. | ||
* Glyph — | * Glyph — some image. Now time is supported BMP, JPG, and PNG (with transparency). The size of a glyph is defined by image size. Glyph picture loads to memory only at the first attempt to paint it and is kept in memory till module unloading or another skin loading. | ||
* Rule — rule which | * Rule — a rule which object corresponds to request. | ||
* Request — request from module (this or other) to paint one of corresponding objects at specific place and size. | * Request — request from a module (this or other) to paint one of the corresponding objects at a specific place and size. | ||
== Work algorithm == | == Work algorithm == | ||
Skin engine sequence is next: | Skin engine sequence is next: | ||
# Module | # Module generates request string as soon as it needs to paint something and give it to skin engine. | ||
# Skin engine | # Skin engine tries to find the first rule that corresponds to the given request and select an object that is pointed by this rule. | ||
# If selected object is | # If the selected object is Solid type: the requested area is painted by the corresponding color with specified alpha. | ||
# If selected object is | # If the selected object is an Image: such image is transformed to requested region size and paints. | ||
== Rules and requests == | |||
# | A rule consists of: | ||
# | # number; | ||
# | # name of an object to point; | ||
# couple of parameters delimited by ",". | |||
Each parameter is a union of: | Each parameter is a union of: | ||
* parameter’s name (first parameter has name "Module" and that always skipped) | * parameter’s name (first parameter has name "Module" and that always skipped); | ||
* condition (= | * condition ("=" means "is equal", "^" means "is not equal"); | ||
* parameter value. | * parameter value. | ||
A request has the same part as the rule except for number. | |||
The rule corresponds to the request if: | The rule corresponds to the request if: | ||
# Request contains all the rule's parameters | # Request contains all the rule's parameters (also request can contain the parameter that is not mentioned in rule). | ||
# All values of common parameters are the same if rule's parameters condition is "equal" and not the same if | # All values of common parameters are the same if the rule's parameters condition is "equal" and not the same if the rule's condition is "not equal". | ||
Rule parameter | Rule parameter values can contain wildcards "*" and "?". Rule parameter names and values can contain up to 24 chars. Values can not contain "," (comma) all commas are replaced by "." (dots). Names and values are case-sensitive. | ||
== Glyph transformation == | == Glyph transformation == | ||
Example: We need to paint glyph with sizes 70х70 at the rectangle size 100х100. | Example: We need to paint glyph with sizes 70х70 at the rectangle size 100х100. | ||
Define for margins: Left, Top, Right, Bottom. | Define for margins: Left, Top, Right, Bottom. | ||
These margins divide glyph at 9 areas: | These margins divide glyph at 9 areas: | ||
* 4 corners | * 4 corners; | ||
* 4 edges | * 4 edges; | ||
* center | * center. | ||
[[File:Glyph transformation example (before transformation).png]] | [[File:Glyph transformation example (before transformation).png]] | ||
Transformation rules: | Transformation rules: | ||
# Corner areas of glyph are painted as-it-is at the destination corners without any resizing. | # Corner areas of the glyph are painted as-it-is at the destination corners without any resizing. | ||
# Edge parts | # Edge parts transform in a direction along their nearest edges and keeping perpendicular to edge size as is. | ||
# Center area transforms in both directions | # Center area transforms in both directions. | ||
After transformation (StretchBoth mode) | After transformation (StretchBoth mode) | ||
Line 57: | Line 54: | ||
[[File:Glyph transformation example (after transformation).png]] | [[File:Glyph transformation example (after transformation).png]] | ||
There | There are 4 transformation modes: | ||
* StretchBoth — stretch at both directions; | |||
* TileHorz — tile horizontal, but stretch vertical; | |||
* TileVert — tile vertical but stretch horizontal; | |||
* TileBoth — tile in both directions. | |||
== Skin definition == | == Skin definition == | ||
Skin is the union of a skin description file (*.msf) and folder with graphic resources. | |||
Skin is union of skin description file (*.msf) and folder with graphic resources. | The folder name should be the same as the name of the descriptor file (without extension). All files inside the descriptor should be referenced without a path. | ||
Descriptor file is the common ini file with changed extension. All keys imports to database during skin loading. File formats is next: | Descriptor file is the common ini file with changed extension. All keys imports to database during skin loading. File formats is next: | ||
Line 75: | Line 71: | ||
Key2=#Value2 | Key2=#Value2 | ||
</pre> | </pre> | ||
"#" is a placeholder for one of the key type data marks. They can be one of following | |||
* "b" — byte; | |||
* "w" — word; | |||
* "d" — dword; | |||
* "s" — string. | |||
All modern skin objects and rules are kept in [ModernSkin] section with string type value. So in this section all keys have "s" after "=" e.g.: | All modern skin objects and rules are kept in [ModernSkin] section with string type value. So in this section all keys have "s" after "=" e.g.: | ||
Line 88: | Line 83: | ||
</pre> | </pre> | ||
Spaces inside are not allowed (only for string parameters like …,Name=First Name,…). | Spaces inside are not allowed (only for string parameters like ''…,Name=First Name,…''). | ||
== Objects description == | == Objects description == | ||
So skin consists of several parts. One of them describes objects. | |||
So skin consists | |||
Objects are described in next way: | Objects are described in next way: | ||
Line 98: | Line 92: | ||
$object_name=sGlyph,object_type,parameters,… | $object_name=sGlyph,object_type,parameters,… | ||
</pre> | </pre> | ||
object_name — object name used to point from rules. | |||
object_type — one of types: Image or Solid. | |||
parameters,… — list of parameters, the order of which is determined depending on the type of object: | |||
for solid type: | |||
for | |||
<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 — red, green, blue, and alpha transparency values. | |||
for | |||
for 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 — glyph image file name. | File_Name — glyph image file name. | ||
Line 132: | Line 124: | ||
== Rule description == | == Rule description == | ||
Next part describes rules. Rules are described in next way: | |||
Next part describes | |||
Rules are described in next way: | |||
<pre style="overflow:auto;"> | <pre style="overflow:auto;"> | ||
@rule_number=s$object_name:Module_parameter_value,param_name=value,parameter_name^value,… | @rule_number=s$object_name:Module_parameter_value,param_name=value,parameter_name^value,… | ||
</pre> | </pre> | ||
rule_number — number. Numbers should starts from zero and be in sequence without skipping. | rule_number — number. Numbers should starts from zero and be in sequence without skipping. | ||
Line 147: | Line 135: | ||
@1=s$closed_miranda_group:CL,ID=Row,Type=Group,Open^True,Name=Mir*a* | @1=s$closed_miranda_group:CL,ID=Row,Type=Group,Open^True,Name=Mir*a* | ||
</pre> | </pre> | ||
For this example object $window (image back.bmp) will be painted if the request contains the 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). | |||
Object | |||
== Buttons description == | == Buttons description == | ||
Next part describes buttons. Buttons can be placed in any area of the window (but prefer on margins, otherwise, they will be covered by frames. | |||
Next part describes | |||
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. | Buttons can be to types Push and Switch. | ||
Line 169: | Line 153: | ||
#name=sSwitch,ServiceNameToCall,StateDBKey,ValueTypeandDefault,fromLeft,fromTop,fromRight,fromBottom,Flags,MinWindowWidth,MinWindowHeigh,HintText | #name=sSwitch,ServiceNameToCall,StateDBKey,ValueTypeandDefault,fromLeft,fromTop,fromRight,fromBottom,Flags,MinWindowWidth,MinWindowHeigh,HintText | ||
</pre> | </pre> | ||
ServiceNameToCall — the name of service to be called on key pressure. | |||
StateDBKey — the name of the 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 behavior flags is a sequence of chars in next order: "ABCDE": A — relativity of left edge, B — top edge, C — right edge, D — from the bottom (value is "R" — from the right (for A and C), "B" — from the 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 releases 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: | 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'') | ||
<pre style="overflow:auto;"> | <pre style="overflow:auto;"> | ||
MButton,ID=statusmenu,Hovered=1,Down=0 | MButton,ID=statusmenu,Hovered=1,Down=0 | ||
</pre> | </pre> | ||
If switch button is specified it add value: ''Value=0 ( | If the switch button is specified it add value: ''Value=0 (database key value instead of ‘0’)'' | ||
== Modern paint request sequence == | |||
# Paint backgrounds via request<br/>'''Main,ID=Background''' | |||
# Paint StatusBar, Frame captions backgrounds via<br/>'''Main,ID=StatusBar'''<br/>'''Main,ID=FrameCaption''' | |||
# Paint buttons via request<br/>'''MButton,ID=''buttonname'',Hovered=''x'',Down=''y'',Value=''z'''''<br/>'''MButton,ID=''buttonname'',Hovered=''x'',Down=''y''''' | |||
# Paint contact list in next sequence: | |||
#* a. Paint contact list background<br/>'''CL,ID=Background''' | |||
#* b. Paint row background (request forms according to row content)<br/>'''CL,ID=Row,Type=Contact,Selected=True,…''' | |||
#* c. Paint common selection if selected<br/>'''CL,ID=Selection''' | |||
#* d. Paint common hottracking if hot<br/>'''CL,ID=HotTracking''' | |||
#* e. Draw row content (avatar, text, icons) | |||
#* f. Paint row overlay (request forms according to row content)<br/>'''CL,ID=Ovl,Type=Contact,Selected=True,…''' | |||
#* Repeats b.—f. for each row | |||
# Paint scroll bar in next | |||
#* Paint scroll bar background<br/>'''Main,ID=ScrollBar,Part=Back''' | |||
#* Paint scroll bar items<br/>'''Main,ID=ScrollBar,Part= UpLineButton'''<br/>'''Main,ID=ScrollBar,Part= DownLineButton'''<br/>'''Main,ID=ScrollBar,Part= Thumb''' | |||
== Table of available params and values == | |||
{| class="wikitable" | |||
! colspan="2" |Param | |||
!Value | |||
!Description | |||
|- | |||
| colspan="2" |Module | |||
|Main | |||
|Main window parts | |||
|- | |||
| style="width: 6%"| | |||
|ID | |||
|Background | |||
StatusBar | |||
FrameCaption | |||
|Window back | |||
Status bar back | |||
Frame caption back | |||
|- | |||
| | |||
|ID | |||
|ScrollBar | |||
|Scrollbar | |||
|- | |||
| | |||
|Part | |||
|Back | |||
UpLineButton | |||
DownLineButton | |||
Thumb | |||
|Scroll bar parts | |||
|- | |||
| colspan="2" |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 | |||
SubPos | |||
|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 the row | |||
|- | |||
| | |||
|Index | |||
Indent | |||
|Number | |||
|Number of the line in the list | |||
Indent of row (0 — in the 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 | |||
|- | |||
| colspan="2" |Module | |||
|MButton | |||
|Buttons | |||
|- | |||
| | |||
|ID | |||
|Text | |||
|Button name (without "#") | |||
|- | |||
| | |||
|Down | |||
Hovered | |||
|0 | |||
1 | |||
|Pressure and hot states | |||
|- | |||
| | |||
|Value | |||
|Text | |||
|Value of associated with a triggered button database key | |||
|} | |||
== | == Example of dump of Crystal skin at real list == | ||
{| class="wikitable" | |||
!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 | |||
|} | |||
[[Category:Tutorials (en)]] | |||
Latest revision as of 19:00, 18 March 2021
Common definitions
Skin engine is based on next definitions and concepts:
- Object — component of skin. All skin objects are created during module loading. Objects describe what and how is need to paint as a reply to the request.
- Glyph — some image. Now time is supported BMP, JPG, and PNG (with transparency). The size of a glyph is defined by image size. Glyph picture loads to memory only at the first attempt to paint it and is kept in memory till module unloading or another skin loading.
- Rule — a rule which object corresponds to request.
- Request — request from a module (this or other) to paint one of the corresponding objects at a specific place and size.
Work algorithm
Skin engine sequence is next:
- Module generates request string as soon as it needs to paint something and give it to skin engine.
- Skin engine tries to find the first rule that corresponds to the given request and select an object that is pointed by this rule.
- If the selected object is Solid type: the requested area is painted by the corresponding color with specified alpha.
- If the selected object is an Image: such image is transformed to requested region size and paints.
Rules and requests
A rule consists of:
- number;
- name of an object to point;
- couple of parameters delimited by ",".
Each parameter is a union of:
- parameter’s name (first parameter has name "Module" and that always skipped);
- condition ("=" means "is equal", "^" means "is not equal");
- parameter value.
A request has the same part as the rule except for number.
The rule corresponds to the request if:
- Request contains all the rule's parameters (also request can contain the parameter that is not mentioned in rule).
- All values of common parameters are the same if the rule's parameters condition is "equal" and not the same if the rule's condition is "not equal".
Rule parameter values can contain wildcards "*" and "?". Rule parameter names and values can contain up to 24 chars. Values can not contain "," (comma) all commas are replaced by "." (dots). Names and values are case-sensitive.
Glyph transformation
Example: We need to paint glyph with sizes 70х70 at the rectangle size 100х100.
Define for margins: Left, Top, Right, Bottom. These margins divide glyph at 9 areas:
- 4 corners;
- 4 edges;
- center.
Transformation rules:
- Corner areas of the glyph are painted as-it-is at the destination corners without any resizing.
- Edge parts transform in a direction along their nearest edges and keeping perpendicular to edge size as is.
- Center area transforms in both directions.
After transformation (StretchBoth mode)
There are 4 transformation modes:
- StretchBoth — stretch at both directions;
- TileHorz — tile horizontal, but stretch vertical;
- TileVert — tile vertical but stretch horizontal;
- TileBoth — tile in both directions.
Skin definition
Skin is the union of a skin description file (*.msf) and folder with graphic resources. The folder name should be the same as the name of the descriptor file (without extension). All files inside the descriptor should be referenced without a path.
Descriptor file is the common ini file with changed extension. All keys imports to database during skin loading. File formats is next:
[db_section_name] ; comments Key=#Value Key2=#Value2
"#" is a placeholder for one of the key type data marks. They can be one of following
- "b" — byte;
- "w" — word;
- "d" — dword;
- "s" — string.
All modern skin objects and rules are kept in [ModernSkin] section with string type value. 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,…).
Objects description
So skin consists of several parts. One of them describes objects.
Objects are described in next way:
$object_name=sGlyph,object_type,parameters,…
object_name — object name used to point from rules.
object_type — one of types: Image or Solid.
parameters,… — list of parameters, the order of which is determined depending on the type of object:
for solid type:
$object_name =sGlyph,Solid,RedValue,GreenValue,BlueValue,AlphaValue
RedValue, GreenValue, BlueValue, AlphaValue — red, green, blue, and alpha transparency values.
for image:
$object_name =sGlyph,Image,File_Name,Fit_Mode,Left,Top,Right,Bottom,AlphaValue
File_Name — glyph image file name.
Fit_Mode — transform mode: StretchBoth, TileHorz, TileVert, TileBoth.
Left, Top, Right, Bottom — transform margins.
Examples:
$window=sGlyph,Image,back.bmp,TileBoth,1,1,1,1,150 $closed_miranda_group=sGlyph,Solid,0,0,255,200
Rule description
Next part describes rules. 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 the request contains the 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
Next part describes buttons. Buttons can be placed in any area of the 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 — the name of service to be called on key pressure.
StateDBKey — the name of the 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 behavior flags is a sequence of chars in next order: "ABCDE": A — relativity of left edge, B — top edge, C — right edge, D — from the bottom (value is "R" — from the right (for A and C), "B" — from the 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 releases 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 the 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 the row | |
Index
Indent |
Number | Number of the line in the list
Indent of row (0 — in the 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 a 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 |