0,0 → 1,446 |
;--------------------------------------------------------------------- |
full_screen: |
xor eax,eax |
mov [Repeat_N],eax |
|
xor eax,eax |
mov [press_Enter_flag],al |
|
mov eax,[zoom_factors] |
mov [zoom_factors_old],eax |
|
mov eax,[scaling_mode] |
mov [scaling_mode_old],eax |
|
call get_window_param_1 |
mov eax,[window_start_x] |
mov [window_start_x_old],eax |
mov eax,[window_start_y] |
mov [window_start_y_old],eax |
mov eax,[window_high] |
mov [window_high_old],eax |
mov eax,[window_width] |
mov [window_width_old],eax |
;---------------------------------------- |
; get current work area |
mcall 48,5 |
mov [work_area_LR_old],eax |
mov [work_area_TB_old],ebx |
;---------------------------------------- |
mov eax,[soi] |
test eax,eax |
jz still |
mov eax,scaling_mode |
xor ebx,ebx |
mov [eax],ebx ;dword 0 |
mov [zoom_factors],dword zoom_factors.1 |
|
mcall 14 |
xor ebx,ebx |
xor ecx,ecx |
mov edx,eax |
shr edx,16 |
xor esi,esi |
mov si,ax |
inc ax |
mov [wa_high_1],ax |
mov [wa_high_2],ax |
shr eax,16 |
inc ax |
mov [wa_width_1],ax |
mov [wa_width_2],ax |
mcall 67 |
;---------------------------------------- |
; set max work area |
mov ecx,edx |
mov dx,si |
mcall 48,6 |
;---------------------------------------- |
mov eax,[fill_color] |
mov [fill_color_old],eax |
xor eax,eax |
mov [fill_color],eax |
|
jmp .still |
;---------------------------------------- |
.red: |
call .draw_window |
.still: |
cmp [RAW1_flag],1 |
je .animation_handler |
mcall 10 |
cmp eax,1 ; ïåðåðèñîâàòü îêíî ? |
je .red ; åñëè äà - íà ìåòêó red |
cmp eax,2 ; íàæàòà êëàâèøà ? |
je .key ; åñëè äà - íà key |
cmp eax,3 ; íàæàòà êíîïêà ? |
je .button ; åñëè äà - íà button |
jmp .still ; åñëè äðóãîå ñîáûòèå - â íà÷àëî öèêëà |
;---------------------------------------- |
.animation_handler: |
mcall 23,1 |
; pusha |
; mcall 26,9 |
; cmp [Animation_timer],eax |
; ja @f |
; call animation_handler.draw_image |
;@@: |
; popa |
cmp eax,1 ; ïåðåðèñîâàòü îêíî ? |
je .red ; åñëè äà - íà ìåòêó red |
cmp eax,2 ; íàæàòà êëàâèøà ? |
je .key ; åñëè äà - íà key |
cmp eax,3 ; íàæàòà êíîïêà ? |
je .button ; åñëè äà - íà button |
mcall 26,9 |
cmp [Animation_timer],eax |
ja .animation_handler |
|
mov al,[Disposal_Method] |
cmp al,2 |
jne @f |
call restore_background |
jmp .first_frame |
@@: |
cmp al,3 |
jne @f |
call restore_previous_frame |
@@: |
.first_frame: |
|
call copy_next_frame |
mov [no_fill],1 |
call .draw_image |
mov [no_fill],0 |
; call animation_handler.draw_image |
jmp .still |
;---------------------------------------- |
.key: |
mcall 2 |
cmp [extended_key],1 |
je .extended_key |
test al, al |
jnz .still |
cmp ah, 0xE0 |
jne @f |
mov [extended_key],1 |
jmp .still |
@@: |
cmp ah,1 ; Esc |
je .restore_main_window |
cmp ah,156 ; Enter |
je .restore_main_window_1 |
jmp .still |
;---------------------------------------- |
.extended_key: |
mov [extended_key],0 |
mov [current_key_code],ah |
cmp ah,73 |
je move_to_left_1 |
cmp ah,81 |
je move_to_right_1 |
cmp ah,71 |
je left_limit_1 |
cmp ah,79 |
je right_limit_1 |
|
cmp ah,156 ; Enter |
je .restore_main_window_1 |
|
cmp ah,183 ; Print Screen - Slides Show |
je slide_show_1.3 |
jmp .still |
;---------------------------------------- |
.button: |
mcall 17 |
cmp ah,1 ; button id=1 ? |
; je START.exit |
; jmp .still ;red_1 |
jne .still |
.exit: |
call restore_work_area |
jmp START.exit |
;--------------------------------------------------------------------- |
.restore_main_window_1: |
cmp [press_Enter_flag],1 |
je .restore_main_window |
inc [press_Enter_flag] |
jmp .still |
;--------------------------------------------------------------------- |
.restore_main_window: |
call restore_work_area |
|
mov eax,[zoom_factors_old] |
mov [zoom_factors],eax |
|
mov eax,[scaling_mode_old] |
mov [scaling_mode],eax |
|
mov ebx,[window_start_x_old] |
mov ecx,[window_start_y_old] |
mov edx,[window_width_old] |
mov esi,[window_high_old] |
mcall 67 |
|
; call get_window_param |
mov eax,[fill_color_old] |
mov [fill_color],eax |
|
xor eax,eax |
mov [Repeat_N],eax |
|
; mcall 15,3 |
|
mov [redraw_wallpaper_flag],1 |
jmp still ;red_1 |
;--------------------------------------------------------------------- |
.draw_window: |
mcall 12,1 |
mcall 0,<0,800>,<0,600>,0x41000000,0,0 |
; call get_window_param_1 |
; mcall 8,0,0,1,0 |
call .draw_image |
mcall 12,2 |
ret |
;--------------------------------------------------------------------- |
.draw_image: |
mcall 14 |
inc ax |
mov [wa_high_1],ax |
mov [wa_high_2],ax |
shr eax,16 |
inc ax |
mov [wa_width_1],ax |
mov [wa_width_2],ax |
mov [image_start_coordinates],0 |
mov [background_color],0 |
call scaling.1 |
mov [background_color],0xffffff |
ret |
;--------------------------------------------------------------------- |
get_window_param_1: |
mcall 9, procinfo, -1 |
mov eax,[ebx+34] |
mov [window_start_x],eax |
mov eax,[ebx+38] |
mov [window_start_y],eax |
mov eax,[ebx+46] |
mov [window_high],eax |
mov eax,[ebx+42] |
mov [window_width],eax |
mov eax,[ebx+70] |
mov [window_status],eax |
ret |
;---------------------------------------- |
restore_work_area: |
; restore old work area |
mov ecx,[work_area_LR_old] |
mov edx,[work_area_TB_old] |
mcall 48,6 |
ret |
;--------------------------------------------------------------------- |
move_to_left_1: |
xor eax,eax |
cmp [load_file_number],eax |
je full_screen.still |
dec [load_file_number] |
jmp right_limit_1.2 |
;---------------------------------------- |
move_to_right_1: |
mov eax,[load_directory_pointer] |
mov eax,[eax+4] |
test eax,eax |
jz @f |
dec eax |
@@: |
cmp [load_file_number],eax |
je full_screen.still |
inc [load_file_number] |
jmp right_limit_1.2 |
;---------------------------------------- |
left_limit_1: |
xor eax,eax |
jmp right_limit_1.1 |
;---------------------------------------- |
right_limit_1: |
mov eax,[load_directory_pointer] |
mov eax,[eax+4] |
test eax,eax |
jz @f |
dec eax |
@@: |
.1: |
cmp [load_file_number],eax |
je full_screen.still |
mov [load_file_number],eax |
.2: |
imul ebx,[load_file_number],304 |
add ebx,32+40 |
add ebx,[load_directory_pointer] |
|
mov esi,string |
mov edi,plugin_pach |
call copy_file_path |
|
mov esi,plugin_pach |
mov edi,string |
mov ecx,4096/4 |
cld |
rep movsd |
|
; jmp kopen |
mov [open_file_flag],0 |
mov ecx,-1 |
call getappinfo |
call load_image |
test eax,eax |
jnz kopen_1.err |
|
call convert |
|
call load_directory.copy_dir_path |
|
; call get_window_param |
; test [window_status],1b |
; jz @f ;draw_still |
; mov [no_draw_window],1 |
;*** call draw_other |
; mov [no_draw_window],0 |
; jmp .3 |
; |
;@@: |
; call .draw_window |
call full_screen.draw_image |
.3: |
mov al,[old_key_code] |
mov ah,[current_key_code] |
mov [old_key_code],ah |
cmp al,ah |
jne full_screen.still ;key.extended_key ;still |
.still: |
mcall 2 |
cmp [extended_key],1 |
je .extended_key |
test al, al |
jnz full_screen.still |
cmp ah, 0xE0 |
jne @f |
mov [extended_key],1 |
jmp .still |
@@: |
jmp full_screen.still |
.extended_key: |
mov [extended_key],0 |
mov [current_key_code],ah |
jmp .3 |
.4: |
mov ah,[current_key_code] |
mov [old_key_code],ah |
jmp full_screen.extended_key ;key.extended_key |
;--------------------------------------------------------------------- |
slide_show_1: |
mov eax,[load_directory_pointer] |
cmp [eax+4],dword 1 |
jbe full_screen.still |
mcall 26,9 |
cmp [timer],eax |
jbe .1 |
jmp .still |
.red: |
call full_screen.draw_window |
.still: |
mcall 23,10 |
cmp eax,1 |
je .red |
cmp eax,2 |
je .key |
cmp eax,3 |
je .button |
; mcall 68,1 |
jmp slide_show_1 |
;------------------------------------------- |
.key: |
mcall 2 |
cmp [extended_key],1 |
je .extended_key |
test al, al |
jnz .still |
cmp ah, 0xE0 |
jne @f |
mov [extended_key],1 |
jmp .still |
@@: |
cmp ah,1 ; Esc |
je full_screen.still |
cmp ah,185 ; Space |
je full_screen.still |
jmp .still |
.extended_key: |
mov [extended_key],0 |
mov [current_key_code],ah |
jmp .still |
;------------------------------------------- |
.button: ; button |
mov eax,17 ; get id |
mcall |
cmp ah,1 ; button id=1 ? |
je full_screen.exit ;START.exit |
.noclose: |
cmp ah,2 |
je full_screen.still |
jmp slide_show_1 |
;------------------------------------------- |
.1: |
; mcall 26,9 |
; add eax,[slide_show_delay] ;500 |
; mov [timer],eax |
|
mov eax,[load_directory_pointer] |
mov eax,[eax+4] |
test eax,eax |
jz @f |
dec eax |
@@: |
cmp [load_file_number],eax |
je full_screen.still |
inc [load_file_number] |
imul ebx,[load_file_number],304 |
add ebx,32+40 |
add ebx,[load_directory_pointer] |
|
mov esi,string |
mov edi,plugin_pach |
call copy_file_path |
|
mov esi,plugin_pach |
mov edi,string |
mov ecx,4096/4 |
cld |
rep movsd |
mov [open_file_flag],0 |
mov ecx,-1 |
call getappinfo |
call load_image |
|
test eax,eax |
jnz kopen_1.err |
|
call convert |
; call get_window_param |
; test [window_status],1b |
; jz @f ;draw_still |
; mov [no_draw_window],1 |
; call draw_other |
; mov [no_draw_window],0 |
; jmp slide_show_1 ;.3 |
;@@: |
; call draw_window |
call load_directory.copy_dir_path |
call full_screen.draw_image |
; jmp slide_show_1 |
.3: |
mcall 26,9 |
add eax,[slide_show_delay] ;500 |
mov [timer],eax |
jmp slide_show_1 |
;--------------------------------------------------------------------- |