forked from KolibriOS/kolibrios
Divided the streams mouse and drawing icons
git-svn-id: svn://kolibrios.org@3972 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
eb029aae1e
commit
dbfd7a4bea
@ -36,12 +36,15 @@ BegData equ fiStdIco.point
|
||||
dd 0 ; path
|
||||
;------------------------------------------------------------------------------
|
||||
include 'lang.inc'
|
||||
include 'lang.inc'
|
||||
include '../../macros.inc'
|
||||
include '../../proc32.inc'
|
||||
include '../../develop/libraries/box_lib/trunk/box_lib.mac'
|
||||
include '../../dll.inc'
|
||||
;include '../../debug.inc'
|
||||
|
||||
include 'bgredraw.inc'
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
START: ; start of execution
|
||||
mcall 68,11
|
||||
@ -128,7 +131,7 @@ START: ; start of execution
|
||||
|
||||
call FillIconsOffs
|
||||
|
||||
mcall 40,0110000b
|
||||
mcall 40,0100000b
|
||||
|
||||
mov eax,[icon_count]
|
||||
mov bl,ICONS_DRAW_COUNTH
|
||||
@ -145,40 +148,17 @@ START: ; start of execution
|
||||
; mov eax,[IconsOffs+eax*4]
|
||||
; stdcall [ini_del_section],IconIni,eax
|
||||
; ret
|
||||
jmp MSGRedrawIcons
|
||||
;jmp MSGRedrawIcons
|
||||
mcall 51,1,BGRedrawThread,stack_bredraw
|
||||
|
||||
|
||||
messages:
|
||||
mcall 10
|
||||
sub eax,5
|
||||
jz MSGRedrawIcons
|
||||
dec eax
|
||||
sub eax,6
|
||||
jz MSGMouse
|
||||
|
||||
jmp messages
|
||||
|
||||
MSGRedrawIcons:
|
||||
|
||||
mcall 48,5
|
||||
mov dx,ax
|
||||
shr eax,16
|
||||
sub dx,ax
|
||||
mov [ScreenX],dx
|
||||
mov ax,bx
|
||||
shr ebx,16
|
||||
sub ax,bx
|
||||
mov [ScreenY],ax
|
||||
|
||||
mov ecx,[MaxNumIcon]
|
||||
test ecx,ecx
|
||||
jz .NoDraw
|
||||
xor ebx,ebx
|
||||
@@: push ecx
|
||||
stdcall DrawIcon,ebx,0
|
||||
inc ebx
|
||||
pop ecx
|
||||
loop @b
|
||||
.NoDraw:
|
||||
jmp messages
|
||||
|
||||
MSGMouse:
|
||||
mcall 37,0 ;GetMousePos
|
||||
@ -260,6 +240,7 @@ LButtonPress:
|
||||
@@:
|
||||
;Yield
|
||||
mcall 5,1 ;Sleep 1
|
||||
|
||||
jmp WaitLB
|
||||
endWaitLB:
|
||||
|
||||
@ -302,6 +283,7 @@ LButtonPress:
|
||||
MovingIcon:
|
||||
stdcall GetNumIcon,[MouseX],[MouseY],-1
|
||||
mov [SelIcon],eax
|
||||
mov [IconNoDraw],eax
|
||||
stdcall RestoreBackgrnd,[SelIcon]
|
||||
|
||||
; mov ecx,[MaxNumIcon]
|
||||
@ -440,6 +422,7 @@ MovingIcon:
|
||||
|
||||
mov [bNotSave],1
|
||||
|
||||
mov [IconNoDraw],-1
|
||||
jmp messages
|
||||
|
||||
;-------------------------------------------------------------------------------
|
||||
@ -1176,6 +1159,7 @@ IconsFile db ICON_STRIP,0
|
||||
NameIconsDat db ICONS_DAT,0
|
||||
align 4
|
||||
MaxNumIcon dd 0 ;ª®«¨ç¥á⢮ ¨ª®®ª
|
||||
IconNoDraw dd -1 ;-1 «¨¡® ®¬¥à ¨ª®ª¨, ª®â®àãî ¥ ¤® à¨á®¢ âì( ª®£¤ ¥ñ â ᪠îâ :))
|
||||
|
||||
bFixIcons dd 1
|
||||
bNotSave dd 0
|
||||
@ -1188,6 +1172,7 @@ DlgAddActiv dd 0
|
||||
IconIni db '/rd/1/icon.ini',0
|
||||
|
||||
|
||||
|
||||
;keyName db 'name',0
|
||||
keyPath db 'path',0
|
||||
keyParams db 'param',0
|
||||
@ -1454,6 +1439,8 @@ fname_Info rb 1024
|
||||
stack_dlg:
|
||||
align 4
|
||||
rb 1024
|
||||
stack_bredraw:
|
||||
rb 1024
|
||||
stack_area:
|
||||
;------------------------------------------------------------------------------
|
||||
ENDMEM:
|
44
programs/system/icon_new/BGREDRAW.INC
Normal file
44
programs/system/icon_new/BGREDRAW.INC
Normal file
@ -0,0 +1,44 @@
|
||||
BGRedrawThread:
|
||||
|
||||
mcall 40,010000b
|
||||
|
||||
|
||||
BGRTmessages:
|
||||
mcall 10
|
||||
sub eax,5
|
||||
jz BGRTRedrawIcons
|
||||
|
||||
jmp BGRTmessages
|
||||
|
||||
BGRTRedrawIcons:
|
||||
mcall 48,5
|
||||
mov dx,ax
|
||||
shr eax,16
|
||||
sub dx,ax
|
||||
mov [ScreenX],dx
|
||||
mov ax,bx
|
||||
shr ebx,16
|
||||
sub ax,bx
|
||||
mov [ScreenY],ax
|
||||
|
||||
mov ecx,[MaxNumIcon]
|
||||
test ecx,ecx
|
||||
jz .NoDraw
|
||||
xor ebx,ebx
|
||||
@@: push ecx
|
||||
cmp [IconNoDraw],ebx
|
||||
je .nd
|
||||
stdcall DrawIcon,ebx,0
|
||||
.nd:
|
||||
inc ebx
|
||||
pop ecx
|
||||
loop @b
|
||||
.NoDraw:
|
||||
jmp BGRTmessages
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -1,131 +0,0 @@
|
||||
include 'libimg/libimg.asm'
|
||||
|
||||
|
||||
;¢®§¢à é ¥â 㪠§ â¥«ì ¯ ¬ïâì «¨¡® 0
|
||||
LoadIcon:
|
||||
path equ ebp+8
|
||||
BuffR equ ebp-16
|
||||
BuffH equ ebp-22
|
||||
endTablI equ ebp-26
|
||||
|
||||
push ebp
|
||||
mov ebp,esp
|
||||
add esp,-26
|
||||
|
||||
push ebx edi esi
|
||||
|
||||
;--------------------------- ¯à®¢¥à塞 - § £à㦥 «¨ íâ®â ä ©« á ¨ª®ª®© ------
|
||||
xor ebx,ebx
|
||||
.SearchIco:
|
||||
mov edi,[path]
|
||||
mov esi,[IcoTable+ebx]
|
||||
@@: lodsb
|
||||
scasb
|
||||
jne @f
|
||||
test al,al
|
||||
jnz @b
|
||||
|
||||
mov eax,[IcoTable+ebx+4]
|
||||
pop esi edi ebx
|
||||
leave
|
||||
ret 4
|
||||
@@:
|
||||
add ebx,8
|
||||
cmp ebx,50*8
|
||||
jne @f
|
||||
|
||||
xor eax,eax
|
||||
pop esi edi ebx
|
||||
leave
|
||||
ret 4
|
||||
@@:
|
||||
cmp [IcoTable+ebx],0
|
||||
jnz .SearchIco
|
||||
|
||||
;-------------------------------------------------------------------------------
|
||||
mov [endTablI],ebx
|
||||
|
||||
m2m dword[fiIcon.path],dword[path]
|
||||
mcall 70,fiIcon
|
||||
test eax,eax
|
||||
jz @f
|
||||
|
||||
xor eax,eax
|
||||
pop esi edi ebx
|
||||
leave
|
||||
ret 4
|
||||
|
||||
@@:
|
||||
xor ecx,ecx
|
||||
mov cx,[BuffH+4]
|
||||
xor edi,edi
|
||||
.TestRecord:
|
||||
cmp word[BuffR],2020h
|
||||
jne .NextRec
|
||||
cmp byte[BuffR+2],0
|
||||
jne .NextRec
|
||||
|
||||
lea eax,[BuffR]
|
||||
stdcall LoadIco32b, [path],eax
|
||||
|
||||
|
||||
pop esi edi ebx
|
||||
leave
|
||||
ret 4
|
||||
|
||||
.NextRec:
|
||||
inc edi
|
||||
|
||||
mov eax,edi
|
||||
shl eax,4
|
||||
add eax,6
|
||||
mov dword[fiIcon.pos],eax
|
||||
mcall 70,fiIcon
|
||||
|
||||
loop .TestRecord
|
||||
|
||||
xor eax,eax
|
||||
pop esi edi ebx
|
||||
leave
|
||||
ret 4
|
||||
restore path
|
||||
restore BuffH
|
||||
restore BuffR
|
||||
|
||||
proc LoadIco32b, path,bufHeader
|
||||
local ImgBuff:DWORD
|
||||
mov edi,[bufHeader]
|
||||
cmp dword[edi+8],10A8h
|
||||
je @f
|
||||
|
||||
xor eax,eax
|
||||
ret
|
||||
|
||||
@@:
|
||||
mcall 68,12,32*32*4*2
|
||||
mov ebx,[endTablI]
|
||||
mov [IcoTable+ebx],eax
|
||||
add eax,4096
|
||||
mov [IcoTable+ebx+4],eax
|
||||
mov [ImgBuff],eax
|
||||
m2m dword[fiIcon.pos],dword[edi+12]
|
||||
mov dword[fiIcon.size],32*32*4
|
||||
mcall 70,fiIcon
|
||||
|
||||
mov eax,[ImgBuff]
|
||||
ret
|
||||
endp
|
||||
|
||||
|
||||
|
||||
fiIcon:
|
||||
dd 0
|
||||
.pos dd 0
|
||||
dd 0
|
||||
.size dd 22
|
||||
.point dd 0
|
||||
db 0
|
||||
.path dd 0
|
||||
|
||||
|
||||
IcoTable rd 2*50 ;(name(4), data(4)). End - dword 0
|
Loading…
Reference in New Issue
Block a user