Subversion Repositories Kolibri OS

Rev

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

  1. ;In this file content a macros need for compilation the scrshoot
  2. evm_redraw equ 1
  3. evm_key equ 10b
  4. evm_button equ 100b
  5. evm_mouse equ 100000b
  6. evm_ipc equ 1000000b
  7.  
  8. ;--- ñîîáùèòü ñèñòåìå î íà÷àëå ïåðåðèñîâêè îêíà ---
  9. macro draw_status text_ptr
  10. {
  11.         mov     [status.text],dword text_ptr
  12.         call    send_draw_status
  13. }
  14.  
  15. macro start_draw_window
  16. {
  17.         ;mov     eax,12
  18.         push    12
  19.         pop     eax
  20.         xor     ebx,ebx
  21.         inc     ebx
  22.         mcall
  23. }
  24.  
  25. ;--- ñîîáùèòü ñèñòåìå î çàâåðøåíèè ïåðåðèñîâêè îêíà ---
  26. macro stop_draw_window
  27. {
  28.         ;mov     eax,12
  29.         push    12
  30.         pop     eax
  31.         ;mov     ebx,2
  32.         push    2
  33.         pop     ebx
  34.         mcall
  35. }
  36.  
  37. ;--- óñòàíîâèòü ìàñêó îæèäàåìûõ ñîáûòèé ---
  38.  
  39. ;--- îæèäàòü ñîáûòèÿ ---
  40. macro wait_event redraw,key,button,mouse,ipc,other
  41. {
  42.         mov     eax,10
  43.         mcall
  44.         dec     ax
  45. if <redraw> eq <>
  46. else
  47.         jz      redraw
  48. end if
  49.         dec     ax
  50. if <key> eq <>
  51. else
  52.         jz      key
  53. end if
  54.         dec     ax
  55. if <button> eq <>
  56. else
  57.         jz      button
  58. end if
  59.         dec     ax
  60.         dec     ax
  61.         dec     ax
  62. if <mouse> eq <>
  63. else
  64.         jz      mouse
  65. end if
  66. if <ipc> eq <>
  67. else
  68.         dec     ax
  69.         jz      ipc
  70. end if
  71. if <other> eq <>
  72.         jmp     still
  73. else
  74.         jmp     other
  75. end if
  76. }
  77. ;--- óñòàíîâèòü ìàñêó îæèäàåìûõ ñîáûòèé ---
  78. macro set_events_mask mask
  79. {
  80.         ;mov     eax,40
  81.         push    40
  82.         pop     eax
  83.         ;mov     ebx,mask
  84.         push    mask
  85.         pop     ebx
  86.         mcall
  87. }
  88.  
  89. macro check_boxes_set_sys_color start,end,color_table
  90. {
  91. ch_left equ [edi]    ;êîîðäèíàòà íà÷àëà ðèñîâàíèÿ ïî õ
  92. ch_top equ [edi+2]   ;êîîðäèíàòà íà÷àëà ðèñîâàíèÿ ïî ó
  93. ch_text_margin equ [edi+4]      ;=4 ðàññòîÿíèå îò ïðÿìîóãîëüíèêà ÷åê áîêñà äî íàäïèñè
  94. ch_size equ [edi+8]             ;12 ðàçìåð êâàäðàòà ÷åê áîêñà
  95. ch_color equ [edi+12]           ;öâåò âíóòðè checkbox
  96. ch_border_color equ [edi+16] ; or [edi+4] ;öâåò ðàìêè checkbox åå ìîæíî çàäàòü ñàìîñòîÿòåëüíî
  97. ch_text_color equ   [edi+20];[edi+4]  ;öâåò òåêñòà
  98. ch_text_ptr equ [edi+24]    ;óêàçàòåëü íà íà÷àëî òåêñòîâîé ñòðîêè
  99. ch_text_length equ [edi+28]
  100. ch_flags equ [edi+32]       ;ôëàãè
  101.  
  102.  
  103. ;ch_left equ [edi]    ;êîîðäèíàòà íà÷àëà ðèñîâàíèÿ ïî õ
  104. ;ch_top equ [edi+2]   ;êîîðäèíàòà íà÷àëà ðèñîâàíèÿ ïî ó
  105. ;ch_color equ [edi+4] ;öâåò âíóòðè checkbox
  106. ;ch_border_color equ [edi+8] ;öâåò ðàìêè checkbox
  107. ;ch_text_color equ [edi+12]  ;öâåò òåêñòà
  108. ;ch_text_ptr equ [edi+16]    ;óêàçàòåëü íà íà÷àëî òåêñòîâîé ñòðîêè
  109. ;ch_text_length equ [edi+20] ;äëèíà íàäïèñè (2^64 òàêîé äëèíû ìîæåò áûòü òåêñò)
  110. ;ch_flags equ [edi+24]       ;ôëàãè
  111.  
  112.         mov     edi,start
  113.         mov     ecx,((end-start)/ch_struc_size)
  114.         mov     esi,color_table
  115. @@:
  116.         push    dword [esi+32]
  117.         pop     dword ch_text_color
  118.         push    dword [esi+36]
  119.         pop     dword ch_border_color
  120.         add     edi,ch_struc_size
  121.         loop    @b
  122. }
  123. macro get_key
  124. {
  125.         ;mov     eax,2
  126.         push    2
  127.         pop     eax
  128.         mcall
  129. }
  130. macro edit_boxes_set_sys_color start,end,color_table
  131. {
  132.  
  133. ed_focus_border_color   equ [edi+20]    ;öâåò ðàìêè êîìïîíåíòà
  134. ed_blur_border_color    equ [edi+24]    ;öâåò íå àêòèâíîãî êîìïîíåíòà
  135.         mov     edi,start
  136.         mov     ecx,((end-start)/ed_struc_size)
  137.         mov     esi,color_table
  138. @@:
  139.         mov     eax,[esi+36]
  140.         mov     ebx,[esi+20]
  141.         mov     dword ed_focus_border_color,eax
  142.         shr     bh,1
  143.         shr     bl,1
  144.         shr     ah,1
  145.         shr     al,1
  146.         add     ah,bh
  147.         add     al,bl
  148.         ror     eax,16
  149.         ror     ebx,16
  150.         shr     bl,1
  151.         shr     al,1
  152.         add     al,bl
  153.         ror     eax,16
  154.         mov     dword ed_blur_border_color,eax
  155.         add     edi,ed_struc_size
  156.         loop    @b
  157. }
  158. ;--- ïîëó÷èòü êîä íàæàòîé êíîïêè ---
  159. macro get_pressed_button
  160. {
  161.         ;mov     eax,17
  162.         push    17
  163.         pop     eax
  164.         mcall
  165. }
  166. macro get_active_window
  167. {
  168.         mov     eax,18
  169.         mov     ebx,7
  170.         mcall
  171. }
  172. ;--- ¯®«ãç¨âì ¨­ä®à¬ æ¨î ® ¯à®æ¥áᥠ---
  173. macro get_procinfo proc_inf_buf,slot_num
  174. {
  175.         ;mov     eax,9
  176.         push    9
  177.         pop     eax
  178.         ;mov     ebx,proc_inf_buf
  179.         push    proc_inf_buf
  180.         pop     ebx
  181. if <slot_num> eq <>
  182.         xor     ecx,ecx
  183.         dec     ecx
  184. else
  185.         ;mov     ecx,slot_num
  186.         push    slot_num
  187.         pop     ecx
  188. end if
  189.         mcall
  190. }
  191. macro get_sys_colors col_buf
  192. {
  193.         ;mov     eax,48
  194.         push    48
  195.         pop     eax
  196.         ;mov     ebx,3
  197.         push    3
  198.         pop     ebx
  199.         ;mov     ecx,col_buf
  200.         push    col_buf
  201.         pop     ecx
  202.         ;mov     edx,40
  203.         push    40
  204.         pop     edx
  205.         mcall
  206. }
  207. macro get_screen_prop  struc_ptr
  208. {
  209.         mov     eax,61
  210.         push    eax eax
  211.         xor     ebx,ebx
  212.         inc     ebx
  213.         mcall
  214.         mov     [struc_ptr],eax
  215.         pop     eax
  216.         inc     ebx
  217.         mcall
  218.         mov     [struc_ptr+4],ax
  219.         pop     eax
  220.         inc     ebx
  221.         mcall
  222.         mov     [struc_ptr+6],eax
  223. }
  224. macro min_window
  225. {
  226.         mov     eax,18
  227.         mov     ebx,10
  228.         mcall
  229. }
  230. macro app_close
  231. {
  232.         or     eax,-1
  233.         mcall
  234. }
  235. macro get_skin_height
  236. {
  237.         mov     eax,48
  238.         mov     ebx,4
  239.         mcall
  240. }
  241. macro delay time
  242. {
  243.         mov     eax,5
  244. if <time> eq <>
  245. else
  246.         mov     ebx,time
  247. end if
  248.         mcall
  249. }
  250. macro activ_window slot_n
  251. {
  252.         mov     eax,18
  253.         mov     ebx,3
  254. if <slot_n> eq <>
  255. else
  256.         mov     ecx,slot_n
  257. end if
  258.         mcall
  259. }
  260. struc screen_prop
  261. {
  262. .height: dw ? ;+0
  263. .width: dw ?  ;+2
  264. .bitspp: dw ? ;+4
  265. .bytesps: dd ?;+6
  266. }
  267. struc sys_color_table
  268. {
  269. .frames: dd ?  ;+0
  270. .grab: dd ?    ;+4
  271. .grab_button: dd ? ;+8
  272. .grab_button_text: dd ?  ;+12
  273. .grab_text: dd ?  ;+16
  274. .work: dd ?       ;+20
  275. .work_button: dd ?;+24
  276. .work_button_text: dd ? ;+28
  277. .work_text: dd ?        ;+32
  278. .work_graph: dd ?       ;+36
  279. }
  280. struc procinfo
  281. {
  282. .takts_per_second: dd ?
  283. .window_stack_pos: dw ?
  284. .slot_number: dw ?
  285. dw ?
  286. .name: rb 11
  287. .align: db ?
  288. .addres: dd ?
  289. .use_mem: dd ?
  290. .pid: dd ?
  291. .left: dd ?
  292. .top: dd ?
  293. .width: dd ?
  294. .height: dd ?
  295. .slot_state: dw ?
  296. rb (1024-56)
  297. }
  298.  
  299.  
  300.  
  301. struc ipc_buffer size
  302. {
  303. .block: dd ?
  304. .in_use: dd ?
  305. .messages: rb size
  306. }
  307.  
  308. ;--- æ¢¥â  ---
  309. cl_white=0xffffff
  310. cl_black=0x000000
  311.  
  312. ch_struc_size=36