Subversion Repositories Kolibri OS

Rev

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

Rev 3715 Rev 7048
Line 93... Line 93...
93
od_y_start		equ [ebp+54] ; Window Y position
93
od_y_start		equ [ebp+54] ; Window Y position
94
;*****************************************************************************
94
;*****************************************************************************
95
.init:
95
.init:
96
	pusha
96
	pusha
97
	mov   ebp,dword [esp+36]
97
	mov   ebp,dword [esp+36]
98
	mcall	9,od_procinfo,-1
98
	mcall	SF_THREAD_INFO,od_procinfo,-1
99
	mov	ebx,[ebx+30]
99
	mov	ebx,[ebx+30]
100
	mov	edi,od_com_area_name
100
	mov	edi,od_com_area_name
101
	add	edi,7
101
	add	edi,7
102
	std
102
	std
103
	mov	ecx,4
103
	mov	ecx,4
Line 114... Line 114...
114
	shr	ebx,8
114
	shr	ebx,8
115
	dec	ecx
115
	dec	ecx
116
	jnz	@r
116
	jnz	@r
117
	cld
117
	cld
Line 118... Line 118...
118
	
118
	
119
	mcall	68,22,od_com_area_name,8192,0x09
119
	mcall	SF_SYS_MISC,SSF_MEM_OPEN,od_com_area_name,8192,0x09
Line 120... Line 120...
120
	mov	od_com_area,eax
120
	mov	od_com_area,eax
121
	
121
	
122
	mov	esi,od_openfile_pach
122
	mov	esi,od_openfile_pach
Line 137... Line 137...
137
	mov	[eax+2],bx
137
	mov	[eax+2],bx
Line 138... Line 138...
138
	
138
	
Line 139... Line 139...
139
	mov	[eax],word 2	; folder for open
139
	mov	[eax],word 2	; folder for open
140
 
140
 
Line 141... Line 141...
141
	pusha
141
	pusha
142
	mcall	9,od_procinfo,-1
142
	mcall	SF_THREAD_INFO,od_procinfo,-1
143
 
143
 
144
	mov	eax,[ebx+42] ;main window x size
144
	mov	eax,[ebx+42] ;main window x size
Line 214... Line 214...
214
	mov	[ebx],dword 7
214
	mov	[ebx],dword 7
215
	mov	eax,od_com_area_name
215
	mov	eax,od_com_area_name
216
	mov	[ebx+8],eax
216
	mov	[ebx+8],eax
217
	mov	eax,od_start_path
217
	mov	eax,od_start_path
218
	mov	[ebx+21],eax
218
	mov	[ebx+21],eax
219
	mcall	70
219
	mcall	SF_FILE
Line 220... Line 220...
220
 
220
 
221
	shr	eax,31
221
	shr	eax,31
222
	test	eax,eax
222
	test	eax,eax
223
	jnz	.1
223
	jnz	.1
Line 227... Line 227...
227
; is not present the really. For this reason
227
; is not present the really. For this reason
228
; not use func 10 and 23, because event 1
228
; not use func 10 and 23, because event 1
229
; is not cleared without call of func 0.
229
; is not cleared without call of func 0.
230
; In this case is suitable only func 5 and 11,
230
; In this case is suitable only func 5 and 11,
231
; or 68.1 and 11 for better response.
231
; or 68.1 and 11 for better response.
232
	mcall	68,1
232
	mcall	SF_SYS_MISC,SSF_SWITCH_TASK
233
	mcall	5,10 ; because OS uses a new scheduler for kernel(SVN r.3534)
233
	mcall	SF_SLEEP,10 ; because OS uses a new scheduler for kernel(SVN r.3534)
234
	mcall	11
234
	mcall	SF_CHECK_EVENT
235
	cmp	eax,1
235
	cmp	eax,1
236
	je	.draw
236
	je	.draw
237
	cmp	eax,2
237
	cmp	eax,2
238
	je	.key
238
	je	.key
239
	cmp	eax,3
239
	cmp	eax,3
240
	je	.button
240
	je	.button
241
	jmp	.no_draw
241
	jmp	.no_draw
242
.key:
242
.key:
243
	mcall	2
243
	mcall	SF_GET_KEY
244
	jmp	.no_draw
244
	jmp	.no_draw
245
.button:
245
.button:
246
	mcall	17
246
	mcall	SF_GET_BUTTON
247
	jmp	.no_draw
247
	jmp	.no_draw
248
;----------------------------------------------
248
;----------------------------------------------
249
.draw:
249
.draw:
250
	pusha
250
	pusha
251
	call	od_draw_window
251
	call	od_draw_window
Line 254... Line 254...
254
	pusha
254
	pusha
255
	call	.prepare_PID
255
	call	.prepare_PID
256
	jz	@f
256
	jz	@f
Line 257... Line 257...
257
 
257
 
258
	mov	ecx,eax	; WINDOW SLOT
258
	mov	ecx,eax	; WINDOW SLOT
259
	mcall	18,7
259
	mcall	SF_SYSTEM,SSF_GET_ACTIVE_WINDOW
260
	cmp	eax,ecx ; compare ACTIVE and WINDOW SLOT 
260
	cmp	eax,ecx ; compare ACTIVE and WINDOW SLOT 
Line 261... Line 261...
261
	jne	@f
261
	jne	@f
262
 
262
 
263
	mov	eax,od_com_area
263
	mov	eax,od_com_area
264
	mov	ecx,[eax+12]
264
	mov	ecx,[eax+12]
265
	test	ecx,ecx
265
	test	ecx,ecx
266
	jz	@f
266
	jz	@f
267
	mcall	18,3
267
	mcall	SF_SYSTEM,SSF_FOCUS_WINDOW
268
@@:
268
@@:
269
	popa
269
	popa
270
;----------------------------------------------
270
;----------------------------------------------
Line 313... Line 313...
313
	mov	od_y_size, ebx
313
	mov	od_y_size, ebx
Line 314... Line 314...
314
 
314
 
315
	call	.prepare_PID
315
	call	.prepare_PID
316
	jz	@f
316
	jz	@f
317
	mov	ecx,eax	; WINDOW SLOT
317
	mov	ecx,eax	; WINDOW SLOT
318
	mcall	18,3
318
	mcall	SF_SYSTEM,SSF_FOCUS_WINDOW
319
@@:
319
@@:
320
OpenDialog_exit
320
OpenDialog_exit
321
;----------------------------------------------
321
;----------------------------------------------
322
.prepare_PID:
322
.prepare_PID:
323
	mcall	9,od_procinfo,-1
323
	mcall	SF_THREAD_INFO,od_procinfo,-1
324
	mov	ecx,[ebx+30]	; PID
324
	mov	ecx,[ebx+30]	; PID
325
	mcall	18,21
325
	mcall	SF_SYSTEM,SSF_GET_THREAD_SLOT
326
	test	eax,eax
326
	test	eax,eax
327
	ret
327
	ret
328
;----------------------------------------------
328
;----------------------------------------------
329
.get_filter_data:
329
.get_filter_data:
Line 339... Line 339...
339
	jnz	@f
339
	jnz	@f
340
	mov	edi,od_com_area
340
	mov	edi,od_com_area
341
	mov	[edi+4096],dword 0
341
	mov	[edi+4096],dword 0
342
	ret
342
	ret
343
@@:
343
@@:
-
 
344
	cmp	ecx,4091 ;max filter len = 8192-4100-1
-
 
345
	jle	@f
-
 
346
	;todo ... error message: corrypt filter
-
 
347
	mov	edi,od_com_area
-
 
348
	mov	[edi+4096],dword 0
-
 
349
	ret
-
 
350
@@:
344
	inc	ecx
351
	inc	ecx
345
	cld
352
	cld
346
	rep	movsb
353
	rep	movsb
347
	mov	edi,od_com_area
354
	mov	edi,od_com_area
348
	mov	[edi+4096],dword 1
355
	mov	[edi+4096],dword 1