Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. <html>
  2. <head>
  3. <title>ýëåìåíò Tooltip</title>
  4. <meta http-equiv="content-type" content="text/html; charset=WINDOWS-1251">
  5. <link href="../style.css" type=text/css rel=stylesheet>
  6. </head>
  7. <body>
  8. <p><a href="../box_lib.htm">Íà ãëàâíóþ &uarr;</a></p>
  9. <h1>Îãëàâëåíèå</h1>
  10. <p><a href="#intro">Ââåäåíèå</a></p>
  11. <p><a href="#funct">Ôóíêöèè</a></p>
  12. <p><a href="#struc">Ñòðóêòóðà äàííûõ</a></p>
  13. <p><a href="#source">Èñõîäíûé êîä è ïðèìåðû</a></p>
  14.  
  15. <h1><a name="intro">Ââåäåíèå</a></h1>
  16. <p>Òóëòèï - âñïëûâàþùàÿ ïîäñêàçêà, ïîêàçûâàåòñÿ ïðè çàäåðæêå óêàçàòåëÿ ìûøè íàä êîíêðåòíîé îáëàñòüþ, îáû÷íî ýëåìåíòîì óïðàâëåíèÿ.</p>
  17. <p>Îáëàñòü êîíòðîëÿ - ïðÿìîóãîëüíèê ñ çàäàííûìè êîîðäèíàòàìè</p>
  18. <p>Òåêñò òóëòèïà ìîæåò áûòü ìíîãîñòðî÷íûì, ñ ðàçäåëèòåëåì êîä 13 (\r), ïðîèçâîëüíûì ðàçìåðîì øðèôòà.</p>
  19. <p> ïåðâîé âåðñèè òóëòèï âûâîäèòñÿ íèæå êóðñîðà ìûøè è âïðàâî. Ó÷èòûâàéòå ïðè ïëàíèðîâàíèè èíòåðôåéñà.</p>
  20. <p>Èñïîëüçóåòñÿ äèíàìè÷åñêàÿ ïàìÿòü, ñîîòâåòñòâåííî áèáëèîòåêà äîëæíû áûòü çàãðóæåíà ñ ôóíêöèÿìè</p>
  21. <pre>@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load</pre>
  22. <p>è êó÷à äîëæíà áûòü èíèöèàëèçèðîâàíà âûçîâîì SysFn 68.11</p>
  23.  
  24. <h1><a name="funct">Ôóíêöèè</a></h1>
  25. <p>Âñå ôóíêöèè èñïîëüçóþò x86-32 calling convention, stdcall.</p>
  26. <p>Ýòî îçíà÷àåò, ÷òî ðåãèñòðû EAX, ECX, EDX ìîãóò íå ñîõðàíÿòü ñâîè çíà÷åíèÿ ïîñëå âûçîâà ôóíêöèé.</p>
  27. <p>Ïðèìåðû âûçîâîâ ñìîòðèòå â ïðîãðàììå - ïðèìåðå.</p>
  28.  
  29. <h2><a name="tooltip_init">tooltip_init(ttip)</a></h2>
  30. <p>Ïàðàìåòð - óêàçàòåëü íà ïåðâûé â öåïî÷êå òóëòèï.</p>
  31. <p>Âîçâðàò EAX==1 ïðè óñïåøíîì âûäåëåíèèè ïàìÿòè, 0 ïðè ñáîå.</p>
  32. <p>Âûçûâàåòñÿ îäèí ðàç, èíèöèàëèçèðóåò âñå òóëòèïû, âûäåëÿÿ ïàìÿòü è ðàññ÷èòûâàÿ âíóòðåííèå ïåðåìåííûå.</p>
  33.  
  34. <h2><a name="tooltip_delete">tooltip_delete(ttip)</a></h2>
  35. <p>Ïàðàìåòð - óêàçàòåëü íà ïåðâûé â öåïî÷êå òóëòèï.</p>
  36. <p>Âîçâðàò - íåò.</p>
  37. <p>Îñâîáîæäàåò âûäåëåííóþ ïàìÿòü.</p>
  38.  
  39. <h2><a name="tooltip_test_show">tooltip_test_show(ttip)</a></h2>
  40. <p>Ïàðàìåòð - óêàçàòåëü íà ïåðâûé â öåïî÷êå òóëòèï.</p>
  41. <p>Âîçâðàò - íåò.</p>
  42. <p>Ïîêàç íóæíîãî èç âñåé öåïî÷êè òóëòèïîâ ïðè áåçäåéñòâèè.
  43. Äîëæíà âûçûâàòüñÿ ïðè áåçäåéñòâèè èëè ïåðèîäè÷åñêè äëÿ ïðîâåðêè òàéìåðà.
  44. Íàïðèìåð ïðè îïðîñå ñîáûòèé ôóíêöèåé SysFn 23 (event 0).</p>
  45.  
  46. <h2><a name="tooltip_mouse">tooltip_mouse(ttip)</a></h2>
  47. <p>Ïàðàìåòð - óêàçàòåëü íà ïåðâûé â öåïî÷êå òóëòèï.</p>
  48. <p>Âîçâðàò - íåò.</p>
  49. <p>Ýòà ôóíêöèÿ äîëæíà âûçûâàòüñÿ ïðè ñîáûòèè ìûøè. Ñòèðàåò òóëòèï ïðè âûõîäå ìûøè èç çîíû êîíòðîëÿ</p>
  50.  
  51. <h2><a name="get_font_size">get_font_size(color)</a></h2>
  52. <p>Ïàðàìåòð - öâåò òåêñòà ñ ðàçìåðîì øðèôòà, â ôîðìàòå ôóíêöèè SysFn 4.</p>
  53. <p>Âîçâðàò - EAX = width shl 16 + height.</p>
  54. <p>Äåêîäèðóåò èç êîìáèíèðîâàííîãî öâåòà/ðàçìåðà øèðèíó è âûñîòó øðèôòà â ïèêñåëÿõ</p>
  55.  
  56. <h1><a name="struc">Ñòðóêòóðà òóëòèïà</a></h1>
  57. <p>Ìàêðîñ äëÿ ñîçäàíèÿ ñòðóêòóðû òóëòèïà íèæå, âêëþ÷åí â box_lib.mac. Íå çàáûâàåì îáúåäèíèòü òóëòèïû â ñïèñîê.</p>
  58. <pre>struc tooltip txt, next, zone_x, zone_w, zone_y, zone_h, col_txt, col_bkg, tm_wait
  59. {
  60.     .txt     dd  txt   ; óêàçàòåëü íà òåêñò asciiz, ðàçäåëèòåëü \r 13
  61.     .next    dd  next   ; ñëåäóþùèèé tooltip â öåïî÷êå èëè 0
  62.     .zone_y  dw  zone_y   ; çîíà êîíòðîëÿ (â 90% ñëó÷àåâ ñîâïàäàåò ñ ðàçìåðîì êîíòðîëà)
  63.     .zone_x  dw  zone_x   ;
  64.     .zone_h  dw  zone_h   ;
  65.     .zone_w  dw  zone_w   ;
  66.     .col_txt dd  col_txt   ; öâåò òåêñòà òóëòèïà, âêëþ÷àÿ ðàçìåð SysFn4
  67.     .col_bkg dd  col_bkg   ; öâåò ôîíà òóëòèïà
  68.     .tm_wait dw  tm_wait   ; âðåìÿ îæèäàíèÿ õ10ìñ
  69. ;âðåìåííûå ïåðåìåííûå
  70.     .font_sz dd  ?   ; font size
  71.     .mouse   dd  ?   ; ïðåäûäóùåå ïîëîæåíèå (x, y)
  72.     .tm_strt dd  ?   ; âðåìÿ çàïóñêà òàéìåðà (âõîäà ìûøè â çîíó) õ10ìñ
  73.     .video   dd  ?   ; ïàìÿòü äëÿ ñîõðàíåííîãî ïîä òóëòèïîì
  74.     .video_y dw  ?    ; êîîðäèíàòû çàïîìíåííîé îáëàñòè ýêðàíà, èëè 0 åñëè ïóñòî
  75.     .video_x dw  ?
  76.     .video_h dw  ?    ; ðàçìåð ïðåäðàñ÷èòûâàåòñÿ ïðè init
  77.     .video_w dw  ?
  78. }
  79. </pre>
  80.  
  81. <hr>
  82. <h1><a name="source">Èñõîäíûé êîä è ïðèìåðû</a></h1>
  83. <p>Èñõîäíûé êîä íàõîäèòñÿ â áèáëèîòåêå box_lib, ôàéë tooltip.asm</p>
  84. <p>Ïðèìåð èñïîëüçîâàíèÿ íàõîäèòñÿ â box_lib\asm\trunk\tooltip_demo.asm</p>
  85. <h1>EOF</h1>
  86. </body>
  87. </html>