t_edit: new algoritm text selection
img_transform: update program git-svn-id: svn://kolibrios.org@8036 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>⥬<EFBFBD><E2A5AC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥪<EFBFBD> box_lib.obj
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>⥬<EFBFBD><E2A5AC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥪<EFBFBD> box_lib.obj
|
||||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> TextEditor <20><><EFBFBD> Kolibri OS
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> TextEditor <20><><EFBFBD> Kolibri OS
|
||||||
; 䠩<> <20><><EFBFBD><E1ABA5><EFBFBD><EFBFBD> ࠧ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 29.01.2019 IgorA
|
; 䠩<> <20><><EFBFBD><E1ABA5><EFBFBD><EFBFBD> ࠧ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 10.06.2020 IgorA
|
||||||
; <20><> <20><><EFBFBD> <20>ਬ<EFBFBD><E0A8AC><EFBFBD><EFBFBD><EFBFBD> GPL2 <20><>業<EFBFBD><E6A5AD><EFBFBD>
|
; <20><> <20><><EFBFBD> <20>ਬ<EFBFBD><E0A8AC><EFBFBD><EFBFBD><EFBFBD> GPL2 <20><>業<EFBFBD><E6A5AD><EFBFBD>
|
||||||
|
|
||||||
;input:
|
;input:
|
||||||
@@ -337,8 +337,7 @@ proc ted_key, edit:dword, table:dword, control:dword
|
|||||||
stdcall ted_draw,edi
|
stdcall ted_draw,edi
|
||||||
jmp @f
|
jmp @f
|
||||||
.no_red_0:
|
.no_red_0:
|
||||||
call ted_draw_main_cursor
|
call ted_sel_end
|
||||||
mov ted_drag_k,0 ;<3B><><EFBFBD><EFBFBD><EFBFBD>稢<EFBFBD><E7A8A2><EFBFBD> <20>뤥<EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
||||||
@@:
|
@@:
|
||||||
cmp ah,80 ;177 ;Down
|
cmp ah,80 ;177 ;Down
|
||||||
jne @f
|
jne @f
|
||||||
@@ -350,8 +349,7 @@ proc ted_key, edit:dword, table:dword, control:dword
|
|||||||
stdcall ted_draw,edi
|
stdcall ted_draw,edi
|
||||||
jmp @f
|
jmp @f
|
||||||
.no_red_1:
|
.no_red_1:
|
||||||
call ted_draw_main_cursor
|
call ted_sel_end
|
||||||
mov ted_drag_k,0 ;<3B><><EFBFBD><EFBFBD><EFBFBD>稢<EFBFBD><E7A8A2><EFBFBD> <20>뤥<EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
||||||
@@:
|
@@:
|
||||||
cmp ah,75 ;176 ;Left
|
cmp ah,75 ;176 ;Left
|
||||||
jne @f
|
jne @f
|
||||||
@@ -363,8 +361,7 @@ proc ted_key, edit:dword, table:dword, control:dword
|
|||||||
stdcall ted_draw,edi
|
stdcall ted_draw,edi
|
||||||
jmp @f
|
jmp @f
|
||||||
.no_red_2:
|
.no_red_2:
|
||||||
call ted_draw_main_cursor
|
call ted_sel_end
|
||||||
mov ted_drag_k,0 ;<3B><><EFBFBD><EFBFBD><EFBFBD>稢<EFBFBD><E7A8A2><EFBFBD> <20>뤥<EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
||||||
@@:
|
@@:
|
||||||
cmp ah,77 ;179 ;Right
|
cmp ah,77 ;179 ;Right
|
||||||
jne @f
|
jne @f
|
||||||
@@ -376,8 +373,7 @@ proc ted_key, edit:dword, table:dword, control:dword
|
|||||||
stdcall ted_draw,edi
|
stdcall ted_draw,edi
|
||||||
jmp @f
|
jmp @f
|
||||||
.no_red_3:
|
.no_red_3:
|
||||||
call ted_draw_main_cursor
|
call ted_sel_end
|
||||||
mov ted_drag_k,0 ;<3B><><EFBFBD><EFBFBD><EFBFBD>稢<EFBFBD><E7A8A2><EFBFBD> <20>뤥<EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
||||||
@@:
|
@@:
|
||||||
cmp ah,71 ;180 ;Home
|
cmp ah,71 ;180 ;Home
|
||||||
jne @f
|
jne @f
|
||||||
@@ -389,8 +385,7 @@ proc ted_key, edit:dword, table:dword, control:dword
|
|||||||
stdcall ted_draw,edi
|
stdcall ted_draw,edi
|
||||||
jmp @f
|
jmp @f
|
||||||
.no_red_4:
|
.no_red_4:
|
||||||
call ted_draw_main_cursor
|
call ted_sel_end
|
||||||
mov ted_drag_k,0 ;<3B><><EFBFBD><EFBFBD><EFBFBD>稢<EFBFBD><E7A8A2><EFBFBD> <20>뤥<EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
||||||
@@:
|
@@:
|
||||||
cmp ah,79 ;181 ;End
|
cmp ah,79 ;181 ;End
|
||||||
jne @f
|
jne @f
|
||||||
@@ -402,8 +397,7 @@ proc ted_key, edit:dword, table:dword, control:dword
|
|||||||
stdcall ted_draw,edi
|
stdcall ted_draw,edi
|
||||||
jmp @f
|
jmp @f
|
||||||
.no_red_5:
|
.no_red_5:
|
||||||
call ted_draw_main_cursor
|
call ted_sel_end
|
||||||
mov ted_drag_k,0 ;<3B><><EFBFBD><EFBFBD><EFBFBD>稢<EFBFBD><E7A8A2><EFBFBD> <20>뤥<EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
||||||
@@:
|
@@:
|
||||||
cmp ah,73 ;184 ;PageUp
|
cmp ah,73 ;184 ;PageUp
|
||||||
jne @f
|
jne @f
|
||||||
@@ -412,6 +406,7 @@ proc ted_key, edit:dword, table:dword, control:dword
|
|||||||
je @f
|
je @f
|
||||||
call ted_scroll_set_redraw
|
call ted_scroll_set_redraw
|
||||||
stdcall ted_draw,edi
|
stdcall ted_draw,edi
|
||||||
|
mov ted_drag_k,0 ;<3B><><EFBFBD><EFBFBD><EFBFBD>稢<EFBFBD><E7A8A2><EFBFBD> <20>뤥<EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
@@:
|
@@:
|
||||||
cmp ah,81 ;183 ;PageDown
|
cmp ah,81 ;183 ;PageDown
|
||||||
jne @f
|
jne @f
|
||||||
@@ -632,6 +627,29 @@ proc ted_sel_start uses eax ecx
|
|||||||
ret
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
|
;input:
|
||||||
|
; edi = pointer to tedit struct
|
||||||
|
;description:
|
||||||
|
; <20>㭪<EFBFBD><E3ADAA><EFBFBD> <20><><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>⨨ <20>뤥<EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
align 16
|
||||||
|
proc ted_sel_end uses eax
|
||||||
|
mov ted_drag_k,0 ;<3B><><EFBFBD><EFBFBD><EFBFBD>稢<EFBFBD><E7A8A2><EFBFBD> <20>뤥<EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
call ted_is_select
|
||||||
|
or al,al
|
||||||
|
jz @f
|
||||||
|
xor eax,eax
|
||||||
|
mov ted_sel_x0,eax
|
||||||
|
mov ted_sel_x1,eax
|
||||||
|
mov ted_sel_y0,eax
|
||||||
|
mov ted_sel_y1,eax
|
||||||
|
stdcall ted_draw,edi
|
||||||
|
jmp .end_f
|
||||||
|
@@:
|
||||||
|
call ted_draw_main_cursor
|
||||||
|
.end_f:
|
||||||
|
ret
|
||||||
|
endp
|
||||||
|
|
||||||
;input:
|
;input:
|
||||||
; edi = pointer to tedit struct
|
; edi = pointer to tedit struct
|
||||||
;description:
|
;description:
|
||||||
@@ -1396,7 +1414,7 @@ proc ted_convert_sel_text, conv_fun:dword
|
|||||||
@@:
|
@@:
|
||||||
.end_f:
|
.end_f:
|
||||||
popad
|
popad
|
||||||
mov esi,dword[conv_cou]
|
mov esi,[conv_cou]
|
||||||
ret
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
@@ -3223,56 +3241,56 @@ endp
|
|||||||
; edi = pointer to tedit struct
|
; edi = pointer to tedit struct
|
||||||
align 16
|
align 16
|
||||||
proc ted_sel_key_left
|
proc ted_sel_key_left
|
||||||
cmp ted_drag_k,1
|
cmp ted_drag_k,1
|
||||||
je @f
|
je @f
|
||||||
call ted_sel_start
|
call ted_sel_start
|
||||||
@@:
|
@@:
|
||||||
push dx
|
push dx
|
||||||
call ted_cur_move_left
|
call ted_cur_move_left
|
||||||
call ted_sel_move
|
call ted_sel_move
|
||||||
cmp ted_drag_k,1
|
cmp ted_drag_k,1
|
||||||
je @f
|
je @f
|
||||||
mov ted_drag_k,1
|
mov ted_drag_k,1
|
||||||
mov dl,8
|
mov dl,8
|
||||||
@@:
|
@@:
|
||||||
cmp dl,8
|
cmp dl,8
|
||||||
jne @f
|
jne @f
|
||||||
call ted_scroll_set_redraw
|
call ted_scroll_set_redraw
|
||||||
stdcall ted_draw,edi
|
stdcall ted_draw,edi
|
||||||
jmp .end_f
|
jmp .end_f
|
||||||
@@:
|
@@:
|
||||||
stdcall ted_draw_cur_line,edi
|
stdcall ted_draw_cur_line,edi
|
||||||
.end_f:
|
.end_f:
|
||||||
pop dx
|
pop dx
|
||||||
ret
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;input:
|
;input:
|
||||||
; edi = pointer to tedit struct
|
; edi = pointer to tedit struct
|
||||||
align 16
|
align 16
|
||||||
proc ted_sel_key_right
|
proc ted_sel_key_right
|
||||||
cmp ted_drag_k,1
|
cmp ted_drag_k,1
|
||||||
je @f
|
je @f
|
||||||
call ted_sel_start
|
call ted_sel_start
|
||||||
@@:
|
@@:
|
||||||
push dx
|
push dx
|
||||||
call ted_cur_move_right
|
call ted_cur_move_right
|
||||||
call ted_sel_move
|
call ted_sel_move
|
||||||
cmp ted_drag_k,1
|
cmp ted_drag_k,1
|
||||||
je @f
|
je @f
|
||||||
mov ted_drag_k,1
|
mov ted_drag_k,1
|
||||||
mov dl,8
|
mov dl,8
|
||||||
@@:
|
@@:
|
||||||
cmp dl,8
|
cmp dl,8
|
||||||
jne @f
|
jne @f
|
||||||
call ted_scroll_set_redraw
|
call ted_scroll_set_redraw
|
||||||
stdcall ted_draw,edi
|
stdcall ted_draw,edi
|
||||||
jmp .end_f
|
jmp .end_f
|
||||||
@@:
|
@@:
|
||||||
stdcall ted_draw_cur_line,edi
|
stdcall ted_draw_cur_line,edi
|
||||||
.end_f:
|
.end_f:
|
||||||
pop dx
|
pop dx
|
||||||
ret
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
;input:
|
;input:
|
||||||
|
@@ -13,7 +13,7 @@ include '../../../programs/develop/libraries/libs-dev/libimg/libimg.inc'
|
|||||||
include '../../../programs/develop/info3ds/info_fun_float.inc'
|
include '../../../programs/develop/info3ds/info_fun_float.inc'
|
||||||
|
|
||||||
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
|
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
|
||||||
caption db 'Image transform 26.05.20',0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
caption db 'Image transform 10.06.20',0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
offs_zbuf_pbuf equ 24 ;const. from 'zbuffer.inc'
|
offs_zbuf_pbuf equ 24 ;const. from 'zbuffer.inc'
|
||||||
|
|
||||||
@@ -27,6 +27,9 @@ buf2d_size_lt equ dword[edi+4] ;
|
|||||||
buf2d_color equ dword[edi+16] ;梥<> 䮭<> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
buf2d_color equ dword[edi+16] ;梥<> 䮭<> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
buf2d_bits equ byte[edi+20] ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢮ <20><><EFBFBD> <20> 1-<2D> <20><>窥 <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD>
|
buf2d_bits equ byte[edi+20] ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢮ <20><><EFBFBD> <20> 1-<2D> <20><>窥 <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
|
NAV_WND_L equ 145
|
||||||
|
NAV_WND_T equ 1
|
||||||
|
|
||||||
include 'select_points.inc'
|
include 'select_points.inc'
|
||||||
|
|
||||||
IMAGE_TOOLBAR_ICON_SIZE equ 16*16*3
|
IMAGE_TOOLBAR_ICON_SIZE equ 16*16*3
|
||||||
@@ -108,6 +111,7 @@ timer_funct:
|
|||||||
pop ebx eax
|
pop ebx eax
|
||||||
cmp byte[calc],0
|
cmp byte[calc],0
|
||||||
je still
|
je still
|
||||||
|
call draw_nav_wnd
|
||||||
call draw_buffers
|
call draw_buffers
|
||||||
jmp still
|
jmp still
|
||||||
|
|
||||||
@@ -142,6 +146,12 @@ pushad
|
|||||||
@@:
|
@@:
|
||||||
stdcall [buf2d_resize],buf_0,ebx,eax,1
|
stdcall [buf2d_resize],buf_0,ebx,eax,1
|
||||||
call calc_nav_params
|
call calc_nav_params
|
||||||
|
mov eax,[nav_x]
|
||||||
|
call nav_x_corect
|
||||||
|
mov [nav_x],eax
|
||||||
|
mov eax,[nav_y]
|
||||||
|
call nav_y_corect
|
||||||
|
mov [nav_y],eax
|
||||||
mov byte[calc],1
|
mov byte[calc],1
|
||||||
.end0:
|
.end0:
|
||||||
|
|
||||||
@@ -174,12 +184,65 @@ pushad
|
|||||||
add edx,(25 shl 16) ;
|
add edx,(25 shl 16) ;
|
||||||
int 0x40
|
int 0x40
|
||||||
|
|
||||||
|
call draw_nav_wnd
|
||||||
call draw_buffers
|
call draw_buffers
|
||||||
|
|
||||||
mcall SF_REDRAW,SSF_END_DRAW
|
mcall SF_REDRAW,SSF_END_DRAW
|
||||||
popad
|
popad
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
;<3B><>ᮢ<EFBFBD><E1AEA2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樮<EFBFBD><E6A8AE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||||
|
align 4
|
||||||
|
proc draw_nav_wnd
|
||||||
|
cmp dword[buf_i0],0
|
||||||
|
je .end0
|
||||||
|
bt dword[nav_x_min],31
|
||||||
|
jnc .end0
|
||||||
|
bt dword[nav_y_min],31
|
||||||
|
jnc .end0
|
||||||
|
pushad
|
||||||
|
mov ebx,(NAV_WND_L shl 16)
|
||||||
|
add ebx,[nav_wnd_w]
|
||||||
|
mov ecx,(NAV_WND_T shl 16)
|
||||||
|
add ecx,[nav_wnd_h]
|
||||||
|
mcall SF_DRAW_RECT,,,0 ;<3B><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD>
|
||||||
|
mov ecx,[nav_wnd_zoom]
|
||||||
|
mov ebx,[nav_x]
|
||||||
|
neg ebx
|
||||||
|
sar ebx,cl
|
||||||
|
add ebx,NAV_WND_L
|
||||||
|
shl ebx,16
|
||||||
|
add ebx,[buf_0.w]
|
||||||
|
shr bx,cl
|
||||||
|
mov edx,[nav_y]
|
||||||
|
neg edx
|
||||||
|
sar edx,cl
|
||||||
|
add edx,NAV_WND_T
|
||||||
|
shl edx,16
|
||||||
|
add edx,[buf_0.h]
|
||||||
|
shr dx,cl
|
||||||
|
mov ecx,edx
|
||||||
|
mcall ,,,0x404080 ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
|
mov edi,sel_pt
|
||||||
|
@@:
|
||||||
|
mov ecx,[nav_wnd_zoom]
|
||||||
|
mov ebx,[edi+point2d.x]
|
||||||
|
shr ebx,cl
|
||||||
|
add ebx,NAV_WND_L
|
||||||
|
mov edx,[edi+point2d.y]
|
||||||
|
shr edx,cl
|
||||||
|
add edx,NAV_WND_T
|
||||||
|
mov ecx,edx
|
||||||
|
mcall SF_PUT_PIXEL,,,0xffff00
|
||||||
|
add edi,sizeof.point2d
|
||||||
|
cmp edi,sel_pt+4*sizeof.point2d
|
||||||
|
jl @b
|
||||||
|
popad
|
||||||
|
.end0:
|
||||||
|
ret
|
||||||
|
endp
|
||||||
|
|
||||||
align 4
|
align 4
|
||||||
proc draw_buffers
|
proc draw_buffers
|
||||||
pushad
|
pushad
|
||||||
@@ -456,6 +519,37 @@ proc buf_get_mouse_coord
|
|||||||
ret
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
|
;output:
|
||||||
|
; eax - buffer coord X (<28> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> -1)
|
||||||
|
; ebx - buffer coord Y (<28> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> -1)
|
||||||
|
align 4
|
||||||
|
proc nav_wnd_get_mouse_coord
|
||||||
|
mcall SF_MOUSE_GET,SSF_WINDOW_POSITION
|
||||||
|
cmp ax,NAV_WND_T
|
||||||
|
jl .no_buf ;<3B><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> y
|
||||||
|
cmp eax,NAV_WND_L shl 16
|
||||||
|
jl .no_buf ;<3B><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> x
|
||||||
|
mov ebx,eax
|
||||||
|
shr ebx,16
|
||||||
|
|
||||||
|
and eax,0xffff ;<3B><>⠢<EFBFBD>塞 <20><><EFBFBD>न<EFBFBD><E0A4A8><EFBFBD><EFBFBD> y
|
||||||
|
sub ax,NAV_WND_T
|
||||||
|
cmp eax,[nav_wnd_h]
|
||||||
|
jg .no_buf
|
||||||
|
sub bx,NAV_WND_L
|
||||||
|
cmp ebx,[nav_wnd_w]
|
||||||
|
jg .no_buf
|
||||||
|
xchg eax,ebx
|
||||||
|
jmp .end_f
|
||||||
|
.no_buf:
|
||||||
|
xor eax,eax
|
||||||
|
not eax
|
||||||
|
xor ebx,ebx
|
||||||
|
not ebx
|
||||||
|
.end_f:
|
||||||
|
ret
|
||||||
|
endp
|
||||||
|
|
||||||
align 4
|
align 4
|
||||||
mouse_left_d:
|
mouse_left_d:
|
||||||
pushad
|
pushad
|
||||||
@@ -494,7 +588,17 @@ pushad
|
|||||||
cmp ecx,4
|
cmp ecx,4
|
||||||
jl .cycle0
|
jl .cycle0
|
||||||
mov dword[sel_act],-1
|
mov dword[sel_act],-1
|
||||||
|
jmp .end2
|
||||||
.end0:
|
.end0:
|
||||||
|
call nav_wnd_get_mouse_coord
|
||||||
|
cmp eax,-1
|
||||||
|
je .end2
|
||||||
|
mov ecx,[nav_wnd_zoom]
|
||||||
|
shl eax,cl
|
||||||
|
shl ebx,cl
|
||||||
|
stdcall nav_to_point, eax,ebx
|
||||||
|
mov byte[calc],1
|
||||||
|
.end2:
|
||||||
popad
|
popad
|
||||||
ret
|
ret
|
||||||
|
|
||||||
@@ -543,26 +647,12 @@ proc mouse_left_u uses eax ebx
|
|||||||
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD>
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD>
|
||||||
mov eax,[nav_y]
|
mov eax,[nav_y]
|
||||||
sub eax,[mouse_down_y]
|
sub eax,[mouse_down_y]
|
||||||
cmp eax,[nav_y_min]
|
call nav_y_corect
|
||||||
jge @f
|
|
||||||
mov eax,[nav_y_min]
|
|
||||||
@@:
|
|
||||||
cmp eax,[nav_y_max]
|
|
||||||
jle @f
|
|
||||||
mov eax,[nav_y_max]
|
|
||||||
@@:
|
|
||||||
mov [nav_y],eax
|
mov [nav_y],eax
|
||||||
|
|
||||||
mov eax,[nav_x]
|
mov eax,[nav_x]
|
||||||
sub eax,[mouse_down_x]
|
sub eax,[mouse_down_x]
|
||||||
cmp eax,[nav_x_min]
|
call nav_x_corect
|
||||||
jge @f
|
|
||||||
mov eax,[nav_x_min]
|
|
||||||
@@:
|
|
||||||
cmp eax,[nav_x_max]
|
|
||||||
jle @f
|
|
||||||
mov eax,[nav_x_max]
|
|
||||||
@@:
|
|
||||||
mov [nav_x],eax
|
mov [nav_x],eax
|
||||||
.end2:
|
.end2:
|
||||||
mov byte[calc],1
|
mov byte[calc],1
|
||||||
@@ -585,7 +675,7 @@ open_file_size dd 0 ;ࠧ
|
|||||||
|
|
||||||
;<3B><><EFBFBD><EFBFBD><EFBFBD><E1ABA5><EFBFBD> <20><>ࠬ<EFBFBD><E0A0AC> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨 <20><> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD>
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><E1ABA5><EFBFBD> <20><>ࠬ<EFBFBD><E0A0AC> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨 <20><> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD>
|
||||||
align 4
|
align 4
|
||||||
proc calc_nav_params uses eax edi
|
proc calc_nav_params uses eax ecx edi
|
||||||
mov dword[nav_x_max],0
|
mov dword[nav_x_max],0
|
||||||
mov edi,buf_0
|
mov edi,buf_0
|
||||||
mov eax,buf2d_w
|
mov eax,buf2d_w
|
||||||
@@ -623,6 +713,33 @@ proc calc_nav_params uses eax edi
|
|||||||
mov [nav_sy],edi
|
mov [nav_sy],edi
|
||||||
@@:
|
@@:
|
||||||
shr dword[nav_sy],1
|
shr dword[nav_sy],1
|
||||||
|
|
||||||
|
xor ecx,ecx
|
||||||
|
mov eax,[buf_i0.w]
|
||||||
|
@@:
|
||||||
|
inc ecx
|
||||||
|
shr eax,1
|
||||||
|
cmp eax,100
|
||||||
|
jg @b
|
||||||
|
mov [nav_wnd_zoom],ecx
|
||||||
|
xor ecx,ecx
|
||||||
|
mov eax,[buf_i0.h]
|
||||||
|
@@:
|
||||||
|
inc ecx
|
||||||
|
shr eax,1
|
||||||
|
cmp eax,32
|
||||||
|
jg @b
|
||||||
|
cmp [nav_wnd_zoom],ecx
|
||||||
|
jg @f
|
||||||
|
mov [nav_wnd_zoom],ecx
|
||||||
|
@@:
|
||||||
|
mov ecx,[nav_wnd_zoom]
|
||||||
|
mov eax,[buf_i0.w]
|
||||||
|
shr eax,cl
|
||||||
|
mov [nav_wnd_w],eax
|
||||||
|
mov eax,[buf_i0.h]
|
||||||
|
shr eax,cl
|
||||||
|
mov [nav_wnd_h],eax
|
||||||
ret
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
@@ -699,23 +816,42 @@ proc but_open_file
|
|||||||
mov edi,buf_i0
|
mov edi,buf_i0
|
||||||
cmp buf2d_data,0
|
cmp buf2d_data,0
|
||||||
jne .end3
|
jne .end3
|
||||||
|
stdcall getNextPowerOfTwo,[ebx+8]
|
||||||
|
mov buf2d_h,eax
|
||||||
|
mov edx,eax
|
||||||
stdcall getNextPowerOfTwo,[ebx+4]
|
stdcall getNextPowerOfTwo,[ebx+4]
|
||||||
mov buf2d_w,eax
|
mov buf2d_w,eax
|
||||||
m2m buf2d_h,dword[ebx+8] ;+8 = image height
|
cmp edx,[ebx+8]
|
||||||
|
jne @f
|
||||||
cmp eax,[ebx+4]
|
cmp eax,[ebx+4]
|
||||||
jg @f
|
jne @f
|
||||||
m2m buf2d_w,dword[ebx+4]
|
;ᮧ<><E1AEA7><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20><> <20><>室<EFBFBD><E5AEA4><EFBFBD> ࠧ<><E0A0A7>ࠬ
|
||||||
stdcall [buf2d_create_f_img], edi,[open_file_img]
|
stdcall [buf2d_create_f_img], edi,[open_file_img]
|
||||||
jmp .end_1
|
jmp .end_1
|
||||||
@@:
|
@@:
|
||||||
|
;ᮧ<><E1AEA7><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20><> <20>८<EFBFBD>ࠧ<EFBFBD><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ࠧ<><E0A0A7>ࠬ
|
||||||
|
cmp eax,[ebx+4]
|
||||||
|
jge @f
|
||||||
|
mov eax,[ebx+4]
|
||||||
|
mov buf2d_w,eax
|
||||||
|
@@:
|
||||||
sub eax,[ebx+4]
|
sub eax,[ebx+4]
|
||||||
shr eax,1
|
shr eax,1
|
||||||
mov esi,eax
|
mov esi,eax
|
||||||
|
cmp edx,[ebx+8]
|
||||||
|
jge @f
|
||||||
|
mov edx,[ebx+8]
|
||||||
|
mov buf2d_h,edx
|
||||||
|
@@:
|
||||||
|
sub edx,[ebx+8]
|
||||||
|
shr edx,1
|
||||||
stdcall [buf2d_create], edi
|
stdcall [buf2d_create], edi
|
||||||
mov [buf_cop.l],si
|
mov [buf_cop.l],si
|
||||||
stdcall [buf2d_bit_blt], edi, esi,0, buf_cop
|
mov [buf_cop.t],dx
|
||||||
|
stdcall [buf2d_bit_blt], edi, esi,edx, buf_cop
|
||||||
jmp .end_1
|
jmp .end_1
|
||||||
.end3:
|
.end3:
|
||||||
|
;<3B>८<EFBFBD>ࠧ<EFBFBD><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᮧ<><E1AEA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD>
|
||||||
stdcall getNextPowerOfTwo,[ebx+4]
|
stdcall getNextPowerOfTwo,[ebx+4]
|
||||||
cmp eax,[ebx+4]
|
cmp eax,[ebx+4]
|
||||||
jg @f
|
jg @f
|
||||||
@@ -816,13 +952,7 @@ proc nav_to_point, coord_x:dword, coord_y:dword
|
|||||||
mov eax,[buf_0.w]
|
mov eax,[buf_0.w]
|
||||||
shr eax,1
|
shr eax,1
|
||||||
sub eax,[coord_x]
|
sub eax,[coord_x]
|
||||||
cmp eax,[nav_x_min]
|
call nav_x_corect
|
||||||
jge @f
|
|
||||||
mov eax,[nav_x_min]
|
|
||||||
@@:
|
|
||||||
cmp eax,[nav_x_max]
|
|
||||||
jle .end0
|
|
||||||
mov eax,[nav_x_max]
|
|
||||||
.end0:
|
.end0:
|
||||||
mov [nav_x],eax
|
mov [nav_x],eax
|
||||||
;coord y
|
;coord y
|
||||||
@@ -836,17 +966,43 @@ proc nav_to_point, coord_x:dword, coord_y:dword
|
|||||||
mov eax,[buf_0.h]
|
mov eax,[buf_0.h]
|
||||||
shr eax,1
|
shr eax,1
|
||||||
sub eax,[coord_y]
|
sub eax,[coord_y]
|
||||||
|
call nav_y_corect
|
||||||
|
.end1:
|
||||||
|
mov [nav_y],eax
|
||||||
|
ret
|
||||||
|
endp
|
||||||
|
|
||||||
|
;input:
|
||||||
|
; eax - navigation coord x
|
||||||
|
;output:
|
||||||
|
; eax - valid coord x
|
||||||
|
align 4
|
||||||
|
nav_x_corect:
|
||||||
|
cmp eax,[nav_x_min]
|
||||||
|
jge @f
|
||||||
|
mov eax,[nav_x_min]
|
||||||
|
@@:
|
||||||
|
cmp eax,[nav_x_max]
|
||||||
|
jle @f
|
||||||
|
mov eax,[nav_x_max]
|
||||||
|
@@:
|
||||||
|
ret
|
||||||
|
|
||||||
|
;input:
|
||||||
|
; eax - navigation coord y
|
||||||
|
;output:
|
||||||
|
; eax - valid coord y
|
||||||
|
align 4
|
||||||
|
nav_y_corect:
|
||||||
cmp eax,[nav_y_min]
|
cmp eax,[nav_y_min]
|
||||||
jge @f
|
jge @f
|
||||||
mov eax,[nav_y_min]
|
mov eax,[nav_y_min]
|
||||||
@@:
|
@@:
|
||||||
cmp eax,[nav_y_max]
|
cmp eax,[nav_y_max]
|
||||||
jle .end1
|
jle @f
|
||||||
mov eax,[nav_y_max]
|
mov eax,[nav_y_max]
|
||||||
.end1:
|
@@:
|
||||||
mov [nav_y],eax
|
|
||||||
ret
|
ret
|
||||||
endp
|
|
||||||
|
|
||||||
align 4
|
align 4
|
||||||
proc getNextPowerOfTwo uses ebx, n:dword
|
proc getNextPowerOfTwo uses ebx, n:dword
|
||||||
@@ -1412,6 +1568,9 @@ nav_x dd 0 ;⥪
|
|||||||
nav_y dd 0 ;⥪<><E2A5AA>. <20><><EFBFBD><EFBFBD><EFBFBD>. y <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨
|
nav_y dd 0 ;⥪<><E2A5AA>. <20><><EFBFBD><EFBFBD><EFBFBD>. y <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨
|
||||||
nav_sx dd 0 ;<3B><> <20><> x
|
nav_sx dd 0 ;<3B><> <20><> x
|
||||||
nav_sy dd 0 ;<3B><> <20><> y
|
nav_sy dd 0 ;<3B><> <20><> y
|
||||||
|
nav_wnd_w dd 0 ;<3B><>ਭ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨
|
||||||
|
nav_wnd_h dd 0 ;<3B><>ᮠ<EFBFBD><E1AEA0> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨
|
||||||
|
nav_wnd_zoom dd 0
|
||||||
mouse_down_x dd ?
|
mouse_down_x dd ?
|
||||||
mouse_down_y dd ?
|
mouse_down_y dd ?
|
||||||
sel_act dd ? ;<3B><>窠 <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD> ।<><E0A5A4><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
sel_act dd ? ;<3B><>窠 <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD> ।<><E0A5A4><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
Reference in New Issue
Block a user