Subversion Repositories Kolibri OS

Rev

Rev 7786 | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

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