Subversion Repositories Kolibri OS

Rev

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