Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 6706 → Rev 6707

/programs/develop/libraries/box_lib/trunk/doc/tooltip/tooltip.htm
0,0 → 1,87
<html>
<head>
<title>ýëåìåíò Tooltip</title>
<meta http-equiv="content-type" content="text/html; charset=WINDOWS-1251">
<link href="../style.css" type=text/css rel=stylesheet>
</head>
<body>
<p><a href="../box_lib.htm">Íà ãëàâíóþ &uarr;</a></p>
<h1>Îãëàâëåíèå</h1>
<p><a href="#intro">Ââåäåíèå</a></p>
<p><a href="#funct">Ôóíêöèè</a></p>
<p><a href="#struc">Ñòðóêòóðà äàííûõ</a></p>
<p><a href="#source">Èñõîäíûé êîä è ïðèìåðû</a></p>
 
<h1><a name="intro">Ââåäåíèå</a></h1>
<p>Òóëòèï - âñïëûâàþùàÿ ïîäñêàçêà, ïîêàçûâàåòñÿ ïðè çàäåðæêå óêàçàòåëÿ ìûøè íàä êîíêðåòíîé îáëàñòüþ, îáû÷íî ýëåìåíòîì óïðàâëåíèÿ.</p>
<p>Îáëàñòü êîíòðîëÿ - ïðÿìîóãîëüíèê ñ çàäàííûìè êîîðäèíàòàìè</p>
<p>Òåêñò òóëòèïà ìîæåò áûòü ìíîãîñòðî÷íûì, ñ ðàçäåëèòåëåì êîä 13 (\r), ïðîèçâîëüíûì ðàçìåðîì øðèôòà.</p>
<p> ïåðâîé âåðñèè òóëòèï âûâîäèòñÿ íèæå êóðñîðà ìûøè è âïðàâî. Ó÷èòûâàéòå ïðè ïëàíèðîâàíèè èíòåðôåéñà.</p>
<p>Èñïîëüçóåòñÿ äèíàìè÷åñêàÿ ïàìÿòü, ñîîòâåòñòâåííî áèáëèîòåêà äîëæíû áûòü çàãðóæåíà ñ ôóíêöèÿìè</p>
<pre>@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load</pre>
<p>è êó÷à äîëæíà áûòü èíèöèàëèçèðîâàíà âûçîâîì SysFn 68.11</p>
 
<h1><a name="funct">Ôóíêöèè</a></h1>
<p>Âñå ôóíêöèè èñïîëüçóþò x86-32 calling convention, stdcall.</p>
<p>Ýòî îçíà÷àåò, ÷òî ðåãèñòðû EAX, ECX, EDX ìîãóò íå ñîõðàíÿòü ñâîè çíà÷åíèÿ ïîñëå âûçîâà ôóíêöèé.</p>
<p>Ïðèìåðû âûçîâîâ ñìîòðèòå â ïðîãðàììå - ïðèìåðå.</p>
 
<h2><a name="tooltip_init">tooltip_init(ttip)</a></h2>
<p>Ïàðàìåòð - óêàçàòåëü íà ïåðâûé â öåïî÷êå òóëòèï.</p>
<p>Âîçâðàò EAX==1 ïðè óñïåøíîì âûäåëåíèèè ïàìÿòè, 0 ïðè ñáîå.</p>
<p>Âûçûâàåòñÿ îäèí ðàç, èíèöèàëèçèðóåò âñå òóëòèïû, âûäåëÿÿ ïàìÿòü è ðàññ÷èòûâàÿ âíóòðåííèå ïåðåìåííûå.</p>
 
<h2><a name="tooltip_delete">tooltip_delete(ttip)</a></h2>
<p>Ïàðàìåòð - óêàçàòåëü íà ïåðâûé â öåïî÷êå òóëòèï.</p>
<p>Âîçâðàò - íåò.</p>
<p>Îñâîáîæäàåò âûäåëåííóþ ïàìÿòü.</p>
 
<h2><a name="tooltip_test_show">tooltip_test_show(ttip)</a></h2>
<p>Ïàðàìåòð - óêàçàòåëü íà ïåðâûé â öåïî÷êå òóëòèï.</p>
<p>Âîçâðàò - íåò.</p>
<p>Ïîêàç íóæíîãî èç âñåé öåïî÷êè òóëòèïîâ ïðè áåçäåéñòâèè.
Äîëæíà âûçûâàòüñÿ ïðè áåçäåéñòâèè èëè ïåðèîäè÷åñêè äëÿ ïðîâåðêè òàéìåðà.
Íàïðèìåð ïðè îïðîñå ñîáûòèé ôóíêöèåé SysFn 23 (event 0).</p>
 
<h2><a name="tooltip_mouse">tooltip_mouse(ttip)</a></h2>
<p>Ïàðàìåòð - óêàçàòåëü íà ïåðâûé â öåïî÷êå òóëòèï.</p>
<p>Âîçâðàò - íåò.</p>
<p>Ýòà ôóíêöèÿ äîëæíà âûçûâàòüñÿ ïðè ñîáûòèè ìûøè. Ñòèðàåò òóëòèï ïðè âûõîäå ìûøè èç çîíû êîíòðîëÿ</p>
 
<h2><a name="get_font_size">get_font_size(color)</a></h2>
<p>Ïàðàìåòð - öâåò òåêñòà ñ ðàçìåðîì øðèôòà, â ôîðìàòå ôóíêöèè SysFn 4.</p>
<p>Âîçâðàò - EAX = width shl 16 + height.</p>
<p>Äåêîäèðóåò èç êîìáèíèðîâàííîãî öâåòà/ðàçìåðà øèðèíó è âûñîòó øðèôòà â ïèêñåëÿõ</p>
 
<h1><a name="struc">Ñòðóêòóðà òóëòèïà</a></h1>
<p>Ìàêðîñ äëÿ ñîçäàíèÿ ñòðóêòóðû òóëòèïà íèæå, âêëþ÷åí â box_lib.mac. Íå çàáûâàåì îáúåäèíèòü òóëòèïû â ñïèñîê.</p>
<pre>struc tooltip txt, next, zone_x, zone_w, zone_y, zone_h, col_txt, col_bkg, tm_wait
{
.txt dd txt ; óêàçàòåëü íà òåêñò asciiz, ðàçäåëèòåëü \r 13
.next dd next ; ñëåäóþùèèé tooltip â öåïî÷êå èëè 0
.zone_y dw zone_y ; çîíà êîíòðîëÿ (â 90% ñëó÷àåâ ñîâïàäàåò ñ ðàçìåðîì êîíòðîëà)
.zone_x dw zone_x ;
.zone_h dw zone_h ;
.zone_w dw zone_w ;
.col_txt dd col_txt ; öâåò òåêñòà òóëòèïà, âêëþ÷àÿ ðàçìåð SysFn4
.col_bkg dd col_bkg ; öâåò ôîíà òóëòèïà
.tm_wait dw tm_wait ; âðåìÿ îæèäàíèÿ õ10ìñ
;âðåìåííûå ïåðåìåííûå
.font_sz dd ? ; font size
.mouse dd ? ; ïðåäûäóùåå ïîëîæåíèå (x, y)
.tm_strt dd ? ; âðåìÿ çàïóñêà òàéìåðà (âõîäà ìûøè â çîíó) õ10ìñ
.video dd ? ; ïàìÿòü äëÿ ñîõðàíåííîãî ïîä òóëòèïîì
.video_y dw ? ; êîîðäèíàòû çàïîìíåííîé îáëàñòè ýêðàíà, èëè 0 åñëè ïóñòî
.video_x dw ?
.video_h dw ? ; ðàçìåð ïðåäðàñ÷èòûâàåòñÿ ïðè init
.video_w dw ?
}
</pre>
 
<hr>
<h1><a name="source">Èñõîäíûé êîä è ïðèìåðû</a></h1>
<p>Èñõîäíûé êîä íàõîäèòñÿ â áèáëèîòåêå box_lib, ôàéë tooltip.asm</p>
<p>Ïðèìåð èñïîëüçîâàíèÿ íàõîäèòñÿ â box_lib\asm\trunk\tooltip_demo.asm</p>
<h1>EOF</h1>
</body>
</html>