Subversion Repositories Kolibri OS

Rev

Rev 1951 | Rev 3184 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1951 mario79 1
;---------------------------------------------------------------------
2
k_option:
3
	test	dword [status],64
4
	jnz	still
5
	or	dword [status],64
6
 
2000 mario79 7
	call	get_memory_for_thread_stack
1951 mario79 8
	mov	[thread_stack_7],eax
2000 mario79 9
	mcall	51,1,thread7	; thread_stack_7
1951 mario79 10
	jmp	still
11
;---------------------------------------------------------------------
2000 mario79 12
get_memory_for_thread_stack:
1951 mario79 13
	mcall	68,12,4096
14
	mov	edx,eax
15
	add	edx,4096
16
	ret
17
;---------------------------------------------------------------------
18
thread7:				; start of bgrd thread
19
	mcall	9, procinfo_threads, -1
20
	mov	eax,[ebx+30]
21
	mov	[PID7],eax
2000 mario79 22
	mcall	40,0x27
1951 mario79 23
	mov	eax,[slide_show_delay]
24
	mov	[slide_show_delay_old],eax
25
	mov	eax,[arrows_offset]
26
	mov	[arrows_offset_old],eax
27
	mov	eax,[check1+32]
28
	mov	[show_file_name_old],eax
29
	mov	eax,[check2+32]
30
	mov	[filtering_flag_old],eax
31
	xor	eax,eax
32
	mov	[option_pointer],eax
33
	call	.set_pointers
2000 mario79 34
;-----------------------------------------
1951 mario79 35
.red:
36
	call	.draw_window
2000 mario79 37
;-----------------------------------------
1951 mario79 38
.still:
2000 mario79 39
	mcall	10 		; wait here for event
1951 mario79 40
 
41
	cmp	eax,1			; redraw request ?
42
	je	.red
2000 mario79 43
 
1951 mario79 44
	cmp	eax,2			; key in buffer ?
45
	je	.key
2000 mario79 46
 
1951 mario79 47
	cmp	eax,3			; button in buffer ?
48
	je	.button
2000 mario79 49
 
1951 mario79 50
	cmp	eax,6	; mouse in buffer ?
51
	je	.mouse
2000 mario79 52
 
1951 mario79 53
	jmp	.still
2000 mario79 54
;---------------------------------------------------------------------
1951 mario79 55
.mouse:
56
	mov	ebx,[check1+32]
57
	and	ebx,10b
58
	push	dword check1
59
	call	[check_box_mouse]
60
	mov	eax,[check1+32]
61
	and	eax,10b
62
	cmp	ebx,eax
63
	je	@f	;.still
2000 mario79 64
 
1951 mario79 65
	mov	[option_pointer],2
66
	call	.set_pointers
67
	call	.draw_all_options_values
68
	jmp	.still
2000 mario79 69
;---------------------------------------------------------------------
1951 mario79 70
@@:
71
	mov	ebx,[check2+32]
72
	and	ebx,10b
73
	push	dword check2
74
	call	[check_box_mouse]
75
	mov	eax,[check2+32]
76
	and	eax,10b
77
	cmp	ebx,eax
78
	je	.still
2000 mario79 79
 
1951 mario79 80
	mov	[option_pointer],3
81
	call	.set_pointers
82
	call	.draw_all_options_values
83
	jmp	.still
84
;---------------------------------------------------------------------
85
.key:
86
	mcall
87
	cmp	ah,27
88
	je	.close
2000 mario79 89
 
1951 mario79 90
	cmp	ah,13
91
	je	.kok
2000 mario79 92
 
1951 mario79 93
	cmp	ah,32
94
	je	.select_space
2000 mario79 95
 
1951 mario79 96
	cmp	ah,56 ;plus
97
	je	.select_plus	;.plus_slide_show_delay
2000 mario79 98
 
1951 mario79 99
	cmp	ah,43 ;plus
100
	je	.select_plus	;.plus_slide_show_delay
2000 mario79 101
 
1951 mario79 102
	cmp	ah,61 ;plus
103
	je	.select_plus ;.plus_slide_show_delay
2000 mario79 104
 
1951 mario79 105
	cmp	ah,54 ;minus
106
	je	.select_minus ;.minus_slide_show_delay
2000 mario79 107
 
1951 mario79 108
	cmp	ah,45 ;minus
109
	je	.select_minus	;.minus_slide_show_delay
2000 mario79 110
 
1951 mario79 111
	cmp	ah,95 ;minus
112
	je	.select_minus ;.minus_slide_show_delay
2000 mario79 113
 
1951 mario79 114
	cmp	ah,178 ;up arrow
115
	je	.up_arrow
2000 mario79 116
 
1951 mario79 117
	cmp	ah,177 ;down arrow
118
	je	.down_arrow
2000 mario79 119
 
1951 mario79 120
	jmp	.still
121
;---------------------------------------------------------------------
122
.button:			 ; button
123
	mov	eax,17 		; get id
124
	mcall
125
 
126
	cmp	ah,5
127
	je	.minus_arrows_offset
128
 
129
	cmp	ah,4
130
	je	.plus_arrows_offset
131
 
132
	cmp	ah,3
133
	je	.minus_slide_show_delay
134
 
135
	cmp	ah,2
136
	je	.plus_slide_show_delay
137
 
138
	cmp	ah,1			; button id=1 ?
139
	jne	.noclose
2000 mario79 140
;-----------------------------------
1951 mario79 141
.close:
142
	mov	eax,[slide_show_delay_old]
143
	mov	[slide_show_delay],eax
144
	mov	eax,[arrows_offset_old]
145
	mov	[arrows_offset],eax
146
	mov	eax,[show_file_name_old]
147
	mov	[check1+32],eax
148
	mov	eax,[filtering_flag_old]
149
	mov	[check2+32],eax
150
	jmp	.close_all
2000 mario79 151
;---------------------------------------------------------------------
1951 mario79 152
.close_1:
153
	mov	eax,[check2+32]
154
	test	eax,10b
155
	jz	@f
2000 mario79 156
 
1951 mario79 157
	mov	[filtering_flag],1
158
	jmp	.redraw_flag
2000 mario79 159
;---------------------------------------------------------------------
1951 mario79 160
@@:
161
	mov	[filtering_flag],0
162
.redraw_flag:
163
	mov	[redraw_flag],byte 1
164
.close_all:
165
	xor	dword [status],64
166
	xor	eax,eax
167
	mov	[PID7],eax
168
	mcall	68,13,[thread_stack_7]
2000 mario79 169
	mcall	-1 		; close this program
170
;---------------------------------------------------------------------
1951 mario79 171
.noclose:
172
.kok:
173
	jmp	.close_1
174
;---------------------------------------------------------------------
175
.select_plus:
176
	jmp	[plus_pointer]
177
;---------------------------------------------------------------------
178
.select_minus:
179
	jmp	[minus_pointer]
180
;---------------------------------------------------------------------
181
.select_space:
182
	jmp	[space_pointer]
183
;---------------------------------------------------------------------
184
.plus_slide_show_delay:
185
	cmp	[option_pointer],0
186
	je	@f
2000 mario79 187
 
1951 mario79 188
	mov	[option_pointer],0
189
	call	.draw_all_options_values
190
@@:
191
	cmp	[slide_show_delay],99990
192
	je	.still
2000 mario79 193
 
1951 mario79 194
	add	[slide_show_delay],10
195
	call	.draw_slide_show_delay
196
	jmp	.still
197
;---------------------------------------------------------------------
198
.minus_slide_show_delay:
199
	cmp	[option_pointer],0
200
	je	@f
2000 mario79 201
 
1951 mario79 202
	mov	[option_pointer],0
203
	call	.draw_all_options_values
204
@@:
205
	cmp	[slide_show_delay],0
206
	je	.still
2000 mario79 207
 
1951 mario79 208
	sub	[slide_show_delay],10
209
	call	.draw_slide_show_delay
210
	jmp	.still
211
;---------------------------------------------------------------------
212
.plus_arrows_offset:
213
	cmp	[option_pointer],1
214
	je	@f
2000 mario79 215
 
1951 mario79 216
	mov	[option_pointer],1
217
	call	.draw_all_options_values
218
@@:
219
	cmp	[arrows_offset],100
220
	je	.still
2000 mario79 221
 
1951 mario79 222
	inc	[arrows_offset]
223
	call	.draw_arrows_offset
224
	call	calculate_arrows_offset
225
	jmp	.still
226
;---------------------------------------------------------------------
227
.minus_arrows_offset:
228
	cmp	[option_pointer],1
229
	je	@f
2000 mario79 230
 
1951 mario79 231
	mov	[option_pointer],1
232
	call	.draw_all_options_values
233
@@:
234
	cmp	[arrows_offset],1
235
	je	.still
2000 mario79 236
 
1951 mario79 237
	dec	[arrows_offset]
238
	call	.draw_arrows_offset
239
	call	calculate_arrows_offset
240
	jmp	.still
241
;---------------------------------------------------------------------
242
.space_check1:
243
	test	[check1+32],dword 10b
244
	jnz	@f
2000 mario79 245
 
1951 mario79 246
	or	[check1+32],dword 10b
247
	jmp	.space_check1_1
2000 mario79 248
;---------------------------------------------------------------------
1951 mario79 249
@@:
250
	xor	[check1+32],dword 10b
251
.space_check1_1:
252
	call	.draw_all_options_values
253
	jmp	.still
254
;---------------------------------------------------------------------
255
.space_check2:
256
	test	[check2+32],dword 10b
257
	jnz	@f
2000 mario79 258
 
1951 mario79 259
	or	[check2+32],dword 10b
260
	jmp	.space_check2_1
2000 mario79 261
;---------------------------------------------------------------------
1951 mario79 262
@@:
263
	xor	[check2+32],dword 10b
264
.space_check2_1:
265
	call	.draw_all_options_values
266
	jmp	.still
267
;---------------------------------------------------------------------
268
.down_arrow:
269
	cmp	[option_pointer],3
270
	je	.still
2000 mario79 271
 
1951 mario79 272
	inc	[option_pointer]
273
.draw_all_points:
274
	call	.set_pointers
275
	call	.draw_all_options_values
276
	jmp	.still
277
;---------------------------------------------------------------------
278
.up_arrow:
279
	cmp	[option_pointer],0
280
	je	.still
2000 mario79 281
 
1951 mario79 282
	dec	[option_pointer]
283
	jmp	.draw_all_points
284
;---------------------------------------------------------------------
285
.set_pointers:
286
	cmp	[option_pointer],0
287
	jne	@f
2000 mario79 288
 
1951 mario79 289
	mov	[plus_pointer],thread7.plus_slide_show_delay
290
	mov	[minus_pointer],thread7.minus_slide_show_delay
291
	mov	[space_pointer],thread7.still
292
	ret
293
@@:
294
	cmp	[option_pointer],1
295
	jne	@f
2000 mario79 296
 
1951 mario79 297
	mov	[plus_pointer],thread7.plus_arrows_offset
298
	mov	[minus_pointer],thread7.minus_arrows_offset
299
	mov	[space_pointer],thread7.still
300
	ret
301
@@:
302
	cmp	[option_pointer],2
303
	jne	@f
2000 mario79 304
 
1951 mario79 305
	mov	[plus_pointer],thread7.still
306
	mov	[minus_pointer],thread7.still
307
	mov	[space_pointer],thread7.space_check1
308
	ret
309
@@:
310
	mov	[plus_pointer],thread7.still
311
	mov	[minus_pointer],thread7.still
312
	mov	[space_pointer],thread7.space_check2
313
	ret
314
;---------------------------------------------------------------------
315
.draw_all_options_values:
316
	call	.draw_slide_show_delay
317
	call	.draw_arrows_offset
318
	call	.draw_check1
319
	call	.draw_check2
320
	ret
321
;---------------------------------------------------------------------
322
;	*********************************************
323
;	*******	WINDOW DEFINITIONS AND DRAW ********
324
;	*********************************************
325
.draw_window:
326
	mcall	12,1
327
	xor	eax,eax			; function 0 : define and draw window
2000 mario79 328
	xor	esi,esi
329
	mcall	,<100,300>,<100,120>,0x13909090,,optiontext
1951 mario79 330
	mcall	8,<15,10>,<50,11>,2,0xdddddd
331
	inc	edx
332
	mcall	,<77,10>
333
;---------------------------------
334
	inc	edx
335
	mcall	,<15,10>,<90,11>
336
	inc	edx
337
	mcall	,<77,10>
338
;---------------------------------
339
	inc	edx
340
	mcall	,<250,40>,<50,20>
341
;---------------------------------
342
	mcall	4,<10,35>,0x80ffffff,slide_show_delay_title
343
	mcall	,<17,53>,0x90000000,slide_show_delay_text
344
	mcall	,<10,75>,0x80ffffff,arrows_offset_title
345
	mcall	,<17,93>,0x90000000,slide_show_delay_text
346
	mcall	,<265,57>, ,ok_btn
347
	call	.draw_all_options_values
348
;	mcall	47,0x80000,[PID5],<200, 5>,0xffffff
349
	mcall	12,2
350
	ret
351
;---------------------------------------------------------------------
352
.draw_slide_show_delay:
353
	mov	edx,0xffffff
354
	cmp	[option_pointer],0
355
	jne	@f
2000 mario79 356
 
1951 mario79 357
	mov	edx,0xffff80
358
@@:
359
	mcall	13,<29,45>,<50,12>,
360
	mcall	47,0x800a0000,[slide_show_delay],<32,52>,0x10000000;	0x40000000,0xffffff
361
	ret
362
;---------------------------------------------------------------------
363
.draw_arrows_offset:
364
	mov	edx,0xffffff
365
	cmp	[option_pointer],1
366
	jne	@f
2000 mario79 367
 
1951 mario79 368
	mov	edx,0xffff80
369
@@:
370
	mcall	13,<29,45>,<90,12>,
371
	mcall	47,0x800a0000,[arrows_offset],<32,92>,0x10000000;	0x40000000,0xffffff
372
	ret
373
;---------------------------------------------------------------------
374
.draw_check1:
375
	mov	[check1+12],dword 0xffffff
376
	cmp	[option_pointer],2
377
	jne	@f
2000 mario79 378
 
1951 mario79 379
	mov	[check1+12],dword 0xffff80
380
@@:
381
	push	dword check1
382
	call	[check_box_draw]
383
	ret
384
;---------------------------------------------------------------------
385
.draw_check2:
386
	mov	[check2+12],dword 0xffffff
387
	cmp	[option_pointer],3
388
	jne	@f
2000 mario79 389
 
1951 mario79 390
	mov	[check2+12],dword 0xffff80
391
@@:
392
	push	dword check2
393
	call	[check_box_draw]
394
	ret
395
;---------------------------------------------------------------------