Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 7574 → Rev 7575

/programs/other/t_edit_synt/te_syntax.asm
1,93 → 1,37
use32
org 0x0
org 0
db 'MENUET01' ;¨¤¥­â¨ä. ¨á¯®«­ï¥¬®£® ä ©«  ¢á¥£¤  8 ¡ ©â
dd 0x01
dd start
dd i_end ; à §¬¥à ¯à¨«®¦¥­¨ï
dd mem
dd stacktop
dd file_name
dd sys_path
dd 1, start, i_end, mem, stacktop, file_name, sys_path
 
MAX_COLOR_WORD_LEN equ 40
BUF_SIZE equ 4096 ;buffer for copy|paste
maxSyntaxFileSize equ 310000
CAPT_PATH_WIDTH equ 50 ;è¨à¨­  ¯®¤¯¨á¨ ¯¥à¥¤ ⥪áâ®¢ë¬ ¯®«¥¬
 
include '../../macros.inc'
include '../../proc32.inc'
include '../../develop/libraries/box_lib/load_lib.mac'
include '../../KOSfuncs.inc'
include '../../load_img.inc'
include '../../develop/libraries/box_lib/trunk/box_lib.mac'
include '../../dll.inc'
include '../../system/skincfg/trunk/kglobals.inc'
include '../../system/skincfg/trunk/unpacker.inc'
include 'te_data.inc'
include 'te_work.inc' ;text work functions
 
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
 
;Œ ªà®á ¤«ï § £à㧪¨ ¨§®¡à ¦¥­¨© á ¨á¯®«ì§®¢ ­¨¥¬ ¡¨¡«¨®â¥ª¨ libimg.obj
;¤«ï ¨á¯®«ì§®¢ ­¨ï ¬ ªà®á  ­ã¦­ë ¯¥à¥¬¥­­ë¥:
; - run_file_70 FileInfoBlock
; - image_data dd 0
macro load_image_file path,buf,size
{
;path - ¬®¦¥â ¡ëâì ¯¥à¥¬¥­­®© ¨«¨ áâப®¢ë¬ ¯ à ¬¥â஬
if path eqtype '' ;¯à®¢¥à塞 § ¤ ­ «¨ áâப®© ¯ à ¬¥âà path
jmp @f
local .path_str
.path_str db path ;ä®à¬¨à㥬 «®ª «ì­ãî ¯¥à¥¬¥­­ãî
db 0
@@:
;32 - áâ ­¤ àâ­ë©  ¤à¥á ¯® ª®â®à®¬ã ¤®«¦¥­ ¡ëâì ¡ãä¥à á á¨á⥬­ë¬ ¯ã⥬
copy_path .path_str,[32],file_name,0
else
copy_path path,[32],file_name,0 ;ä®à¬¨à㥬 ¯®«­ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥­¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ®­ ¢ ®¤­®© ¯ ¯ª¥ á ¯à®£à ¬¬®©
end if
stdcall mem.Alloc, dword size ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¨§®¡à ¦¥­¨ï
mov [buf],eax
mov [run_file_70.Function], 0
mov [run_file_70.Position], 0
mov [run_file_70.Flags], 0
mov [run_file_70.Count], dword size
mov [run_file_70.Buffer], eax
mov byte[run_file_70+20], 0
mov [run_file_70.FileName], file_name
mcall 70,run_file_70 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥­¨ï
cmp ebx,0xffffffff
je @f
;®¯à¥¤¥«ï¥¬ ¢¨¤ ¨§®¡à ¦¥­¨ï ¨ ¯¥à¥¢®¤¨¬ ¥£® ¢® ¢à¥¬¥­­ë© ¡ãä¥à image_data
stdcall dword[img_decode], dword[buf],ebx,0
mov dword[image_data],eax
;¯à¥®¡à §ã¥¬ ¨§®¡à ¦¥­¨¥ ª ä®à¬ âã rgb
stdcall dword[img_to_rgb2], dword[image_data],dword[buf]
;㤠«ï¥¬ ¢à¥¬¥­­ë© ¡ãä¥à image_data
stdcall dword[img_destroy], dword[image_data]
@@:
}
image_data dd 0 ;㪠§ â¥«ì ­  ¢à¥¬¥­­ãî ¯ ¬ïâì. ¤«ï ­ã¦¥­ ¯à¥®¡à §®¢ ­¨ï ¨§®¡à ¦¥­¨ï
icon_tl_sys dd 0 ;㪠§ â¥«ì ­  ¯ ¬ïâì ¤«ï åà ­¥­¨ï á¨á⥬­ëå ¨ª®­®ª
 
align 4
start:
mcall 48,3,sc,sizeof.system_colors
mcall SF_STYLE_SETTINGS,SSF_GET_COLORS,sc,sizeof.system_colors
 
mcall 68,11
mcall SF_SYS_MISC,SSF_HEAP_INIT
or eax,eax
jz button.exit
 
mcall 66,1,1 ;scan code
mcall 40,0x27
mcall SF_KEYBOARD,SSF_SET_INPUT_MODE,1 ;scan code
mcall SF_SET_EVENTS_MASK,0xC0000027
 
;-------------------------------------------------
mov ecx,maxSyntaxFileSize
stdcall mem.Alloc,ecx
mov [options_file],eax
mov [options_file_end],eax
add [options_file_end],ecx
 
 
load_libraries l_libs_start,load_lib_end
 
;¯à®¢¥àª  ­  ᪮«ìª® 㤠筮 § £ã§¨« áì ¡¨¡«¨®â¥ª 
97,26 → 41,23
@@:
 
;---------------------------------------------------------------------
stdcall dword[tl_data_init],dword tree1
stdcall [tl_data_init], tree1
 
; ç¨â ¥¬ ä ©« á ªãàá®à ¬¨ ¨ «¨­¨ï¬¨
load_image_file 'tl_sys_16.png', icon_tl_sys,54+3*256*13
mov eax,dword[icon_tl_sys]
mov dword[tree1.data_img_sys],eax
include_image_file '..\..\media\log_el\trunk\tl_sys_16.png', icon_tl_sys
mov eax,[icon_tl_sys]
mov [tree1.data_img_sys],eax
;---------------------------------------------------------------------
; ç¨â ¥¬ bmp ä ©« á ¨ª®­ª ¬¨ 㧫®¢
load_image_file 'tl_nod_16.png', icon_tl_sys,54+3*256*2
mov eax,dword[icon_tl_sys]
mov dword[tree1.data_img],eax
include_image_file '..\t_edit\tl_nod_16.png', icon_tl_sys
mov eax,[icon_tl_sys]
mov [tree1.data_img],eax
;------------------------------------------------------------------------------
copy_path fn_syntax_dir,sys_path,file_name,0 ;¡¥à¥¬ ¯ãâì ª ¯ ¯ª¥ á ä ©« ¬¨ ᨭ⠪á¨á 
mov eax,70
mov ebx,tree_file_struct
int 0x40
mcall SF_FILE,tree_file_struct
 
cmp ebx,-1
je .end_dir_init
 
mov eax,dir_mem
add eax,32+4+1+3+4*6+8
mov ecx,ebx
123,12 → 64,13
@@:
cmp byte[eax],'.' ;䨫ìâà㥬 ä ©«ë á ¨¬¥­ ¬¨ '.' ¨ '..'
je .filter
stdcall dword[tl_node_add],tree1,0x10000,eax ;1*2^16 - £¤¥ 1 ­®¬¥à ¨ª®­ª¨ á ª­¨£®©
stdcall dword[tl_cur_next],tree1
stdcall [tl_node_add],tree1,0x10000,eax ;1*2^16 - £¤¥ 1 ­®¬¥à ¨ª®­ª¨ á ª­¨£®©
stdcall [tl_cur_next],tree1
.filter:
add eax,304
loop @b
stdcall dword[tl_cur_beg],tree1 ;áâ ¢¨¬ ªãàá®à ­  ­ ç «® ᯨ᪠
stdcall [tl_cur_beg],tree1 ;áâ ¢¨¬ ªãàá®à ­  ­ ç «® ᯨ᪠
or dword[tree1.style], tl_cursor_pos_limited ;®£à ­¨ç¨¢ ¥¬ ¤¢¨¦¥­¨¥ ªãàá®à  ¢ ¯à¥¤¥« å ᯨ᪠
.end_dir_init:
 
;--- load color option file ---
141,7 → 83,7
 
align 4
still:
mcall 10
mcall SF_WAIT_EVENT
 
cmp al,1 ;¨§¬. ¯®«®¦¥­¨¥ ®ª­ 
jz red_win
158,23 → 100,20
align 4
draw_window:
pushad
mcall 12,1
mcall SF_REDRAW,SSF_BEGIN_DRAW
 
mov edx,[sc.work]
or edx,0x33000000
mov edi,hed
mcall 0,<10,555>,<10,333>
mcall SF_CREATE_WINDOW,<10,555>,<10,333>
 
mcall 9,procinfo,-1
mcall SF_THREAD_INFO,procinfo,-1
mov edi,tedit0 ;§­ ç¥­¨¥ edi ­ã¦­® ¤«ï EvSize ¨ ted_wnd_t
call EvSize
 
mov eax,8 ;ª­®¯ª 
mov ebx,5*65536+90
mov ecx,195*65536+20
mov edx,200
mov esi,[sc.work_button];0xd0
mcall
mcall SF_DEFINE_BUTTON,5*65536+90,195*65536+20,200
 
;mov eax,8
mov ebx,100*65536+85
mov ecx,195*65536+20
mov edx,201
181,24 → 120,17
mov esi,0xd00000
mcall
 
mov eax,4 ;à¨á®¢ ­¨¥ ⥪áâ 
mov ebx,10*65536+200
mov ecx,[sc.work_button_text]
or ecx,0x80000000
mov edx,txt122
mcall
mcall SF_DRAW_TEXT,10*65536+200,,txt_load_f
 
mov ebx,105*65536+200
mov ecx,0xffff00
or ecx,0x80000000
mov edx,txt148
mcall
mcall ,105*65536+200,,txt_save_f
 
mov ebx,195*65536+10
mov ecx,[sc.work_text]
or ecx,0x80000000
mov edx,txt_inp_file
int 0x40
mcall ,195*65536+10,,txt_inp_file
 
add ebx,20
mov edx,txt_out_file
215,11 → 147,41
stdcall [scrollbar_ver_draw],dword ws_dir_lbox
stdcall [ted_draw], tedit0
 
mcall 12,2
mcall SF_REDRAW,SSF_END_DRAW
popad
ret
 
MIN_M_WND_H equ 100 ;¬¨­¨¬ «ì­ ï ¢ëá®â  £« ¢­®£® ®ª­ 
;input:
; edi = pointer to tedit struct
align 4
EvSize:
pushad
mov ebx,ted_scr_h
mov esi,ted_scr_w
 
m2m ted_wnd_w,[procinfo.client_box.width] ;áâ ¢¨¬ è¨à¨­ã ®ª­  । ªâ®à  à ¢­®© è¨à¨­¥ ¢á¥£® ®ª­ 
mov eax,ted_wnd_l
sub ted_wnd_w,eax ;®â­¨¬ ¥¬ ®âáâ㯠᫥¢ 
movzx eax,word[esi+sb_offs_size_x]
sub ted_wnd_w,eax ;®â­¨¬ ¥¬ è¨à¨­ã ¢¥àâ. áªà®««¨­£ 
 
m2m ted_wnd_h,[procinfo.client_box.height] ;áâ ¢¨¬ ¢ëá®âã ®ª­  । ªâ®à  à ¢­®© ¢ëá®â¥ ¢á¥£® ®ª­ 
cmp ted_wnd_h,MIN_M_WND_H
jg @f
mov ted_wnd_h,MIN_M_WND_H
@@:
 
movzx eax,word[ebx+sb_offs_size_y]
sub ted_wnd_h,eax ;®â­¨¬ ¥¬ ¢ëá®âã £®à¨§. áªà®««¨­£ 
mov eax,ted_wnd_t
sub ted_wnd_h,eax ;®â­¨¬ ¥¬ ®âáâ㯠ᢥàåã
 
stdcall [ted_init_scroll_bars], tedit0,2
popad
ret
 
align 4
mouse:
stdcall [tl_mouse],tree1
stdcall [edit_box_mouse],edit1
242,10 → 204,10
 
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]
test al,3 ;[Shift]
jz @f
mov cl,2
or esi,KM_SHIFT
264,8 → 226,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 [edit1.flags],10b;ed_focus ; ¥á«¨ ­¥ ¢ 䮪ãá¥, ¢ë室¨¬
283,7 → 245,7
cmp ah,69 ;[Pause Break]
je still
 
stdcall KeyConvertToASCII, dword conv_tabl
stdcall KeyConvertToASCII, conv_tabl
stdcall [edit_box_key],edit1
jmp still
@@:
293,14 → 255,8
 
align 4
button:
; cmp [menu_active],1 ;¥á«¨ ­ ¦ «¨ ¬¥­î, â® á­ ç «  ॠªæ¨ï ­  ¬¥­î
; jne @f ;mouse.menu_bar_1
; mov [menu_active],0
; jmp still
; @@:
mcall SF_GET_BUTTON
 
mcall 17 ;¯®«ãç¨âì ª®¤ ­ ¦ â®© ª­®¯ª¨
 
cmp ah,200
jne @f
call but_OpenSyntax
313,13 → 269,12
cmp ah,1
jne still
.exit:
;push eax
 
stdcall mem.Free,[options_file]
stdcall mem.Free,[unpac_mem]
 
stdcall [tl_data_clear], tree1
stdcall [ted_delete], tedit0
mcall -1 ;¢ë室 ¨§ ¯à®£à ¬¬ë
mcall SF_TERMINATE_PROCESS ;¢ë室 ¨§ ¯à®£à ¬¬ë
 
align 4
but_OpenSyntax:
373,16 → 328,14
;@@:
ret
 
hed db 'TextEditor syntax file converter 10.11.15',0 ;¯®¤¯¨áì ®ª­ 
hed db 'TextEditor syntax file converter 15.01.19',0 ;¯®¤¯¨áì ®ª­ 
conv_tabl rb 128 ; â ¡«¨æ  ¤«ï ª®­¢¥àâ¨à®¢ ­¨ï scan-ª®¤  ¢ ascii-ª®¤
 
txt122 db '‡ £à. ä ©«',0
txt148 db '‘®åà. ä ©«',0
txt_load_f db '‡ £à. ä ©«',0
txt_save_f db '‘®åà. ä ©«',0
txt_inp_file db 'ˆáå. ä ©«:',0
txt_out_file db '‚ëå. ä ©«:',0
 
txt_no_kpack db 'Žâªà뢠¥¬ë© ä ©« ᦠâ Kpack-®¬.',13,10,'„«ï à ¡®âë á ä ©«®¬ à á¯ ªã©â¥ ¥£® ¨á¯®«ì§ãï á¨á⥬­ãî ¯à®£à ¬¬ã Kpack.',13,10,' ¡®â  ᮠᦠâ묨 ä ©« ¬¨ ¯®ª  ­¥ ¯®¤¤¥à¦¨¢ ¥âáï.',0
 
head_f_i:
head_f_l db 'System error',0
err_message_found_lib_0 db 'Sorry I cannot found library ',39,'box_lib.obj',39,0
396,9 → 349,11
lib1 l_libs lib_name_1, sys_path, file_name, system_dir_1, err_message_found_lib_1, head_f_l, import_libimg,err_message_import_1, head_f_i
load_lib_end:
 
IncludeIGlobals
 
align 16
i_end:
IncludeUGlobals
procinfo process_information
rb 1024
thread: