Subversion Repositories Kolibri OS

Rev

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

Rev Author Line No. Line
3853 GerdtR 1
 
4336 GerdtR 2
COLOR_SEL_BUT	equ 00F7092Dh
3
MAX_USER_BUTTONS equ 30
4082 GerdtR 4
4036 GerdtR 5
 
3853 GerdtR 6
RButtonWin:
7
	mcall	40,100101b	;SetMaskMessage 100101b
4146 GerdtR 8
	mcall	48,3,sc,40
9
4036 GerdtR 10
 
4146 GerdtR 11
	rol	eax,16
12
	add	al,DELTA_COLOR
13
	jnc	@f
14
	mov	al,0FFh
15
      @@:
4036 GerdtR 16
	rol	eax,16
4146 GerdtR 17
	add	al,DELTA_COLOR
18
	jnc	@f
19
	mov	al,0FFh
20
      @@:
4036 GerdtR 21
	add	ah,DELTA_COLOR
4146 GerdtR 22
	jnc	@f
23
	mov	ah,0FFh
24
      @@:
4036 GerdtR 25
	mov	[sc.workH],eax
4146 GerdtR 26
4036 GerdtR 27
 
4146 GerdtR 28
	rol	eax,16
29
	sub	al,DELTA_COLOR
30
	jnc	@f
31
	mov	al,0FFh
32
      @@:
4036 GerdtR 33
	rol	eax,16
4146 GerdtR 34
	sub	al,DELTA_COLOR
35
	jnc	@f
36
	mov	al,0FFh
37
      @@:
4036 GerdtR 38
	sub	ah,DELTA_COLOR
4146 GerdtR 39
	jnc	@f
40
	mov	ah,0FFh
41
      @@:
4036 GerdtR 42
	mov	[sc.workL],eax
4146 GerdtR 43
4036 GerdtR 44
 
45
 
46
 
4146 GerdtR 47
	mov	[SelIcon],eax
48
3853 GerdtR 49
 
4146 GerdtR 50
	m2m	[RMenuW],[MinRMenuW]
51
4082 GerdtR 52
 
4146 GerdtR 53
	jne	.RBW1
54
;----------- если клик не по иконке ------------------------------------------------
4082 GerdtR 55
	mov	[NumMenuButt],0
4146 GerdtR 56
4082 GerdtR 57
 
4146 GerdtR 58
	mcall	68,12,dword[bufIni+32]	;выделяем память для подписей и путей запуска
59
	mov	[RBMenuCP],eax		;GetUserBut берёт отсюда первоначальный указатель на память
60
	stdcall [ini_enum_keys],IconIni,secRButt,GetUserBut
61
3853 GerdtR 62
 
4146 GerdtR 63
	add	[NumMenuButt],4
64
4082 GerdtR 65
 
4146 GerdtR 66
	mov	[RBMenuCP+ebx*8+8],RMenuAlign
67
	cmp	[bFixIcons],1
68
	je	@f
69
	mov	[RBMenuCP+ebx*8+16],RMenuOffMoving
70
	jmp	.RBW11
71
    @@:
4082 GerdtR 72
	mov	[RBMenuCP+ebx*8+16],RMenuOnMoving
4146 GerdtR 73
    .RBW11:
4082 GerdtR 74
75
 
4146 GerdtR 76
4082 GerdtR 77
 
4146 GerdtR 78
	mov	[RBMenuCP+ebx*8+8+4],0
79
	mov	[RBMenuCP+ebx*8+16+4],0
80
	mov	[RBMenuCP+ebx*8+24+4],0
81
4082 GerdtR 82
 
83
 
4146 GerdtR 84
;----------- если клик по иконке ------------------------------------------------
4082 GerdtR 85
.RBW1:
86
	xor	ebx,ebx
4146 GerdtR 87
	mov	[NumMenuButt],5
88
4082 GerdtR 89
 
4146 GerdtR 90
	mov	[RBMenuCP+ebx*8+8],RMenuAlign
91
	cmp	[bFixIcons],1
92
	je	@f
93
	mov	[RBMenuCP+ebx*8+16],RMenuOffMoving
94
	jmp	.RBW21
95
    @@:
4082 GerdtR 96
	mov	[RBMenuCP+ebx*8+16],RMenuOnMoving
4146 GerdtR 97
    .RBW21:
4082 GerdtR 98
	mov	[RBMenuCP+ebx*8+24],RMenuDel
4146 GerdtR 99
	mov	[RBMenuCP+ebx*8+32],RMenuProp
100
4082 GerdtR 101
 
4146 GerdtR 102
	mov	[RBMenuCP+ebx*8+8+4],0
103
	mov	[RBMenuCP+ebx*8+16+4],0
104
	mov	[RBMenuCP+ebx*8+24+4],0
105
	mov	[RBMenuCP+ebx*8+32+4],0
106
4082 GerdtR 107
 
108
.RBW2:
109
110
 
4146 GerdtR 111
	jne	@f
112
	mov	eax,[NumMenuButt]
113
	shl	eax,4
114
	mov	[RMenuH],ax
115
	jmp	.rbw1
116
      @@:
4036 GerdtR 117
	mov	[RMenuH],16*5
4146 GerdtR 118
    .rbw1:
4036 GerdtR 119
3853 GerdtR 120
 
4146 GerdtR 121
	add	[RMenuH],3		;на рамку
122
4082 GerdtR 123
 
3853 GerdtR 124
	mcall	12,1	;RedrawWinBeg
4146 GerdtR 125
	mov	ebx,[MouseX]
126
	shl	ebx,16
127
	mov	bx,[RMenuW]
128
4082 GerdtR 129
 
4146 GerdtR 130
	shl	ecx,16
131
	mov	cx,[RMenuH]
132
4082 GerdtR 133
 
4146 GerdtR 134
	mov	esi,01000000h
135
	xor	eax,eax
136
	int	40h
137
3853 GerdtR 138
 
4146 GerdtR 139
	inc	bx
140
	and	ecx,0FFFFh
141
	inc	cx
142
	mcall	13,,,[sc.work]
143
4036 GerdtR 144
 
4082 GerdtR 145
	mov	ecx,[NumMenuButt]
4146 GerdtR 146
  .DrawUB:
3853 GerdtR 147
	push	ecx
4146 GerdtR 148
3853 GerdtR 149
 
4146 GerdtR 150
	sub	eax,ecx
151
	mov	edx,eax      ;button ID = от 0 до NumMenuButt
152
	or	edx,60000000h
153
	shl	eax,4+16	  ;*16*10000h
154
	mov	ecx,eax
155
	mov	cx,16
156
3853 GerdtR 157
 
4146 GerdtR 158
	mov	bx,[RMenuW]
159
	mov	esi,[sc.work]
160
	mcall	8			;определили
161
4088 GerdtR 162
 
4146 GerdtR 163
	shr	ecx,16
164
	mov	bx,cx
165
	add	bx,7
166
4088 GerdtR 167
 
4146 GerdtR 168
	or	ecx,80000000h
169
4088 GerdtR 170
 
4146 GerdtR 171
	sub	eax,[esp]
172
	mov	edx,[RBMenuCP+eax*8]
173
	mcall	4
174
4088 GerdtR 175
 
176
 
4146 GerdtR 177
	loop	.DrawUB
178
  ;---------------
4082 GerdtR 179
3853 GerdtR 180
 
4082 GerdtR 181
	xor	ebx,ebx 	   ;верх
4146 GerdtR 182
	mov	bx,[RMenuW]
183
	xor	ecx,ecx
184
	mcall	38,,,[sc.workL]
185
3853 GerdtR 186
 
4146 GerdtR 187
	shl	ebx,16
188
	mov	bx,[RMenuW]
189
	xor	ecx,ecx
190
	mov	cx,[RMenuH]
191
	mcall
192
4082 GerdtR 193
 
4146 GerdtR 194
	mov	bx,[RMenuW]
195
	mov	cx,[RMenuH]
196
	shl	ecx,16
197
	mov	cx,[RMenuH]
198
	mcall
199
3853 GerdtR 200
 
4146 GerdtR 201
	xor	ecx,ecx
202
	mov	cx,[RMenuH]
203
	mcall
204
3853 GerdtR 205
 
4036 GerdtR 206
 
4082 GerdtR 207
	xor	ebx,ebx
4146 GerdtR 208
	mov	bx,[RMenuW]
209
	add	ebx,1*10000h-1
210
	mov	ecx,00010001h
211
	mcall	 ,,,[sc.workH]
212
4036 GerdtR 213
 
4146 GerdtR 214
	xor	ecx,ecx
215
	mov	cx,[RMenuH]
216
	add	ecx,1*10000h-1
217
	mcall
218
3853 GerdtR 219
 
220
 
4082 GerdtR 221
	mcall	12,2	;RedrawWinEnd
4146 GerdtR 222
;-------------------------------------------------------------------
4082 GerdtR 223
3853 GerdtR 224
 
4146 GerdtR 225
	mcall	18,21,dword[RBProcInfo+30]
226
	m2m	dword[RBSlot],eax
227
3853 GerdtR 228
 
229
	mcall	10		;WaitMessage
4146 GerdtR 230
	dec	eax
231
	jz	RBWRedraw
232
	sub	eax,2
233
	jz	RBWButton
234
	sub	eax,3
235
	jz	RBWMouse
236
	jmp	RBWMessages
237
3853 GerdtR 238
 
239
	mcall	17		;GetButtonPressed
4146 GerdtR 240
	shr	eax,8
241
4082 GerdtR 242
 
4146 GerdtR 243
	mov	eax,[RBMenuCP+ebx*8+4] ;если сдесь 0, то клик по стандартной кнопке(которая не в ini)
244
	test	eax,eax
245
	jnz	.RBWB
246
	mov	eax,[RBMenuCP+ebx*8]  ;смотрим, указатель на какую надпись в подписи
247
	cmp	eax,RMenuRedrawFon		    ; и по ней выбираем действие
248
	jz	RBRedrawFon
249
	cmp	eax,RMenuAlign
250
	jz	RBAlign
251
	cmp	eax,RMenuOffMoving
252
	jz	RBFixIcons
253
	cmp	eax,RMenuOnMoving
254
	jz	RBFixIcons
255
	cmp	eax,RMenuAdd
256
	jz	RBAdd
257
	cmp	eax,RMenuDel
258
	jz	RBDelete
259
	cmp	eax,RMenuProp
260
	jz	RBPropeties
261
3853 GerdtR 262
 
4146 GerdtR 263
   .RBWB:
4082 GerdtR 264
	mov	dword[fiRunProg+8],0
4146 GerdtR 265
	mov	dword[fiRunProg+21],eax
266
	mcall	70,fiRunProg
267
4082 GerdtR 268
 
4146 GerdtR 269
3853 GerdtR 270
 
271
	call	MouseInWin
4146 GerdtR 272
	jnc	.RBWMnoInWin	      ;если вне окна, то просто восстанавливаем предыдущую кнопку
273
4082 GerdtR 274
 
4146 GerdtR 275
	and	eax,0FFF0h	;нужен только Y, причём округлённый до верхней точки кратной 16(высота кнопки)
276
	cmp	[PredItem],eax
277
	je	.RBWMendLightBut
278
4082 GerdtR 279
 
4146 GerdtR 280
	cmp	eax,[NumMenuButt]
281
	jae	.RBWMnoInWin
282
4082 GerdtR 283
 
4146 GerdtR 284
	je	@f
285
4082 GerdtR 286
 
4146 GerdtR 287
4082 GerdtR 288
 
4036 GerdtR 289
4082 GerdtR 290
 
4146 GerdtR 291
	jnc	@f
292
	mcall	37,1	      ;положение мыши относительно окна
293
	and	eax,0FFF0h	;нужен только Y, причём округлённый до верхней точки кратной 16(высота кнопки)
294
	mov	[PredItem],eax
295
	stdcall DrawRBLine,eax,1
296
4082 GerdtR 297
 
4036 GerdtR 298
	jmp	.RBWMendLightBut
4146 GerdtR 299
4036 GerdtR 300
 
301
 
4082 GerdtR 302
	cmp	[PredItem],-1	   ;восстановление предыдущей кнопки
4146 GerdtR 303
	je	.RBWMendLightBut
304
4082 GerdtR 305
 
4146 GerdtR 306
	mov	[PredItem],-1
307
4082 GerdtR 308
 
309
	mcall	37,2		;GetMouseKey
4146 GerdtR 310
	test	eax,111b
311
	jz	RBWMessages
312
3853 GerdtR 313
 
4146 GerdtR 314
	jc	RBWMessages
315
3853 GerdtR 316
 
317
	cmp	[SelIcon],-1
4146 GerdtR 318
	jne	@f
319
	mcall	68,13,[RBMenuCP]			;освобождаем память с подписями и путями к прогам
320
      @@:
4082 GerdtR 321
	mov	[RButtonActiv],0
4146 GerdtR 322
	mcall	-1	;ExitProcess
323
3853 GerdtR 324
 
325
 
326
	mcall	15,3
4146 GerdtR 327
	jmp	RBWExit
328
3853 GerdtR 329
 
330
	call	AlignIcons
4146 GerdtR 331
3853 GerdtR 332
 
4146 GerdtR 333
	stdcall [ini_enum_sections],IconIni,Ini_SavePos
334
3853 GerdtR 335
 
4146 GerdtR 336
	mov	dword[fiRunProg+21],pthNotify
337
	mcall	70,fiRunProg
338
	mov	[bNotSave],0
339
3853 GerdtR 340
 
4146 GerdtR 341
3853 GerdtR 342
 
343
	xor	dword[bFixIcons],1
4146 GerdtR 344
3853 GerdtR 345
 
4146 GerdtR 346
	je	@f
347
3853 GerdtR 348
 
4146 GerdtR 349
	mov	dword[fiRunProg+21],pthNotify
350
	mcall	70,fiRunProg
351
	mov	[bNotSave],0
352
3853 GerdtR 353
 
354
	jmp	RBWExit
4146 GerdtR 355
3853 GerdtR 356
 
357
	cmp	[DlgAddActiv],1
4146 GerdtR 358
	je	RBWSetActivWin
359
	mov	[DlgAddActiv],1
360
3921 mario79 361
 
4146 GerdtR 362
	jmp	RBWExit
363
3853 GerdtR 364
 
365
	mov	eax,[SelIcon]
4146 GerdtR 366
	lea	eax,[IconsID+eax*4]
4336 GerdtR 367
	stdcall [ini_del_section],IconIni,eax
4146 GerdtR 368
3853 GerdtR 369
 
4146 GerdtR 370
	mov	ebx,[SelIcon]
4336 GerdtR 371
	lea	edi,[IconsID+ebx*4-4]
372
	lea	esi,[edi+4]
373
	mov	ecx,[MaxNumIcon]
374
	sub	ecx,[SelIcon]
375
;dph ecx
376
	test	ecx,ecx
377
	jz	@f
378
	rep movsd
379
     @@:
380
;debug_newline
381
;dpsP IconsID+4*0
382
;dps ' '
383
;dpsP IconsID+4*1
384
;dps ' '
385
;dpsP IconsID+4*2
386
;dps ' '
387
;dpsP IconsID+4*3
388
;dps ' '
389
;dpsP IconsID+4*4
390
;dps ' '
391
;dpsP IconsID+4*5
392
;dps ' '
393
;dpsP IconsID+4*6
394
;dps ' '
395
;dpsP IconsID+4*7
396
;dps ' '
397
;dpsP IconsID+4*8
398
;dps ' '
399
;dpsP IconsID+4*9
400
;dps ' '
401
;dpsP IconsID+4*10
402
;dps ' '
403
;dpsP IconsID+4*11
404
;dps ' '
405
;dpsP IconsID+4*12
406
;dps ' '
407
;dpsP IconsID+4*13
408
;dps ' '
409
;dpsP IconsID+4*14
410
;dps ' '
411
;dpsP IconsID+4*15
412
;dps ' '
413
;dpsP IconsID+4*16
414
;dps ' '
415
;dpsP IconsID+4*17
416
;debug_newline
417
3853 GerdtR 418
 
4336 GerdtR 419
 
4146 GerdtR 420
	mov	dword[fiRunProg+21],pthNotify
421
	mcall	70,fiRunProg
422
	mov	[bNotSave],0
423
3853 GerdtR 424
 
4146 GerdtR 425
3853 GerdtR 426
 
427
	cmp	[DlgAddActiv],1
4146 GerdtR 428
	je	RBWSetActivWin
429
	mov	[DlgAddActiv],1
430
3921 mario79 431
 
4146 GerdtR 432
	jmp	RBWExit
433
3853 GerdtR 434
 
3921 mario79 435
	mcall	18,3,[slotDlgAdd]
4146 GerdtR 436
	jmp	RBWExit
437
3853 GerdtR 438
 
4082 GerdtR 439
440
 
4146 GerdtR 441
	mov	bx,[RMenuW]
442
	add	ebx,2*10000h-3
443
	mov	ecx,[y]
444
	add	ecx,2
445
	shl	ecx,16
446
	mov	cx,16;-1-2
447
	cmp	[active],1
448
	jne	@f
449
	mov	edx,[sc.work_button]
450
	jmp	.L1
451
       @@:
4082 GerdtR 452
	mov	edx,[sc.work]
4146 GerdtR 453
      .L1:
4082 GerdtR 454
	mcall	13
4146 GerdtR 455
4082 GerdtR 456
 
457
	xor	ebx,ebx 	   ;верх
4146 GerdtR 458
	mov	bx,[RMenuW]
459
	add	ebx,2*10000h-3
460
	mov	cx,word[y]
461
	shl	ecx,16
462
	mov	cx,word[y]
463
	add	ecx,00020002h
464
4082 GerdtR 465
 
4146 GerdtR 466
	jne	@f
467
	mov	edx,[sc.workL]
468
	jmp	.L3
469
       @@:
4082 GerdtR 470
	mov	edx,[sc.work]
4146 GerdtR 471
      .L3:
4082 GerdtR 472
473
 
4146 GerdtR 474
4082 GerdtR 475
 
4146 GerdtR 476
	mov	cx,word[y]
477
	shl	ecx,16
478
	mov	cx,word[y]
479
	add	ecx,00020002h+16
480
4082 GerdtR 481
 
4146 GerdtR 482
	jne	@f
483
	mov	edx,[sc.workL]
484
4082 GerdtR 485
 
486
487
 
4146 GerdtR 488
4082 GerdtR 489
 
4146 GerdtR 490
	mov	bx,[RMenuW]
491
	add	ebx,2*10000h-3
492
	mov	cx,word[y]
493
	shl	ecx,16
494
	mov	cx,word[y]
495
	add	ecx,16*10000h+16+00020002h
496
4082 GerdtR 497
 
4146 GerdtR 498
	jne	@f
499
	mov	edx,[sc.workH]
500
       @@:
4082 GerdtR 501
502
 
4146 GerdtR 503
4082 GerdtR 504
 
4146 GerdtR 505
	shl	ebx,16
506
	mov	bx,[RMenuW]
507
	add	ebx,-2*10000h-2
508
	mov	cx,word[y]
509
	shl	ecx,16
510
	mov	cx,word[y]
511
	add	ecx,00020002h+16
512
4082 GerdtR 513
 
4146 GerdtR 514
	jne	@f
515
	mov	edx,[sc.workH]
516
       @@:
4082 GerdtR 517
518
 
4146 GerdtR 519
4082 GerdtR 520
 
4146 GerdtR 521
	shr	eax,4
522
	mov	edx,[RBMenuCP+eax*8]
523
4082 GerdtR 524
 
4146 GerdtR 525
	mov	ebx,[y]
526
	add	ebx,7*10000h+7
527
4082 GerdtR 528
 
4146 GerdtR 529
	jne	@f
530
	mov	ecx,[sc.work_button_text]
531
	jmp	.L2
532
       @@:
4082 GerdtR 533
	mov	ecx,[sc.work_text]
4146 GerdtR 534
      .L2:
4082 GerdtR 535
536
 
4146 GerdtR 537
4082 GerdtR 538
 
4146 GerdtR 539
4082 GerdtR 540
 
4146 GerdtR 541
endp
4082 GerdtR 542
543
 
544
	mcall	37,0		;GetMousePos
4146 GerdtR 545
	xor	ebx,ebx
546
	mov	bx,ax		;y
547
	shr	eax,16		;x
548
3853 GerdtR 549
 
4146 GerdtR 550
	mov	cx,bx
551
	mov	bx,ax
552
4036 GerdtR 553
 
4146 GerdtR 554
	cmp	eax,[RBSlot]
555
	jne	@f
556
	stc
557
	ret
558
      @@:
4036 GerdtR 559
	clc
4146 GerdtR 560
	ret
561
endp
4036 GerdtR 562
563
 
3853 GerdtR 564
local posX:WORD,\
565
      posY:WORD,\
566
      negatX:WORD,\
567
      negatY:WORD
568
569
 
4146 GerdtR 570
3853 GerdtR 571
 
4146 GerdtR 572
	test	ecx,ecx
573
	jnz	.AlignIco
574
	ret
575
 .AlignIco:
3853 GerdtR 576
	push	ecx
4146 GerdtR 577
	or	ecx,-1
578
	mov	edi,dword[IconsOffs+ebx]
579
	xor	eax,eax
580
	repne	scasb
581
	repne	scasb
582
	repne	scasb
583
	repne	scasb
584
3853 GerdtR 585
 
4146 GerdtR 586
3853 GerdtR 587
 
588
	mov	ax,[edi+2]
4146 GerdtR 589
	test	ax,8000h
590
	jz	@f
591
	neg	ax
592
	mov	word[negatX],1
593
      @@:
3853 GerdtR 594
	mov	[posX],ax
4146 GerdtR 595
3853 GerdtR 596
 
4146 GerdtR 597
	test	ax,8000h
598
	jz	@f
599
	neg	ax
600
	mov	word[negatY],1
601
      @@:
3853 GerdtR 602
	mov	[posY],ax
4146 GerdtR 603
3853 GerdtR 604
 
605
	mov	ax,[posY]
4146 GerdtR 606
	mov	dx,ALIGN_SIZE
607
3853 GerdtR 608
 
4146 GerdtR 609
	jb	.AI0
610
    @@: sub	ax,dx
611
	cmp	ax,dx
612
	jae	@b
613
    .AI0:
3853 GerdtR 614
615
 
4146 GerdtR 616
	cmp	dx,ALIGN_SIZE/2
617
	jb	.AI1
618
3853 GerdtR 619
 
4146 GerdtR 620
	sub	ax,dx
621
	add	[posY],ax
622
3853 GerdtR 623
 
4146 GerdtR 624
     .AI1:
3853 GerdtR 625
	sub	[posY],dx
4146 GerdtR 626
     .AI2:
3853 GerdtR 627
     ;-----
628
	mov	ax,[posX]
4146 GerdtR 629
	mov	dx,ALIGN_SIZE
630
3853 GerdtR 631
 
4146 GerdtR 632
	jb	.AI3
633
    @@: sub	ax,dx
634
	cmp	ax,dx
635
	jae	@b
636
    .AI3:
3853 GerdtR 637
638
 
4146 GerdtR 639
	cmp	dx,ALIGN_SIZE/2
640
	jb	.AI4
641
3853 GerdtR 642
 
4146 GerdtR 643
	sub	ax,dx
644
	add	[posX],ax
645
3853 GerdtR 646
 
4146 GerdtR 647
     .AI4:
3853 GerdtR 648
	sub	[posX],dx
4146 GerdtR 649
     .AI5:
3853 GerdtR 650
651
 
652
	mov	ax,[posX]
4146 GerdtR 653
3853 GerdtR 654
 
4146 GerdtR 655
	jne	@f
656
	neg	ax
657
	inc	ax
658
	jmp	.AI6
659
      @@:
3853 GerdtR 660
661
 
4146 GerdtR 662
	shr	dx,1
663
	add	dx,[wsX]
664
	cmp	ax,dx
665
	jbe	.AI6
666
	sub	ax,[wsW]
667
      .AI6:
3853 GerdtR 668
	mov	word[edi+2],ax
4146 GerdtR 669
3853 GerdtR 670
 
671
 
4146 GerdtR 672
	cmp	[negatY],1
673
	jne	@f
674
	neg	ax
675
	inc	ax
676
	jmp	.AI7
677
      @@:
3853 GerdtR 678
679
 
4146 GerdtR 680
	shr	dx,1
681
	add	dx,[wsY]
682
	cmp	ax,dx
683
	jbe	.AI7
684
	sub	ax,[wsH]
685
      .AI7:
3853 GerdtR 686
	 mov	 word[edi],ax
4146 GerdtR 687
3853 GerdtR 688
 
689
690
 
691
 
692
 
4146 GerdtR 693
	add	ebx,4
694
	dec	ecx
695
	jnz	.AlignIco
696
;        loop    .AlignIco
3853 GerdtR 697
698
 
699
 
700
;        mcall   70,fInfo
701
	ret
4146 GerdtR 702
endp
3853 GerdtR 703
704
 
705
proc GetUserBut stdcall,f_name,sec_name,key_name,key_value
706
	cmp	[NumMenuButt],MAX_USER_BUTTONS
4146 GerdtR 707
	jne	@f
708
	ret
709
     @@:
3853 GerdtR 710
711
 
4146 GerdtR 712
3853 GerdtR 713
 
4146 GerdtR 714
	xor	eax,eax
715
	or	ecx,-1
716
	repne	scasb
717
	sub	edi,[key_name]
718
	mov	eax,edi
719
	shl	eax,1
720
	lea	eax,[eax*2+eax+5*2]
721
	cmp	ax,[RMenuW]
722
	jbe	@f
723
	mov	[RMenuW],ax
724
     @@:
3853 GerdtR 725
726
 
4146 GerdtR 727
3853 GerdtR 728
 
4146 GerdtR 729
	mov	edi,[RBMenuCP+ebx*8]
730
    @@: lodsb
3853 GerdtR 731
	stosb
4146 GerdtR 732
	test	al,al
733
	jnz	@b
734
3853 GerdtR 735
 
736
 
4146 GerdtR 737
	mov	esi,[key_value]
738
    @@: lodsb
3853 GerdtR 739
	stosb
4146 GerdtR 740
	test	al,al
741
	jnz	@b
742
3853 GerdtR 743
 
4146 GerdtR 744
3853 GerdtR 745
 
4146 GerdtR 746
3853 GerdtR 747
 
4146 GerdtR 748
	mov	eax,1
749
	ret
750
endp
3853 GerdtR 751
752
 
753
	push	ebx edi esi
4146 GerdtR 754
3921 mario79 755
 
4336 GerdtR 756
	xor	eax,eax
757
	mov	ax,[ebx]
758
759
 
4146 GerdtR 760
  .SearchSect:
3853 GerdtR 761
	cmp	eax,[IconsID+ebx*4]
4336 GerdtR 762
	je	.IcoDataFound
763
3853 GerdtR 764
 
4146 GerdtR 765
	cmp	ebx,[MaxNumIcon]
766
	jb	.SearchSect
767
3853 GerdtR 768
 
4146 GerdtR 769
	pop	esi edi ebx
770
	ret
771
3853 GerdtR 772
 
773
	xor	al,al
4336 GerdtR 774
	mov	edi,[IconsOffs+ebx*4]
775
776
 
4146 GerdtR 777
	repne	scasb
778
	repne	scasb
779
	repne	scasb
780
	repne	scasb
4336 GerdtR 781
3853 GerdtR 782
 
4336 GerdtR 783
	test	eax,8000h
4146 GerdtR 784
	jz	@f
785
	or	eax,0FFFF0000h
786
     @@:
3853 GerdtR 787
788
 
4336 GerdtR 789
3853 GerdtR 790
 
4336 GerdtR 791
792
 
4146 GerdtR 793
	jz	@f
794
	or	eax,0FFFF0000h
795
     @@:
3853 GerdtR 796
797
 
4336 GerdtR 798
3853 GerdtR 799
 
4146 GerdtR 800
	pop	esi edi ebx
801
	ret
802
endp
3853 GerdtR 803