forked from KolibriOS/kolibrios
Proc_Lib
1) OpenDialog invoking code - the full reenter-able is now 2) Small bugfix git-svn-id: svn://kolibrios.org@1658 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
b096a3be30
commit
352d1fc3c2
@ -89,9 +89,6 @@ OpenDialog_exit
|
|||||||
.start:
|
.start:
|
||||||
pusha
|
pusha
|
||||||
mov ebp,dword [esp+36]
|
mov ebp,dword [esp+36]
|
||||||
mcall 40,1b
|
|
||||||
push eax ; save events mask
|
|
||||||
|
|
||||||
|
|
||||||
mov eax,od_com_area
|
mov eax,od_com_area
|
||||||
test eax,eax
|
test eax,eax
|
||||||
@ -168,13 +165,19 @@ OpenDialog_exit
|
|||||||
call .get_filter_data
|
call .get_filter_data
|
||||||
@@:
|
@@:
|
||||||
;----------------------------------------------
|
;----------------------------------------------
|
||||||
|
mov ebx,od_procinfo
|
||||||
|
xor eax,eax
|
||||||
|
mov edi,ebx
|
||||||
|
mov ecx,6
|
||||||
|
cld
|
||||||
|
rep stosd
|
||||||
|
mov [ebx],dword 7
|
||||||
mov eax,od_com_area_name
|
mov eax,od_com_area_name
|
||||||
mov [start_open_dialog.parameter],eax
|
mov [ebx+8],eax
|
||||||
|
|
||||||
mov eax,od_start_path
|
mov eax,od_start_path
|
||||||
mov [start_open_dialog.name],eax
|
mov [ebx+21],eax
|
||||||
|
mcall 70
|
||||||
|
|
||||||
mcall 70,dword start_open_dialog
|
|
||||||
shr eax,31
|
shr eax,31
|
||||||
test eax,eax
|
test eax,eax
|
||||||
jnz .1
|
jnz .1
|
||||||
@ -188,7 +191,18 @@ OpenDialog_exit
|
|||||||
mcall 5,10
|
mcall 5,10
|
||||||
mcall 11
|
mcall 11
|
||||||
cmp eax,1
|
cmp eax,1
|
||||||
jne .no_draw
|
je .draw
|
||||||
|
cmp eax,2
|
||||||
|
je .key
|
||||||
|
cmp eax,3
|
||||||
|
je .button
|
||||||
|
jmp .no_draw
|
||||||
|
.key:
|
||||||
|
mcall 2
|
||||||
|
jmp .no_draw
|
||||||
|
.button:
|
||||||
|
mcall 17
|
||||||
|
jmp .no_draw
|
||||||
;----------------------------------------------
|
;----------------------------------------------
|
||||||
.draw:
|
.draw:
|
||||||
pusha
|
pusha
|
||||||
@ -196,10 +210,7 @@ OpenDialog_exit
|
|||||||
popa
|
popa
|
||||||
;----------------------------------------------
|
;----------------------------------------------
|
||||||
pusha
|
pusha
|
||||||
mcall 9,od_procinfo,-1
|
call .prepare_PID
|
||||||
mov ecx,[ebx+30] ; PID
|
|
||||||
mcall 18,21
|
|
||||||
test eax,eax
|
|
||||||
jz @f
|
jz @f
|
||||||
|
|
||||||
mov ecx,eax ; WINDOW SLOT
|
mov ecx,eax ; WINDOW SLOT
|
||||||
@ -259,16 +270,24 @@ OpenDialog_exit
|
|||||||
mov ebx,[eax+8]
|
mov ebx,[eax+8]
|
||||||
mov od_y_size, ebx
|
mov od_y_size, ebx
|
||||||
|
|
||||||
pop ebx ; restore events mask
|
call .prepare_PID
|
||||||
mcall 40
|
jz @f
|
||||||
|
mov ecx,eax ; WINDOW SLOT
|
||||||
|
mcall 18,3
|
||||||
|
@@:
|
||||||
OpenDialog_exit
|
OpenDialog_exit
|
||||||
;----------------------------------------------
|
;----------------------------------------------
|
||||||
|
.prepare_PID:
|
||||||
|
mcall 9,od_procinfo,-1
|
||||||
|
mov ecx,[ebx+30] ; PID
|
||||||
|
mcall 18,21
|
||||||
|
test eax,eax
|
||||||
|
ret
|
||||||
|
;----------------------------------------------
|
||||||
.get_filter_data:
|
.get_filter_data:
|
||||||
mov edi,od_com_area
|
mov edi,od_com_area
|
||||||
test edi,edi
|
test edi,edi
|
||||||
jnz @f
|
jnz @f
|
||||||
; add esp,4
|
|
||||||
; jmp still
|
|
||||||
ret
|
ret
|
||||||
@@:
|
@@:
|
||||||
add edi,4100
|
add edi,4100
|
||||||
@ -328,14 +347,5 @@ OpenDialog_exit
|
|||||||
cld
|
cld
|
||||||
ret
|
ret
|
||||||
;----------------------------------------------
|
;----------------------------------------------
|
||||||
align 4
|
|
||||||
start_open_dialog:
|
|
||||||
.subfunction dd 7
|
|
||||||
.flags dd 0
|
|
||||||
.parameter dd 0 ;od_com_area_name
|
|
||||||
.reserved1 dd 0
|
|
||||||
.reserved2 dd 0
|
|
||||||
db 0
|
|
||||||
.name: dd 0 ;od_start_path
|
|
||||||
}
|
}
|
||||||
;*****************************************************************************
|
;*****************************************************************************
|
Loading…
Reference in New Issue
Block a user