Subversion Repositories Kolibri OS

Rev

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

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