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