Subversion Repositories Kolibri OS

Rev

Rev 1098 | Rev 1685 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1098 Lrz 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  eq <>
46
else
47
        jz      redraw
48
end if
49
        dec     ax
50
if  eq <>
51
else
52
        jz      key
53
end if
54
        dec     ax
55
if 
56
else
57
        jz      button
58
end if
59
        dec     ax
60
        dec     ax
61
        dec     ax
62
if  eq <>
63
else
64
        jz      mouse
65
end if
66
if  eq <>
67
else
68
        dec     ax
69
        jz      ipc
70
end if
71
if  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
;--- получить код нажатой кнопки ---
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  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 
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  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