Subversion Repositories Kolibri OS

Rev

Rev 1418 | Rev 1438 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1418 Rev 1435
Line 43... Line 43...
43
od_dir_default_pach	equ dword [ebp+20] ; Default path of directory, 
43
od_dir_default_pach	equ dword [ebp+20] ; Default path of directory,
44
od_start_path		equ dword [ebp+24] ; Location path to OpenDialog
44
od_start_path		equ dword [ebp+24] ; Location path to OpenDialog
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
-
 
49
od_filter_area		equ dword [ebp+44] ; Adress of filter area
48
;*****************************************************************************
50
;*****************************************************************************
49
.init:
51
.init:
50
	pusha
52
	pusha
51
	mcall	9, od_procinfo, -1
53
	mcall	9,od_procinfo,-1
52
	mov	ebx,[ebx+30]
54
	mov	ebx,[ebx+30]
Line 97... Line 99...
97
	test	eax,eax
99
	test	eax,eax
98
	jnz	@f
100
	jnz	@f
99
	mov	esi,od_dir_default_pach ;communication_area_default_pach
101
	mov	esi,od_dir_default_pach	;communication_area_default_pach
100
@@:
102
@@:
101
	call	.copy
103
	call	.copy
-
 
104
;----------------------------------------------
-
 
105
; copy file name to shared area
-
 
106
	cmp	od_type,dword 1
-
 
107
	jne	.4
-
 
108
	mov	edi,od_com_area
-
 
109
	add	edi,4096-256
102
 
110
 
-
 
111
	mov	esi,od_filename_area
-
 
112
;	xor	eax,eax
-
 
113
;	mov	al,[esi]
-
 
114
;	test	eax,eax
-
 
115
	test	esi,esi
-
 
116
	jnz	@f
-
 
117
	mov	esi,.null
-
 
118
@@:
-
 
119
	call	.copy
-
 
120
.4:
-
 
121
;----------------------------------------------
-
 
122
	cmp	od_type,dword 2
-
 
123
	je	@f
-
 
124
	call	.get_filter_data
-
 
125
@@:
-
 
126
;----------------------------------------------
103
	mov	eax,od_com_area_name
127
	mov	eax,od_com_area_name
104
	mov	[start_open_dialog.parameter],eax
128
	mov	[start_open_dialog.parameter],eax
Line 105... Line 129...
105
 
129
 
106
	mov	eax,od_start_path
130
	mov	eax,od_start_path
Line 122... Line 146...
122
	mov	eax,od_com_area
146
	mov	eax,od_com_area
123
	movzx	ebx,word [eax]
147
	movzx	ebx,word [eax]
124
	test	ebx,ebx
148
	test	ebx,ebx
125
	jz	.still
149
	jz	.still
126
	cmp	ebx,3
150
	cmp	ebx,3
127
	je	.2 ;still
151
	je	.2
128
	cmp	ebx,1
152
	cmp	ebx,1
129
	jne	.still
153
	jne	.still
Line 130... Line 154...
130
 
154
 
131
	mov	esi,od_com_area
155
	mov	esi,od_com_area
132
	add	esi,4
156
	add	esi,4
133
	mov	edi,od_openfile_pach ;string
157
	mov	edi,od_openfile_pach
134
	call	.copy
158
	call	.copy
135
	mov	od_status,1
159
	mov	od_status,1
136
    mov   esi,od_openfile_pach
160
	mov	esi,od_openfile_pach
137
    mov   edi,od_opendir_pach
161
	mov	edi,od_opendir_pach
-
 
162
	call	.copy_dir_path
-
 
163
;----------------------------------------------
-
 
164
; copy file name from shared area
-
 
165
	cmp	od_type,dword 1
-
 
166
	jne	@f
-
 
167
	mov	esi,od_com_area
-
 
168
	add	esi,4096-256
-
 
169
	mov	edi,od_filename_area
-
 
170
;	xor	eax,eax
-
 
171
;	mov	al,[edi]
-
 
172
;	test	eax,eax
-
 
173
	test	edi,edi
-
 
174
	jz	@f
-
 
175
	call	.copy
-
 
176
@@:
138
	call	.copy_dir_path
177
;----------------------------------------------
139
	jmp	.3  ;kopen_1
178
	jmp	.3
140
.2:
179
.2:
141
	mov	od_status,0
180
	mov	od_status,0
142
	jmp	.3 ; still
181
	jmp	.3
143
.1:
182
.1:
144
	mov	od_status,2 ; thread1
183
	mov	od_status,2
145
.3:
184
.3:
146
OpenDialog_exit
185
OpenDialog_exit
-
 
186
;----------------------------------------------
-
 
187
.null:
-
 
188
	dd 0
-
 
189
;----------------------------------------------
-
 
190
.get_filter_data:
-
 
191
	mov	edi,od_com_area
-
 
192
	test	edi,edi
-
 
193
	jnz	@f
-
 
194
;	add	esp,4
-
 
195
;	jmp	still
-
 
196
	ret
-
 
197
@@:
-
 
198
	add	edi,4096+4
-
 
199
	mov	esi,od_filter_area
-
 
200
	mov	ecx,[esi]
-
 
201
	test	ecx,ecx
-
 
202
	jnz	@f
-
 
203
	mov	edi,od_com_area
-
 
204
	mov	[edi+4096],dword 0
-
 
205
	ret
-
 
206
@@:
-
 
207
	inc	ecx
-
 
208
	cld
-
 
209
	rep	movsb
-
 
210
	mov	edi,od_com_area
-
 
211
	mov	[edi+4096],dword 1
-
 
212
	ret
147
;----------------------------------------------
213
;----------------------------------------------
148
.copy:
214
.copy:
149
	xor	eax,eax
215
	xor	eax,eax
150
	cld
216
	cld
151
@@:
217
@@:
Line 168... Line 234...
168
    cld
234
	cld
169
    lodsb
235
	lodsb
170
    stosb
236
	stosb
171
    test  eax,eax
237
	test	eax,eax
172
    jnz   @b
238
	jnz	@b
-
 
239
	cmp	od_type,dword 2
-
 
240
	jne	@f
-
 
241
	ret
-
 
242
@@:
173
    mov   esi,edi
243
	mov	esi,edi
174
	dec   esi
244
	dec	esi
175
@@:
245
@@:
176
    std
246
	std
177
    lodsb
247
	lodsb
178
    cmp   al,'/'
248
	cmp	al,'/'
179
    jnz   @b
249
	jnz	@b
Line 180... Line -...
180
	
-
 
181
;	push  esi
-
 
182
;	add  esi,2
-
 
183
;;	mov  edi,ebx  ;file_name
-
 
184
;;	xor  ebx,ebx
-
 
185
;@@:
-
 
186
;    cld
-
 
187
;    lodsb
-
 
188
;;   stosb
-
 
189
;	inc   ebx
-
 
190
;    test  eax,eax
-
 
191
;    jnz   @b
-
 
192
;	pop   esi
-
 
193
	
250
	
194
    mov  [esi+1], byte 0
251
	mov	[esi+1],byte 0
195
    cld
252
	cld
196
	ret
253
	ret
197
;----------------------------------------------
254
;----------------------------------------------