update 'kol_f_edit'

git-svn-id: svn://kolibrios.org@1705 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
IgorA 2010-11-16 23:25:56 +00:00
parent b416c6fac4
commit 45c092e796
9 changed files with 333 additions and 92 deletions

Binary file not shown.

View File

@ -251,6 +251,7 @@ proc get_code_auto, p_obj:dword
jae @f jae @f
call get_code_auto_data_el call get_code_auto_data_el
call get_code_auto_data_dop call get_code_auto_data_dop
call get_code_auto_data_libs
@@: @@:
insert_nl insert_nl
popad popad
@ -320,17 +321,13 @@ proc get_code_auto_data_el
cmp byte[ebx],C_ED cmp byte[ebx],C_ED
jne @f jne @f
;1,2,3,4,...,6,...8,...,10 - w,x,y,col_fon,...,col_frame,...,col_txt,...,txt ;1,2,3,4,...,6,...8,...,10 - w,x,y,col_fon,...,col_frame,...,col_txt,...,txt
stdcall get_obj_text_col,ebx,0 stdcall insert_text_prop, ebx,0
stdcall str_len,edx
stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
stdcall insert_text, txt_ebox stdcall insert_text, txt_ebox
mov ecx,1 mov ecx,1
.prop: .prop:
insert_sp insert_sp
stdcall get_obj_text_col,ebx,ecx stdcall insert_text_prop, ebx,ecx
stdcall str_len,edx
stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
insert_coma insert_coma
inc ecx inc ecx
cmp ecx,10 cmp ecx,10
@ -363,6 +360,105 @@ proc get_code_auto_data_el
ret ret
endp endp
;äàííûå äëÿ áèáëèîòåê
align 4
proc get_code_auto_data_libs
pushad
insert_nl ;îòñòóï äëÿ ôîðìàòèðîâàíèÿ
stdcall dword[tl_node_poi_get_info], 0,tree2
pop esi
.beg_iterat:
cmp esi,0
je .find_no
stdcall dword[tl_node_poi_get_data], esi,tree2
pop ebx ;ïîëó÷àåì äàííûå óçëà
cmp ebx,0
je .find_no
cmp byte[ebx],C_LIB
jne @f
;0,1,2,3,4,5 - l_nam,s_dir,i_met,...
stdcall insert_text, txt_align_4
stdcall insert_text_prop, ebx,2
stdcall insert_text, txt_d_poi
insert_nl
call get_code_lib_table
@@:
stdcall dword[tl_node_poi_get_next_info], esi,tree2
pop esi ;ïåðåõîäèì ê ñëåäóùåìó óçëó
jmp .beg_iterat
.find_no:
popad
ret
endp
;input:
; esi
align 4
get_code_lib_table:
pushad
mov bl,byte[esi+2]
mov edi,esi
stdcall dword[tl_node_poi_get_data], esi,tree2
pop edx ;ïîëó÷åíèå äàííûõ ðîäèòåëüñêîãî îáúåêòà
cmp edx,0
je @f
@@:
stdcall dword[tl_node_poi_get_next_info], esi,tree2
pop esi ;ïåðåõîäèì ê ñëåäóùåìó óçëó
cmp esi,0
je @f
cmp byte[esi+2],bl ;lev
jle @f
stdcall dword[tl_node_poi_get_data], esi,tree2
pop ecx ;ïîëó÷àåì äàííûå óçëà
cmp ecx,0
je @f
cmp byte[ecx],C_IFN
jne @b
;âñòàâêà óêàçàòåëÿ íà ôóíêöèþ
insert_tab
stdcall insert_text_prop, ecx,0
stdcall insert_text, txt_dd
stdcall insert_text_prop, edx,3 ;ïðèñòàâêà ê ôóíêöèè
stdcall insert_text_prop, ecx,0
insert_nl
jmp @b
@@:
stdcall insert_text, txt_dd_0_0
mov esi,edi
@@:
stdcall dword[tl_node_poi_get_next_info], esi,tree2
pop esi ;ïåðåõîäèì ê ñëåäóùåìó óçëó
cmp esi,0
je @f
cmp byte[esi+2],bl ;lev
jle @f
stdcall dword[tl_node_poi_get_data], esi,tree2
pop ecx ;ïîëó÷àåì äàííûå óçëà
cmp ecx,0
je @f
cmp byte[ecx],C_IFN
jne @b
;âñòàâêà èìåíè èìïîðòèðîâàííîé ôóíêöèè
insert_tab
stdcall insert_text_prop, edx,3 ;ïðèñòàâêà ê ôóíêöèè
stdcall insert_text_prop, ecx,0
stdcall insert_text, txt_db
stdcall insert_text, txt_str_beg
stdcall insert_text_prop, ecx,1
stdcall insert_text, txt_str_end
insert_nl
jmp @b
@@:
popad
ret
; ;
align 4 align 4
proc get_code_auto_data_dop proc get_code_auto_data_dop
@ -626,6 +722,7 @@ proc get_code_window, p_obj:dword
insert_nl insert_nl
;or edx,0x33000000 ;or edx,0x33000000
insert_tab
stdcall insert_text, txt_or stdcall insert_text, txt_or
insert_reg txt_edx insert_reg txt_edx
insert_coma insert_coma
@ -642,10 +739,11 @@ proc get_code_window, p_obj:dword
insert_tab insert_tab
stdcall insert_text, txt_i_40 stdcall insert_text, txt_i_40
insert_nl
call get_code_draw_obj call get_code_draw_obj
stdcall insert_text, txt_draw_we stdcall insert_text, txt_draw_we ;êîä çàâåðøàþùèé ôóíêöèþ ðèñîâàíèÿ
popad popad
ret ret
endp endp
@ -788,9 +886,7 @@ proc get_code_struct, p_obj:dword
;0 - name ;0 - name
stdcall [ted_text_add], tedit0,txt_struct,7,ted_opt_ed_move_cursor stdcall [ted_text_add], tedit0,txt_struct,7,ted_opt_ed_move_cursor
stdcall get_obj_text_col,ebx,0 stdcall insert_text_prop, ebx,0
stdcall str_len,edx
stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
insert_nl insert_nl
popad popad
@ -814,9 +910,7 @@ proc get_code_variable, p_obj:dword,o_lev:dword
loop @b loop @b
.no_tab: .no_tab:
stdcall get_obj_text_col,ebx,0 stdcall insert_text_prop, ebx,0 ;èìÿ ïåðåìåííîé
stdcall str_len,edx
stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
insert_sp insert_sp
mov ecx,dword[ebx+u_object.typid-u_object] ;ecx - îòíîñèòåëüíûé èíäåêñ ðîäèòåëüñêîãî îáúåêòà (â ïàìÿòè) mov ecx,dword[ebx+u_object.typid-u_object] ;ecx - îòíîñèòåëüíûé èíäåêñ ðîäèòåëüñêîãî îáúåêòà (â ïàìÿòè)
@ -827,16 +921,11 @@ proc get_code_variable, p_obj:dword,o_lev:dword
;ïðîâåðêó íà ïðàâèëüíîñòü ecx ??? ;ïðîâåðêó íà ïðàâèëüíîñòü ecx ???
stdcall get_obj_text_col,ecx,0 stdcall insert_text_prop, ecx,0 ;òèï ïåðåìåííîé
stdcall str_len,edx
stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
insert_sp insert_sp
stdcall insert_text_prop, ebx,1 ;çíà÷åíèå
stdcall get_obj_text_col,ebx,1 stdcall get_obj_text_col,ebx,2 ;êîììåíòàðèé
stdcall str_len,edx
stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
stdcall get_obj_text_col,ebx,2
stdcall str_len,edx stdcall str_len,edx
cmp eax,1 cmp eax,1
jl @f jl @f
@ -853,6 +942,8 @@ endp
;--- òåêñòîâûå êîíñòàíòû --- ;--- òåêñòîâûå êîíñòàíòû ---
txt_str_beg db 39,0
txt_str_end db 39,',0',0
txt_coma db ',',0 txt_coma db ',',0
txt_i_40 db 'int 0x40',13,0 txt_i_40 db 'int 0x40',13,0
txt_0 db '0',0 txt_0 db '0',0
@ -867,14 +958,12 @@ txt_com db ';',0
txt_sp db ' ',0 txt_sp db ' ',0
txt_tab db 9,0 txt_tab db 9,0
txt_br db '\',13,9,0 txt_br db '\',13,9,0
txt_txt: txt_txt db 'txt_',0
db 'txt_',0 txt_db db ' db ',0
txt_db: txt_dd db ' dd ',0
db ' db ',0 txt_dd_0_0 db 9,'dd 0,0',13,0
txt_mouse_dd: txt_mouse_dd db ', mouse_dd, ',0
db ', mouse_dd, ',0 txt_times db ':',13,9,'times ',0
txt_times:
db ':',13,9,'times ',0
txt_draw_wb: txt_draw_wb:
db 13,'align 4',13,'draw_window:',13,'pushad',13,9,'mcall 12,1',13,0 db 13,'align 4',13,'draw_window:',13,'pushad',13,9,'mcall 12,1',13,0
txt_draw_we: txt_draw_we:
@ -910,8 +999,7 @@ txt_std_key_ed:
txt_incl: txt_incl:
db 'include ',0 db 'include ',0
txt_ebox: txt_ebox:
db ' edit_box' db ' edit_box',0
.end: db 0
txt_editb_draw: txt_editb_draw:
db 9,'stdcall [edit_box_draw], ',0 db 9,'stdcall [edit_box_draw], ',0
txt_cbox_draw: txt_cbox_draw:

View File

@ -19,7 +19,9 @@ include 'strlen.inc'
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc, dll.Load @use_library_mem mem.Alloc,mem.Free,mem.ReAlloc, dll.Load
hed db 'kol_f_edit 11.11.10',0 hed db 'kol_f_edit 17.11.10',0
sizeof.TreeList equ 20 ;need for element 'tree_list'
BUF_STRUCT_SIZE equ 21 BUF_STRUCT_SIZE equ 21
buf2d_data equ dword[edi] ;¤ ­­ë¥ ¡ãä¥à  ¨§®¡à ¦¥­¨ï buf2d_data equ dword[edi] ;¤ ­­ë¥ ¡ãä¥à  ¨§®¡à ¦¥­¨ï
@ -34,10 +36,11 @@ buf2d_bits equ byte[edi+20] ;
MAX_LEN_OBJ_TXT equ 200 MAX_LEN_OBJ_TXT equ 200
MAX_CED_OBJECTS equ 200 MAX_CED_OBJECTS equ 200
MAX_OPT_FIELDS equ 11 MAX_OPT_FIELDS equ 11
MAX_OBJ_TYPES equ 16 MAX_OBJ_TYPES equ 18
WND_CAPT_COLOR equ 0xb0d0ff WND_CAPT_COLOR equ 0xb0d0ff
BUF_SIZE equ 1000 BUF_SIZE equ 1000
C_TD equ 't' ;typedef
C_AC equ 'a' ; ¢â®¬ â¨ç¥áª¨¥ ª®¤ë (auto code) C_AC equ 'a' ; ¢â®¬ â¨ç¥áª¨¥ ª®¤ë (auto code)
C_ST equ 's' ;struct C_ST equ 's' ;struct
C_IN equ '#' ;include C_IN equ '#' ;include
@ -52,6 +55,8 @@ C_BU equ 'b' ;Button
C_DT equ 'x' ;à¨á®¢ âì ⥪áâ C_DT equ 'x' ;à¨á®¢ âì ⥪áâ
C_RE equ 'r' ;à¨á®¢ âì ¯àאַ㣮«ì­¨ª C_RE equ 'r' ;à¨á®¢ âì ¯àאַ㣮«ì­¨ª
C_KE equ 'k' ;ª« ¢¨ âãà  C_KE equ 'k' ;ª« ¢¨ âãà 
C_LIB equ 'l'
C_IFN equ 'f'
;modif ;modif
CPP_MOD_ACM equ 2 ;ᮡëâ¨ï ¬ëè¨ CPP_MOD_ACM equ 2 ;ᮡëâ¨ï ¬ëè¨
@ -101,16 +106,13 @@ struct FileInfoBlock
ends ends
struct object struct object
c db ? c db ? ;0
txt rb MAX_LEN_OBJ_TXT txt rb MAX_LEN_OBJ_TXT ;1
lvl db 0 lvl db 0 ;1+mt
clo db 0 clo db 0 ;2+mt
perv dd ? rb 8 ;3+mt ­¥ ¨á¯®«ì§ã¥âáï, ®âáâ «®áì ®â Win ¢¥àᨨ
next dd ? typid dd ? ;3+8+mt
typid dd ? modif dd ? ;7+8+mt
tc dd ?
td dd ?
modif dd ?
ends ends
struct ObjOpt struct ObjOpt
@ -295,7 +297,7 @@ start:
mov [edit1.size],eax mov [edit1.size],eax
mov ecx,eax mov ecx,eax
rep movsb rep movsb
call but_open call but_open_proj
@@: @@:
@ -334,58 +336,79 @@ pushad
mov edx,[sc.work] mov edx,[sc.work]
or edx,0x33000000 or edx,0x33000000
mov edi,hed mov edi,hed
mcall int 0x40
mov eax,8 ;button 'Open' mov eax,8 ;button 'Open Project'
mov esi,0x80ff mov esi,0x80ff
mov ebx,230*65536+70 mov ebx,230*65536+18
mov ecx,5*65536+22 mov ecx,5*65536+18
mov edx,5 mov edx,5
mcall int 0x40
;button 'Save Project'
mov ebx,250*65536+18
mov ecx,5*65536+18
mov edx,6
int 0x40
stdcall draw_icon, 17,251,6 ;17 - save icon
;button 'Show Constructor' ;button 'Show Constructor'
mov ebx,310*65536+18 mov ebx,310*65536+18
mov ecx,5*65536+18 mov ecx,5*65536+18
mov edx,11 mov edx,11
mcall int 0x40
stdcall draw_icon, 12,311,6 ;12 - window icon stdcall draw_icon, 12,311,6 ;12 - window icon
;button 'Show Code' ;button 'Show Code'
mov ebx,330*65536+18 mov ebx,330*65536+18
mov edx,12 mov edx,12
mcall int 0x40
stdcall draw_icon, 11,331,6 ;11 - text icon stdcall draw_icon, 11,331,6 ;11 - text icon
;button 'Update Code' ;button 'Update Code'
mov ebx,350*65536+18 mov ebx,350*65536+18
mov edx,13 mov edx,13
mcall int 0x40
;button 'Save Code' ;button 'Save Code'
mov ebx,370*65536+18 mov ebx,370*65536+18
mov edx,14 mov edx,14
mcall int 0x40
stdcall draw_icon, 17,371,6 ;17 - save icon stdcall draw_icon, 17,371,6 ;17 - save icon
;button ']P' ;button ']P'
mov ebx,390*65536+18 mov ebx,390*65536+18
mov edx,15 mov edx,15
mcall int 0x40
stdcall draw_icon, 18,391,6 ;18 - §­ ª ª®­æ   ¡§ æ  stdcall draw_icon, 18,391,6 ;18 - §­ ª ª®­æ   ¡§ æ 
;button 'Show color text' ;button 'Show color text'
mov ebx,410*65536+18 mov ebx,410*65536+18
mov edx,16 mov edx,16
mcall int 0x40
stdcall draw_icon, 19,411,6 stdcall draw_icon, 19,411,6
;button 'Move Up'
mov ebx,160*65536+18
mov ecx,30*65536+18
mov edx,21
int 0x40
stdcall draw_icon, 23,161,31 ;23 - move up
;button 'Move Down'
mov ebx,180*65536+18
mov ecx,30*65536+18
mov edx,22
int 0x40
stdcall draw_icon, 24,181,31 ;24 - move down
; 10 30 50 70 90 ; 10 30 50 70 90
mov eax,4 ;¯®¤¯¨áì 'Žâªàëâì' mov eax,4 ;¯®¤¯¨áì 'Žâªàëâì'
mov ebx,245*65536+13 mov ebx,232*65536+13
mov ecx,0x80ffff00 mov ecx,0x80ffff00
mov edx,txtOpen mov edx,txtOpen
mcall int 0x40
cmp [err_opn],1 cmp [err_opn],1
jne @f jne @f
@ -393,7 +416,7 @@ pushad
mov ebx,10*65536+35 mov ebx,10*65536+35
mov ecx,0x80ff0000 mov ecx,0x80ff0000
mov edx,txtErrOpen mov edx,txtErrOpen
mcall int 0x40
@@: @@:
cmp [err_ini0],1 cmp [err_ini0],1
@ -477,7 +500,11 @@ button:
mcall 17 mcall 17
cmp ah,5 cmp ah,5
jne @f jne @f
call but_open call but_open_proj
@@:
cmp ah,6
jne @f
call but_save_proj
@@: @@:
cmp ah,10 cmp ah,10
jne @f jne @f
@ -507,6 +534,14 @@ button:
jne @f jne @f
call but_show_syntax call but_show_syntax
@@: @@:
cmp ah,21
jne @f
call but_obj_move_up
@@:
cmp ah,22
jne @f
call but_obj_move_down
@@:
cmp ah,1 cmp ah,1
jne still jne still
.exit: .exit:
@ -526,7 +561,7 @@ button:
mcall -1 mcall -1
align 4 align 4
but_open: but_open_proj:
pushad pushad
mov eax,70 mov eax,70
mov [run_file_70.Function], 0 mov [run_file_70.Function], 0
@ -579,6 +614,90 @@ but_open:
popad popad
ret ret
;á®åà ­¥­¨¥ ä ©«  ¯à®íªâ  ­  ¤¨áª
align 4
but_save_proj:
pushad
mov edi,ced_info
stdcall [tl_node_poi_get_info], 0,tree2
pop edx
@@:
cmp edx,0
je @f
stdcall [tl_node_poi_get_data], edx,tree2
pop esi ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
mov bl,byte[edx+2] ;bl - ã஢¥­ì ®¡ê¥ªâ 
mov byte[esi+1+MAX_LEN_OBJ_TXT],bl
;¢ëç¨á«ï¥¬ ­®¢ë© ¨­¤¥ªá ¤«ï ⨯  ®¡ê¥ªâ 
mov ebx,[esi+3+8+MAX_LEN_OBJ_TXT] ;ebx - ⨯ ®¡ê¥ªâ 
;á®å࠭塞 ⨯ ®¡ê¥ªâ 
push ebx
imul ebx,sizeof.TreeList
add ebx,[tree2.data_nodes] ;ebx - 㪠§ â¥«ì ®¡ê¥ªâ 㪠§ë¢ î騩 ⨯
stdcall get_obj_npp,ebx
mov [esi+3+8+MAX_LEN_OBJ_TXT],eax
mov eax,esi
;ª®¯¨à㥬 ®¡ê¥ªâ ¢ ¯ ¬ïâì ¤«ï á®åà ­¥­¨ï
xor ecx,ecx
mov cx,word[tree2.info_size]
cld
rep movsb
;¢®ááâ ­ ¢«¨¢ ¥¬ ⨯ ®¡ê¥ªâ 
pop dword[eax+3+8+MAX_LEN_OBJ_TXT]
stdcall [tl_node_poi_get_next_info], edx,tree2
pop edx ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
jmp @b
@@:
mov byte[edi],0
inc edi
mov ecx,edi
sub ecx,ced_info ;ecx - à §¬¥à á®å࠭塞®£® ä ©« 
mov eax,70
mov [run_file_70.Function], 2
mov [run_file_70.Position], 0
mov [run_file_70.Flags], 0
mov [run_file_70.Count], ecx
mov [run_file_70.Buffer], ced_info
mov [run_file_70.rezerv], 0
push [edit1.text]
pop [run_file_70.FileName]
mov ebx,run_file_70
int 0x40
popad
ret
;¡¥à¥â ­®¬¥à ¯® ¯®à浪㠯® 㪠§ â¥«î ­  áâàãªâãàã ®¡ê¥ªâ 
align 4
proc get_obj_npp, p_obj_str:dword
mov eax,2
push ebx edx
mov ebx,[p_obj_str]
stdcall [tl_node_poi_get_info], 0,tree2
pop edx
@@:
cmp edx,0
je @f
cmp edx,ebx
je @f
inc eax
stdcall [tl_node_poi_get_next_info], edx,tree2
pop edx ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
jmp @b
@@:
pop edx ebx
ret
endp
;äã­ªæ¨ï ¤«ï á®åà ­¥­¨ï ᮧ¤ ­­®£® asm ä ©«  ;äã­ªæ¨ï ¤«ï á®åà ­¥­¨ï ᮧ¤ ­­®£® asm ä ©« 
align 4 align 4
but_save_asm: but_save_asm:
@ -749,14 +868,14 @@ buf_skin3:
db 24 ;+20 bit in pixel db 24 ;+20 bit in pixel
show_mode db 0 ;०¨¬ ¤«ï ¯®ª §  ®¯à¥¤¥«¥­­®£® ®ª­  show_mode db 0 ;०¨¬ ¤«ï ¯®ª §  ®¯à¥¤¥«¥­­®£® ®ª­ 
txtOpen db 'Žâªàëâì',0 txtOpen db 'Žâ',0
txtErrOpen db '<27>¥ ­ ©¤¥­ ä ©«, ¯à®¢¥àì⥠¯à ¢¨«ì­®áâì ¨¬¥­¨',0 txtErrOpen db '<27>¥ ­ ©¤¥­ ä ©«, ¯à®¢¥àì⥠¯à ¢¨«ì­®áâì ¨¬¥­¨',0
txtErrIni1 db '<27>¥ ®âªàë«áï ä ©« á ®¯æ¨ï¬¨',0 txtErrIni1 db '<27>¥ ®âªàë«áï ä ©« á ®¯æ¨ï¬¨',0
err_opn db 0 err_opn db 0
err_ini0 db 0 ;??? err_ini0 db 0 ;???
err_ini1 db 0 err_ini1 db 0
edit1 edit_box 210, 10, 10, 0xffffff, 0xff80, 0xff, 0xff0000, 0x4080, 300, ed_text1, mouse_dd, 0, 7, 7 edit1 edit_box 210, 10, 5, 0xffffff, 0xff80, 0xff, 0xff0000, 0x4080, 300, ed_text1, mouse_dd, 0, 7, 7
edit2 edit_box 115, 32, 20, 0xffffff, 0x80ff, 0xff, 0x808080, 0, MAX_LEN_OBJ_TXT, ed_text2, mouse_dd, 0 edit2 edit_box 115, 32, 20, 0xffffff, 0x80ff, 0xff, 0x808080, 0, MAX_LEN_OBJ_TXT, ed_text2, mouse_dd, 0
edit3 edit_box 115, 32, 20, 0xffffff, 0x80ff, 0xff, 0x808080, 0, MAX_LEN_OBJ_TXT, ed_text3, mouse_dd, 0 edit3 edit_box 115, 32, 20, 0xffffff, 0x80ff, 0xff, 0x808080, 0, MAX_LEN_OBJ_TXT, ed_text3, mouse_dd, 0
@ -1125,6 +1244,8 @@ import_box_lib:
tl_node_set_data dd sz_tl_node_set_data tl_node_set_data dd sz_tl_node_set_data
tl_node_get_data dd sz_tl_node_get_data tl_node_get_data dd sz_tl_node_get_data
tl_node_delete dd sz_tl_node_delete tl_node_delete dd sz_tl_node_delete
tl_node_move_up dd sz_tl_node_move_up
tl_node_move_down dd sz_tl_node_move_down
tl_cur_beg dd sz_tl_cur_beg tl_cur_beg dd sz_tl_cur_beg
tl_cur_next dd sz_tl_cur_next tl_cur_next dd sz_tl_cur_next
tl_cur_perv dd sz_tl_cur_perv tl_cur_perv dd sz_tl_cur_perv
@ -1185,6 +1306,8 @@ dd 0,0
sz_tl_node_set_data db 'tl_node_set_data',0 sz_tl_node_set_data db 'tl_node_set_data',0
sz_tl_node_get_data db 'tl_node_get_data',0 sz_tl_node_get_data db 'tl_node_get_data',0
sz_tl_node_delete db 'tl_node_delete',0 sz_tl_node_delete db 'tl_node_delete',0
sz_tl_node_move_up db 'tl_node_move_up',0
sz_tl_node_move_down db 'tl_node_move_down',0
sz_tl_cur_beg db 'tl_cur_beg',0 sz_tl_cur_beg db 'tl_cur_beg',0
sz_tl_cur_next db 'tl_cur_next',0 sz_tl_cur_next db 'tl_cur_next',0
sz_tl_cur_perv db 'tl_cur_perv',0 sz_tl_cur_perv db 'tl_cur_perv',0

View File

@ -73,6 +73,16 @@ draw_obj_info:
.exit_fun: .exit_fun:
ret ret
align 4
but_obj_move_up:
stdcall [tl_node_move_up], tree2
ret
align 4
but_obj_move_down:
stdcall [tl_node_move_down], tree2
ret
;®¡­®¢«¥­¨¥ ®¡ê¥ªâ®¢ ¢ tree2, ¯® §­ ç¥­¨ï¬ ⥪á⮢ëå ¯®«¥© ;®¡­®¢«¥­¨¥ ®¡ê¥ªâ®¢ ¢ tree2, ¯® §­ ç¥­¨ï¬ ⥪á⮢ëå ¯®«¥©
;äã­ªæ¨ï ®¡à â­ ï ª ¤ ­­®© on_file_object_select ;äã­ªæ¨ï ®¡à â­ ï ª ¤ ­­®© on_file_object_select
align 4 align 4

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 KiB

View File

@ -17,6 +17,8 @@ C_BU equ 'b' ;Button
C_DT equ 'x' ;à¨á®¢ âì ⥪áâ C_DT equ 'x' ;à¨á®¢ âì ⥪áâ
C_RE equ 'r' ;à¨á®¢ âì ¯àאַ㣮«ì­¨ª C_RE equ 'r' ;à¨á®¢ âì ¯àאַ㣮«ì­¨ª
C_KE equ 'k' ;ª« ¢¨ âãà  C_KE equ 'k' ;ª« ¢¨ âãà 
C_LIB equ 'l'
C_IFN equ 'f'
macro ObjOpt c,bl_type,graph,info,caption,Col,img macro ObjOpt c,bl_type,graph,info,caption,Col,img
{ {
@ -31,12 +33,18 @@ dw Col
dw img dw img
} }
ObjOpt C_AC, 1,0,'€Άβ® <20>®¤','',\ ObjOpt C_TD, 0,0,'’¨― ¤ ­­®£®','',\
<0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0>,\ < 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0>,\
<2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1> < 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1>
ObjOpt C_VR, 0,0,'<27>¥ΰ¥¬¥­­ ο','¨¬ο ―¥ΰ¥¬¥­­®©*§­ η¥­¨¥ ―® 㬮«η ­¨ξ*<2A>®¬¬¥­β ΰ¨©',\
<40, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0>,\
< 0, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1>
ObjOpt C_ST, 1,0,'‘âàãªâãà ','¨¬ï áâàãªâãàë*¯ à ¬¥âàë ¤«ï ¬ ªà®á ',\ ObjOpt C_ST, 1,0,'‘âàãªâãà ','¨¬ï áâàãªâãàë*¯ à ¬¥âàë ¤«ï ¬ ªà®á ',\
<40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0>,\ <40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0>,\
< 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1> < 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1>
ObjOpt C_AC, 1,0,'€Άβ® <20>®¤','',\
<0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0>,\
<2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1>
ObjOpt C_BU, 1,1,'Š­®¯ª ','¨¤¥­â¨ä¨ª â®à*®âáâ㯠᫥¢ *®âáâ㯠ᢥàåã*è¨à¨­ *¢ëá®â *梥â*¨¬ï ¬¥âª¨ ¯à¨ ­ ¦ â¨¨',\ ObjOpt C_BU, 1,1,'Š­®¯ª ','¨¤¥­â¨ä¨ª â®à*®âáâ㯠᫥¢ *®âáâ㯠ᢥàåã*è¨à¨­ *¢ëá®â *梥â*¨¬ï ¬¥âª¨ ¯à¨ ­ ¦ â¨¨',\
<20, 40, 60, 80,100,120, 0, 0, 0, 0, 0>,\ <20, 40, 60, 80,100,120, 0, 0, 0, 0, 0>,\
<29, 15, 16, 26, 27, 25, -1, -1, -1, -1,-1> <29, 15, 16, 26, 27, 25, -1, -1, -1, -1,-1>
@ -52,9 +60,6 @@ ObjOpt C_CB, 1,1,'
ObjOpt C_TT, 1,0,'asm ª®¤','',\ ObjOpt C_TT, 1,0,'asm ª®¤','',\
< 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0>,\ < 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0>,\
<11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1> <11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1>
ObjOpt C_VR, 0,0,'<27>¥ΰ¥¬¥­­ ο','¨¬ο ―¥ΰ¥¬¥­­®©*§­ η¥­¨¥ ―® 㬮«η ­¨ξ*<2A>®¬¬¥­β ΰ¨©',\
<40, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0>,\
< 0, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1>
ObjOpt C_WI, 1,1,'Žª­®','**®âáâ㯠᫥¢ *®âáâ㯠ᢥàåã*è¨à¨­ *¢ëá®â *梥⠪«¨¥­â᪮© ®¡« áâ¨*梥⠧ £®«®¢ª  (¥á«¨ ¥áâì)',\ ObjOpt C_WI, 1,1,'Žª­®','**®âáâ㯠᫥¢ *®âáâ㯠ᢥàåã*è¨à¨­ *¢ëá®â *梥⠪«¨¥­â᪮© ®¡« áâ¨*梥⠧ £®«®¢ª  (¥á«¨ ¥áâì)',\
<98,100,110,120,130,150,170, 0, 0, 0, 0>,\ <98,100,110,120,130,150,170, 0, 0, 0, 0>,\
<12, -1, 15, 16, 26, 27, 25, 25, -1, -1, -1> <12, -1, 15, 16, 26, 27, 25, 25, -1, -1, -1>
@ -62,11 +67,14 @@ ObjOpt C_CO, 1,0,'
< 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0>,\ < 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0>,\
< 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1> < 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1>
ObjOpt C_IN, 1,0,'‚ª«î祭¨¥ ä ©« ','¨¬ï ä ©« *ª®¬¬¥­â à¨©',\ ObjOpt C_IN, 1,0,'‚ª«î祭¨¥ ä ©« ','¨¬ï ä ©« *ª®¬¬¥­â à¨©',\
<100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0>,\ <100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0>,\
< 6, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1> < 6, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1>
ObjOpt C_TD, 0,0,'’¨― ¤ ­­®£®','',\ ObjOpt C_LIB, 1,0,'<27>¬―®ΰβ ΅¨΅«¨®β¥<CEB2>¨','¨¬ο ΅¨΅«.*α¨αβ. ¤¨ΰ.*¬¥β<C2A5>  ¨¬―®ΰβ *―ΰ¨αβ Ά<C2A0> *®θ¨΅<C2A8>  ­¥ ­ ©¤¥­ *®θ¨΅<C2A8>  ­¥ ¬®£γ ®β<C2AE>ΰλβμ',\
< 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0>,\ <30, 80,110,120,160, 0, 0, 0, 0, 0, 0>,\
< 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1> <20, -1, -1, -1, 4, 4, -1, -1, -1, -1, -1>
ObjOpt C_IFN, 1,0,'”γ­<CEB3>ζ¨ο ¨§ ΅¨΅«¨®β¥<CEB2>¨','―ணࠬ­®¥ ¨¬ο δγ­<CEB3>樨*¨¬―®ΰβ¨ΰ㥬®¥ ¨¬ο δγ­<CEB3>樨',\
<100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0>,\
<21, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1>
ObjOpt C_DT, 1,1,'<27>¨á®¢ ­¨¥ ⥪áâ ','***梥â ⥪áâ *梥â ä®­  (¥á«¨ ¥áâì)',\ ObjOpt C_DT, 1,1,'<27>¨á®¢ ­¨¥ ⥪áâ ','***梥â ⥪áâ *梥â ä®­  (¥á«¨ ¥áâì)',\
<40, 50, 60, 80, 0, 0, 0, 0, 0, 0, 0>,\ <40, 50, 60, 80, 0, 0, 0, 0, 0, 0, 0>,\
< 4, 15, 16, 25, 25, -1, -1, -1, -1, -1, -1> < 4, 15, 16, 25, 25, -1, -1, -1, -1, -1, -1>

View File

@ -153,6 +153,7 @@ pop edi esi ecx</pre>
<p>где: <b>tree1</b> - структура tree_list; <p>где: <b>tree1</b> - структура tree_list;
<b>0</b> - позиция узла, с которого берется указатель; <b>0</b> - позиция узла, с которого берется указатель;
<b>esi</b> - указатель на структуру описывающую узел.</p> <b>esi</b> - указатель на структуру описывающую узел.</p>
<p><b>Замечание.</b> Если узел с указанным индексом не найден, в указателе возвращается 0.</p>
<h2><a name="fun_poi_gni">tl_node_poi_get_next_info</a></h2> <h2><a name="fun_poi_gni">tl_node_poi_get_next_info</a></h2>
<p>Берет указатель на следующий элемент в цепи, без учета открытия/закрытия дочерних узлов. Пример использования функции:</p> <p>Берет указатель на следующий элемент в цепи, без учета открытия/закрытия дочерних узлов. Пример использования функции:</p>
@ -162,6 +163,7 @@ pop edi esi ecx</pre>
pop esi ;переходим к следущему узлу</pre> pop esi ;переходим к следущему узлу</pre>
<p>где: <b>tree1</b> - структура tree_list; <p>где: <b>tree1</b> - структура tree_list;
<b>esi</b> - до вызова функции указатель на структуру описывающую узел, после вызова указатель на структуру описывающую следущий узел в цепи.</p> <b>esi</b> - до вызова функции указатель на структуру описывающую узел, после вызова указатель на структуру описывающую следущий узел в цепи.</p>
<p><b>Замечание.</b> Если следущий узел не найден, в указателе возвращается 0.</p>
<h2><a name="fun_poi_gd">tl_node_poi_get_data</a></h2> <h2><a name="fun_poi_gd">tl_node_poi_get_data</a></h2>
<p>Берет указатель на данные (пользовательские и подпись) из узла указанного в указателе. Пример использования функции:</p> <p>Берет указатель на данные (пользовательские и подпись) из узла указанного в указателе. Пример использования функции:</p>
@ -210,8 +212,17 @@ pop edi esi ecx</pre>
<h2><a name="fun_gme">tl_get_mem_size</a></h2> <h2><a name="fun_gme">tl_get_mem_size</a></h2>
<p>Вычисляет размер блока памяти (в который были раньше сохранены элементы). <p>Вычисляет размер блока памяти (в который были раньше сохранены элементы).
Эту функцию можно использовать перед сохранением на диск, для получения точного Эту функцию можно использовать перед сохранением на диск, для получения точного размера сохраняемых данных. Пример:</p>
размера сохраняемых данных.</p> <pre> MEM_SIZE equ 5000
node_data rb MEM_SIZE
.........
;сохраняем данные в 'node_data'
stdcall dword[tl_save_mem], MEM_SIZE, node_data, 0, tree1
pop eax ;код ошибки
.........
;получаем размер данных в 'node_data'
stdcall dword[tl_get_mem_size], node_data, tree1
pop ecx ;размер данных, должен быть &lt;= MEM_SIZE</pre>
<h2><a name="version">version_tree_list</a></h2> <h2><a name="version">version_tree_list</a></h2>
<p>Версия элемента</p> <p>Версия элемента</p>

View File

@ -530,9 +530,9 @@ end if
;library structures ;library structures
l_libs_start: l_libs_start:
lib0 l_libs lib0_name, sys_path, file_name, system_dir0, err_message_found_lib0, head_f_l0, boxlib_import,err_message_import0, head_f_i0 lib0 l_libs lib0_name, sys_path, file_name, system_dir0, err_message_found_lib0, head_f_l0, boxlib_import,err_message_import0, head_f_i0
lib1 l_libs lib1_name, sys_path, file_name, system_dir1, err_message_found_lib1, head_f_l0, msgbox_lib_import, err_message_import1, head_f_i0 lib1 l_libs lib1_name, sys_path, file_name, system_dir1, err_message_found_lib1, head_f_l0, msgbox_lib_import, err_message_import1, head_f_i0
lib2 l_libs lib2_name, sys_path, file_name, system_dir2, err_message_found_lib2, head_f_l0, proclib_import, err_message_import2, head_f_i0 lib2 l_libs lib2_name, sys_path, file_name, system_dir2, err_message_found_lib2, head_f_l0, proclib_import, err_message_import2, head_f_i0
load_lib_end: load_lib_end:
@ -540,21 +540,22 @@ i_end:
rb 1024 rb 1024
align 16 align 16
procinfo process_information procinfo process_information
thread:
rb 1024 rb 1024
thread:
rb 1024
stacktop: stacktop:
sys_path: sys_path:
rb 4096 rb 4096
file_name: file_name:
rb 4096 rb 4096
file_name_rez: file_name_rez:
rb 4096 rb 4096
plugin_path: plugin_path:
rb 4096 rb 4096
openfile_path: openfile_path:
rb 4096 rb 4096
filename_area: filename_area:
rb 256 rb 256
file_info: file_info:
rb 40 rb 40
mem: mem: