forked from KolibriOS/kolibrios
d7b0867c02
v.1.0 rс3 12.06.2011 git-svn-id: svn://kolibrios.org@1951 a494cfbc-eb01-0410-851d-a64ba20cac60
427 lines
9.2 KiB
PHP
427 lines
9.2 KiB
PHP
;---------------------------------------------------------------------
|
||
key: ; 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,151 ; i - file information
|
||
je kinfo
|
||
cmp ah,152 ; o - application options
|
||
je check_key_O ;k_option
|
||
cmp ah,159 ; s - sort mode
|
||
je k_sort_directory
|
||
cmp ah,145 ; w - wallpaper
|
||
je k_background
|
||
cmp ah,183 ; * - scaling to window
|
||
je scaling
|
||
cmp ah,139 ; 0 - scaling to window
|
||
je scaling
|
||
cmp ah,202 ; "-" - zoom minus
|
||
je zoom_minus
|
||
cmp ah,140 ; "-" - zoom minus
|
||
je zoom_minus
|
||
cmp ah,206 ; "+" - zoom plus
|
||
je zoom_plus
|
||
cmp ah,141 ; "+" - zoom plus
|
||
je zoom_plus
|
||
cmp ah,171 ; "\" - zoom 100%
|
||
je no_scaling
|
||
|
||
cmp ah,72 ; up arrow
|
||
je key_up_arrow
|
||
cmp ah,80 ; down arrow
|
||
je key_down_arrow
|
||
cmp ah,75 ; left arrow
|
||
je key_left_arrow
|
||
cmp ah,77 ; right arrow
|
||
je key_right_arrow
|
||
|
||
cmp ah,28 ; Enter
|
||
je full_screen
|
||
cmp ah,187 ; F1
|
||
je select_menu ;key_alt_down
|
||
|
||
cmp ah,42
|
||
je key_shift_up
|
||
cmp ah,54
|
||
je key_shift_up
|
||
cmp ah,170
|
||
je key_shift_down
|
||
cmp ah,182
|
||
je key_shift_down
|
||
cmp ah,29
|
||
je key_ctrl_up
|
||
cmp ah,157
|
||
je key_ctrl_down
|
||
cmp ah,56
|
||
je key_alt_up
|
||
cmp ah,184
|
||
je key_alt_down
|
||
|
||
jmp still
|
||
.extended_key:
|
||
mov [extended_key],0
|
||
mov [current_key_code],ah
|
||
; push eax
|
||
; mcall 26,9
|
||
; mov [timer_counter],eax
|
||
; pop eax
|
||
|
||
; mov al,ah
|
||
; cmp al,130 ; 1
|
||
; je kfile
|
||
; cmp al,131 ; 2
|
||
; je kopen
|
||
; cmp al,132 ; 3
|
||
; je kinfo
|
||
; cmp al,133 ; 4
|
||
; je kbgrd
|
||
cmp ah,73
|
||
je move_to_left
|
||
cmp ah,81
|
||
je move_to_right
|
||
cmp ah,71
|
||
je left_limit
|
||
cmp ah,79
|
||
je right_limit
|
||
cmp ah,181 ; / - zoom 100%
|
||
je no_scaling
|
||
|
||
cmp ah,72 ; up arrow
|
||
je key_up_arrow
|
||
cmp ah,80 ; down arrow
|
||
je key_down_arrow
|
||
cmp ah,75 ; left arrow
|
||
je key_left_arrow
|
||
cmp ah,77 ; right arrow
|
||
je key_right_arrow
|
||
|
||
cmp ah,28 ; Enter
|
||
je full_screen
|
||
|
||
cmp ah,183 ; Print Screen - Slides Show
|
||
je slide_show.3
|
||
|
||
cmp ah,29
|
||
je key_ctrl_up
|
||
cmp ah,157
|
||
je key_ctrl_down
|
||
cmp ah,56
|
||
je key_alt_up
|
||
cmp ah,184
|
||
je key_alt_down
|
||
jmp still
|
||
;---------------------------------------------------------------------
|
||
key_shift_up:
|
||
mov [shift_flag],1
|
||
jmp still
|
||
;---------------------------------------------------------------------
|
||
key_shift_down:
|
||
mov [shift_flag],0
|
||
jmp still
|
||
;---------------------------------------------------------------------
|
||
key_ctrl_up:
|
||
mov [ctrl_flag],1
|
||
jmp still
|
||
;---------------------------------------------------------------------
|
||
key_ctrl_down:
|
||
mov [ctrl_flag],0
|
||
jmp still
|
||
;---------------------------------------------------------------------
|
||
key_alt_up:
|
||
mov [alt_flag],1
|
||
jmp still
|
||
;---------------------------------------------------------------------
|
||
key_alt_down:
|
||
mov [alt_flag],0
|
||
jmp still
|
||
;---------------------------------------------------------------------
|
||
check_key_O:
|
||
cmp [ctrl_flag],0
|
||
jne kfile
|
||
jmp k_option
|
||
;---------------------------------------------------------------------
|
||
move_to_left:
|
||
xor eax,eax
|
||
cmp [load_file_number],eax
|
||
je still
|
||
dec [load_file_number]
|
||
jmp right_limit.2
|
||
;----------------------------------------
|
||
move_to_right:
|
||
mov eax,[load_directory_pointer]
|
||
mov eax,[eax+4]
|
||
test eax,eax
|
||
jz @f
|
||
dec eax
|
||
@@:
|
||
cmp [load_file_number],eax
|
||
je still
|
||
inc [load_file_number]
|
||
jmp right_limit.2
|
||
;----------------------------------------
|
||
left_limit:
|
||
xor eax,eax
|
||
jmp right_limit.1
|
||
;----------------------------------------
|
||
right_limit:
|
||
mov eax,[load_directory_pointer]
|
||
mov eax,[eax+4]
|
||
test eax,eax
|
||
jz @f
|
||
dec eax
|
||
@@:
|
||
.1:
|
||
cmp [load_file_number],eax
|
||
je 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
|
||
.3:
|
||
mov al,[old_key_code]
|
||
mov ah,[current_key_code]
|
||
mov [old_key_code],ah
|
||
cmp al,ah
|
||
jne still ;key.extended_key ;still
|
||
.still:
|
||
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
|
||
@@:
|
||
jmp 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 key.extended_key
|
||
;---------------------------------------------------------------------
|
||
slide_show:
|
||
mov eax,[load_directory_pointer]
|
||
cmp [eax+4],dword 1
|
||
jbe still
|
||
mcall 26,9
|
||
cmp [timer],eax
|
||
jbe .1
|
||
jmp .still
|
||
.red:
|
||
call draw_window
|
||
.still:
|
||
mcall 23,10
|
||
cmp eax,1 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ?
|
||
je .red
|
||
cmp eax,2 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ?
|
||
je .key ; <20><><EFBFBD><EFBFBD> <20><> - <20><> key
|
||
cmp eax,3 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ?
|
||
je .button ; <20><><EFBFBD><EFBFBD> <20><> - <20><> button
|
||
; mcall 68,1
|
||
jmp slide_show
|
||
;-------------------------------------------
|
||
.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 still
|
||
cmp ah,185 ; Space
|
||
je 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 START.exit
|
||
.noclose:
|
||
cmp ah,2
|
||
je still
|
||
jmp slide_show
|
||
;-------------------------------------------
|
||
.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 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 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 ;slide_show
|
||
@@:
|
||
call draw_window
|
||
; jmp slide_show
|
||
.3:
|
||
mcall 26,9
|
||
add eax,[slide_show_delay] ;500
|
||
mov [timer],eax
|
||
jmp slide_show
|
||
;---------------------------------------------------------------------
|
||
key_up_arrow:
|
||
mov eax,[scroll_bar_data_vertical.ar_offset]
|
||
mov ebx,scroll_bar_data_vertical.position
|
||
cmp [ebx],eax
|
||
jbe @f
|
||
sub [ebx],eax
|
||
jmp .1
|
||
@@:
|
||
xor eax,eax
|
||
cmp [ebx],eax
|
||
je still
|
||
mov [ebx],eax
|
||
.1:
|
||
call drawimage
|
||
call draw_scrollbars
|
||
jmp still
|
||
;---------------------------------------------------------------------
|
||
key_down_arrow:
|
||
mov ecx,[scroll_bar_data_vertical.ar_offset]
|
||
mov ebx,scroll_bar_data_vertical.position
|
||
mov eax,[scroll_bar_data_vertical.max_area]
|
||
sub eax,[scroll_bar_data_vertical.cur_area]
|
||
cmp [ebx],eax
|
||
je still
|
||
push eax
|
||
sub eax,ecx
|
||
cmp [ebx],eax
|
||
pop eax
|
||
jae @f
|
||
add [ebx],ecx
|
||
jmp key_up_arrow.1
|
||
@@:
|
||
mov [ebx],eax
|
||
jmp key_up_arrow.1
|
||
;---------------------------------------------------------------------
|
||
key_left_arrow:
|
||
mov eax,[scroll_bar_data_horizontal.ar_offset]
|
||
mov ebx,scroll_bar_data_horizontal.position
|
||
cmp [ebx],eax
|
||
jbe @f
|
||
sub [ebx],eax
|
||
jmp key_up_arrow.1
|
||
@@:
|
||
xor eax,eax
|
||
cmp [ebx],eax
|
||
je still
|
||
mov [ebx],eax
|
||
jmp key_up_arrow.1
|
||
;---------------------------------------------------------------------
|
||
key_right_arrow:
|
||
mov ecx,[scroll_bar_data_horizontal.ar_offset]
|
||
mov ebx,scroll_bar_data_horizontal.position
|
||
mov eax,[scroll_bar_data_horizontal.max_area]
|
||
sub eax,[scroll_bar_data_horizontal.cur_area]
|
||
cmp [ebx],eax
|
||
je still
|
||
push eax
|
||
sub eax,ecx
|
||
cmp [ebx],eax
|
||
pop eax
|
||
jae @f
|
||
add [ebx],ecx
|
||
jmp key_up_arrow.1
|
||
@@:
|
||
mov [ebx],eax
|
||
|
||
; xor eax,eax
|
||
; mov ax,[scroll_bar_data_horizontal.size_x]
|
||
; sub eax,[scroll_bar_data_horizontal.btn_high]
|
||
; sub eax,[scroll_bar_data_horizontal.btn_high]
|
||
; sub eax,[scroll_bar_data_horizontal.run_size]
|
||
; mov [scroll_bar_data_horizontal.position2],eax
|
||
jmp key_up_arrow.1
|
||
;---------------------------------------------------------------------
|