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