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:
Marat Zakiyanov (Mario79) 2010-10-12 12:12:42 +00:00
parent b096a3be30
commit 352d1fc3c2

View File

@ -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
} }
;***************************************************************************** ;*****************************************************************************