0,0 → 1,266 |
mouse: |
mcall 18,7 |
cmp [active_process],eax |
jne still |
mcall 37,7 |
mov [mouse_scroll_data],eax |
; test eax,eax |
; jnz .continue_2 |
mcall 37,2 |
cmp [mouse_keys],eax |
je @f |
mov [mouse_keys],eax |
mov [mouse_keys_delta],0 |
jmp .continue_2 |
@@: |
mov [mouse_keys_delta],1 |
.continue_2: |
mcall 37,1 |
mov [mouse_position],eax |
; mcall 18,7 |
; cmp [active_process],eax |
; jne still |
mov eax,[mouse_position] |
test eax,0x80000000 |
jnz still |
test eax,0x8000 |
jnz still |
mov ebx,eax |
shr ebx,16 |
shl eax,16 |
shr eax,16 |
cmp [mouse_keys_delta],0 |
je @f |
cmp [scroll_pointer],0 |
jne .check_scroll_bar_left |
@@: |
cmp ebx,[window_width] |
ja still |
cmp eax,[window_high] |
ja still |
.check_scroll_bar_left: |
xor ecx,ecx |
mov cx,[left_panel_y.start_y] |
cmp [mouse_keys_delta],0 |
je @f |
cmp [scroll_pointer],1 |
je .check_scroll_bar_left_event |
cmp [scroll_pointer],2 |
je .check_scroll_bar_right_event |
@@: |
cmp ax,cx |
jbe .other |
add cx,[left_panel_y.size_y] |
cmp ax,cx |
jae .other |
mov cx,[left_panel_x.start_x] |
cmp bx,cx |
jbe .other |
add cx,[left_panel_x.size_x] |
cmp bx,cx |
jae .check_scroll_bar_right |
mov edx,[left_folder_block] |
cmp edx,[max_panel_line] |
jbe @f |
.check_scroll_bar_left_event: |
mov [scroll_bar_event],0 |
call check_scroll_left_event |
cmp [scroll_bar_event],0 |
jne still |
mov [scroll_bar_event],0 |
call check_scroll_bar_left_event |
cmp [scroll_bar_event],0 |
jne still ;.continue |
; cmp [scroll_pointer],1 |
; je .continue |
@@: |
call check_left_panel_mouse_event |
; jmp still |
.continue: |
; mov [temp_edx],mouse_left_panel |
; call mouse.draw_data |
; mov [scroll_pointer],0 |
; mov [mouse_keys_delta_1],0 |
jmp still |
|
.check_scroll_bar_right: |
xor ecx,ecx |
mov cx,[right_panel_x.start_x] |
cmp bx,cx |
jbe .other |
add cx,[right_panel_x.size_x] |
cmp bx,cx |
jae .other |
mov edx,[right_folder_block] |
cmp edx,[max_panel_line] |
jbe @f |
.check_scroll_bar_right_event: |
mov [scroll_bar_event],0 |
call check_scroll_right_event |
cmp [scroll_bar_event],0 |
jne still |
mov [scroll_bar_event],0 |
call check_scroll_bar_right_event |
cmp [scroll_bar_event],0 |
jne still ;.continue_1 |
@@: |
call check_right_panel_mouse_event |
.continue_1: |
; mov [temp_edx],mouse_right_panel |
; call mouse.draw_data |
jmp still |
|
.other: |
; mov [temp_edx],mouse_other_panel |
; call mouse.draw_data |
jmp still |
|
;.draw_data: |
; pusha |
; mov [temp_eax],eax |
; mcall 13,<190,400>,<3,15>,0x0 |
; xor ecx,ecx |
; mov cx,[mouse_position.x] |
; mcall 47,0x80000, ,<200, 5>,0xffffff |
; mov cx,[mouse_position.y] |
; mcall 47,0x80000, ,<300, 5>,0xffffff |
; mcall 47,0x80000,[mouse_keys],<400, 5>,0xffffff |
; mcall 4,<500,5>,0xffffff,[temp_edx],5 |
; mcall 47,0x80000,[mouse_keys],<200, 5>,0xffffff |
; popa |
; ret |
;--------------------------------------------------------------------- |
check_left_panel_mouse_event: |
; cmp [scroll_pointer],0 |
; je @f |
mov [scroll_pointer],0 |
; ret |
@@: |
cmp [mouse_keys_delta],0 |
jz .start |
cmp [mouse_keys],0 |
jz .end |
.start: |
sub ax,[left_panel_y.start_y] |
mov ebx,10 |
xor edx,edx |
div ebx |
imul eax,10 |
cmp [select_panel_counter],0 |
je @f |
mov [select_panel_counter],0 |
mov [mouse_keys_delta_1],0 |
push eax |
call draw_right_panel |
pop eax |
jmp .continue |
@@: |
cmp [left_start_draw_cursor_line],ax |
jne @f |
cmp [mouse_keys],0 |
jnz .continue |
cmp [mouse_keys_delta],0 |
je .enter |
@@: |
mov [mouse_keys_delta_1],0 |
.continue: |
imul ebx,[left_folder_block],10 |
cmp eax,ebx |
jb @f |
sub ebx,10 |
mov [left_start_draw_cursor_line],bx |
jmp .continue_1 |
@@: |
mov [left_start_draw_cursor_line],ax |
.continue_1: |
call draw_left_panel |
.end: |
ret |
.enter: |
cmp [mouse_keys_delta_1],1 |
je .enter_1 |
mcall 26,9 |
add eax,[mouse_key_delay] |
mov [mouse_keys_tick],eax |
mov [mouse_keys_delta_1],1 |
jmp .continue_1 |
.enter_1: |
mov [mouse_keys_delta_1],0 |
mcall 26,9 |
cmp eax,[mouse_keys_tick] |
jbe @f |
ret |
@@: |
add esp,4 |
; call draw_left_panel |
jmp key_28.1 |
;--------------------------------------------------------------------- |
check_right_panel_mouse_event: |
; cmp [scroll_pointer],0 |
; je @f |
mov [scroll_pointer],0 |
; ret |
@@: |
cmp [mouse_keys_delta],0 |
jz .start |
cmp [mouse_keys],0 |
jz .end |
.start: |
sub ax,[right_panel_y.start_y] |
mov ebx,10 |
xor edx,edx |
div ebx |
imul eax,10 |
cmp [select_panel_counter],1 |
je @f |
mov [select_panel_counter],1 |
mov [mouse_keys_delta_1],0 |
push eax |
call draw_left_panel |
pop eax |
jmp .continue |
@@: |
cmp [right_start_draw_cursor_line],ax |
jne @f |
cmp [mouse_keys],0 |
jnz .continue |
cmp [mouse_keys_delta],0 |
je .enter |
@@: |
mov [mouse_keys_delta_1],0 |
; cmp [mouse_keys_delta],1 |
; je .continue |
; cmp [right_start_draw_cursor_line],ax |
; je .enter |
.continue: |
imul ebx,[right_folder_block],10 |
cmp eax,ebx |
jb @f |
sub ebx,10 |
mov [right_start_draw_cursor_line],bx |
jmp .continue_1 |
@@: |
mov [right_start_draw_cursor_line],ax |
.continue_1: |
call draw_right_panel |
.end: |
ret |
.enter: |
cmp [mouse_keys_delta_1],1 |
je .enter_1 |
mcall 26,9 |
add eax,[mouse_key_delay] |
mov [mouse_keys_tick],eax |
mov [mouse_keys_delta_1],1 |
jmp .continue_1 |
.enter_1: |
mov [mouse_keys_delta_1],0 |
mcall 26,9 |
cmp eax,[mouse_keys_tick] |
jbe @f |
ret |
@@: |
add esp,4 |
; call draw_right_panel |
jmp key_28.1 |
;--------------------------------------------------------------------- |