Subversion Repositories Kolibri OS

Rev

Rev 6693 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. ; à®á⮩ ¯à¨¬¥à ¯à®£à ¬¬ë ¤«ï KolibriOS
  2. ; ®§¢ã稢 ¥â ª®¤ ­ ¦ â®© ª« ¢¨è¨
  3. ; - ¯¥à¥¤¥« ­ ª ª ¯à¨¬¥à ¨á¯®«ì§®¢ ­¨ï tooltip
  4.  
  5. use32 ; ¢ª«îç¨âì 32-¡¨â­ë© ०¨¬  áᥬ¡«¥à 
  6. org 0x0 ;  ¤à¥á æ¨ï á ­ã«ï
  7.  
  8. db 'MENUET01' ; 8-¡ ©â­ë© ¨¤¥­â¨ä¨ª â®à MenuetOS
  9. dd 0x01 ; ¢¥àá¨ï § £®«®¢ª  (¢á¥£¤  1)
  10. dd START ;  ¤à¥á ¯¥à¢®© ª®¬ ­¤ë
  11. dd CODE_END ; à §¬¥à ¯à®£à ¬¬ë
  12. dd DATA_END ; ª®«¨ç¥á⢮ ¯ ¬ïâ¨
  13. dd STACK_END ;  ¤à¥á ¢¥à設ë áâíª 
  14. dd 0x0 ;  ¤à¥á ¡ãä¥à  ¤«ï ¯ à ¬¥â஢
  15. dd cur_dir_path      ; 㪠§ â¥«ì ­   ¤à¥á, ªã¤  ¯®¬¥é ¥âáï áâப , ᮤ¥à¦ é ï ¯ãâì ¤® ¯à®£à ¬¬ë ¢ ¬®¬¥­â § ¯ã᪠.
  16.  
  17. include '../../../../../proc32.inc'
  18. include '../../../../../macros.inc'
  19. include '../../../../../KOSfuncs.inc'
  20. include '../../../../../Dll.inc'        ; malloc fn
  21. include '../../trunk/box_lib.mac'
  22. include '../../load_lib.mac'
  23. ;include 'proc32.inc'
  24. ;include 'macros.inc'
  25. ;include 'KOSfuncs.inc'
  26.  
  27. ;---------------------------------------------------------------------
  28. ;--- €—€‹Ž Žƒ€ŒŒ› ----------------------------------------------
  29. ;---------------------------------------------------------------------
  30. ; íâ®â ¬ ªà®á ®¡ï§ â¥«¥­ ¤«ï ¢á¥å ª®¬¯®­¥â®¢, ¨á¯®«ì§ãîé¨å heap
  31. ; ªà®¬¥ ⮣®, ®¡ï§ â¥«ì­® ¨¬®àâ¨à®¢ âì lib_init - ¯à¨ ¨¬¯®à⥠®¯à¥¤¥«ïîâáï
  32. ; ä㭪樨 娯  ¤«ï ¡¨¡«¨®â¥ª¨
  33. @use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
  34.  
  35. START:
  36. ;---------------------------------------------------------------------
  37. ;--- ˆˆ–ˆ€‹ˆ‡€–ˆŸ ----------------------------------------
  38. ;---------------------------------------------------------------------
  39. ;mov eax, mem_alloc
  40. ;mov [mem.alloc], eax
  41. ;mov eax, mem_realloc
  42. ;mov [mem.realloc], eax
  43. ;mov eax, mem_free
  44. ;mov [mem.free], eax
  45. mcall   68, 11
  46.  
  47. mcall 40, $C0000027 ; ¬ áª  ᮡë⨩ - ¬ëèì ⮫쪮 ¢  ªâ¨¢­®¬ ®ª­¥
  48.  
  49. sys_load_library  lib_name, cur_dir_path, lib_path, sys_path, \
  50.         e_notfound_lib, head_f_l, myimport, e_import, head_f_i
  51. test eax,eax
  52. jz      @f
  53.         mcall -1 ; alarm exit
  54. @@:
  55.  
  56.  
  57. invoke tooltip_init, redbox_tt  ; only begin of list
  58.  
  59. red: ; ¯¥à¥à¨á®¢ âì ®ª­®
  60.  
  61. call draw_window ; ¢ë§ë¢ ¥¬ ¯à®æ¥¤ãàã ®âà¨á®¢ª¨ ®ª­ 
  62.  
  63. ;---------------------------------------------------------------------
  64. ;--- –ˆŠ‹ Ž€Ž’Šˆ ‘Ž›’ˆ‰ ----------------------------------------
  65. ;---------------------------------------------------------------------
  66.  
  67. still:
  68. mcall 23, 5 ; äã­ªæ¨ï 23 - ¦¤ âì ᮡëâ¨ï ¥ ¡®«¥¥ 祬 0.05á
  69. test eax, eax ; ­¥â ᮡë⨩ - ¯à®¢¥à¨âì à¨á®¢ ­¨¥ âã«â¨¯®¢ ¯® â ©¬¥àã
  70. je yield
  71. cmp eax,1 ; ¯¥à¥à¨á®¢ âì ®ª­® ?
  72. je red ; ¥á«¨ ¤  - ­  ¬¥âªã red
  73. cmp eax,2 ; ­ ¦ â  ª« ¢¨è  ?
  74. je key ; ¥á«¨ ¤  - ­  key
  75. cmp eax,3 ; ­ ¦ â  ª­®¯ª  ?
  76. je button ; ¥á«¨ ¤  - ­  button
  77. cmp eax,6 ; ᮡë⨥ ¬ëè¨
  78. je mouse ; ¥á«¨ ¤  - ­  mouse
  79.  
  80. jmp still ; ¥á«¨ ¤à㣮¥ ᮡë⨥ - ¢ ­ ç «® 横« 
  81.  
  82.  
  83. ;---------------------------------------------------------------------
  84. yield:
  85. invoke tooltip_test_show, redbox_tt
  86. jmp still ; ¢¥à­ãâìáï ª ­ ç «ã 横« 
  87.  
  88. mouse:
  89. invoke tooltip_mouse, redbox_tt
  90. jmp still ; ¢¥à­ãâìáï ª ­ ç «ã 横« 
  91.  
  92. key: ; ­ ¦ â  ª« ¢¨è  ­  ª« ¢¨ âãà¥
  93. mcall 2 ; äã­ªæ¨ï 2 - áç¨â âì ª®¤ ᨬ¢®«  (¢ ah)
  94.  
  95. jmp still ; ¢¥à­ãâìáï ª ­ ç «ã 横« 
  96.  
  97. ;---------------------------------------------------------------------
  98.  
  99. button:
  100. mcall 17 ; 17 - ¯®«ãç¨âì ¨¤¥­â¨ä¨ª â®à ­ ¦ â®© ª­®¯ª¨
  101.  
  102. cmp ah, 1 ; ¥á«¨ … ­ ¦ â  ª­®¯ª  á ­®¬¥à®¬ 1,
  103. jne still ; ¢¥à­ãâìáï
  104.  
  105. pexit:
  106. invoke tooltip_delete, redbox_tt        ; ®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì
  107. mcall -1 ; ¨­ ç¥ ª®­¥æ ¯à®£à ¬¬ë
  108.  
  109.  
  110. ;---------------------------------------------------------------------
  111. ;--- Ž…„…‹…ˆ… ˆ Ž’ˆ‘Ž‚Š€ ŽŠ€ ----------------------------------
  112. ;---------------------------------------------------------------------
  113.  
  114. draw_window:
  115.  
  116. mcall 12, 1 ; äã­ªæ¨ï 12: á®®¡é¨âì Ž‘ ® ­ ç «¥ ®âà¨á®¢ª¨
  117.  
  118. mcall 48, 3, sc,sizeof.system_colors
  119.  
  120. mov edx, [sc.work] ; 梥â ä®­ 
  121. or edx, 0x33000000 ; ¨ ⨯ ®ª­  3
  122. mcall 0, <200,300>, <200,150>, , ,title
  123.  
  124. ; ¢ë¢®¤ ª¢ ¤à â¨ª®¢
  125. mcall 13, <60,50>, <50,50>, $FF0000
  126. mcall 13, <140,50>, <50,50>, $FF
  127.  
  128.  
  129. mcall 12, 2 ; äã­ªæ¨ï 12.2, § ª®­ç¨«¨ à¨á®¢ âì
  130.  
  131. ret ; ¢ë室¨¬ ¨§ ¯à®æ¥¤ãàë
  132.  
  133.  
  134. CODE_END: ; ¬¥âª  ª®­æ  ¯à®£à ¬¬ë; --------------------------------------------;
  135.  
  136. ; ---------------------------------------------------------------------------- ;
  137. ;---------------------------------------------------------------------
  138. ;--- „€›… Žƒ€ŒŒ› ----------------------------------------------
  139. ;---------------------------------------------------------------------
  140.  
  141. sys_path        db '/sys/lib/'
  142. ;sys_path       db '/tmp0/1/'
  143. lib_name    db 'box_lib.obj',0
  144. cur_dir_path    rb 4096
  145. lib_path    rb 4096
  146.  
  147. e_notfound_lib    db 'Sorry I cannot load library box_lib.obj',0
  148.  
  149. head_f_i:
  150. head_f_l    db 'System error',0
  151. e_import    db 'Error on load import library box_lib.obj',0
  152.  
  153. myimport:
  154.                                 dd sz_lib_init ;äã­ªæ¨ï § ¯ã᪠¥âáï ¬ ªà®á®¬ 1 à § ¯à¨ ¯®¤ª«î祭¨¨
  155. ;¡¨¡«¨®â¥ª¨, ¯®â®¬ã ¢ ¯à®£à ¬¬¥ ¬¥âª  ­  ­¥¥ ­¥ ­ã¦­ 
  156. tooltip_init    dd sz_tooltip_init
  157. tooltip_delete  dd sz_tooltip_delete
  158. tooltip_test_show       dd sz_tooltip_test_show
  159. tooltip_mouse   dd sz_tooltip_mouse
  160. get_font_size   dd sz_get_font_size
  161.     dd    0
  162.     dd    0
  163.  
  164. sz_lib_init                     db 'lib_init',0
  165. sz_tooltip_init                 db 'tooltip_init', 0
  166. sz_tooltip_delete               db 'tooltip_delete', 0
  167. sz_tooltip_test_show    db 'tooltip_test_show', 0
  168. sz_tooltip_mouse                db 'tooltip_mouse', 0
  169. sz_get_font_size                db 'get_font_size', 0
  170.  
  171.  
  172. ;tooltip txt, next, zone_x, zone_w, zone_y, zone_h, col_txt, col_bkg, tm_wait
  173. redbox_tt    tooltip redboxtxt, blubox_tt, 60, 50, 50, 50, 0, $FFF473, 100
  174. blubox_tt    tooltip bluboxtxt, 0, 140, 50, 50, 50, $110000FF, $FFF473, 100
  175.  
  176. redboxtxt       db 'Red Box Tooltip', 13, 'May be multilined', 13, 13, 'Even with empty lines', 0
  177. bluboxtxt       db 'Blue Box Tooltip', 0
  178.  
  179. sc system_colors
  180.  
  181. title db 'Toooltip demo',0
  182.  
  183. ; stack----------------------------------------------------------------------- ;
  184.            rb 4096
  185. STACK_END  dd ?
  186.  
  187. DATA_END: ; ¬¥âª  ª®­æ  ¤ ­­ëå ¯à®£à ¬¬ë; ------------------------------------ ;
  188.