Subversion Repositories Kolibri OS

Rev

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

Rev 3463 Rev 3469
Line 67... Line 67...
67
  dd	 START
67
  dd	 START
68
  dd	 IM_END
68
  dd	 IM_END
69
  dd	 I_END
69
  dd	 I_END
70
  dd	 stacktop
70
  dd	 stacktop
71
  dd	 param
71
  dd	 param
72
  dd	 0x0
72
  dd	 path
73
;---------------------------------------------------------------------
73
;---------------------------------------------------------------------
74
include '../../macros.inc'
74
include '../../macros.inc'
-
 
75
include '../../develop/libraries/box_lib/load_lib.mac'
-
 
76
include '../../develop/libraries/box_lib/trunk/box_lib.mac'
75
;include 'lang.inc'
77
;include 'lang.inc'
76
;include 'debug.inc'
78
;include '../../debug.inc'
-
 
79
@use_library
77
;---------------------------------------------------------------------
80
;---------------------------------------------------------------------
78
p_start_x = 10
81
p_start_x = 10
79
p_start_y = 10
82
p_start_y = 10
Line 80... Line 83...
80
 
83
 
Line 101... Line 104...
101
;---------------------------------------------------------------------
104
;---------------------------------------------------------------------
102
START:
105
START:
103
	mcall	68,11
106
	mcall	68,11
104
	mcall	66,1,1
107
	mcall	66,1,1
105
	mcall	40,0x27
108
	mcall	40,0x27
-
 
109
;	mcall	40,0x7
106
	call	get_communication_area
110
	call	get_communication_area
Line 107... Line 111...
107
	
111
	
Line -... Line 112...
-
 
112
	call	get_active_pocess
-
 
113
 
-
 
114
load_libraries	l_libs_start,end_l_libs
-
 
115
	test	eax,eax
108
	call	get_active_pocess
116
	jnz	button.exit_2
109
 
117
	
110
	xor	eax,eax
118
	xor	eax,eax
111
	mov	al,p_size_x
119
	mov	al,p_size_x
112
	mov	[palette_SIZE_X],eax
120
	mov	[palette_SIZE_X],eax
113
	mov	ax,p_size_y
121
	mov	ax,p_size_y
114
	mov	[palette_SIZE_Y],eax
122
	mov	[palette_SIZE_Y],eax
115
	mov	[tone_SIZE_X],eax
123
	mov	[tone_SIZE_X],eax
116
	mov	[tone_SIZE_Y],eax
124
	mov	[tone_SIZE_Y],eax
117
	mov	eax,0xff0000
125
	mov	eax,0xff0000
-
 
126
	mov	[tone_color],eax
118
	mov	[tone_color],eax
127
	mov	[selected_color],eax
119
	mov	[selected_color],eax
128
	call	prepare_scrollbars_position_from_color
120
;--------------------------------------
129
;--------------------------------------
121
	mov	ecx,[palette_SIZE_Y]
130
	mov	ecx,[palette_SIZE_Y]
122
	imul	ecx,[palette_SIZE_X]
131
	imul	ecx,[palette_SIZE_X]
Line 149... Line 158...
149
 
158
 
150
	cmp	eax,2
159
	cmp	eax,2
Line 151... Line 160...
151
	je	key
160
	je	key
-
 
161
 
-
 
162
	cmp	eax,3
-
 
163
	je	button
-
 
164
	
-
 
165
	cmp	eax,6
152
 
166
	je	mouse
153
	cmp	eax,3
167
	
154
	jne	still
168
	jmp	still
155
;---------------------------------------------------------------------
169
;---------------------------------------------------------------------
156
align 4
170
align 4
Line 193... Line 207...
193
;	mov	eax,[window_y]
207
;	mov	eax,[window_y]
194
	mov	eax,[ecx+38]
208
	mov	eax,[ecx+38]
195
	shl	eax,16
209
	shl	eax,16
196
	add	eax,[ecx+46]
210
	add	eax,[ecx+46]
197
	mov	[ebx+8],eax
211
	mov	[ebx+8],eax
198
 
212
.exit_2:
199
	mcall	-1
213
	mcall	-1
200
;---------------------------------------------------------------------
214
;---------------------------------------------------------------------
201
get_window_param:
215
get_window_param:
202
	mcall	9,procinfo,-1
216
	mcall	9,procinfo,-1
203
	mov	eax,[ebx+66]
217
	mov	eax,[ebx+66]
Line 220... Line 234...
220
	mov	[communication_area],eax
234
	mov	[communication_area],eax
221
;	movzx	ebx,word [eax+2]
235
;	movzx	ebx,word [eax+2]
222
;	mov	[color_dialog_type],ebx
236
;	mov	[color_dialog_type],ebx
Line 223... Line 237...
223
 
237
 
224
	mov	ebx,[eax+4]
238
	mov	ebx,[eax+4]
225
	cmp	bx,word x_minimal_size ;300
239
;	cmp	bx,word x_minimal_size ;300
-
 
240
;	jb	@f
226
	jb	@f
241
	mov	bx,420
227
	mov	[window_x],ebx
242
	mov	[window_x],ebx
228
	mov	ebx,[eax+8]
243
	mov	ebx,[eax+8]
229
	cmp	bx,word y_minimal_size ;200
244
;	cmp	bx,word y_minimal_size ;200
-
 
245
;	jb	@f
230
	jb	@f
246
	mov	bx,320
231
	mov	[window_y],ebx
247
	mov	[window_y],ebx
232
@@:
248
@@:
233
	ret
249
	ret
234
;---------------------------------------------------------------------
250
;---------------------------------------------------------------------
Line 254... Line 270...
254
	lea	eax,[eax+eax*2]
270
	lea	eax,[eax+eax*2]
255
	add	eax,[palette_area]
271
	add	eax,[palette_area]
256
	mov	eax,[eax]
272
	mov	eax,[eax]
257
	mov	[tone_color],eax
273
	mov	[tone_color],eax
258
	mov	[selected_color],eax
274
	mov	[selected_color],eax
-
 
275
	call	prepare_scrollbars_position_from_color
259
	call	create_and_draw_tone
276
	call	create_and_draw_tone
260
	call	draw_selected_color
277
	call	draw_selected_color
-
 
278
	call	draw_scrollbars
261
	jmp	still
279
	jmp	still
262
;---------------------------------------------------------------------
280
;---------------------------------------------------------------------
263
align 4
281
align 4
264
tone_button:
282
tone_button:
265
	mcall	37,1
283
	mcall	37,1
Line 272... Line 290...
272
	add	eax,ebx
290
	add	eax,ebx
273
	lea	eax,[eax+eax*2]
291
	lea	eax,[eax+eax*2]
274
	add	eax,[tone_area]
292
	add	eax,[tone_area]
275
	mov	eax,[eax]
293
	mov	eax,[eax]
276
	mov	[selected_color],eax
294
	mov	[selected_color],eax
-
 
295
	call	prepare_scrollbars_position_from_color
277
	call	draw_selected_color
296
	call	draw_selected_color
-
 
297
	call	draw_scrollbars
278
	jmp	still
298
	jmp	still
279
;---------------------------------------------------------------------
299
;---------------------------------------------------------------------
280
align 4
300
align 4
281
color_button:
301
color_button:
282
	mov	eax,[communication_area]
302
	mov	eax,[communication_area]
Line 286... Line 306...
286
	mov	[eax+20],ebx
306
	mov	[eax+20],ebx
287
; dps "CD flag value: OK "
307
; dps "CD flag value: OK "
288
	jmp	button.exit_1
308
	jmp	button.exit_1
289
;---------------------------------------------------------------------
309
;---------------------------------------------------------------------
290
align 4
310
align 4
-
 
311
prepare_scrollbars_position_from_color:
-
 
312
; in: eax = selected color
-
 
313
	movzx	ebx,al
-
 
314
	mov	[scroll_bar_data_blue.position],ebx
-
 
315
	shr	eax,8
-
 
316
	mov	bl,al
-
 
317
	mov	[scroll_bar_data_green.position],ebx
-
 
318
	shr	eax,8
-
 
319
	mov	bl,al
-
 
320
	mov	[scroll_bar_data_red.position],ebx
-
 
321
	ret
-
 
322
;---------------------------------------------------------------------
-
 
323
align 4
-
 
324
prepare_color_from_scrollbars_position:
-
 
325
; out: ebx = selected color
-
 
326
	mov	eax,[scroll_bar_data_red.position]
-
 
327
	movzx	ebx,al
-
 
328
	shl	ebx,8
-
 
329
	mov	eax,[scroll_bar_data_green.position]
-
 
330
	mov	bl,al
-
 
331
	shl	ebx,8
-
 
332
	mov	eax,[scroll_bar_data_blue.position]
-
 
333
	mov	bl,al
-
 
334
	ret
-
 
335
;---------------------------------------------------------------------	
-
 
336
align 4
291
key:
337
key:
292
	mcall	2
338
	mcall	2
293
	jmp	still
339
	jmp	still
294
;---------------------------------------------------------------------
340
;---------------------------------------------------------------------
295
align 4
341
align 4
-
 
342
mouse:
-
 
343
	cmp	[scroll_bar_data_red.delta2],0
-
 
344
	jne	.red
-
 
345
	cmp	[scroll_bar_data_green.delta2],0
-
 
346
	jne	.green
-
 
347
	cmp	[scroll_bar_data_blue.delta2],0
-
 
348
	jne	.blue	
-
 
349
;--------------------------------------
-
 
350
align 4
-
 
351
.red:
-
 
352
	push	dword scroll_bar_data_red
-
 
353
	call	[scrollbar_ver_mouse]
-
 
354
	cmp	[scroll_bar_data_red.delta2],0
-
 
355
	jne	@f
-
 
356
;--------------------------------------
-
 
357
align 4
-
 
358
.green:
-
 
359
	push	dword scroll_bar_data_green
-
 
360
	call	[scrollbar_ver_mouse]
-
 
361
	cmp	[scroll_bar_data_green.delta2],0
-
 
362
	jne	@f
-
 
363
;--------------------------------------
-
 
364
align 4
-
 
365
.blue:
-
 
366
	push	dword scroll_bar_data_blue
-
 
367
	call	[scrollbar_ver_mouse]
-
 
368
;	cmp	[scroll_bar_data_blue.delta2],0
-
 
369
;	jne	@f
-
 
370
;--------------------------------------
-
 
371
align 4
-
 
372
@@:
-
 
373
	call	prepare_color_from_scrollbars_position
-
 
374
	cmp	[selected_color],ebx
-
 
375
	je	still
-
 
376
	mov	[selected_color],ebx
-
 
377
	call	draw_selected_color
-
 
378
	jmp	still
-
 
379
;---------------------------------------------------------------------
-
 
380
align 4
296
draw_selected_color:
381
draw_selected_color:
297
	mcall	13,,,[selected_color]
382
	mcall	13,,,[selected_color]
298
	mcall	8,,,0x60000004
383
	mcall	13,,,0xffffff
-
 
384
	mov	ecx,[selected_color]
-
 
385
	and	ecx,0xffffff
-
 
386
	mcall	47,0x00060100,,,0
299
	ret
387
	ret
300
;---------------------------------------------------------------------
388
;---------------------------------------------------------------------
301
align 4
389
align 4
302
create_and_draw_tone:
390
create_and_draw_tone:
303
	call    create_tone
391
	call    create_tone
Line 307... Line 395...
307
align 4
395
align 4
308
draw_tone:
396
draw_tone:
309
	mcall	65,[tone_area],<[tone_SIZE_X],[tone_SIZE_Y]>,,24
397
	mcall	65,[tone_area],<[tone_SIZE_X],[tone_SIZE_Y]>,,24
310
	ret
398
	ret
311
;---------------------------------------------------------------------
399
;---------------------------------------------------------------------
-
 
400
draw_scrollbars:
-
 
401
	push	dword scroll_bar_data_red
-
 
402
	call	[scrollbar_ver_draw]
-
 
403
	push	dword scroll_bar_data_green
-
 
404
	call	[scrollbar_ver_draw]
-
 
405
	push	dword scroll_bar_data_blue
-
 
406
	call	[scrollbar_ver_draw]
-
 
407
	ret
-
 
408
;---------------------------------------------------------------------
312
align 4
409
align 4
313
draw_window:
410
draw_window:
314
	mcall	12,1
411
	mcall	12,1
315
;	mcall	0, , , 0x33AABBCC,,title
412
;	mcall	0, , , 0x33AABBCC,,title
-
 
413
	xor	esi,esi
316
	mcall	0,[window_x],[window_y], 0x33AABBCC,,title
414
	mcall	0,[window_x],[window_y], 0x34AABBCC,,title
317
	mcall	8,,,0x60000002
415
	mcall	8,,,0x60000002
318
	mcall	,,,0x60000003
416
	mcall	,,,0x60000003
-
 
417
	mcall	,,,0x60000004
-
 
418
	xor	ebp,ebp
319
	mcall	65,[palette_area],<[palette_SIZE_X],[palette_SIZE_Y]>,,24
419
	mcall	65,[palette_area],<[palette_SIZE_X],[palette_SIZE_Y]>,,24
320
	call	draw_tone
420
	call	draw_tone
321
	call	draw_selected_color
421
	call	draw_selected_color
-
 
422
	xor	eax,eax
-
 
423
	inc	eax
-
 
424
	mov	[scroll_bar_data_red.all_redraw],eax
-
 
425
	mov	[scroll_bar_data_green.all_redraw],eax
-
 
426
	mov	[scroll_bar_data_blue.all_redraw],eax
-
 
427
	call	draw_scrollbars
322
	mcall	12,2
428
	mcall	12,2
323
	ret
429
	ret
324
;---------------------------------------------------------------------
430
;---------------------------------------------------------------------
325
include 'palette.inc'
431
include 'palette.inc'
326
;---------------------------------------------------------------------
432
;---------------------------------------------------------------------