Subversion Repositories Kolibri OS

Rev

Rev 1228 | Rev 6196 | 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+4]   ;êîîðäèíàòà íà÷àëà ðèñîâàíèÿ ïî ó
  93. ;ch_text_margin equ [edi+8]      ;=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. ;--- ïîëó÷èòü êîä íàæàòîé êíîïêè ---
  131. macro get_pressed_button
  132. {
  133.         ;mov     eax,17
  134.         push    17
  135.         pop     eax
  136.         mcall
  137. }
  138. macro get_active_window
  139. {
  140.         mov     eax,18
  141.         mov     ebx,7
  142.         mcall
  143. }
  144. ;--- ¯®«ãç¨âì ¨­ä®à¬ æ¨î ® ¯à®æ¥áᥠ---
  145. macro get_procinfo proc_inf_buf,slot_num
  146. {
  147.         ;mov     eax,9
  148.         push    9
  149.         pop     eax
  150.         ;mov     ebx,proc_inf_buf
  151.         push    proc_inf_buf
  152.         pop     ebx
  153. if <slot_num> eq <>
  154.         xor     ecx,ecx
  155.         dec     ecx
  156. else
  157.         ;mov     ecx,slot_num
  158.         push    slot_num
  159.         pop     ecx
  160. end if
  161.         mcall
  162. }
  163. macro get_screen_prop  struc_ptr
  164. {
  165.         mov     eax,61
  166.         push    eax eax
  167.         xor     ebx,ebx
  168.         inc     ebx
  169.         mcall
  170.         mov     [struc_ptr],eax
  171.         pop     eax
  172.         inc     ebx
  173.         mcall
  174.         mov     [struc_ptr+4],ax
  175.         pop     eax
  176.         inc     ebx
  177.         mcall
  178.         mov     [struc_ptr+6],eax
  179. }
  180. macro min_window
  181. {
  182.         mov     eax,18
  183.         mov     ebx,10
  184.         mcall
  185. }
  186. macro app_close
  187. {
  188.         or     eax,-1
  189.         mcall
  190. }
  191. macro get_skin_height
  192. {
  193.         mov     eax,48
  194.         mov     ebx,4
  195.         mcall
  196. }
  197. macro delay time
  198. {
  199.         mov     eax,5
  200. if <time> eq <>
  201. else
  202.         mov     ebx,time
  203. end if
  204.         mcall
  205. }
  206. macro activ_window slot_n
  207. {
  208.         mov     eax,18
  209.         mov     ebx,3
  210. if <slot_n> eq <>
  211. else
  212.         mov     ecx,slot_n
  213. end if
  214.         mcall
  215. }
  216. struc screen_prop
  217. {
  218. .height: dw ? ;+0
  219. .width: dw ?  ;+2
  220. .bitspp: dw ? ;+4
  221. .bytesps: dd ?;+6
  222. }
  223. struc sys_color_table
  224. {
  225. .frames: dd ?  ;+0
  226. .grab: dd ?    ;+4
  227. .grab_button: dd ? ;+8
  228. .grab_button_text: dd ?  ;+12
  229. .grab_text: dd ?  ;+16
  230. .work: dd ?       ;+20
  231. .work_button: dd ?;+24
  232. .work_button_text: dd ? ;+28
  233. .work_text: dd ?        ;+32
  234. .work_graph: dd ?       ;+36
  235. }
  236. struc procinfo
  237. {
  238. .takts_per_second: dd ?
  239. .window_stack_pos: dw ?
  240. .slot_number: dw ?
  241. dw ?
  242. .name: rb 11
  243. .align: db ?
  244. .addres: dd ?
  245. .use_mem: dd ?
  246. .pid: dd ?
  247. .left: dd ?
  248. .top: dd ?
  249. .width: dd ?
  250. .height: dd ?
  251. .slot_state: dw ?
  252. rb (1024-56)
  253. }
  254.  
  255.  
  256.  
  257. struc ipc_buffer size
  258. {
  259. .block: dd ?
  260. .in_use: dd ?
  261. .messages: rb size
  262. }
  263.  
  264. ;--- æ¢¥â  ---
  265. cl_white=0xffffff
  266. cl_black=0x000000
  267.  
  268. ch_struc_size=36