152,10 → 152,6 |
jz button |
|
mouse: |
mov eax, [need_scrollbar_v] |
add eax, [need_scrollbar_h] |
test eax, eax |
jz .done |
mov [pict_moved], 0 |
|
invoke scrollbar_vert_mouse, scroll_bar_data_vertical |
522,19 → 518,6 |
jmp redraw_all |
|
@@: |
cmp eax, 'scl' |
jnz .not_scl |
mov eax, LIBIMG_SCALE_NONE |
cmp [scale_mode], LIBIMG_SCALE_NONE |
jnz @f |
mov eax, LIBIMG_SCALE_FIT_MIN |
@@: |
call set_scale_mode |
jz @f |
call recalc_work |
@@: |
jmp redraw_all |
.not_scl: |
or esi, -1 |
cmp eax, 'bck' |
jz next_or_prev_handler |
985,7 → 968,8 |
endp |
|
|
proc init_frame uses ebx edx, _img |
proc init_frame _img |
push ebx edx |
mov eax, [orig_image] |
cmp eax, [_img] |
jz .exit |
1013,6 → 997,7 |
mov [pict.top], 0 |
mov [pict.left], 0 |
.exit: |
pop edx ebx |
ret |
endp |
|
1092,7 → 1077,8 |
endp |
|
|
proc draw_view uses ebx esi edi |
proc draw_view |
push ebx esi edi |
cmp [scale_mode], LIBIMG_SCALE_FIT_MIN |
jnz .scale_none |
mov ecx, [cur_frame] |
1128,30 → 1114,14 |
push [view_abs_left] ; xpos |
invoke img.draw, [cur_frame] |
.done: |
pop edi esi ebx |
ret |
endp |
|
proc draw_scale_button |
pushad |
mcall 65, buttons+scalebtn*20, <20,20>, [scale_button_xy], 8, palette |
mov ebx, [scale_button_xy] |
add ebx, 0x00050006 |
; print letter(s) corresponding to the current scaling mode |
mov edi, 2 |
mov [scale_button_letter], 'x1' |
cmp [scale_mode], LIBIMG_SCALE_NONE |
jz @f |
add ebx, 0x00020001 |
mov edi, 1 |
mov [scale_button_letter], 'W' |
; cmp [scale_mode], LIBIMG_SCALE_FIT_MIN |
@@: |
mcall 4, , 0x800100ff, scale_button_letter |
popad |
ret |
endp |
|
proc draw_toolbar uses ebx esi edi |
proc draw_toolbar |
push ebx esi edi |
|
cmp [toolbar.height], 0 |
jz .quit |
mov ebx, [toolbar_abs_left] |
1184,8 → 1154,6 |
mcall |
add ebx, ((5+25*2) SHL 16)+(5+25*2) |
mcall |
add ebx, ((5+25*1) SHL 16)+(5+25*1) |
mcall |
mov ebx, [toolbar_abs_left] |
add ebx, [toolbar.width] |
sub ebx, 25*5+10 |
1210,8 → 1178,6 |
mcall , , , 'bgr'+40000000h |
add ebx, (0+25*1) SHL 16 |
mcall , , , 'sld'+40000000h |
add ebx, (5+25*1) SHL 16 |
mcall , , , 'scl'+40000000h |
mov ebx, [toolbar_abs_left] |
add ebx, [toolbar.width] |
sub ebx, 25*5+10 |
1243,10 → 1209,6 |
mcall , buttons+bgrbtn *20 |
add edx, ((0+25*1) SHL 16)+0 |
mcall , buttons+slidebtn *20 |
add edx, ((5+25*1) SHL 16)+0 |
; mcall , buttons+scalebtn *20 |
mov [scale_button_xy], edx |
call draw_scale_button |
mov edx, [client_abs_left] |
add edx, [client.width] |
sub edx, 25*5+4 |
1264,6 → 1226,7 |
mcall , buttons+rot180btn*20 |
|
.quit: |
pop edi esi ebx |
ret |
endp |
|
1576,6 → 1539,29 |
endp |
|
|
proc is_root_dir _path |
push ecx esi |
|
mov esi, [_path] |
xor ecx, ecx |
@@: |
lodsb |
test al, al |
jz .done |
cmp al, '/' |
jnz @b |
inc ecx |
jmp @b |
.done: |
xor eax, eax |
cmp ecx, 3 |
jz @f |
mov eax, -2 |
@@: |
pop esi ecx |
ret |
endp |
|
; fills window_header with window title |
; window title is generated as '[k/n] <filename> - Kolibri Image Viewer' |
; n = total files in dir |
1593,8 → 1579,8 |
call bin2dec |
mov byte[edi], '/' |
inc edi |
mov eax, [directory_ptr] |
mov eax, [eax+4] |
stdcall is_root_dir, path |
add eax, [files_num] |
call bin2dec |
mov word[edi], '] ' |
add edi, 2 |
2159,8 → 2145,6 |
jnz .recalc_canvas |
stdcall cmp_box, canvas, canvas_prev |
jnz .recalc_canvas |
cmp [bScaleModeChanged], 0 |
jnz .recalc_canvas |
jmp .recalc_canvas_done |
.recalc_canvas: |
stdcall recalc_canvas |
2189,7 → 2173,7 |
|
s_header db ' - Kolibri Image Viewer',0 |
window_style dd 0x53FFFFFF |
window BOX 101, 144, 529, 324 ; left top width height |
window BOX 101, 144, 750, 600 ; left top width height |
window_prev BOX 0, 0, 0, 0 |
window_save BOX 0, 0, 0, 0 ; restore after slide show |
client BOX 0, 0, 0, 0 |
2361,7 → 2345,7 |
file 'kivicons.bmp':0xA,4 |
load offbits dword from 0 |
end virtual |
numimages = 11 |
numimages = 10 |
openbtn = 0 |
backbtn = 1 |
forwardbtn = 2 |
2372,13 → 2356,12 |
rotccwbtn = 7 |
rot180btn = 8 |
slidebtn = 9 |
scalebtn = 10 |
|
palette: |
file 'kivicons.bmp':0x36,offbits-0x36 |
buttons: |
file 'kivicons.bmp':offbits |
repeat 11 |
repeat 10 |
y = %-1 |
z = 20-% |
repeat numimages*5 |
2509,7 → 2492,7 |
dd 0 |
readblocks dd 0 |
directory_ptr dd 0 |
curdir rb 1024 |
curdir db 1024 dup (?) |
;------------------------------------------------------------------------------ |
|
I_END: |
2537,8 → 2520,6 |
toolbar.height_old rd 1 |
|
procinfo process_information |
scale_button_xy dd ? |
scale_button_letter dd ? ; i.e. 'x1',0 |
align 16 |
path rb 4096 |
window_header rb 256 |