Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 1039 → Rev 1040

/programs/media/kiv/trunk/kiv.asm
233,6 → 233,7
update_image_sizes:
pushf
mov edx, [eax + Image.Width]
mov [draw_width], edx
add edx, 19
cmp edx, 40 + 25*9
jae @f
240,6 → 241,7
@@:
mov [wnd_width], edx
mov esi, [eax + Image.Height]
mov [draw_height], esi
add esi, 44
mov [wnd_height], esi
popf
290,7 → 292,7
@@:
cmp eax, [cur_file_idx]
jz .notfound
push eax
push eax ebx
imul esi, eax, 304
add esi, [directory_ptr]
add esi, 32 + 40
307,15 → 309,28
jnz @b
mov eax, curdir
call load_image
pop eax
jc .scanloop
mov [cur_file_idx], eax
invoke img.destroy
pushf
mov esi, curdir
push esi
mov edi, @PARAMS
mov ecx, 512/4
rep movsd
mov byte [edi-1], 0
pop esi
@@:
lodsb
test al, al
jnz @b
@@:
dec esi
cmp byte [esi], '/'
jnz @b
mov byte [esi], 0
popf
pop ebx eax
jc .scanloop
mov [cur_file_idx], eax
invoke img.destroy
.ret:
ret
.notfound:
356,10 → 371,7
jnz @b
mov eax, curdir
call load_image
pop ebx eax
jc .scanloop
mov [cur_file_idx], eax
invoke img.destroy
pushf
mov esi, curdir
push esi
mov edi, @PARAMS
376,6 → 388,11
cmp byte [esi], '/'
jnz @b
mov byte [esi], 0
popf
pop ebx eax
jc .scanloop
mov [cur_file_idx], eax
invoke img.destroy
.ret:
ret
.notfound:
512,6 → 529,34
ret
 
draw_window:
cmp [bFirstDraw], 0
jz .posok
or ecx, -1
mcall 9, procinfo
 
cmp dword [ebx + 66], 0
jle .noredraw
 
mov edx, ecx
mov esi, ecx
cmp dword [ebx + 42], 40 + 25 * 9
jae @f
mov edx, 40 + 25 * 9
@@:
cmp dword [ebx + 46], 70
jae @f
mov esi, 70
@@:
mov eax, edx
and eax, esi
cmp eax, -1
jz @f
mov ebx, ecx
mcall 67
@@:
 
.posok:
mcall 12, 1
mcall 48, 4
mov ebp, eax ; save skin height
add eax, [wnd_height]
521,34 → 566,37
mcall 0, , , 0x73FFFFFF, , s_header
 
mcall 9, procinfo, -1
 
mov [bFirstDraw], 1
mov ebx, [procinfo + 62]
inc ebx
mcall 13, , <0, 35>, 0xFFFFFF
mov ecx, [procinfo + 66]
sub ecx, 4
shl ecx, 16
mov cl, 5
inc ecx
mov esi, [draw_height]
add esi, 35
sub ecx, esi
jbe @f
push esi
shl esi, 16
add ecx, esi
pop esi
mcall
mov cl, 35
ror ecx, 16
sub cx, 35
mov ebx, 5
xor ecx, ecx
@@:
add ecx, esi
add ecx, 35*10000h - 35
__mov ebx, 0, 5
mcall
; 5 pixels for indentation, [image.Width] pixels for image
; client_width - 5 - [image.Width] pixels must be white
mov ebx, [image]
mov esi, [procinfo + 62]
inc esi
push esi
mov ebx, [ebx + Image.Width]
sub esi, 5
sub esi, ebx
pop ebx
mov esi, [draw_width]
add esi, ebx
mov ebx, [procinfo+62]
inc ebx
sub ebx, esi
shl ebx, 16
jbe @f
shl esi, 16
add ebx, esi
mcall
@@:
 
mov ebx, [procinfo + 62]
push ebx
601,23 → 649,43
mcall , buttons+rot180btn*20
 
mov ebx, [image]
mov ecx, [ebx + Image.Width]
mov ecx, [procinfo+62]
sub ecx, 4
mov ebp, [ebx + Image.Width]
cmp ecx, ebp
jb @f
mov ecx, ebp
@@:
sub ebp, ecx
mov edx, [procinfo+66]
sub edx, 34
cmp edx, [ebx + Image.Height]
jb @f
mov edx, [ebx + Image.Height]
@@:
shl ecx, 16
add ecx, [ebx + Image.Height]
add ecx, edx
__mov edx, 5, 35
mov esi, 8
cmp [ebx + Image.Type], Image.bpp8
jz @f
mov esi, 24
jz .bpp8
cmp [ebx + Image.Type], Image.bpp24
jz @f
jz .bpp24
mov esi, 32
shl ebp, 2
jmp @f
.bpp24:
mov esi, 24
lea ebp, [ebp*3]
.bpp8:
@@:
mov edi, [ebx + Image.Palette]
mov ebx, [ebx + Image.Data]
xor ebp, ebp
mcall 65
 
mcall 12, 2
 
.noredraw:
ret
 
; void* __stdcall mem.Alloc(unsigned size);
880,6 → 948,7
 
import sort, sort.START, 'START', SortDir, 'SortDir', strcmpi, 'strcmpi'
 
bFirstDraw db 0
;-----------------------------------------------------------------------------
 
virtual at 0
950,6 → 1019,8
image dd ?
wnd_width dd ?
wnd_height dd ?
draw_width dd ?
draw_height dd ?
last_name_component dd ?
cur_file_idx dd ?