Subversion Repositories Kolibri OS

Rev

Rev 1685 | 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
  269.