update 'kol_f_edit'

git-svn-id: svn://kolibrios.org@1706 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
IgorA 2010-11-20 11:43:51 +00:00
parent 45c092e796
commit 3d0324ed25
8 changed files with 251 additions and 31 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 27 KiB

View File

@ -1,6 +1,6 @@
if not exist bin mkdir bin
@fasm.exe -m 16384 ced_view.asm bin\ced_view.kex
@kpack bin\ced_view.kex
@fasm.exe -m 16384 kol_f_edit.asm bin\kol_f_edit.kex
@kpack bin\kol_f_edit.kex
@fasm.exe -m 16384 ob_o.asm bin\ob_o.opt
if not exist bin\tl_sys_16.png @copy tl_sys_16.png bin\tl_sys_16.png

View File

@ -228,6 +228,7 @@ proc get_code_text, p_obj:dword
ret
endp
;îáðàáîòêà îáúåêòà ñîçäàþùåãî àâòîìàòè÷åêñèå êîäû
align 4
proc get_code_auto, p_obj:dword
pushad
@ -251,7 +252,27 @@ proc get_code_auto, p_obj:dword
jae @f
call get_code_auto_data_el
call get_code_auto_data_dop
call get_code_auto_data_libs
xor edx,edx
mov dl,C_LIB
stdcall find_obj_in_file,edx ;eax - óêàçàòåëü íà ñòðóêòóðó áèáëèîòåêè
cmp eax,0
je @f
stdcall insert_text, txt_head_i
stdcall insert_text, txt_d_poi
insert_nl
stdcall insert_text, txt_head_l
stdcall insert_text, txt_db
stdcall insert_text, txt_str_beg
stdcall insert_text, txt_sys_err
stdcall insert_text, txt_str_end
insert_nl
call get_code_auto_data_libs_param
stdcall insert_text, txt_ll_start
call get_code_auto_data_libs_struc
stdcall insert_text, txt_ll_end
call get_code_auto_data_libs ;òàáëèöû èìïîðòà áèáëèîòåê
@@:
insert_nl
popad
@ -334,16 +355,12 @@ proc get_code_auto_data_el
jl .prop
insert_br
;insert_tab
stdcall insert_text, txt_txt
mov edx,fp_icon
stdcall get_obj_id, ebx,edx
stdcall str_len,edx ;eax = len(fp_icon)
stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
stdcall insert_text,edx
;insert_coma
;insert_sp
stdcall insert_text, txt_mouse_dd
insert_nl
@@:
@ -360,6 +377,140 @@ proc get_code_auto_data_el
ret
endp
;äàííûå äëÿ áèáëèîòåê
align 4
proc get_code_auto_data_libs_param
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_sys_dir
;object code
mov edx,fp_icon
stdcall get_obj_id, ebx,edx
stdcall insert_text,edx
stdcall insert_text,txt_db
;stdcall insert_text, txt_str_beg
stdcall insert_text_prop, ebx,1
;stdcall insert_text, txt_str_end
insert_nl
stdcall insert_text, txt_lib_name
stdcall insert_text,edx
stdcall insert_text,txt_db
stdcall insert_text, txt_str_beg
stdcall insert_text_prop, ebx,0
stdcall insert_text, txt_str_end
insert_nl
stdcall insert_text,txt_err_m_f_lib
stdcall insert_text,edx
stdcall insert_text,txt_db
stdcall insert_text, txt_str_beg
stdcall insert_text_prop, ebx,4
stdcall insert_text, txt_str_end
insert_nl
stdcall insert_text,txt_err_m_i_lib
stdcall insert_text,edx
stdcall insert_text,txt_db
stdcall insert_text, txt_str_beg
stdcall insert_text_prop, ebx,5
stdcall insert_text, txt_str_end
insert_nl
insert_nl
@@:
stdcall dword[tl_node_poi_get_next_info], esi,tree2
pop esi ;ïåðåõîäèì ê ñëåäóùåìó óçëó
jmp .beg_iterat
.find_no:
popad
ret
endp
;äàííûå äëÿ áèáëèîòåê
align 4
proc get_code_auto_data_libs_struc
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_lib
;object code
mov edx,fp_icon
stdcall get_obj_id, ebx,edx
stdcall insert_text,edx
insert_sp
stdcall insert_text, txt_ll
stdcall insert_text, txt_lib_name
stdcall insert_text,edx
stdcall insert_text,txt_coma
stdcall insert_text, txt_lib_path
stdcall insert_text, txt_sys_dir
stdcall insert_text,edx
stdcall insert_text,txt_coma
stdcall insert_text,txt_br
stdcall insert_text,txt_tab
stdcall insert_text,txt_err_m_f_lib
stdcall insert_text,edx
stdcall insert_text,txt_coma
stdcall insert_text,txt_head_l
stdcall insert_text,txt_coma
stdcall insert_text_prop, ebx,2
stdcall insert_text,txt_coma
stdcall insert_text,txt_err_m_i_lib
stdcall insert_text,edx
stdcall insert_text,txt_coma
stdcall insert_text,txt_head_i
insert_nl
@@:
stdcall dword[tl_node_poi_get_next_info], esi,tree2
pop esi ;ïåðåõîäèì ê ñëåäóùåìó óçëó
jmp .beg_iterat
.find_no:
popad
ret
endp
;äàííûå äëÿ áèáëèîòåê
align 4
proc get_code_auto_data_libs
@ -968,6 +1119,18 @@ txt_draw_wb:
db 13,'align 4',13,'draw_window:',13,'pushad',13,9,'mcall 12,1',13,0
txt_draw_we:
db 9,'mcall 12,2',13,'popad',13,9,'ret',13,0
txt_sys_dir db 'system_dir_',0
txt_lib_name db 'lib_name_',0
txt_lib_path db ' sys_path, library_path, ',0
txt_sys_err db '‘¨á⥬­ ï ®è¨¡ª ',0
txt_ll_start db 'l_libs_start:',13,0
txt_lib db 9,'lib_',0
txt_ll db 'l_libs ',0
txt_err_m_f_lib db 'err_msg_found_lib_',0
txt_head_l db 'head_f_l',0
txt_err_m_i_lib db 'err_msg_import_',0
txt_head_i db 'head_f_i',0
txt_ll_end db 'l_libs_end:',13,0
txt_but_create db '0x40000000',0 ;tmp
txt_0x33000000 db '0x33000000',0 ;tmp
txt_struct db 'struct ',0
@ -998,8 +1161,7 @@ txt_std_key_ed:
db 9,'stdcall [edit_box_key], ',0
txt_incl:
db 'include ',0
txt_ebox:
db ' edit_box',0
txt_ebox db ' edit_box',0
txt_editb_draw:
db 9,'stdcall [edit_box_draw], ',0
txt_cbox_draw:

View File

@ -73,16 +73,47 @@ draw_obj_info:
.exit_fun:
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
;ª®¯¨à㥬 ®¡ê¥ªâ
align 4
but_obj_copy:
push ecx esi edi
stdcall [tl_node_get_data], tree2
pop esi
mov edi,[tree2.data_info] ;¤ ­­ë¥ 0-£® 㧫 , ¨á¯®«ì§ã¥¬ ¤«ï ª®¯¨à®¢ ­¨ï
xor ecx,ecx
mov cx,word[tree2.info_size]
cld
rep movsb
pop edi esi ecx
ret
;¢áâ ¢«ï¥¬ ®¡ê¥ªâ
align 4
but_obj_paste:
push eax ebx ecx edi
mov eax,[tree2.data_info] ;¤ ­­ë¥ 0-£® 㧫 , ¨á¯®«ì§ã¥¬ ¤«ï ª®¯¨à®¢ ­¨ï
mov bl,byte[eax]
call find_obj_in_opt
xor ecx,ecx
mov cx,word[edi+obj_opt.img-obj_opt] ;cx - ¨­¤¥ªá £« ¢­®© ¨ª®­ª¨ ¤®¡ ¢«ï¥¬®£® ®¡ê¥ªâ 
shl ecx,16
stdcall [tl_node_add], eax, ecx, tree2 ;¤®¡ ¢«ï¥¬ ®¡ê¥ªâ
stdcall [tl_draw], tree2
pop edi ecx ebx eax
ret
;®¡­®¢«¥­¨¥ ®¡ê¥ªâ®¢ ¢ tree2, ¯® §­ ç¥­¨ï¬ ⥪á⮢ëå ¯®«¥©
;äã­ªæ¨ï ®¡à â­ ï ª ¤ ­­®© on_file_object_select
align 4

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 25 KiB

View File

@ -19,7 +19,7 @@ include 'strlen.inc'
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc, dll.Load
hed db 'kol_f_edit 17.11.10',0
hed db 'kol_f_edit 20.11.10',0
sizeof.TreeList equ 20 ;need for element 'tree_list'
@ -140,7 +140,8 @@ fn_font_s1 db 'font6x9.bmp',0
IMAGE_FILE_FONT1_SIZE equ 96*144*3 ;à §¬¥à ä ©«  á 1-¬ á¨á⥬­ë¬ èà¨ä⮬
fn_icon db 'icon.bmp',0
bmp_icon rb 0x300*30
count_main_icons equ 33 ;ç¨á«® ¨ª®­®ª ¢ ä ©«¥ icon.bmp
bmp_icon rb 0x300*count_main_icons
fn_icon_tl_sys db 'tl_sys_16.png',0
TREE_ICON_SYS16_BMP_SIZE equ 256*3*11+54 ;à §¬¥à bmp ä ©«  á á¨á⥬­ë¬¨ ¨ª®­ª ¬¨
@ -203,7 +204,7 @@ start:
mov [run_file_70.Function], 0
mov [run_file_70.Position], 54
mov [run_file_70.Flags], 0
mov [run_file_70.Count], 0x300*30
mov [run_file_70.Count], 0x300*count_main_icons
mov [run_file_70.Buffer], bmp_icon
mov [run_file_70.rezerv], 0
mov [run_file_70.FileName], fp_icon
@ -344,37 +345,39 @@ pushad
mov ecx,5*65536+18
mov edx,5
int 0x40
stdcall draw_icon, 22,231,6 ;22 - open
;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
stdcall draw_icon, 17,251,6 ;17 - save
;button 'Show Constructor'
mov ebx,310*65536+18
mov ecx,5*65536+18
mov edx,11
int 0x40
stdcall draw_icon, 12,311,6 ;12 - window icon
stdcall draw_icon, 12,311,6 ;12 - window
;button 'Show Code'
mov ebx,330*65536+18
mov edx,12
int 0x40
stdcall draw_icon, 11,331,6 ;11 - text icon
stdcall draw_icon, 11,331,6 ;11 - text
;button 'Update Code'
mov ebx,350*65536+18
mov edx,13
int 0x40
stdcall draw_icon, 32,351,6 ;32 - update
;button 'Save Code'
mov ebx,370*65536+18
mov edx,14
int 0x40
stdcall draw_icon, 17,371,6 ;17 - save icon
stdcall draw_icon, 17,371,6 ;17 - save
;button ']P'
mov ebx,390*65536+18
@ -402,17 +405,32 @@ pushad
int 0x40
stdcall draw_icon, 24,181,31 ;24 - move down
; 10 30 50 70 90
mov eax,4 ;¯®¤¯¨áì 'Žâªàëâì'
mov ebx,232*65536+13
mov ecx,0x80ffff00
mov edx,txtOpen
;button 'Copy'
mov ebx,200*65536+18
mov ecx,30*65536+18
mov edx,23
int 0x40
stdcall draw_icon, 30,201,31 ;30 - copy
;button 'Paste'
mov ebx,220*65536+18
mov ecx,30*65536+18
mov edx,24
int 0x40
stdcall draw_icon, 31,221,31 ;31 - paste
;button 'Property'
mov ebx,240*65536+18
mov ecx,30*65536+18
mov edx,25
int 0x40
stdcall draw_icon, 7,241,31 ;7 - property
; 10 30 50 70 90
cmp [err_opn],1
jne @f
;mov eax,4
mov eax,4
mov ebx,10*65536+35
mov ecx,0x80ff0000
mov edx,txtErrOpen
@ -542,6 +560,18 @@ button:
jne @f
call but_obj_move_down
@@:
cmp ah,23
jne @f
call but_obj_copy
@@:
cmp ah,24
jne @f
call but_obj_paste
@@:
cmp ah,25
jne @f
call on_file_object_select
@@:
cmp ah,1
jne still
.exit:
@ -777,11 +807,8 @@ push eax ebx ecx
pop eax
cmp eax,0
je @f
;mov bl,byte[eax]
;call find_obj_in_opt
xor ecx,ecx
mov cx,word[eax+obj_opt.img-obj_opt] ;cx - ¨­¤¥ªá £« ¢­®© ¨ª®­ª¨ ¤®¡ ¢«ï¥¬®£® ®¡ê¥ªâ 
;mov cx,word[edi+obj_opt.img-obj_opt] ;cx - ¨­¤¥ªá £« ¢­®© ¨ª®­ª¨ ¤®¡ ¢«ï¥¬®£® ®¡ê¥ªâ 
shl ecx,16
stdcall dword[tl_node_add], eax, ecx, tree2 ;¤®¡ ¢«ï¥¬ ®¡ê¥ªâ
@@:
@ -868,7 +895,6 @@ buf_skin3:
db 24 ;+20 bit in pixel
show_mode db 0 ;०¨¬ ¤«ï ¯®ª §  ®¯à¥¤¥«¥­­®£® ®ª­ 
txtOpen db 'Žâ',0
txtErrOpen db '<27>¥ ­ ©¤¥­ ä ©«, ¯à®¢¥àì⥠¯à ¢¨«ì­®áâì ¨¬¥­¨',0
txtErrIni1 db '<27>¥ ®âªàë«áï ä ©« á ®¯æ¨ï¬¨',0
err_opn db 0

View File

@ -48,7 +48,7 @@ table
</head>
<body>
<h1>Kol_f_edit версия от 11.11.2010</h1>
<h1>Kol_f_edit версия от 20.11.2010</h1>
<h2>О программе</h2>
<p>Программа для автоматизации создания интерфейса.
Многие функции программы пока еще не сделаны, потому возможности ее практического использования минимальные.
@ -57,8 +57,9 @@ table
<p>Внешний вид программы.</p>
<h2>Алгоритм работы с программой</h2>
<p>1) Открываем шаблон программы из файла <b>min_prog.ced</b> (<i>пока он только один, дальше планируеться добавление других шаблонов</i>)</p>
<p>2) Редактируем объекты в файле <b>min_prog.ced</b> (<i>более подробные инструкции по редактированию добавлю когда программа будет готова</i>)</p>
<p>1) Открываем шаблон программы из файла <b>min_prog.ced</b> или <b>box_l.ced</b>
(min_prog.ced - &quot;минимальная&quot; программа, box_l.ced - программа с подключением библиотеки box_lib.obj, планируеться добавление других шаблонов</i>)</p>
<p>2) Редактируем объекты в подключенном файле <b>*.ced</b> (<i>более подробные инструкции по редактированию добавлю когда программа будет готова</i>)</p>
<p>3) Создаем <b>*.asm</b> код в текстовом окне кнопкой на панели. Сохраняем <b>*.asm</b> код на диск (<i>работоспособность получившегося файла не гарантируется, т. к. многие элементы еще доконца не запрограмированы</i>)</p>
<p>4) Редактируем получившийся <b>*.asm</b> файл любым текстовым редактором</p>