Subversion Repositories Kolibri OS

Rev

Rev 7786 | 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
{
8346 IgorA 17
	xor     ebx,ebx
18
	inc     ebx
19
	mcall   SF_REDRAW
1098 Lrz 20
}
21
 
22
;--- сообщить системе о завершении перерисовки окна ---
23
macro stop_draw_window
24
{
8346 IgorA 25
	mcall   SF_REDRAW, SSF_END_DRAW
1098 Lrz 26
}
27
 
28
;--- установить маску ожидаемых событий ---
29
 
30
;--- ожидать события ---
31
macro wait_event redraw,key,button,mouse,ipc,other
32
{
8346 IgorA 33
        mcall   SF_WAIT_EVENT
1098 Lrz 34
        dec     ax
3375 esevece 35
if redraw eq
1098 Lrz 36
else
37
        jz      redraw
38
end if
39
        dec     ax
3375 esevece 40
if key eq
1098 Lrz 41
else
42
        jz      key
43
end if
44
        dec     ax
3375 esevece 45
if button eq
1098 Lrz 46
else
47
        jz      button
48
end if
49
        dec     ax
50
        dec     ax
51
        dec     ax
3375 esevece 52
if mouse eq
1098 Lrz 53
else
54
        jz      mouse
55
end if
3375 esevece 56
if ipc eq
1098 Lrz 57
else
58
        dec     ax
59
        jz      ipc
60
end if
3375 esevece 61
if other eq
1098 Lrz 62
        jmp     still
63
else
64
        jmp     other
65
end if
66
}
67
;--- установить маску ожидаемых событий ---
68
macro set_events_mask mask
69
{
8346 IgorA 70
	mcall   SF_SET_EVENTS_MASK, mask
1098 Lrz 71
}
72
 
73
macro get_key
74
{
8346 IgorA 75
	mcall   SF_GET_KEY
1098 Lrz 76
}
77
;--- получить код нажатой кнопки ---
78
macro get_pressed_button
79
{
8346 IgorA 80
	mcall   SF_GET_BUTTON
1098 Lrz 81
}
82
macro get_active_window
83
{
8346 IgorA 84
	mcall   SF_SYSTEM,SSF_GET_ACTIVE_WINDOW
1098 Lrz 85
}
8346 IgorA 86
;--- получить информацию о процессе ---
1098 Lrz 87
macro get_procinfo proc_inf_buf,slot_num
88
{
89
        ;mov     ebx,proc_inf_buf
90
        push    proc_inf_buf
91
        pop     ebx
3375 esevece 92
if slot_num eq
1098 Lrz 93
        xor     ecx,ecx
94
        dec     ecx
95
else
96
        ;mov     ecx,slot_num
97
        push    slot_num
98
        pop     ecx
99
end if
8346 IgorA 100
        mcall   SF_THREAD_INFO
1098 Lrz 101
}
102
macro get_screen_prop  struc_ptr
103
{
8346 IgorA 104
        mov     eax,SF_GET_GRAPHICAL_PARAMS
1098 Lrz 105
        push    eax eax
106
        xor     ebx,ebx
107
        inc     ebx
108
        mcall
109
        mov     [struc_ptr],eax
110
        pop     eax
111
        inc     ebx
112
        mcall
113
        mov     [struc_ptr+4],ax
114
        pop     eax
115
        inc     ebx
116
        mcall
117
        mov     [struc_ptr+6],eax
118
}
119
macro min_window
120
{
8346 IgorA 121
	mcall   SF_SYSTEM,SSF_MINIMIZE_WINDOW
1098 Lrz 122
}
123
macro app_close
124
{
8346 IgorA 125
	mcall  SF_TERMINATE_PROCESS
1098 Lrz 126
}
127
macro get_skin_height
128
{
8346 IgorA 129
	mcall   SF_STYLE_SETTINGS,SSF_GET_SKIN_HEIGHT
1098 Lrz 130
}
131
macro delay time
132
{
3375 esevece 133
if time eq
1098 Lrz 134
else
8346 IgorA 135
	mov     ebx,time
1098 Lrz 136
end if
8346 IgorA 137
	mcall   SF_SLEEP
1098 Lrz 138
}
139
macro activ_window slot_n
140
{
3375 esevece 141
if slot_n eq
1098 Lrz 142
else
8346 IgorA 143
	mov     ecx,slot_n
1098 Lrz 144
end if
8346 IgorA 145
	mcall   SF_SYSTEM,SSF_FOCUS_WINDOW
1098 Lrz 146
}
147
struc screen_prop
148
{
149
.height: dw ? ;+0
150
.width: dw ?  ;+2
151
.bitspp: dw ? ;+4
152
.bytesps: dd ?;+6
153
}
154
struc sys_color_table
155
{
156
.frames: dd ?  ;+0
157
.grab: dd ?    ;+4
7786 leency 158
.work_dark: dd ? ;+8
159
.work_light: dd ?  ;+12
1098 Lrz 160
.grab_text: dd ?  ;+16
161
.work: dd ?       ;+20
162
.work_button: dd ?;+24
163
.work_button_text: dd ? ;+28
164
.work_text: dd ?        ;+32
165
.work_graph: dd ?       ;+36
166
}
167
struc procinfo
168
{
169
.takts_per_second: dd ?
170
.window_stack_pos: dw ?
171
.slot_number: dw ?
172
dw ?
173
.name: rb 11
174
.align: db ?
175
.addres: dd ?
176
.use_mem: dd ?
177
.pid: dd ?
178
.left: dd ?
179
.top: dd ?
180
.width: dd ?
181
.height: dd ?
182
.slot_state: dw ?
183
rb (1024-56)
184
}
185
 
186
 
187
 
188
struc ipc_buffer size
189
{
190
.block: dd ?
191
.in_use: dd ?
192
.messages: rb size
193
}
194
 
8346 IgorA 195
;--- цвета  ---
1098 Lrz 196
cl_white=0xffffff
197
cl_black=0x000000
198
 
3375 esevece 199
ch_struc_size=36