kolibrios-fun/programs/media/scrshoot/scrshoot.mac
IgorA 5f41a75e27 box_lib.obj: clear code
git-svn-id: svn://kolibrios.org@8346 a494cfbc-eb01-0410-851d-a64ba20cac60
2020-12-08 21:01:35 +00:00

200 lines
3.4 KiB
Plaintext

;In this file content a macros need for compilation the scrshoot
evm_redraw equ 1
evm_key equ 10b
evm_button equ 100b
evm_mouse equ 100000b
evm_ipc equ 1000000b
;--- ñîîáùèòü ñèñòåìå î íà÷àëå ïåðåðèñîâêè îêíà ---
macro draw_status text_ptr
{
mov [status.text],dword text_ptr
call send_draw_status
}
macro start_draw_window
{
xor ebx,ebx
inc ebx
mcall SF_REDRAW
}
;--- ñîîáùèòü ñèñòåìå î çàâåðøåíèè ïåðåðèñîâêè îêíà ---
macro stop_draw_window
{
mcall SF_REDRAW, SSF_END_DRAW
}
;--- óñòàíîâèòü ìàñêó îæèäàåìûõ ñîáûòèé ---
;--- îæèäàòü ñîáûòèÿ ---
macro wait_event redraw,key,button,mouse,ipc,other
{
mcall SF_WAIT_EVENT
dec ax
if redraw eq
else
jz redraw
end if
dec ax
if key eq
else
jz key
end if
dec ax
if button eq
else
jz button
end if
dec ax
dec ax
dec ax
if mouse eq
else
jz mouse
end if
if ipc eq
else
dec ax
jz ipc
end if
if other eq
jmp still
else
jmp other
end if
}
;--- óñòàíîâèòü ìàñêó îæèäàåìûõ ñîáûòèé ---
macro set_events_mask mask
{
mcall SF_SET_EVENTS_MASK, mask
}
macro get_key
{
mcall SF_GET_KEY
}
;--- ïîëó÷èòü êîä íàæàòîé êíîïêè ---
macro get_pressed_button
{
mcall SF_GET_BUTTON
}
macro get_active_window
{
mcall SF_SYSTEM,SSF_GET_ACTIVE_WINDOW
}
;--- ïîëó÷èòü èíôîðìàöèþ î ïðîöåññå ---
macro get_procinfo proc_inf_buf,slot_num
{
;mov ebx,proc_inf_buf
push proc_inf_buf
pop ebx
if slot_num eq
xor ecx,ecx
dec ecx
else
;mov ecx,slot_num
push slot_num
pop ecx
end if
mcall SF_THREAD_INFO
}
macro get_screen_prop struc_ptr
{
mov eax,SF_GET_GRAPHICAL_PARAMS
push eax eax
xor ebx,ebx
inc ebx
mcall
mov [struc_ptr],eax
pop eax
inc ebx
mcall
mov [struc_ptr+4],ax
pop eax
inc ebx
mcall
mov [struc_ptr+6],eax
}
macro min_window
{
mcall SF_SYSTEM,SSF_MINIMIZE_WINDOW
}
macro app_close
{
mcall SF_TERMINATE_PROCESS
}
macro get_skin_height
{
mcall SF_STYLE_SETTINGS,SSF_GET_SKIN_HEIGHT
}
macro delay time
{
if time eq
else
mov ebx,time
end if
mcall SF_SLEEP
}
macro activ_window slot_n
{
if slot_n eq
else
mov ecx,slot_n
end if
mcall SF_SYSTEM,SSF_FOCUS_WINDOW
}
struc screen_prop
{
.height: dw ? ;+0
.width: dw ? ;+2
.bitspp: dw ? ;+4
.bytesps: dd ?;+6
}
struc sys_color_table
{
.frames: dd ? ;+0
.grab: dd ? ;+4
.work_dark: dd ? ;+8
.work_light: dd ? ;+12
.grab_text: dd ? ;+16
.work: dd ? ;+20
.work_button: dd ?;+24
.work_button_text: dd ? ;+28
.work_text: dd ? ;+32
.work_graph: dd ? ;+36
}
struc procinfo
{
.takts_per_second: dd ?
.window_stack_pos: dw ?
.slot_number: dw ?
dw ?
.name: rb 11
.align: db ?
.addres: dd ?
.use_mem: dd ?
.pid: dd ?
.left: dd ?
.top: dd ?
.width: dd ?
.height: dd ?
.slot_state: dw ?
rb (1024-56)
}
struc ipc_buffer size
{
.block: dd ?
.in_use: dd ?
.messages: rb size
}
;--- öâåòà  ---
cl_white=0xffffff
cl_black=0x000000
ch_struc_size=36