/programs/develop/libraries/box_lib/trunk/t_edit.mac |
---|
1,6 → 1,6 |
; ¬ ªà®á ¤«ï á¨á⥬®© ¡¨¡«¨®â¥ª¨ box_lib.obj |
; í«¥¬¥â TextEditor ¤«ï Kolibri OS |
; ä ©« ¯®á«¥¤¨© à § ¨§¬¥ï«áï 28.06.2014 IgorA |
; ä ©« ¯®á«¥¤¨© à § ¨§¬¥ï«áï 20.01.2016 IgorA |
; ª®¤ ¯à¨¬¥¥ GPL2 «¨æ¥§¨ï |
;input: |
2124,7 → 2124,7 |
;description: |
; ãªæ¨ï ¤«ï ¯®¨áª ¨ ¢ë¤¥«¥¨ï ¯®¤á¢¥ç¥ëå á«®¢ |
align 4 |
proc ted_text_find_sel_color |
proc ted_text_find_sel_color uses eax ebx ecx esi |
locals |
begPos dd ? ; ç «ì ï ¯®§¨æ¨ï |
endPos dd ? ;ª®¥ç ï ¯®§¨æ¨ï |
2131,7 → 2131,6 |
find db ? ; ©¤¥® / ¥ ©¤¥® |
f_color db ? ;¨¤¥ªá 梥⠩¤¥®£® á«®¢ |
endl |
push eax ebx ecx esi |
;eax = word_n ⥪ã騩 ®¬¥à (¯®§¨æ¨ï) ¯à®¢¥à塞®£® á«®¢ ¢ ᯨ᪥ |
;ebx = ¤«ï à §ëå 楫¥© |
;ecx = l_pos ¯®á«¥¤¨© ®¬¥à (¯®§¨æ¨ï) ¯®¤å®¤ï饣® á«®¢ ¢ ᯨ᪥ |
2169,7 → 2168,7 |
mov dword[begPos],edx ;bP=i; |
mov esi,1 |
align 4 |
.wh_2b: ;while(1){ |
call ted_iterat_next |
2211,6 → 2210,7 |
call isalnum |
jae .if_3e |
mov byte[find],0 |
jmp .if_4e |
.if_3e: |
btr bx,3 ;4-1 |
2230,6 → 2230,7 |
call isalnum |
jae .if_5e |
mov byte[find],0 |
jmp .if_6e |
.if_5e: |
btr bx,4 ;5-1 |
2306,7 → 2307,6 |
mov edx,ted_tex |
@@: |
pop esi ecx ebx eax |
ret |
endp |
2315,43 → 2315,41 |
;output: |
; cf=1 if symbol is... |
align 4 |
tab_all_num db 0,0,0,0,0,0,11111111b,11b,11111110b,0xff,0xff,111b,11111110b,0xff,0xff,111b,0,0,0,0,0,0,0,0;,0,0,0,0,0,0,0,0 - tab_alpha_0,0,0,0,0,0,0,0 |
tab_alpha db 0,0,0,0,0,0,0,0,11111110b,0xff,0xff,111b,11111110b,0xff,0xff,111b,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
tab_all_num db 0,0,0,0,0,0,0xff,11b,11111110b,0xff,0xff,10000111b,11111110b,0xff,0xff,111b,0,0,0,0,0,0,0,0;,0,0,0,0,0,0,0,0 - tab_alpha_0,0,0,0,0,0,0,0 |
tab_alpha db 0,0,0,0,0,0,0,0,11111110b,0xff,0xff,10000111b,11111110b,0xff,0xff,111b,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
;output: |
; cf=1 ¥á«¨ ¢ [edx] ¡ãª¢ , æ¨äà ¨«¨ '_' |
align 4 |
isalnum: |
push eax ebx |
mov al,byte[edx] ;al=offset |
shr al,3 |
and eax,11111b |
movzx eax,byte[edx] ;al=offset |
shr eax,3 |
lea ebx,[tab_all_num] |
add ebx,eax |
mov ah,byte[ebx] |
mov al,byte[edx] ;al=bit |
movzx ax,byte[edx] ;al=bit |
and ax,111b |
mov bx,word[ebx] |
btr bx,ax |
bt word[ebx],ax |
pop ebx eax |
ret |
;output: |
; cf=1 ¥á«¨ ¢ [edx] ¡ãª¢ ¨«¨ '_' |
align 4 |
isalpha: |
push eax ebx |
mov al,byte[edx] ;al=offset |
shr al,3 |
and eax,11111b |
movzx eax,byte[edx] ;al=offset |
shr eax,3 |
lea ebx,[tab_alpha] |
add ebx,eax |
mov ah,byte[ebx] |
mov al,byte[edx] ;al=bit |
movzx ax,byte[edx] ;al=bit |
and ax,111b |
mov bx,word[ebx] |
btr bx,ax |
bt word[ebx],ax |
pop ebx eax |
ret |
align 4 |
proc ted_show_help_f1, edit:dword |
push eax edx edi |
proc ted_show_help_f1 uses eax edx edi, edit:dword |
mov edi,dword[edit] |
call ted_get_pos_by_cursor |
2369,7 → 2367,6 |
@@: |
;call ted_draw_main_cursor |
call ted_draw_help_f1 |
pop edi edx eax |
ret |
endp |
/programs/other/t_edit/t_button.inc |
---|
43,7 → 43,7 |
call On_NewFile |
.ret_f: |
mov byte[openfile_path],0 |
mcall 71,1,hed |
mcall SF_SET_CAPTION,1,hed |
pop ebx eax |
ret |
142,17 → 142,25 |
@@: |
cmp [OpenDialog_data.status],1 |
jne .ret_f |
stdcall auto_open_syntax,[OpenDialog_data.openfile_path] |
stdcall [ted_open_file], tedit0,run_file_70,openfile_path |
call ted_messages_after_open_file |
.ret_f: |
popad |
ret |
proc auto_open_syntax, of_path:dword |
pushad |
;¨é¥¬ ¥áâì «¨ ä ©« ¯®¤á¢¥âª¨ ¤«ï ®âªàë¢ ¥¬®£® ⥪á⮢®£® ä ©« |
mov esi,[OpenDialog_data.openfile_path] |
mov esi,[of_path] |
call strlen |
mov edx,openfile_path |
mov edx,[of_path] |
add edx,eax |
.f_beg: |
cmp byte[edx],'.' |
je .found |
dec edx |
cmp edx,openfile_path |
cmp edx,[of_path] |
jg .f_beg |
.found: |
inc edx ;edx - 㪠§ ⥫ì à áè¨à¥¨¥ ®âªàë⮣® ä ©« |
169,17 → 177,11 |
jmp .end_0 |
.ok: ;®âªàë⨥ ä ©« ¯®¤á¢¥âª¨ ¢ § ¢¨á¨¬®á⨠®â ©¤¥®£® à áè¨à¥¨ï |
sub ebx,32 |
;mov ecx,ebx |
;mcall 71,1 |
call open_unpac_synt_file |
stdcall open_unpac_synt_file,ebx |
.end_0: |
stdcall [ted_open_file], tedit0,run_file_70,openfile_path |
call ted_messages_after_open_file |
.ret_f: |
popad |
ret |
endp |
;description: |
; äãªæ¨ï á®åà ¥¨ï ä ©« á ¢ë§®¢®¬ ®ª ¤¨ «®£ |
269,8 → 271,7 |
jne @f |
stdcall dword[tl_node_get_data], tree1 |
mov [fn_col_option],eax |
mov ebx,eax |
call open_unpac_synt_file |
stdcall open_unpac_synt_file,eax |
cmp ebx,-1 |
je @f |
282,13 → 283,13 |
;®âªàë⨥ ¨ à ᯠª®¢ª ä ©« ¯®¤á¢¥âª¨ á¨â ªá¨á |
;input: |
; ebx - 㪠§ â¥«ì ¨¬ï ®âªàë¢ ¥¬®£® ä ©« á¨â ªá¨á (¡¥§ ¯ã⨠¨ ¯ ¯ª¨ info) |
; f_name - 㪠§ â¥«ì ¨¬ï ®âªàë¢ ¥¬®£® ä ©« á¨â ªá¨á (¡¥§ ¯ã⨠¨ ¯ ¯ª¨ info) |
;output: |
; ebx - ç¨á«® ¯à®ç¨â ëå ¡ ©â ¨§ ä ©« |
; ecx - à §àãè ¥âáï |
align 4 |
open_unpac_synt_file: |
push eax edi esi |
proc open_unpac_synt_file uses eax edi esi, f_name:dword |
mov ebx,[f_name] |
mov edi,last_open_synt_file |
stdcall strcmp,ebx,edi ;áà ¢¨¢ ¥¬ ¨¬ï ¯®¤ª«î祮£® ä ©« á ¯®¤ª«îç¥ë¬ à ¥¥ ä ©«®¬ |
test eax,eax |
296,14 → 297,14 |
;ª®¯¨à㥬 ¨¬ï ¯®¤ª«î祮£® ä ©« (¤«ï ¨§¡¥¦ ¨ï ¯®¢â®àëå ¯®¤ª«î票©) |
mov esi,ebx |
mov ecx,32 |
mov ecx,32/4 |
cld |
rep movsb |
rep movsd |
copy_path ebx,fn_syntax_dir,syntax_path,0 |
copy_path syntax_path,sys_path,file_name,0 |
mov edi, tedit0 |
mov [run_file_70.Function], 0 |
mov [run_file_70.Function], SSF_READ_FILE |
mov [run_file_70.Position], 0 |
mov [run_file_70.Flags], 0 |
mov ecx, ted_syntax_file_size |
311,7 → 312,7 |
m2m dword[run_file_70.Buffer], ted_syntax_file |
mov byte[run_file_70+20], 0 |
mov [run_file_70.FileName], file_name |
mcall 70, run_file_70 |
mcall SF_FILE, run_file_70 |
cmp ebx,-1 |
jne .end_0 |
call ted_on_init_synt_err |
337,8 → 338,8 |
.end_unpack: |
stdcall [ted_init_syntax_file], tedit0 |
@@: |
pop esi edi eax |
ret |
endp |
;description: |
; ¢ë§®¢/áªàë⨥ ¯ ¥«¨ ¯®¨áª |
403,7 → 404,7 |
cmp byte[wnd_k_words_run],0 |
jne @f |
pushad |
mcall 51,1,prop_start,thread_coords |
mcall SF_CREATE_THREAD,1,prop_start,thread_coords |
popad |
@@: |
ret |
/programs/other/t_edit/t_edit.asm |
---|
3,11 → 3,7 |
use32 |
org 0x0 |
db 'MENUET01' ;¨¤¥â¨ä. ¨á¯®«ï¥¬®£® ä ©« ¢á¥£¤ 8 ¡ ©â |
dd 0x01 |
dd start |
dd i_end ; à §¬¥à ¯à¨«®¦¥¨ï |
dd mem |
dd stacktop |
dd 1, start, i_end, mem, stacktop |
dd file_name ; command line |
dd sys_path |
21,6 → 17,7 |
;include '../../config.inc' |
include '../../macros.inc' |
include '../../dll.inc' |
include '../../KOSfuncs.inc' |
include '../../develop/libraries/box_lib/load_lib.mac' |
include '../../develop/libraries/box_lib/trunk/box_lib.mac' |
include '../../system/desktop/trunk/kglobals.inc' |
59,7 → 56,7 |
stdcall mem.Alloc, dword size ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¨§®¡à ¦¥¨ï |
mov [buf],eax |
mov [run_file_70.Function], 0 |
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 |
66,7 → 63,7 |
m2m [run_file_70.Buffer], eax |
mov byte[run_file_70+20], 0 |
mov [run_file_70.FileName], file_name |
mcall 70,run_file_70 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥¨ï |
mcall SF_FILE,run_file_70 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥¨ï |
cmp ebx,0xffffffff |
je @f |
;®¯à¥¤¥«ï¥¬ ¢¨¤ ¨§®¡à ¦¥¨ï ¨ ¯¥à¥¢®¤¨¬ ¥£® ¢® ¢à¥¬¥ë© ¡ãä¥à image_data |
84,14 → 81,14 |
align 4 |
start: |
mcall 48,3,sc,sizeof.sys_colors_new |
mcall SF_STYLE_SETTINGS,SSF_GET_COLORS,sc,sizeof.sys_colors_new |
mcall 68,11 |
mcall SF_SYS_MISC,SSF_HEAP_INIT |
or eax,eax |
jz button.exit |
mcall 66,1,1 ;scan code |
mcall 40,0xC0000027 |
mcall SF_KEYBOARD,SSF_SET_INPUT_MODE,1 ;scan code |
mcall SF_SET_EVENTS_MASK,0xC0000027 |
mov esi,file_name |
call strlen |
107,7 → 104,7 |
.test_lib_open: |
cmp dword [ebp+ll_struc_size-4],0 |
jz @f |
mcall -1 ;exit not correct |
mcall SF_TERMINATE_PROCESS ;exit not correct |
@@: |
add ebp,ll_struc_size |
cmp ebp,load_lib_end |
209,7 → 206,7 |
mov dword[tree1.data_img],eax |
;------------------------------------------------------------------------------ |
copy_path fn_syntax_dir,sys_path,file_name,0 ;¡¥à¥¬ ¯ãâì ª ¯ ¯ª¥ á ä ©« ¬¨ á¨â ªá¨á |
mcall 70,tree_file_struct |
mcall SF_FILE,tree_file_struct |
cmp ebx,-1 |
je .end_dir_init |
272,13 → 269,13 |
@@: |
;--- load color option file --- |
mov ebx,dword[fn_col_option] |
call open_unpac_synt_file |
stdcall open_unpac_synt_file,[fn_col_option] |
;--- get cmd line --- |
cmp byte[openfile_path+3],0 ;openfile_path |
je @f ;if file names exist |
mov esi,openfile_path |
stdcall auto_open_syntax,esi |
call strlen ;eax=strlen |
call but_no_msg_OpenFile |
@@: |
291,7 → 288,7 |
align 4 |
still: |
mcall 10 |
mcall SF_WAIT_EVENT |
cmp dword[exit_code],1 |
je button.exit |
309,28 → 306,24 |
align 4 |
draw_window: |
mcall 12,1 |
mcall SF_REDRAW,SSF_BEGIN_DRAW |
mov edx,[sc.work] |
or edx,0x73000000 |
mov edi,hed |
mcall 0,dword[wnd_s_pos],dword[wnd_s_pos+4] |
mcall SF_CREATE_WINDOW,dword[wnd_s_pos],dword[wnd_s_pos+4],,,hed |
mcall 9,procinfo,-1 |
mcall SF_THREAD_INFO,procinfo,-1 |
mov edi,tedit0 ;§ 票¥ edi 㦮 ¤«ï EvSize ¨ ted_wnd_t |
call EvSize |
movzx ebx,word[procinfo.client_box.width] |
inc bx |
mcall 13,,ted_wnd_t ;¢¥à娩 ¯àאַ㣮«ì¨ª, ¤«ï ®ç¨á⪨ ¢¥à奩 ¯ ¥«¨ |
mcall SF_DRAW_RECT,,ted_wnd_t ;¢¥à娩 ¯àאַ㣮«ì¨ª, ¤«ï ®ç¨á⪨ ¢¥à奩 ¯ ¥«¨ |
call draw_but_toolbar |
stdcall [kmainmenu_draw], [main_menu] |
stdcall [ted_draw], tedit0 |
mcall 12,2 |
mcall SF_REDRAW,SSF_END_DRAW |
ret |
align 4 |
363,7 → 356,7 |
align 4 |
key: |
mcall 66,3 ;66.3 ¯®«ãç¨âì á®áâ®ï¨¥ ã¯à ¢«ïîé¨å ª« ¢¨è |
mcall SF_KEYBOARD,SSF_GET_CONTROL_KEYS ;66.3 ¯®«ãç¨âì á®áâ®ï¨¥ ã¯à ¢«ïîé¨å ª« ¢¨è |
xor esi,esi |
mov ecx,1 |
test al,0x03 ;[Shift] |
385,8 → 378,8 |
or esi,KM_NUMLOCK |
@@: |
mcall 26,2,,conv_tabl ;26.2 ¯®«ãç¨âì à ᪫ ¤ªã ª« ¢¨ âãàë |
mcall 2 ;¯®«ãç ¥¬ ª®¤ ¦ ⮩ ª« ¢¨è¨ |
mcall SF_SYSTEM_GET,SSF_KEYBOARD_LAYOUT,,conv_tabl ;26.2 ¯®«ãç¨âì à ᪫ ¤ªã ª« ¢¨ âãàë |
mcall SF_GET_KEY |
stdcall [tl_key], tree1 |
test word [edit2.flags],10b;ed_focus ; ¥á«¨ ¥ ¢ 䮪ãá¥, ¢ë室¨¬ |
415,7 → 408,7 |
align 4 |
button: |
mcall 17 ;¯®«ãç¨âì ª®¤ ¦ ⮩ ª®¯ª¨ |
mcall SF_GET_BUTTON |
cmp ah,3 |
jne @f |
call ted_but_new_file |
531,7 → 524,7 |
stdcall [ted_delete], tedit0 |
stdcall [tl_data_clear], tree1 |
mcall -1 ;¢ë室 ¨§ ¯à®£à ¬¬ë |
mcall SF_TERMINATE_PROCESS ;¢ë室 ¨§ ¯à®£à ¬¬ë |
edit2 edit_box TED_PANEL_WIDTH-1, 0, 20, 0xffffff, 0xff80, 0xff0000, 0xff, 0x4080, 300, buf_find, mouse_dd, 0 |