2013-10-24 23:29:45 +04:00
|
|
|
|
|
2013-12-10 01:02:13 +04:00
|
|
|
|
DELTA_COLOR equ 70
|
|
|
|
|
COLOR_SEL_BUT equ 00F7092Dh
|
2013-10-24 23:29:45 +04:00
|
|
|
|
MAX_USER_BUTTONS equ 30
|
2013-10-15 23:20:30 +04:00
|
|
|
|
|
2013-08-05 00:58:46 +04:00
|
|
|
|
;---- thread for rbutton -----------------------------------------------------------------------
|
|
|
|
|
RButtonWin:
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mcall 40,100101b ;SetMaskMessage 100101b
|
|
|
|
|
mcall 48,3,sc,40
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov eax,[sc.work] ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>塞 梥<EFBFBD> ᢥ⫥<EFBFBD> 䮭<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
rol eax,16
|
|
|
|
|
add al,DELTA_COLOR
|
|
|
|
|
jnc @f
|
|
|
|
|
mov al,0FFh
|
2013-08-05 00:58:46 +04:00
|
|
|
|
@@:
|
2013-11-02 01:07:43 +04:00
|
|
|
|
rol eax,16
|
|
|
|
|
add al,DELTA_COLOR
|
|
|
|
|
jnc @f
|
|
|
|
|
mov al,0FFh
|
2013-10-15 23:20:30 +04:00
|
|
|
|
@@:
|
2013-11-02 01:07:43 +04:00
|
|
|
|
add ah,DELTA_COLOR
|
|
|
|
|
jnc @f
|
|
|
|
|
mov ah,0FFh
|
2013-10-15 23:20:30 +04:00
|
|
|
|
@@:
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov [sc.workH],eax
|
2013-10-15 23:20:30 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov eax,[sc.work] ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>塞 梥<EFBFBD> ⥬<EFBFBD><EFBFBD><EFBFBD> 䮭<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
rol eax,16
|
|
|
|
|
sub al,DELTA_COLOR
|
|
|
|
|
jnc @f
|
|
|
|
|
mov al,0FFh
|
2013-10-15 23:20:30 +04:00
|
|
|
|
@@:
|
2013-11-02 01:07:43 +04:00
|
|
|
|
rol eax,16
|
|
|
|
|
sub al,DELTA_COLOR
|
|
|
|
|
jnc @f
|
|
|
|
|
mov al,0FFh
|
2013-10-15 23:20:30 +04:00
|
|
|
|
@@:
|
2013-11-02 01:07:43 +04:00
|
|
|
|
sub ah,DELTA_COLOR
|
|
|
|
|
jnc @f
|
|
|
|
|
mov ah,0FFh
|
2013-10-15 23:20:30 +04:00
|
|
|
|
@@:
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov [sc.workL],eax
|
2013-10-15 23:20:30 +04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
stdcall GetNumIcon,[MouseX],[MouseY],-1
|
|
|
|
|
mov [SelIcon],eax
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
;<EFBFBD><EFBFBD><EFBFBD>⠢<EFBFBD>塞 <EFBFBD><EFBFBD>ࢮ<EFBFBD><EFBFBD>砫<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>祭<EFBFBD><EFBFBD>
|
|
|
|
|
m2m [RMenuW],[MinRMenuW]
|
2013-10-24 23:29:45 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
cmp [SelIcon],-1
|
|
|
|
|
jne .RBW1
|
2013-10-24 23:29:45 +04:00
|
|
|
|
;----------- <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ------------------------------------------------
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov [NumMenuButt],0
|
|
|
|
|
|
|
|
|
|
mcall 70,fiIni
|
|
|
|
|
mcall 68,12,dword[bufIni+32] ;<EFBFBD>뤥<EFBFBD>塞 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᥩ <EFBFBD> <EFBFBD><EFBFBD>⥩ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>᪠
|
|
|
|
|
mov [RBMenuCP],eax ;GetUserBut <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ࢮ<EFBFBD><EFBFBD>砫<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 㪠<EFBFBD><EFBFBD>⥫<EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
stdcall [ini_enum_keys],IconIni,secRButt,GetUserBut
|
|
|
|
|
|
|
|
|
|
mov ebx,[NumMenuButt]
|
|
|
|
|
add [NumMenuButt],4
|
|
|
|
|
|
|
|
|
|
mov [RBMenuCP+ebx*8],RMenuRedrawFon
|
|
|
|
|
mov [RBMenuCP+ebx*8+8],RMenuAlign
|
|
|
|
|
cmp [bFixIcons],1
|
|
|
|
|
je @f
|
|
|
|
|
mov [RBMenuCP+ebx*8+16],RMenuOffMoving
|
|
|
|
|
jmp .RBW11
|
2013-10-24 23:29:45 +04:00
|
|
|
|
@@:
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov [RBMenuCP+ebx*8+16],RMenuOnMoving
|
2013-10-24 23:29:45 +04:00
|
|
|
|
.RBW11:
|
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov [RBMenuCP+ebx*8+24],RMenuAdd
|
2013-10-24 23:29:45 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov [RBMenuCP+ebx*8+4],0
|
|
|
|
|
mov [RBMenuCP+ebx*8+8+4],0
|
|
|
|
|
mov [RBMenuCP+ebx*8+16+4],0
|
|
|
|
|
mov [RBMenuCP+ebx*8+24+4],0
|
2013-10-24 23:29:45 +04:00
|
|
|
|
|
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
jmp .RBW2
|
2013-10-24 23:29:45 +04:00
|
|
|
|
;----------- <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ------------------------------------------------
|
|
|
|
|
.RBW1:
|
2013-11-02 01:07:43 +04:00
|
|
|
|
xor ebx,ebx
|
|
|
|
|
mov [NumMenuButt],5
|
|
|
|
|
|
|
|
|
|
mov [RBMenuCP+ebx*8],RMenuRedrawFon
|
|
|
|
|
mov [RBMenuCP+ebx*8+8],RMenuAlign
|
|
|
|
|
cmp [bFixIcons],1
|
|
|
|
|
je @f
|
|
|
|
|
mov [RBMenuCP+ebx*8+16],RMenuOffMoving
|
|
|
|
|
jmp .RBW21
|
2013-10-24 23:29:45 +04:00
|
|
|
|
@@:
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov [RBMenuCP+ebx*8+16],RMenuOnMoving
|
2013-10-24 23:29:45 +04:00
|
|
|
|
.RBW21:
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov [RBMenuCP+ebx*8+24],RMenuDel
|
|
|
|
|
mov [RBMenuCP+ebx*8+32],RMenuProp
|
2013-10-24 23:29:45 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov [RBMenuCP+ebx*8+4],0
|
|
|
|
|
mov [RBMenuCP+ebx*8+8+4],0
|
|
|
|
|
mov [RBMenuCP+ebx*8+16+4],0
|
|
|
|
|
mov [RBMenuCP+ebx*8+24+4],0
|
|
|
|
|
mov [RBMenuCP+ebx*8+32+4],0
|
2013-10-24 23:29:45 +04:00
|
|
|
|
|
|
|
|
|
;-------------------------------------------------------------------------------
|
|
|
|
|
.RBW2:
|
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
cmp [SelIcon],-1
|
|
|
|
|
jne @f
|
|
|
|
|
mov eax,[NumMenuButt]
|
|
|
|
|
shl eax,4
|
|
|
|
|
mov [RMenuH],ax
|
|
|
|
|
jmp .rbw1
|
2013-10-15 23:20:30 +04:00
|
|
|
|
@@:
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov [RMenuH],16*5
|
2013-10-15 23:20:30 +04:00
|
|
|
|
.rbw1:
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
add [RMenuW],3 ;<EFBFBD><EFBFBD> ࠬ<EFBFBD><EFBFBD>
|
|
|
|
|
add [RMenuH],3 ;<EFBFBD><EFBFBD> ࠬ<EFBFBD><EFBFBD>
|
2013-10-24 23:29:45 +04:00
|
|
|
|
|
2013-08-05 00:58:46 +04:00
|
|
|
|
RBWRedraw:
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mcall 12,1 ;RedrawWinBeg
|
|
|
|
|
mov ebx,[MouseX]
|
|
|
|
|
shl ebx,16
|
|
|
|
|
mov bx,[RMenuW]
|
|
|
|
|
|
|
|
|
|
mov ecx,[MouseY]
|
|
|
|
|
shl ecx,16
|
|
|
|
|
mov cx,[RMenuH]
|
|
|
|
|
|
|
|
|
|
mov edx,01000000h
|
|
|
|
|
mov esi,01000000h
|
|
|
|
|
xor eax,eax
|
|
|
|
|
int 40h
|
|
|
|
|
|
|
|
|
|
and ebx,0FFFFh ;䮭<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>אַ㣮<EFBFBD>쭨<EFBFBD>
|
|
|
|
|
inc bx
|
|
|
|
|
and ecx,0FFFFh
|
|
|
|
|
inc cx
|
|
|
|
|
mcall 13,,,[sc.work]
|
2013-10-15 23:20:30 +04:00
|
|
|
|
|
2013-10-24 23:29:45 +04:00
|
|
|
|
;----------- <EFBFBD><EFBFBD>।<EFBFBD><EFBFBD>塞 <EFBFBD> <EFBFBD><EFBFBD><EFBFBD>㥬 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov ecx,[NumMenuButt]
|
2013-08-05 00:58:46 +04:00
|
|
|
|
.DrawUB:
|
2013-11-02 01:07:43 +04:00
|
|
|
|
push ecx
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov eax,[NumMenuButt]
|
|
|
|
|
sub eax,ecx
|
|
|
|
|
mov edx,eax ;button ID = <EFBFBD><EFBFBD> 0 <EFBFBD><EFBFBD> NumMenuButt
|
|
|
|
|
or edx,60000000h
|
|
|
|
|
shl eax,4+16 ;*16*10000h
|
|
|
|
|
mov ecx,eax
|
|
|
|
|
mov cx,16
|
2013-10-25 15:17:31 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
xor ebx,ebx
|
|
|
|
|
mov bx,[RMenuW]
|
|
|
|
|
mov esi,[sc.work]
|
|
|
|
|
mcall 8 ;<EFBFBD><EFBFBD>।<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2013-10-25 15:17:31 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov ebx,70000h
|
|
|
|
|
shr ecx,16
|
|
|
|
|
mov bx,cx
|
|
|
|
|
add bx,7
|
2013-10-25 15:17:31 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov ecx,[sc.work_text]
|
|
|
|
|
or ecx,80000000h
|
2013-10-25 15:17:31 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov eax,[NumMenuButt]
|
|
|
|
|
sub eax,[esp]
|
|
|
|
|
mov edx,[RBMenuCP+eax*8]
|
|
|
|
|
mcall 4
|
2013-10-25 15:17:31 +04:00
|
|
|
|
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
pop ecx
|
|
|
|
|
loop .DrawUB
|
2013-10-24 23:29:45 +04:00
|
|
|
|
;---------------
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
2013-10-24 23:29:45 +04:00
|
|
|
|
; <EFBFBD><EFBFBD>ࠬ<EFBFBD><EFBFBD><EFBFBD>騩 <EFBFBD><EFBFBD>אַ㣮<EFBFBD>쭨<EFBFBD>
|
2013-11-02 01:07:43 +04:00
|
|
|
|
xor ebx,ebx ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
mov bx,[RMenuW]
|
|
|
|
|
xor ecx,ecx
|
|
|
|
|
mcall 38,,,[sc.workL]
|
|
|
|
|
|
|
|
|
|
mov bx,[RMenuW] ;<EFBFBD>ࠢ<EFBFBD>
|
|
|
|
|
shl ebx,16
|
|
|
|
|
mov bx,[RMenuW]
|
|
|
|
|
xor ecx,ecx
|
|
|
|
|
mov cx,[RMenuH]
|
|
|
|
|
mcall
|
|
|
|
|
|
|
|
|
|
xor ebx,ebx ;<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
mov bx,[RMenuW]
|
|
|
|
|
mov cx,[RMenuH]
|
|
|
|
|
shl ecx,16
|
|
|
|
|
mov cx,[RMenuH]
|
|
|
|
|
mcall
|
|
|
|
|
|
|
|
|
|
xor ebx,ebx ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
xor ecx,ecx
|
|
|
|
|
mov cx,[RMenuH]
|
|
|
|
|
mcall
|
2013-10-15 23:20:30 +04:00
|
|
|
|
|
|
|
|
|
|
2013-10-24 23:29:45 +04:00
|
|
|
|
; ᢥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>孨<EFBFBD> 㣮<EFBFBD>
|
2013-11-02 01:07:43 +04:00
|
|
|
|
xor ebx,ebx
|
|
|
|
|
mov bx,[RMenuW]
|
|
|
|
|
add ebx,1*10000h-1
|
|
|
|
|
mov ecx,00010001h
|
|
|
|
|
mcall ,,,[sc.workH]
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov ebx,00010001h
|
|
|
|
|
xor ecx,ecx
|
|
|
|
|
mov cx,[RMenuH]
|
|
|
|
|
add ecx,1*10000h-1
|
|
|
|
|
mcall
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
|
|
|
|
|
2013-10-24 23:29:45 +04:00
|
|
|
|
;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ᮢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mcall 12,2 ;RedrawWinEnd
|
2013-10-24 23:29:45 +04:00
|
|
|
|
;-------------------------------------------------------------------
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mcall 9,RBProcInfo,-1 ;GetThreadInfo RBProcInfo,-1
|
|
|
|
|
mcall 18,21,dword[RBProcInfo+30]
|
|
|
|
|
m2m dword[RBSlot],eax
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
|
|
|
|
RBWMessages:
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mcall 10 ;WaitMessage
|
|
|
|
|
dec eax
|
|
|
|
|
jz RBWRedraw
|
|
|
|
|
sub eax,2
|
|
|
|
|
jz RBWButton
|
|
|
|
|
sub eax,3
|
|
|
|
|
jz RBWMouse
|
|
|
|
|
jmp RBWMessages
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
|
|
|
|
RBWButton:
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mcall 17 ;GetButtonPressed
|
|
|
|
|
shr eax,8
|
|
|
|
|
|
|
|
|
|
mov ebx,eax
|
|
|
|
|
mov eax,[RBMenuCP+ebx*8+4] ;<EFBFBD> ᤥ<EFBFBD><EFBFBD> 0, <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD>⠭<EFBFBD><EFBFBD><EFBFBD>⭮<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD> ini)
|
|
|
|
|
test eax,eax
|
|
|
|
|
jnz .RBWB
|
|
|
|
|
mov eax,[RBMenuCP+ebx*8] ;ᬮ<EFBFBD>ਬ, 㪠<EFBFBD><EFBFBD>⥫<EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
cmp eax,RMenuRedrawFon ; <EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD>롨ࠥ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢨<EFBFBD>
|
|
|
|
|
jz RBRedrawFon
|
|
|
|
|
cmp eax,RMenuAlign
|
|
|
|
|
jz RBAlign
|
|
|
|
|
cmp eax,RMenuOffMoving
|
|
|
|
|
jz RBFixIcons
|
|
|
|
|
cmp eax,RMenuOnMoving
|
|
|
|
|
jz RBFixIcons
|
|
|
|
|
cmp eax,RMenuAdd
|
|
|
|
|
jz RBAdd
|
|
|
|
|
cmp eax,RMenuDel
|
|
|
|
|
jz RBDelete
|
|
|
|
|
cmp eax,RMenuProp
|
|
|
|
|
jz RBPropeties
|
|
|
|
|
|
|
|
|
|
jmp RBWExit
|
2013-10-24 23:29:45 +04:00
|
|
|
|
.RBWB:
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov dword[fiRunProg+8],0
|
|
|
|
|
mov dword[fiRunProg+21],eax
|
|
|
|
|
mcall 70,fiRunProg
|
2013-10-24 23:29:45 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
jmp RBWExit
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
|
|
|
|
RBWMouse:
|
2013-11-02 01:07:43 +04:00
|
|
|
|
call MouseInWin
|
|
|
|
|
jnc .RBWMnoInWin ;<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>⠭<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>।<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2013-10-24 23:29:45 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mcall 37,1 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>⭮<EFBFBD><EFBFBD>⥫쭮 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
and eax,0FFF0h ;<EFBFBD>㦥<EFBFBD> ⮫쪮 Y, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>㣫<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>孥<EFBFBD> <EFBFBD><EFBFBD>窨 <EFBFBD><EFBFBD><EFBFBD>⭮<EFBFBD> 16(<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|
|
|
|
cmp [PredItem],eax
|
|
|
|
|
je .RBWMendLightBut
|
2013-10-24 23:29:45 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
shr eax,4 ;<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ࠬ<EFBFBD><EFBFBD>, <EFBFBD><EFBFBD> ⠪<EFBFBD><EFBFBD> ⮫쪮 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>⠭<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>।<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
cmp eax,[NumMenuButt]
|
|
|
|
|
jae .RBWMnoInWin
|
2013-10-24 23:29:45 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
cmp [PredItem],-1 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD>⠭<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>।<EFBFBD><EFBFBD><EFBFBD>饩 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
je @f
|
2013-10-24 23:29:45 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
stdcall DrawRBLine,[PredItem],0
|
2013-10-24 23:29:45 +04:00
|
|
|
|
|
2013-10-15 23:20:30 +04:00
|
|
|
|
@@:
|
2013-10-24 23:29:45 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
call MouseInWin
|
|
|
|
|
jnc @f
|
|
|
|
|
mcall 37,1 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>⭮<EFBFBD><EFBFBD>⥫쭮 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
and eax,0FFF0h ;<EFBFBD>㦥<EFBFBD> ⮫쪮 Y, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>㣫<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>孥<EFBFBD> <EFBFBD><EFBFBD>窨 <EFBFBD><EFBFBD><EFBFBD>⭮<EFBFBD> 16(<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|
|
|
|
mov [PredItem],eax
|
|
|
|
|
stdcall DrawRBLine,eax,1
|
2013-10-24 23:29:45 +04:00
|
|
|
|
|
2013-10-15 23:20:30 +04:00
|
|
|
|
@@:
|
2013-11-02 01:07:43 +04:00
|
|
|
|
jmp .RBWMendLightBut
|
2013-10-24 23:29:45 +04:00
|
|
|
|
|
2013-10-15 23:20:30 +04:00
|
|
|
|
|
2013-10-24 23:29:45 +04:00
|
|
|
|
.RBWMnoInWin:
|
2013-11-02 01:07:43 +04:00
|
|
|
|
cmp [PredItem],-1 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD>⠭<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>।<EFBFBD><EFBFBD><EFBFBD>饩 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
je .RBWMendLightBut
|
2013-10-15 23:20:30 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
stdcall DrawRBLine,[PredItem],0
|
|
|
|
|
mov [PredItem],-1
|
2013-10-24 23:29:45 +04:00
|
|
|
|
|
|
|
|
|
.RBWMendLightBut:
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mcall 37,2 ;GetMouseKey
|
|
|
|
|
test eax,111b
|
|
|
|
|
jz RBWMessages
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
call MouseInWin
|
|
|
|
|
jc RBWMessages
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
|
|
|
|
RBWExit:
|
2013-11-02 01:07:43 +04:00
|
|
|
|
cmp [SelIcon],-1
|
|
|
|
|
jne @f
|
|
|
|
|
mcall 68,13,[RBMenuCP] ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ﬨ <EFBFBD> <EFBFBD><EFBFBD><EFBFBD>ﬨ <EFBFBD> <EFBFBD>ண<EFBFBD><EFBFBD>
|
2013-10-24 23:29:45 +04:00
|
|
|
|
@@:
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov [RButtonActiv],0
|
|
|
|
|
mcall -1 ;ExitProcess
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
RBRedrawFon:
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mcall 15,3
|
|
|
|
|
jmp RBWExit
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
|
|
|
|
RBAlign:
|
2013-11-02 01:07:43 +04:00
|
|
|
|
call AlignIcons
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
m2m [PIcoDB],[BegData]
|
|
|
|
|
stdcall [ini_enum_sections],IconIni,Ini_SavePos
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov dword[fiRunProg+8],WarningSave
|
|
|
|
|
mov dword[fiRunProg+21],pthNotify
|
|
|
|
|
mcall 70,fiRunProg
|
|
|
|
|
mov [bNotSave],0
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
jmp RBRedrawFon
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
|
|
|
|
RBFixIcons:
|
2013-11-02 01:07:43 +04:00
|
|
|
|
xor dword[bFixIcons],1
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
cmp [bNotSave],0
|
|
|
|
|
je @f
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov dword[fiRunProg+8],WarningSave
|
|
|
|
|
mov dword[fiRunProg+21],pthNotify
|
|
|
|
|
mcall 70,fiRunProg
|
|
|
|
|
mov [bNotSave],0
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
|
|
|
|
@@:
|
2013-11-02 01:07:43 +04:00
|
|
|
|
jmp RBWExit
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
|
|
|
|
RBAdd:
|
2013-11-02 01:07:43 +04:00
|
|
|
|
cmp [DlgAddActiv],1
|
|
|
|
|
je RBWSetActivWin
|
|
|
|
|
mov [DlgAddActiv],1
|
2013-09-21 16:25:30 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mcall 51,1,DlgAdd,stack_dlg ;CreateThread DlgAdd,stack_dlg
|
|
|
|
|
jmp RBWExit
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
|
|
|
|
RBDelete:
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov eax,[SelIcon]
|
2013-12-10 01:02:13 +04:00
|
|
|
|
lea eax,[IconsID+eax*4]
|
2013-11-02 01:07:43 +04:00
|
|
|
|
stdcall [ini_del_section],IconIni,eax
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
stdcall DelIcon,[SelIcon]
|
2013-12-10 01:02:13 +04:00
|
|
|
|
mov ebx,[SelIcon]
|
|
|
|
|
lea edi,[IconsID+ebx*4-4]
|
|
|
|
|
lea esi,[edi+4]
|
|
|
|
|
mov ecx,[MaxNumIcon]
|
|
|
|
|
sub ecx,[SelIcon]
|
|
|
|
|
;dph ecx
|
|
|
|
|
test ecx,ecx
|
|
|
|
|
jz @f
|
|
|
|
|
rep movsd
|
|
|
|
|
@@:
|
|
|
|
|
;debug_newline
|
|
|
|
|
;dpsP IconsID+4*0
|
|
|
|
|
;dps ' '
|
|
|
|
|
;dpsP IconsID+4*1
|
|
|
|
|
;dps ' '
|
|
|
|
|
;dpsP IconsID+4*2
|
|
|
|
|
;dps ' '
|
|
|
|
|
;dpsP IconsID+4*3
|
|
|
|
|
;dps ' '
|
|
|
|
|
;dpsP IconsID+4*4
|
|
|
|
|
;dps ' '
|
|
|
|
|
;dpsP IconsID+4*5
|
|
|
|
|
;dps ' '
|
|
|
|
|
;dpsP IconsID+4*6
|
|
|
|
|
;dps ' '
|
|
|
|
|
;dpsP IconsID+4*7
|
|
|
|
|
;dps ' '
|
|
|
|
|
;dpsP IconsID+4*8
|
|
|
|
|
;dps ' '
|
|
|
|
|
;dpsP IconsID+4*9
|
|
|
|
|
;dps ' '
|
|
|
|
|
;dpsP IconsID+4*10
|
|
|
|
|
;dps ' '
|
|
|
|
|
;dpsP IconsID+4*11
|
|
|
|
|
;dps ' '
|
|
|
|
|
;dpsP IconsID+4*12
|
|
|
|
|
;dps ' '
|
|
|
|
|
;dpsP IconsID+4*13
|
|
|
|
|
;dps ' '
|
|
|
|
|
;dpsP IconsID+4*14
|
|
|
|
|
;dps ' '
|
|
|
|
|
;dpsP IconsID+4*15
|
|
|
|
|
;dps ' '
|
|
|
|
|
;dpsP IconsID+4*16
|
|
|
|
|
;dps ' '
|
|
|
|
|
;dpsP IconsID+4*17
|
|
|
|
|
;debug_newline
|
|
|
|
|
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov dword[fiRunProg+8],WarningSave
|
|
|
|
|
mov dword[fiRunProg+21],pthNotify
|
|
|
|
|
mcall 70,fiRunProg
|
|
|
|
|
mov [bNotSave],0
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
jmp RBRedrawFon
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
|
|
|
|
RBPropeties:
|
2013-11-02 01:07:43 +04:00
|
|
|
|
cmp [DlgAddActiv],1
|
|
|
|
|
je RBWSetActivWin
|
|
|
|
|
mov [DlgAddActiv],1
|
2013-09-21 16:25:30 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mcall 51,1,DlgProp,stack_dlg ;CreateThread DlgProp,stack_dlg
|
|
|
|
|
jmp RBWExit
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
2013-09-21 16:25:30 +04:00
|
|
|
|
RBWSetActivWin:
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mcall 18,3,[slotDlgAdd]
|
|
|
|
|
jmp RBWExit
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
2013-10-24 23:29:45 +04:00
|
|
|
|
proc DrawRBLine y,active
|
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
xor ebx,ebx
|
|
|
|
|
mov bx,[RMenuW]
|
|
|
|
|
add ebx,2*10000h-3
|
|
|
|
|
mov ecx,[y]
|
|
|
|
|
add ecx,2
|
|
|
|
|
shl ecx,16
|
|
|
|
|
mov cx,16;-1-2
|
|
|
|
|
cmp [active],1
|
|
|
|
|
jne @f
|
|
|
|
|
mov edx,[sc.work_button]
|
|
|
|
|
jmp .L1
|
2013-10-24 23:29:45 +04:00
|
|
|
|
@@:
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov edx,[sc.work]
|
2013-10-24 23:29:45 +04:00
|
|
|
|
.L1:
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mcall 13
|
2013-10-24 23:29:45 +04:00
|
|
|
|
|
|
|
|
|
;----------------------------------------------
|
2013-11-02 01:07:43 +04:00
|
|
|
|
xor ebx,ebx ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
mov bx,[RMenuW]
|
|
|
|
|
add ebx,2*10000h-3
|
|
|
|
|
mov cx,word[y]
|
|
|
|
|
shl ecx,16
|
|
|
|
|
mov cx,word[y]
|
|
|
|
|
add ecx,00020002h
|
|
|
|
|
|
|
|
|
|
cmp [active],1
|
|
|
|
|
jne @f
|
|
|
|
|
mov edx,[sc.workL]
|
|
|
|
|
jmp .L3
|
2013-10-24 23:29:45 +04:00
|
|
|
|
@@:
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov edx,[sc.work]
|
2013-10-24 23:29:45 +04:00
|
|
|
|
.L3:
|
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mcall 38
|
2013-10-24 23:29:45 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov ebx,00020002h ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
mov cx,word[y]
|
|
|
|
|
shl ecx,16
|
|
|
|
|
mov cx,word[y]
|
|
|
|
|
add ecx,00020002h+16
|
2013-10-24 23:29:45 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
cmp [active],1
|
|
|
|
|
jne @f
|
|
|
|
|
mov edx,[sc.workL]
|
2013-10-24 23:29:45 +04:00
|
|
|
|
|
|
|
|
|
@@:
|
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mcall
|
2013-10-24 23:29:45 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
xor ebx,ebx ;<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
mov bx,[RMenuW]
|
|
|
|
|
add ebx,2*10000h-3
|
|
|
|
|
mov cx,word[y]
|
|
|
|
|
shl ecx,16
|
|
|
|
|
mov cx,word[y]
|
|
|
|
|
add ecx,16*10000h+16+00020002h
|
2013-10-24 23:29:45 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
cmp [active],1
|
|
|
|
|
jne @f
|
|
|
|
|
mov edx,[sc.workH]
|
2013-10-24 23:29:45 +04:00
|
|
|
|
@@:
|
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mcall
|
2013-10-24 23:29:45 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov bx,[RMenuW] ;<EFBFBD>ࠢ<EFBFBD>
|
|
|
|
|
shl ebx,16
|
|
|
|
|
mov bx,[RMenuW]
|
|
|
|
|
add ebx,-2*10000h-2
|
|
|
|
|
mov cx,word[y]
|
|
|
|
|
shl ecx,16
|
|
|
|
|
mov cx,word[y]
|
|
|
|
|
add ecx,00020002h+16
|
2013-10-24 23:29:45 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
cmp [active],1
|
|
|
|
|
jne @f
|
|
|
|
|
mov edx,[sc.workH]
|
2013-10-24 23:29:45 +04:00
|
|
|
|
@@:
|
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mcall
|
2013-10-24 23:29:45 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov eax,[y]
|
|
|
|
|
shr eax,4
|
|
|
|
|
mov edx,[RBMenuCP+eax*8]
|
2013-10-24 23:29:45 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
xor ebx,ebx
|
|
|
|
|
mov ebx,[y]
|
|
|
|
|
add ebx,7*10000h+7
|
2013-10-24 23:29:45 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
cmp [active],1
|
|
|
|
|
jne @f
|
|
|
|
|
mov ecx,[sc.work_button_text]
|
|
|
|
|
jmp .L2
|
2013-10-24 23:29:45 +04:00
|
|
|
|
@@:
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov ecx,[sc.work_text]
|
2013-10-24 23:29:45 +04:00
|
|
|
|
.L2:
|
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
or ecx,80000000h
|
2013-10-24 23:29:45 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mcall 4
|
2013-10-24 23:29:45 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
ret
|
2013-10-24 23:29:45 +04:00
|
|
|
|
endp
|
|
|
|
|
|
|
|
|
|
proc MouseInWin ;Carry flag = 1, <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mcall 37,0 ;GetMousePos
|
|
|
|
|
xor ebx,ebx
|
|
|
|
|
mov bx,ax ;y
|
|
|
|
|
shr eax,16 ;x
|
|
|
|
|
|
|
|
|
|
xor ecx,ecx
|
|
|
|
|
mov cx,bx
|
|
|
|
|
mov bx,ax
|
|
|
|
|
|
|
|
|
|
mcall 34
|
|
|
|
|
cmp eax,[RBSlot]
|
|
|
|
|
jne @f
|
|
|
|
|
stc
|
|
|
|
|
ret
|
2013-10-15 23:20:30 +04:00
|
|
|
|
@@:
|
2013-11-02 01:07:43 +04:00
|
|
|
|
clc
|
|
|
|
|
ret
|
2013-10-15 23:20:30 +04:00
|
|
|
|
endp
|
|
|
|
|
|
2013-08-05 00:58:46 +04:00
|
|
|
|
proc AlignIcons
|
|
|
|
|
local posX:WORD,\
|
|
|
|
|
posY:WORD,\
|
|
|
|
|
negatX:WORD,\
|
|
|
|
|
negatY:WORD
|
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
xor ebx,ebx
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov ecx,[MaxNumIcon]
|
|
|
|
|
test ecx,ecx
|
|
|
|
|
jnz .AlignIco
|
|
|
|
|
ret
|
2013-08-05 00:58:46 +04:00
|
|
|
|
.AlignIco:
|
2013-11-02 01:07:43 +04:00
|
|
|
|
push ecx
|
|
|
|
|
or ecx,-1
|
|
|
|
|
mov edi,dword[IconsOffs+ebx]
|
|
|
|
|
xor eax,eax
|
|
|
|
|
repne scasb
|
|
|
|
|
repne scasb
|
|
|
|
|
repne scasb
|
|
|
|
|
repne scasb
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov dword[negatX],0
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
|
|
|
|
;-------- <EFBFBD>८<EFBFBD>ࠧ㥬 <EFBFBD><EFBFBD><EFBFBD>न<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥫<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov ax,[edi+2]
|
|
|
|
|
test ax,8000h
|
|
|
|
|
jz @f
|
|
|
|
|
neg ax
|
|
|
|
|
mov word[negatX],1
|
2013-08-05 00:58:46 +04:00
|
|
|
|
@@:
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov [posX],ax
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov ax,[edi]
|
|
|
|
|
test ax,8000h
|
|
|
|
|
jz @f
|
|
|
|
|
neg ax
|
|
|
|
|
mov word[negatY],1
|
2013-08-05 00:58:46 +04:00
|
|
|
|
@@:
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov [posY],ax
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
|
|
|
|
;-----
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov ax,[posY]
|
|
|
|
|
mov dx,ALIGN_SIZE
|
|
|
|
|
|
|
|
|
|
cmp ax,dx
|
|
|
|
|
jb .AI0
|
|
|
|
|
@@: sub ax,dx
|
|
|
|
|
cmp ax,dx
|
|
|
|
|
jae @b
|
2013-08-05 00:58:46 +04:00
|
|
|
|
.AI0:
|
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov dx,ax
|
|
|
|
|
cmp dx,ALIGN_SIZE/2
|
|
|
|
|
jb .AI1
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov ax,ALIGN_SIZE
|
|
|
|
|
sub ax,dx
|
|
|
|
|
add [posY],ax
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
jmp .AI2
|
2013-08-05 00:58:46 +04:00
|
|
|
|
.AI1:
|
2013-11-02 01:07:43 +04:00
|
|
|
|
sub [posY],dx
|
2013-08-05 00:58:46 +04:00
|
|
|
|
.AI2:
|
|
|
|
|
;-----
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov ax,[posX]
|
|
|
|
|
mov dx,ALIGN_SIZE
|
|
|
|
|
|
|
|
|
|
cmp ax,dx
|
|
|
|
|
jb .AI3
|
|
|
|
|
@@: sub ax,dx
|
|
|
|
|
cmp ax,dx
|
|
|
|
|
jae @b
|
2013-08-05 00:58:46 +04:00
|
|
|
|
.AI3:
|
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov dx,ax
|
|
|
|
|
cmp dx,ALIGN_SIZE/2
|
|
|
|
|
jb .AI4
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov ax,ALIGN_SIZE
|
|
|
|
|
sub ax,dx
|
|
|
|
|
add [posX],ax
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
jmp .AI5
|
2013-08-05 00:58:46 +04:00
|
|
|
|
.AI4:
|
2013-11-02 01:07:43 +04:00
|
|
|
|
sub [posX],dx
|
2013-08-05 00:58:46 +04:00
|
|
|
|
.AI5:
|
|
|
|
|
|
|
|
|
|
;----- <EFBFBD>८<EFBFBD>ࠧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD>ࠢ<EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥫<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>न<EFBFBD><EFBFBD><EFBFBD>
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov ax,[posX]
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
cmp [negatX],1
|
|
|
|
|
jne @f
|
|
|
|
|
neg ax
|
|
|
|
|
inc ax
|
|
|
|
|
jmp .AI6
|
2013-08-05 00:58:46 +04:00
|
|
|
|
@@:
|
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov dx,[wsW]
|
|
|
|
|
shr dx,1
|
|
|
|
|
add dx,[wsX]
|
|
|
|
|
cmp ax,dx
|
|
|
|
|
jbe .AI6
|
|
|
|
|
sub ax,[wsW]
|
2013-08-05 00:58:46 +04:00
|
|
|
|
.AI6:
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov word[edi+2],ax
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov ax,[posY]
|
|
|
|
|
cmp [negatY],1
|
|
|
|
|
jne @f
|
|
|
|
|
neg ax
|
|
|
|
|
inc ax
|
|
|
|
|
jmp .AI7
|
2013-08-05 00:58:46 +04:00
|
|
|
|
@@:
|
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov dx,[wsH]
|
|
|
|
|
shr dx,1
|
|
|
|
|
add dx,[wsY]
|
|
|
|
|
cmp ax,dx
|
|
|
|
|
jbe .AI7
|
|
|
|
|
sub ax,[wsH]
|
2013-08-05 00:58:46 +04:00
|
|
|
|
.AI7:
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov word[edi],ax
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
|
|
|
|
;--------
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
pop ecx
|
|
|
|
|
add ebx,4
|
|
|
|
|
dec ecx
|
|
|
|
|
jnz .AlignIco
|
2013-08-05 00:58:46 +04:00
|
|
|
|
; loop .AlignIco
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; mov dword[fInfo],2
|
|
|
|
|
; mcall 70,fInfo
|
2013-11-02 01:07:43 +04:00
|
|
|
|
ret
|
2013-08-05 00:58:46 +04:00
|
|
|
|
endp
|
|
|
|
|
|
|
|
|
|
;-------------------------------------------------------------------------------
|
|
|
|
|
proc GetUserBut stdcall,f_name,sec_name,key_name,key_value
|
2013-11-02 01:07:43 +04:00
|
|
|
|
cmp [NumMenuButt],MAX_USER_BUTTONS
|
|
|
|
|
jne @f
|
|
|
|
|
ret
|
2013-08-05 00:58:46 +04:00
|
|
|
|
@@:
|
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
push ebx esi edi
|
|
|
|
|
|
|
|
|
|
mov edi,[key_name] ;<EFBFBD><EFBFBD>।<EFBFBD><EFBFBD>塞 <EFBFBD><EFBFBD>ਭ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
xor eax,eax
|
|
|
|
|
or ecx,-1
|
|
|
|
|
repne scasb
|
|
|
|
|
sub edi,[key_name]
|
|
|
|
|
mov eax,edi
|
|
|
|
|
shl eax,1
|
|
|
|
|
lea eax,[eax*2+eax+5*2]
|
|
|
|
|
cmp ax,[RMenuW]
|
|
|
|
|
jbe @f
|
|
|
|
|
mov [RMenuW],ax
|
2013-08-05 00:58:46 +04:00
|
|
|
|
@@:
|
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov ebx,[NumMenuButt]
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov esi,[key_name]
|
|
|
|
|
mov edi,[RBMenuCP+ebx*8]
|
2013-08-05 00:58:46 +04:00
|
|
|
|
@@: lodsb
|
2013-11-02 01:07:43 +04:00
|
|
|
|
stosb
|
|
|
|
|
test al,al
|
|
|
|
|
jnz @b
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov [RBMenuCP+ebx*8+4],edi
|
|
|
|
|
mov esi,[key_value]
|
2013-08-05 00:58:46 +04:00
|
|
|
|
@@: lodsb
|
2013-11-02 01:07:43 +04:00
|
|
|
|
stosb
|
|
|
|
|
test al,al
|
|
|
|
|
jnz @b
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov [RBMenuCP+ebx*8+8],edi
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
inc [NumMenuButt]
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
pop edi esi ebx
|
|
|
|
|
mov eax,1
|
|
|
|
|
ret
|
2013-08-05 00:58:46 +04:00
|
|
|
|
endp
|
|
|
|
|
|
|
|
|
|
proc Ini_SavePos stdcall,f_name,sec_name
|
2013-11-02 01:07:43 +04:00
|
|
|
|
push ebx edi esi
|
2013-09-21 16:25:30 +04:00
|
|
|
|
|
2013-12-10 01:02:13 +04:00
|
|
|
|
mov ebx,[sec_name]
|
|
|
|
|
xor eax,eax
|
|
|
|
|
mov ax,[ebx]
|
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
xor ebx,ebx
|
2013-08-05 00:58:46 +04:00
|
|
|
|
.SearchSect:
|
2013-12-10 01:02:13 +04:00
|
|
|
|
cmp eax,[IconsID+ebx*4]
|
|
|
|
|
je .IcoDataFound
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
inc ebx
|
|
|
|
|
cmp ebx,[MaxNumIcon]
|
|
|
|
|
jb .SearchSect
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov eax,1
|
|
|
|
|
pop esi edi ebx
|
|
|
|
|
ret
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
|
|
|
|
.IcoDataFound:
|
2013-12-10 01:02:13 +04:00
|
|
|
|
xor al,al
|
|
|
|
|
mov edi,[IconsOffs+ebx*4]
|
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
or ecx,-1
|
|
|
|
|
repne scasb
|
|
|
|
|
repne scasb
|
|
|
|
|
repne scasb
|
2013-12-10 01:02:13 +04:00
|
|
|
|
repne scasb
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
2013-12-10 01:02:13 +04:00
|
|
|
|
movzx eax,word[edi]
|
2013-11-02 01:07:43 +04:00
|
|
|
|
test eax,8000h
|
|
|
|
|
jz @f
|
|
|
|
|
or eax,0FFFF0000h
|
2013-08-05 00:58:46 +04:00
|
|
|
|
@@:
|
|
|
|
|
|
2013-12-10 01:02:13 +04:00
|
|
|
|
stdcall [ini_set_int],[f_name],[sec_name],keyY,eax
|
|
|
|
|
|
|
|
|
|
movzx eax,word[edi+2]
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
test eax,8000h
|
|
|
|
|
jz @f
|
|
|
|
|
or eax,0FFFF0000h
|
2013-08-05 00:58:46 +04:00
|
|
|
|
@@:
|
|
|
|
|
|
2013-12-10 01:02:13 +04:00
|
|
|
|
stdcall [ini_set_int],[f_name],[sec_name],keyX,eax
|
2013-08-05 00:58:46 +04:00
|
|
|
|
|
2013-11-02 01:07:43 +04:00
|
|
|
|
mov eax,1
|
|
|
|
|
pop esi edi ebx
|
|
|
|
|
ret
|
2013-08-05 00:58:46 +04:00
|
|
|
|
endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|