add select word by double click

git-svn-id: svn://kolibrios.org@6239 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
IgorA
2016-02-16 20:19:26 +00:00
parent b28721dd10
commit d112b67c4c
2 changed files with 220 additions and 247 deletions

View File

@@ -1,13 +1,3 @@
struct FileInfoBlock
Function dd ?
Position dd ?
Flags dd ?
Count dd ?
Buffer dd ?
db ?
FileName dd ?
ends
struct symbol
c db ? ; +0 <EFBFBD><EFBFBD><EFBFBD>
col db ? ; +1 <EFBFBD>
@@ -412,22 +402,19 @@ but_find_key_w:
;description:
; <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
align 4
proc but_sumb_invis, edit:dword
push edi
proc but_sumb_invis uses edi, edit:dword
mov edi,dword[edit]
xor ted_mode_invis,1
call draw_but_toolbar
stdcall [ted_draw],edi
pop edi
ret
endp
;description:
; <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>
align 4
proc but_k_words_show, edit:dword
push edi
proc but_k_words_show uses edi, edit:dword
mov edi,dword[edit]
xor ted_mode_color,1
@@ -437,15 +424,13 @@ proc but_k_words_show, edit:dword
@@:
call draw_but_toolbar
stdcall [ted_draw],edi
pop edi
ret
endp
;description:
; <EFBFBD><EFBFBD>/<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᨭ⠪<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
align 4
proc but_synt_show, edit:dword
push edi
proc but_synt_show uses edi, edit:dword
mov edi,[edit]
cmp ted_panel_id,TED_PANEL_NULL
@@ -459,6 +444,5 @@ proc but_synt_show, edit:dword
.e_if:
call EvSize
stdcall [ted_draw],edi
pop edi
ret
endp

View File

@@ -14,11 +14,9 @@ maxSyntaxFileSize equ 410000
TOOLBAR_ICONS_SIZE equ 1200*20
include '../../proc32.inc'
;include '../../config.inc'
include '../../macros.inc'
include '../../dll.inc'
include '../../KOSfuncs.inc'
include '../../develop/libraries/box_lib/load_lib.mac'
include '../../load_img.inc'
include '../../develop/libraries/box_lib/trunk/box_lib.mac'
include '../../system/skincfg/trunk/kglobals.inc'
include '../../system/skincfg/trunk/unpacker.inc'
@@ -33,50 +31,6 @@ include 'wnd_k_words.inc'
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20> <20><EFBFBD><EFBFBD><ECA7AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> libimg.obj
;<3B><><EFBFBD> <20><EFBFBD><EFBFBD><ECA7AE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD> <20><><EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD>:
; - run_file_70 FileInfoBlock
; - image_data dd 0
macro load_image_file path,buf,size
{
;path - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><E0AEAA><EFBFBD><EFBFBD> <20><><EFBFBD><E0A0AC>
if path eqtype '' ;<3B><EFBFBD><E0AEA2><20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><E0AEAA> <20><><EFBFBD><E0A0AC><EFBFBD> path
jmp @f
local .path_str
.path_str db path ;<3B><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD>
db 0
@@:
;32 - <20><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><E2A5AC><EFBFBD> <20><>
copy_path .path_str,[32],file_name,0
else
copy_path path,[32],file_name,0 ;<3B><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><E4A0A9> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD>, <20><><EFBFBD>ࠧ㬥<E0A0A7><E3ACA5><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20>ணࠬ<E0AEA3><E0A0AC><EFBFBD>
end if
stdcall mem.Alloc, dword size ;<3B><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD>
mov [buf],eax
mov [run_file_70.Function], SSF_READ_FILE
mov [run_file_70.Position], 0
mov [run_file_70.Flags], 0
mov [run_file_70.Count], dword size
m2m [run_file_70.Buffer], eax
mov byte[run_file_70+20], 0
mov [run_file_70.FileName], file_name
mcall SF_FILE,run_file_70 ;<3B><><EFBFBD><EFBFBD><EFBFBD><E3A6A0><> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD>
cmp ebx,0xffffffff
je @f
;<3B><><EFBFBD><E0A5A4><20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20> <20><><EFBFBD><E0A5A2><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20><EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> image_data
stdcall dword[img_decode], dword[buf],ebx,0
mov dword[image_data],eax
;<3B><EFBFBD>ࠧ㥬 <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20> <20><><EFBFBD><E0ACA0> rgb
stdcall dword[img_to_rgb2], dword[image_data],dword[buf]
;㤠<><20><EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> image_data
stdcall dword[img_destroy], dword[image_data]
@@:
}
image_data dd 0 ;㪠<><E3AAA0><EFBFBD> <20><> <20><EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD> <20><EFBFBD> <20><EFBFBD><EFBFBD><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD>
icon_tl_sys dd 0 ;㪠<><E3AAA0><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><EFBFBD><E0A0AD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E2A5AC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
align 4
@@ -190,18 +144,18 @@ mov ebp,lib0
stdcall [ksubmenu_add], [main_menu], eax
; init toolbar file
load_image_file 'te_icon.png', bmp_icon,TOOLBAR_ICONS_SIZE*2 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> 2 <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
load_image_file 'te_icon.png', bmp_icon,,,6 ;6 <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov eax,[bmp_icon]
add eax,TOOLBAR_ICONS_SIZE
stdcall img_to_gray, [bmp_icon],eax,(TOOLBAR_ICONS_SIZE)/3
;---------------------------------------------------------------------
; <20><><EFBFBD><> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>
load_image_file 'tl_sys_16.png', icon_tl_sys,54+3*256*13
load_image_file 'tl_sys_16.png', icon_tl_sys
mov eax,dword[icon_tl_sys]
mov dword[tree1.data_img_sys],eax
;---------------------------------------------------------------------
; <20><><EFBFBD><> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E3A7AB>
load_image_file 'tl_nod_16.png', icon_tl_sys,54+3*256*2
load_image_file 'tl_nod_16.png', icon_tl_sys
mov eax,dword[icon_tl_sys]
mov dword[tree1.data_img],eax
;------------------------------------------------------------------------------
@@ -282,11 +236,11 @@ mov ebp,lib0
align 4
align 16
red_win:
call draw_window
align 4
align 16
still:
mcall SF_WAIT_EVENT
cmp dword[exit_code],1
@@ -304,7 +258,7 @@ still:
@@:
jmp still
align 4
align 16
draw_window:
mcall SF_REDRAW,SSF_BEGIN_DRAW
@@ -326,25 +280,39 @@ draw_window:
mcall SF_REDRAW,SSF_END_DRAW
ret
align 4
align 16
mouse:
stdcall [kmainmenu_dispatch_cursorevent], [main_menu]
mcall SF_MOUSE_GET,SSF_WINDOW_POSITION
cmp word[tedit0.wnd.top],ax
jg .no_edit
shr eax,16
cmp word[tedit0.wnd.left],ax
jg .no_edit
mcall SF_MOUSE_GET,SSF_BUTTON_EXT
bt eax,24 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E9A5AB><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
jnc @f
stdcall [ted_but_select_word], tedit0
jmp still
@@:
stdcall [ted_mouse], tedit0
.no_edit:
cmp byte[tedit0.panel_id],TED_PANEL_FIND ;if not panel
jne @f
stdcall [edit_box_mouse], dword edit2
stdcall [edit_box_mouse], edit2
@@:
cmp byte[tedit0.panel_id],TED_PANEL_SYNTAX ;if not panel
jne .mouse_end
jne @f
stdcall [tl_mouse], tree1
.mouse_end:
@@:
jmp still
;---------------------------------------------------------------------
;output:
; ah = symbol
align 4
align 16
proc KeyConvertToASCII uses ebx, table:dword
mov ebx,dword[table] ;convert scan to ascii
ror ax,8
@@ -354,7 +322,7 @@ proc KeyConvertToASCII uses ebx, table:dword
ret
endp
align 4
align 16
key:
mcall SF_KEYBOARD,SSF_GET_CONTROL_KEYS ;66.3 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
xor esi,esi
@@ -405,98 +373,119 @@ key:
stdcall [ted_key], tedit0, conv_tabl,esi
jmp still
align 4
align 16
button:
mcall SF_GET_BUTTON
cmp ah,3
jne @f
call ted_but_new_file
jmp still
@@:
cmp ah,4
jne @f
call ted_but_open_file
jmp still
@@:
cmp ah,5
jne @f
call ted_but_save_file
jmp still
@@:
cmp ah,6
jne @f
stdcall [ted_but_select_word], tedit0
jmp still
@@:
cmp ah,7
jne @f
stdcall [ted_but_cut], tedit0
jmp still
@@:
cmp ah,8
jne @f
stdcall [ted_but_copy], tedit0
jmp still
@@:
cmp ah,9
jne @f
stdcall [ted_but_paste], tedit0
jmp still
@@:
cmp ah,10
jne @f
call ted_but_find
jmp still
@@:
cmp ah,11
jne @f
call but_replace
jmp still
@@:
cmp ah,12
jne @f
call but_find_key_w
jmp still
@@:
cmp ah,13
jne @f
stdcall [ted_but_sumb_upper], tedit0
jmp still
@@:
cmp ah,14
jne @f
stdcall [ted_but_sumb_lover], tedit0
jmp still
@@:
cmp ah,15
jne @f
stdcall [ted_but_reverse], tedit0
jmp still
@@:
cmp ah,16
jne @f
stdcall [ted_but_undo], tedit0
jmp still
@@:
cmp ah,17
jne @f
stdcall [ted_but_redo], tedit0
jmp still
@@:
cmp ah,18
jne @f
stdcall but_sumb_invis, tedit0
jmp still
@@:
cmp ah,19
jne @f
stdcall but_k_words_show, tedit0
jmp still
@@:
cmp ah,20
jne @f
stdcall but_synt_show, tedit0
jmp still
@@:
cmp ah,21
jne @f
stdcall [ted_but_convert_by_table],tedit0,tbl_1251_866
jmp still
@@:
cmp ah,22
jne @f
stdcall [ted_but_convert_by_table],tedit0,tbl_866_1251
jmp still
@@:
cmp ah,200
jne @f
stdcall ted_but_open_syntax, tedit0
jmp still
@@:
cmp ah,201
jne @f
stdcall [ted_but_find_next], tedit0
jmp still
@@:
cmp ah,1