2013-08-04 22:58:46 +02:00
|
|
|
|
proc MovingWnd
|
|
|
|
|
local MySlot:DWORD
|
2013-12-09 22:02:13 +01:00
|
|
|
|
mcall 40,0 ;SetMaskMessage 000b
|
2013-08-04 22:58:46 +02:00
|
|
|
|
|
2013-12-09 22:02:13 +01:00
|
|
|
|
mcall 12,1 ;RedrawWinBeg
|
2013-08-04 22:58:46 +02:00
|
|
|
|
|
2013-12-09 22:02:13 +01:00
|
|
|
|
mcall 14
|
|
|
|
|
xor ebx,ebx
|
|
|
|
|
xor ecx,ecx
|
|
|
|
|
mov cx,ax
|
|
|
|
|
shr eax,16
|
|
|
|
|
mov cx,ax
|
|
|
|
|
dec ebx
|
|
|
|
|
dec ecx
|
|
|
|
|
mcall 0,,,01000000h
|
|
|
|
|
mcall 12,2 ;RedrawWinEnd
|
2013-08-04 22:58:46 +02:00
|
|
|
|
|
|
|
|
|
|
2013-12-09 22:02:13 +01:00
|
|
|
|
mov eax,[SelIcon]
|
|
|
|
|
call DrawIconToArea
|
2013-08-04 22:58:46 +02:00
|
|
|
|
|
2013-12-09 22:02:13 +01:00
|
|
|
|
mcall 37,4,IconArea,10100002h
|
|
|
|
|
push eax
|
|
|
|
|
test eax,eax
|
|
|
|
|
jz @f
|
|
|
|
|
mov ecx,eax
|
|
|
|
|
mcall 37,5
|
2013-08-04 22:58:46 +02:00
|
|
|
|
|
|
|
|
|
@@:
|
2013-12-09 22:02:13 +01:00
|
|
|
|
mcall 9,RBProcInfo,-1 ;+30
|
|
|
|
|
mcall 18,21,dword[RBProcInfo+30]
|
|
|
|
|
mov [MySlot],eax
|
2013-08-04 22:58:46 +02:00
|
|
|
|
|
|
|
|
|
.messages:
|
2013-12-09 22:02:13 +01:00
|
|
|
|
cmp [MovingActiv],1
|
|
|
|
|
jne .close
|
|
|
|
|
mcall 18,7
|
|
|
|
|
cmp eax,[MySlot]
|
|
|
|
|
je @f
|
|
|
|
|
mcall 18,3,[MySlot]
|
2013-08-04 22:58:46 +02:00
|
|
|
|
@@:
|
|
|
|
|
|
2013-12-09 22:02:13 +01:00
|
|
|
|
mcall 5,1 ;Yield
|
|
|
|
|
jmp .messages
|
2013-08-04 22:58:46 +02:00
|
|
|
|
|
|
|
|
|
.close:
|
2013-12-09 22:02:13 +01:00
|
|
|
|
pop ecx
|
|
|
|
|
test ecx,ecx
|
|
|
|
|
jz @f
|
|
|
|
|
mcall 37,6
|
2013-08-04 22:58:46 +02:00
|
|
|
|
@@:
|
|
|
|
|
|
|
|
|
|
|
2013-12-09 22:02:13 +01:00
|
|
|
|
mcall -1
|
2013-08-04 22:58:46 +02:00
|
|
|
|
|
|
|
|
|
endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;eax = NumIcon
|
|
|
|
|
proc DrawIconToArea ;<EFBFBD>।<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>祭 <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ࠧ<EFBFBD><EFBFBD> = 32x32
|
2013-12-09 22:02:13 +01:00
|
|
|
|
push edi esi
|
|
|
|
|
|
|
|
|
|
;mov eax,[NumIcon]
|
|
|
|
|
mov edi,[IconsOffs+eax*4]
|
|
|
|
|
xor al,al
|
|
|
|
|
or ecx,-1
|
|
|
|
|
repne scasb
|
|
|
|
|
repne scasb
|
|
|
|
|
repne scasb
|
2021-06-25 01:11:47 +02:00
|
|
|
|
stdcall strToInt,edi
|
|
|
|
|
|
2013-12-09 22:02:13 +01:00
|
|
|
|
@@: ;eax=num icon
|
|
|
|
|
cmp eax,[icon_count]
|
|
|
|
|
jb @f
|
|
|
|
|
xor eax,eax
|
2013-08-04 22:58:46 +02:00
|
|
|
|
@@:
|
2013-12-09 22:02:13 +01:00
|
|
|
|
test eax,eax
|
|
|
|
|
je .DIA
|
|
|
|
|
mov ecx,eax
|
|
|
|
|
xor eax,eax
|
2013-08-04 22:58:46 +02:00
|
|
|
|
@@:
|
2013-12-09 22:02:13 +01:00
|
|
|
|
add eax,32*32*4;IMG_SIZE*IMG_SIZE*4
|
|
|
|
|
loop @b
|
2013-08-04 22:58:46 +02:00
|
|
|
|
.DIA:
|
2013-12-09 22:02:13 +01:00
|
|
|
|
mov esi,eax
|
|
|
|
|
add esi,[raw_pointer]
|
|
|
|
|
add esi,44
|
2013-08-04 22:58:46 +02:00
|
|
|
|
|
2013-12-09 22:02:13 +01:00
|
|
|
|
mov edi,IconArea;+((IMAGE_TOP_Y*ICON_SIZE)+((ICON_SIZE-IMG_SIZE)/2))*4
|
2013-08-04 22:58:46 +02:00
|
|
|
|
;int3
|
2013-12-09 22:02:13 +01:00
|
|
|
|
mov eax,32;IMG_SIZE
|
|
|
|
|
mov edx,eax
|
2013-08-04 22:58:46 +02:00
|
|
|
|
@@:
|
2013-12-09 22:02:13 +01:00
|
|
|
|
mov ecx,eax
|
|
|
|
|
rep movsd
|
2013-08-04 22:58:46 +02:00
|
|
|
|
; add edi,32*4
|
2013-12-09 22:02:13 +01:00
|
|
|
|
dec edx
|
|
|
|
|
jnz @b
|
2013-08-04 22:58:46 +02:00
|
|
|
|
|
2013-12-09 22:02:13 +01:00
|
|
|
|
pop esi edi
|
|
|
|
|
ret
|
2013-08-04 22:58:46 +02:00
|
|
|
|
endp
|