Rev 1509 | Rev 1654 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1509 | Rev 1581 | ||
---|---|---|---|
Line 45... | Line 45... | ||
45 | od_draw_window equ dword [ebp+28] ; Adress of procedure - draw_window |
45 | od_draw_window equ dword [ebp+28] ; Adress of procedure - draw_window |
46 | od_status equ dword [ebp+32] ; 0-Cancel, 1-Get path OK, 2-Use alternatives |
46 | od_status equ dword [ebp+32] ; 0-Cancel, 1-Get path OK, 2-Use alternatives |
47 | od_openfile_pach equ dword [ebp+36] ; Getting path to file |
47 | od_openfile_pach equ dword [ebp+36] ; Getting path to file |
48 | od_filename_area equ dword [ebp+40] ; Adress of file name area |
48 | od_filename_area equ dword [ebp+40] ; Adress of file name area |
49 | od_filter_area equ dword [ebp+44] ; Adress of filter area |
49 | od_filter_area equ dword [ebp+44] ; Adress of filter area |
- | 50 | od_x_size equ [ebp+48] ; Window X size |
|
- | 51 | od_x_start equ [ebp+50] ; Window X position |
|
- | 52 | od_y_size equ [ebp+52] ; Window y size |
|
- | 53 | od_y_start equ [ebp+54] ; Window Y position |
|
50 | ;***************************************************************************** |
54 | ;***************************************************************************** |
51 | .init: |
55 | .init: |
52 | pusha |
56 | pusha |
53 | mov ebp,dword [esp+36] |
57 | mov ebp,dword [esp+36] |
54 | mcall 9,od_procinfo,-1 |
58 | mcall 9,od_procinfo,-1 |
Line 90... | Line 94... | ||
90 | jz .1 |
94 | jz .1 |
91 | mov ebx,od_type |
95 | mov ebx,od_type |
92 | mov [eax+2],bx |
96 | mov [eax+2],bx |
Line 93... | Line 97... | ||
93 | 97 | ||
- | 98 | mov [eax],word 2 ; folder for open |
|
- | 99 | ||
- | 100 | pusha |
|
- | 101 | mcall 9,od_procinfo,-1 |
|
- | 102 | ||
- | 103 | mov eax,[ebx+42] ;main window x size |
|
- | 104 | shr eax,1 |
|
- | 105 | add eax,[ebx+34] ; main window x start |
|
- | 106 | mov cx,od_x_size |
|
- | 107 | shr cx,1 |
|
- | 108 | sub ax,cx |
|
- | 109 | test ax,cx |
|
- | 110 | test eax,0x8000 |
|
- | 111 | jz @f |
|
- | 112 | xor eax,eax |
|
- | 113 | @@: |
|
- | 114 | mov od_x_start,ax |
|
- | 115 | ||
- | 116 | mov eax,[ebx+46] ;main window y size |
|
- | 117 | shr eax,1 |
|
- | 118 | add eax,[ebx+38] ; main window y start |
|
- | 119 | mov cx,od_y_size |
|
- | 120 | shr cx,1 |
|
- | 121 | sub ax,cx |
|
- | 122 | test eax,0x8000 |
|
- | 123 | jz @f |
|
- | 124 | xor eax,eax |
|
- | 125 | @@: |
|
- | 126 | mov od_y_start,ax |
|
- | 127 | popa |
|
- | 128 | ||
- | 129 | mov ebx,dword od_x_size |
|
- | 130 | mov [eax+4],ebx |
|
- | 131 | mov ebx,dword od_y_size |
|
- | 132 | mov [eax+8],ebx |
|
94 | mov [eax],word 2 ; folder for open |
133 | |
95 | mov edi,eax |
134 | mov edi,eax |
Line 96... | Line 135... | ||
96 | add edi,4 |
135 | add edi,12 |
97 | 136 | ||
98 | mov esi,od_opendir_pach |
137 | mov esi,od_opendir_pach |
99 | xor eax,eax |
138 | xor eax,eax |
Line 106... | Line 145... | ||
106 | ;---------------------------------------------- |
145 | ;---------------------------------------------- |
107 | ; copy file name to shared area |
146 | ; copy file name to shared area |
108 | cmp od_type,dword 2 |
147 | cmp od_type,dword 2 |
109 | je .4 |
148 | je .4 |
110 | mov edi,od_com_area |
149 | mov edi,od_com_area |
111 | add edi,4096-256 |
150 | add edi,3840 ;4096-256 |
Line 112... | Line 151... | ||
112 | 151 | ||
113 | mov esi,od_filename_area |
152 | mov esi,od_filename_area |
114 | test esi,esi |
153 | test esi,esi |
115 | jnz @f |
154 | jnz @f |
Line 151... | Line 190... | ||
151 | je .2 |
190 | je .2 |
152 | cmp ebx,1 |
191 | cmp ebx,1 |
153 | jne .still |
192 | jne .still |
Line 154... | Line 193... | ||
154 | 193 | ||
155 | mov esi,od_com_area |
194 | mov esi,od_com_area |
156 | add esi,4 |
195 | add esi,12 |
157 | mov edi,od_openfile_pach |
196 | mov edi,od_openfile_pach |
158 | call .copy |
197 | call .copy |
- | 198 | mov od_status,1 |
|
159 | mov od_status,1 |
199 | |
160 | mov esi,od_openfile_pach |
200 | mov esi,od_openfile_pach |
161 | mov edi,od_opendir_pach |
201 | mov edi,od_opendir_pach |
162 | call .copy_dir_path |
202 | call .copy_dir_path |
163 | ;---------------------------------------------- |
203 | ;---------------------------------------------- |
164 | ; copy file name from shared area |
204 | ; copy file name from shared area |
165 | cmp od_type,dword 2 |
205 | cmp od_type,dword 2 |
166 | je @f |
206 | je @f |
167 | mov esi,od_com_area |
207 | mov esi,od_com_area |
168 | add esi,4096-256 |
208 | add esi,3840 |
169 | mov edi,od_filename_area |
209 | mov edi,od_filename_area |
170 | test edi,edi |
210 | test edi,edi |
171 | jz @f |
211 | jz @f |
172 | call .copy |
212 | call .copy |
Line 177... | Line 217... | ||
177 | mov od_status,0 |
217 | mov od_status,0 |
178 | jmp .3 |
218 | jmp .3 |
179 | .1: |
219 | .1: |
180 | mov od_status,2 |
220 | mov od_status,2 |
181 | .3: |
221 | .3: |
- | 222 | mov eax,od_com_area |
|
- | 223 | mov ebx,[eax+4] |
|
- | 224 | mov od_x_size,ebx |
|
- | 225 | mov ebx,[eax+8] |
|
- | 226 | mov od_y_size, ebx |
|
182 | OpenDialog_exit |
227 | OpenDialog_exit |
183 | ;---------------------------------------------- |
228 | ;---------------------------------------------- |
184 | .get_filter_data: |
229 | .get_filter_data: |
185 | mov edi,od_com_area |
230 | mov edi,od_com_area |
186 | test edi,edi |
231 | test edi,edi |
187 | jnz @f |
232 | jnz @f |
188 | ; add esp,4 |
233 | ; add esp,4 |
189 | ; jmp still |
234 | ; jmp still |
190 | ret |
235 | ret |
191 | @@: |
236 | @@: |
192 | add edi,4096+4 |
237 | add edi,4100 |
193 | mov esi,od_filter_area |
238 | mov esi,od_filter_area |
194 | mov ecx,[esi] |
239 | mov ecx,[esi] |
195 | test ecx,ecx |
240 | test ecx,ecx |
196 | jnz @f |
241 | jnz @f |
197 | mov edi,od_com_area |
242 | mov edi,od_com_area |