forked from KolibriOS/kolibrios
update 'kol_f_edit', added example of connecting the library 'buf2d.obj'
git-svn-id: svn://kolibrios.org@1732 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
05210d030e
commit
e0fed2fb2e
BIN
programs/develop/kol_f_edit/buf2d.ced
Normal file
BIN
programs/develop/kol_f_edit/buf2d.ced
Normal file
Binary file not shown.
@ -137,15 +137,6 @@ macro insert_reg8 reg_name
|
|||||||
stdcall [ted_text_add], tedit0,reg_name,2,ted_opt_ed_move_cursor
|
stdcall [ted_text_add], tedit0,reg_name,2,ted_opt_ed_move_cursor
|
||||||
}
|
}
|
||||||
|
|
||||||
;
|
|
||||||
macro insert_but_beg
|
|
||||||
{
|
|
||||||
stdcall [ted_text_add], tedit0,txt_but_1,txt_but_2-txt_but_1,ted_opt_ed_move_cursor
|
|
||||||
}
|
|
||||||
macro insert_but_end
|
|
||||||
{
|
|
||||||
stdcall [ted_text_add], tedit0,txt_but_2,txt_but_3-txt_but_2,ted_opt_ed_move_cursor
|
|
||||||
}
|
|
||||||
;
|
;
|
||||||
macro insert_key_beg
|
macro insert_key_beg
|
||||||
{
|
{
|
||||||
@ -200,7 +191,7 @@ popad
|
|||||||
; esi - 㪠§ ⥫ì 㧥«
|
; esi - 㪠§ ⥫ì 㧥«
|
||||||
align 4
|
align 4
|
||||||
code_gen_obj:
|
code_gen_obj:
|
||||||
push ebx edx
|
push eax ebx edx
|
||||||
.beg_iterat:
|
.beg_iterat:
|
||||||
cmp esi,0
|
cmp esi,0
|
||||||
je .find_no
|
je .find_no
|
||||||
@ -233,27 +224,15 @@ push ebx edx
|
|||||||
stdcall insert_text, txt_skob_fo
|
stdcall insert_text, txt_skob_fo
|
||||||
@@:
|
@@:
|
||||||
insert_nl
|
insert_nl
|
||||||
|
stdcall get_code_children_objects, esi
|
||||||
stdcall dword[tl_node_poi_get_next_info], esi,tree2
|
call move_next_no_child_objects ;¯à®¯ã᪠¤®ç¥à¨å ®¡¥ªâ®¢
|
||||||
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
|
||||||
cmp esi,0
|
|
||||||
je .end_st
|
|
||||||
cmp byte[esi+2],bl ;lev
|
|
||||||
jle .end_st
|
|
||||||
push bx
|
|
||||||
mov bl,byte[esi+2]
|
|
||||||
call code_gen_obj ;४ãàá¨¢ë© ¢ë§®¢ ¤®ç¥à¨å ®¡ê¥ªâ®¢
|
|
||||||
pop bx
|
|
||||||
.end_st:
|
|
||||||
cmp byte[edx],0
|
cmp byte[edx],0
|
||||||
je @f
|
je @f
|
||||||
;¥á«¨ áâàãªâãà § ¤ ¬ ªà®á®¬
|
;¥á«¨ áâàãªâãà § ¤ ¬ ªà®á®¬
|
||||||
stdcall insert_text, txt_skob_fc
|
stdcall insert_text, txt_skob_fc
|
||||||
insert_nl
|
insert_nl
|
||||||
jmp .beg_iterat
|
|
||||||
@@:
|
@@:
|
||||||
stdcall insert_text,txt_ends
|
stdcall insert_text,txt_ends
|
||||||
jmp .beg_iterat
|
|
||||||
.no_struct:
|
.no_struct:
|
||||||
cmp dword[eax],C_TXT
|
cmp dword[eax],C_TXT
|
||||||
jne @f
|
jne @f
|
||||||
@ -270,10 +249,14 @@ push ebx edx
|
|||||||
cmp dword[eax],C_WND
|
cmp dword[eax],C_WND
|
||||||
jne @f
|
jne @f
|
||||||
stdcall get_code_window,eax ;®¡à ¡®âª ®¡ê¥ªâ
|
stdcall get_code_window,eax ;®¡à ¡®âª ®¡ê¥ªâ
|
||||||
|
stdcall get_code_children_objects, esi ;®¡à ¡®âª ¤®ç¥à¨å ®¡¥ªâ®¢
|
||||||
|
call move_next_no_child_objects ;¯à®¯ã᪠¤®ç¥à¨å ®¡¥ªâ®¢
|
||||||
|
stdcall insert_text, txt_draw_we ;ª®¤ § ¢¥àè î騩 äãªæ¨î à¨á®¢ ¨ï
|
||||||
@@:
|
@@:
|
||||||
cmp dword[eax],C_ACO
|
cmp dword[eax],C_ACO
|
||||||
jne @f
|
jne @f
|
||||||
stdcall get_code_auto,eax ;®¡à ¡®âª ®¡ê¥ªâ
|
stdcall get_code_auto,esi ;®¡à ¡®âª ®¡ê¥ªâ
|
||||||
|
call move_next_no_child_objects ;¯à®¯ã᪠¤®ç¥à¨å ®¡¥ªâ®¢
|
||||||
@@:
|
@@:
|
||||||
cmp dword[eax],C_KEY ;ª« ¢¨ âãà
|
cmp dword[eax],C_KEY ;ª« ¢¨ âãà
|
||||||
jne @f
|
jne @f
|
||||||
@ -285,7 +268,49 @@ push ebx edx
|
|||||||
|
|
||||||
jmp .beg_iterat
|
jmp .beg_iterat
|
||||||
.find_no:
|
.find_no:
|
||||||
pop edx ebx
|
pop edx ebx eax
|
||||||
|
ret
|
||||||
|
|
||||||
|
;¢§ïâì ª®¤ë ¤®ç¥à¨å ®¡ê¥ªâ®¢
|
||||||
|
align 4
|
||||||
|
proc get_code_children_objects, p_node:dword
|
||||||
|
push ebx esi
|
||||||
|
mov esi,[p_node]
|
||||||
|
mov bl,byte[esi+2] ;á®åà 塞 ã஢¥ì ⥪ã饣® ®¡ê¥ªâ
|
||||||
|
|
||||||
|
stdcall dword[tl_node_poi_get_next_info], esi,tree2
|
||||||
|
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||||
|
cmp esi,0 ;¥á«¨ ¤®á⨣«¨ ª®æ ᯨ᪠®¡ê¥ªâ®¢
|
||||||
|
je @f
|
||||||
|
cmp byte[esi+2],bl ;¥á«¨ ã஢¥ì á«¥¤ãî饣® ®¡ê¥ªâ ¡®«ìè¥ ¨«¨ à ¢¥ ⥪ã饬ã
|
||||||
|
jle @f ;â® ¤®ç¥à¨å 㧫®¢ ¥â
|
||||||
|
mov bl,byte[esi+2]
|
||||||
|
call code_gen_obj ;४ãàá¨¢ë© ¢ë§®¢ ¤®ç¥à¨å ®¡ê¥ªâ®¢
|
||||||
|
@@:
|
||||||
|
pop esi ebx
|
||||||
|
ret
|
||||||
|
endp
|
||||||
|
|
||||||
|
;¯à®¯ã᪠¢á¥å ¤®ç¥à¨å ®¡ê¥ªâ®¢
|
||||||
|
;input:
|
||||||
|
; esi - 㪠§ ⥫ì 㧥«
|
||||||
|
;outpet:
|
||||||
|
; esi - 㪠§ ⥫ì á«¥¤ã騩 ¥ ¤®ç¥à¨© (®â®á¨â¥«ì® ¢å®¤ï饣®) 㧥«
|
||||||
|
align 4
|
||||||
|
move_next_no_child_objects:
|
||||||
|
push eax ebx
|
||||||
|
mov bl,byte[esi+2] ;á®åà 塞 ã஢¥ì ⥪ã饣® ®¡ê¥ªâ
|
||||||
|
@@:
|
||||||
|
stdcall dword[tl_node_poi_get_next_info], esi,tree2
|
||||||
|
pop eax ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||||
|
cmp eax,0 ;¥á«¨ ¤®á⨣«¨ ª®æ ᯨ᪠®¡ê¥ªâ®¢
|
||||||
|
je @f
|
||||||
|
cmp byte[eax+2],bl ;¥á«¨ ã஢¥ì á«¥¤ãî饣® ®¡ê¥ªâ ¡®«ìè¥ ¨«¨ à ¢¥ ⥪ã饬ã
|
||||||
|
jle @f ;â® ¤®ç¥à¨å 㧫®¢ ¥â
|
||||||
|
mov esi,eax ;¥á«¨ á«¥¤ã騩 㧥« ®ª § «áï ¤®ç¥à¨¬, ¯¥à¥áâ ¢«ï¥¬ 㪠§ ⥫ì
|
||||||
|
jmp @b
|
||||||
|
@@:
|
||||||
|
pop ebx eax
|
||||||
ret
|
ret
|
||||||
|
|
||||||
;¤®¡ ¢«¥¨¥ ®¡ê¥ªâ á ¯à®£à ¬ë¬ ª®¤®¬ (⥪á⮬)
|
;¤®¡ ¢«¥¨¥ ®¡ê¥ªâ á ¯à®£à ¬ë¬ ª®¤®¬ (⥪á⮬)
|
||||||
@ -301,10 +326,13 @@ endp
|
|||||||
|
|
||||||
;®¡à ¡®âª ®¡ê¥ªâ ᮧ¤ î饣® ¢â®¬ â¨ç¥ªá¨¥ ª®¤ë
|
;®¡à ¡®âª ®¡ê¥ªâ ᮧ¤ î饣® ¢â®¬ â¨ç¥ªá¨¥ ª®¤ë
|
||||||
align 4
|
align 4
|
||||||
proc get_code_auto, p_obj:dword
|
proc get_code_auto, p_node:dword
|
||||||
pushad
|
pushad
|
||||||
insert_nl
|
insert_nl
|
||||||
mov ebx,dword[p_obj]
|
mov esi,dword[p_node]
|
||||||
|
stdcall dword[tl_node_poi_get_data], esi,tree2
|
||||||
|
pop ebx ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||||
|
|
||||||
test_bool_prop ebx,BIT_MOD_ACI
|
test_bool_prop ebx,BIT_MOD_ACI
|
||||||
jae @f
|
jae @f
|
||||||
mov edx,C_CHB
|
mov edx,C_CHB
|
||||||
@ -321,9 +349,13 @@ proc get_code_auto, p_obj:dword
|
|||||||
test_bool_prop ebx,BIT_MOD_ABU
|
test_bool_prop ebx,BIT_MOD_ABU
|
||||||
jae @f
|
jae @f
|
||||||
;ᮧ¤ ¨¥ äãªæ¨¨ button
|
;ᮧ¤ ¨¥ äãªæ¨¨ button
|
||||||
insert_but_beg
|
stdcall insert_text, txt_but_beg
|
||||||
call get_code_auto_but ;ª®¤ë ¢ë§®¢ ª®¯®ª
|
call get_code_auto_but ;ª®¤ë ¢ë§®¢ ª®¯®ª
|
||||||
insert_but_end
|
stdcall insert_text, txt_but_mid
|
||||||
|
stdcall get_code_children_objects, esi
|
||||||
|
;ª®¥æ äãªæ¨¨ button (ª®¯ª id=-1, § ¢¥à襨¥ ¯à®£à ¬¬ë)
|
||||||
|
stdcall insert_text, txt_but_end
|
||||||
|
|
||||||
call get_code_a_but_fun ;ª®¤ë äãªæ¨©, ¢ë§ë¢ ¥¬ëå ¯à¨ ¦ ⨨ ª®¯®ª
|
call get_code_a_but_fun ;ª®¤ë äãªæ¨©, ¢ë§ë¢ ¥¬ëå ¯à¨ ¦ ⨨ ª®¯®ª
|
||||||
@@:
|
@@:
|
||||||
test_bool_prop ebx,BIT_MOD_ACD
|
test_bool_prop ebx,BIT_MOD_ACD
|
||||||
@ -1105,8 +1137,6 @@ proc get_code_window, p_obj:dword
|
|||||||
insert_nl
|
insert_nl
|
||||||
|
|
||||||
call get_code_draw_obj
|
call get_code_draw_obj
|
||||||
|
|
||||||
stdcall insert_text, txt_draw_we ;ª®¤ § ¢¥àè î騩 äãªæ¨î à¨á®¢ ¨ï
|
|
||||||
popad
|
popad
|
||||||
ret
|
ret
|
||||||
endp
|
endp
|
||||||
@ -1423,16 +1453,14 @@ txt_cb_b db 13,'check_boxes:',0
|
|||||||
txt_cb_e db 'check_boxes_end:',13,0
|
txt_cb_e db 'check_boxes_end:',13,0
|
||||||
|
|
||||||
txt_ebox db ' edit_box',0
|
txt_ebox db ' edit_box',0
|
||||||
txt_editb_draw:
|
txt_editb_draw db 9,'stdcall [edit_box_draw], ',0
|
||||||
db 9,'stdcall [edit_box_draw], ',0
|
txt_cbox_draw db 9,'stdcall [check_box_draw], ',0
|
||||||
txt_cbox_draw:
|
|
||||||
db 9,'stdcall [check_box_draw], ',0
|
|
||||||
|
|
||||||
txt_but_1:
|
; ç «® äãªæ¨¨ ª®¯®ª
|
||||||
db 'align 4',13,'button:',13,9,'mcall 17',13
|
txt_but_beg db 'align 4',13,'button:',13,9,'mcall 17',13,0
|
||||||
txt_but_2:
|
txt_but_mid db 9,'cmp ah,1',13,9,'jne still',13,'.exit:',13,0
|
||||||
db 9,'cmp ah,1',13,9,'jne still',13,'.exit:',13,9,'mcall -1',13
|
;ª®¥æ äãªæ¨¨ ª®¯®ª (§ ¢¥à襨¥ ¯à®£à ¬ë)
|
||||||
txt_but_3:
|
txt_but_end db 9,'mcall -1',13,0
|
||||||
|
|
||||||
txt_key_1:
|
txt_key_1:
|
||||||
db 'align 4',13,'key:',13,9,'mcall 2',13
|
db 'align 4',13,'key:',13,9,'mcall 2',13
|
||||||
|
BIN
programs/develop/kol_f_edit/docs/prop_incl.png
Normal file
BIN
programs/develop/kol_f_edit/docs/prop_incl.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.6 KiB |
@ -48,7 +48,7 @@ table
|
|||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<h1>Kol_f_edit версия от 22.12.2010</h1>
|
<h1>Kol_f_edit версия от 31.12.2010</h1>
|
||||||
<p>Оглавление</p>
|
<p>Оглавление</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>О программе</li>
|
<li>О программе</li>
|
||||||
@ -61,22 +61,25 @@ table
|
|||||||
<li><a href="#obj_code">Asm код</a></li>
|
<li><a href="#obj_code">Asm код</a></li>
|
||||||
<li><a href="#obj_auto">Авто код</a></li>
|
<li><a href="#obj_auto">Авто код</a></li>
|
||||||
<li><a href="#obj_libr">Импорт библиотеки</a></li>
|
<li><a href="#obj_libr">Импорт библиотеки</a></li>
|
||||||
|
<li><a href="#obj_ifun">Функция из библиотеки</a></li>
|
||||||
|
<li><a href="#obj_incl">Включение файла</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<h2>О программе</h2>
|
<h2>О программе</h2>
|
||||||
<p>Программа для автоматизации создания интерфейса.
|
<p>Программа для автоматизации создания интерфейса.
|
||||||
Многие функции программы пока еще не сделаны, потому возможности ее практического использования минимальные.
|
Некоторые из функций программы пока еще не сделаны, потому возможности ее практического использования ограничены.
|
||||||
Лицензия свободная.</p>
|
Лицензия свободная.</p>
|
||||||
<p><img src="about.png"></p>
|
<p><img src="about.png"></p>
|
||||||
<p>Внешний вид программы.</p>
|
<p>Внешний вид программы.</p>
|
||||||
|
|
||||||
<h2><a name="algor">Алгоритм работы с программой</a></h2>
|
<h2><a name="algor">Алгоритм работы с программой</a></h2>
|
||||||
<p>1) Открываем шаблон программы из файла <b>min_prog.ced</b> или <b>box_l.ced</b>
|
<p>1) Открываем шаблон программы из файла с расширением <b>.ced</b>
|
||||||
(min_prog.ced - "минимальная" программа, box_l.ced - программа с подключением библиотеки box_lib.obj, планируеться добавление других шаблонов</i>)</p>
|
(min_prog.ced - "минимальная" программа, box_l.ced - программа с подключением библиотеки box_lib.obj,
|
||||||
|
buf2d.ced - программа с подключением библиотеки buf2d.obj, планируеться добавление других шаблонов</i>)</p>
|
||||||
<p>2) Редактируем объекты в подключенном файле <b>*.ced</b></p>
|
<p>2) Редактируем объекты в подключенном файле <b>*.ced</b></p>
|
||||||
<p>3) Создаем <b>*.asm</b> код в текстовом окне кнопкой на панели. Сохраняем <b>*.asm</b> код на диск (<i>работоспособность получившегося файла не гарантируется, т. к. многие элементы еще доконца не запрограмированы</i>)</p>
|
<p>3) Создаем <b>*.asm</b> код в текстовом окне кнопкой на панели. Сохраняем <b>*.asm</b> код на диск (<i>работоспособность получившегося файла не гарантируется, т. к. некоторые из элементов еще доконца не проработаны</i>)</p>
|
||||||
<p>4) Редактируем получившийся <b>*.asm</b> файл любым текстовым редактором</p>
|
<p>4) Редактируем получившийся <b>*.asm</b> файл любым текстовым редактором. Для этого убираем в начале файла описания структур (т. к. они содержатся в подключаемых файлах <b>.inc</b>) и дописываем пути к подключаемым файлам.</p>
|
||||||
|
|
||||||
<h2><a name="v_obj">Виды объектов</a></h2>
|
<h2><a name="v_obj">Виды объектов</a></h2>
|
||||||
<p>Програмный код создается на основе свойств объектов, внесенных в файл проэкта. Все объекты внутри програмы представляються структурами вида:</p>
|
<p>Програмный код создается на основе свойств объектов, внесенных в файл проэкта. Все объекты внутри програмы представляються структурами вида:</p>
|
||||||
@ -148,7 +151,25 @@ ends</pre>
|
|||||||
<li>текст ошибки который появляется если возникли проблемы с импортом функций из библиотеки</li>
|
<li>текст ошибки который появляется если возникли проблемы с импортом функций из библиотеки</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p>Для создания програмного кода этого объекта нужен объект <a href="#obj_auto">авто кода</a> с включенной опцией <b>коды элементов</b>.
|
<p>Для создания програмного кода этого объекта нужен объект <a href="#obj_auto">авто кода</a> с включенной опцией <b>коды элементов</b>.
|
||||||
Этот объект используется вместе с объектами <b>функция из библиотеки</b>, которые должны быть дочерними для него.</p>
|
Этот объект используется вместе с объектами <a href="#obj_ifun">функция из библиотеки</a>, которые должны быть дочерними для него.</p>
|
||||||
|
|
||||||
|
<h3><a name="obj_ifun">Функция из библиотеки</a></h3>
|
||||||
|
<img src="prop_ifun.png">
|
||||||
|
<p>Данные объекты служат для создания указателей на функции импортируемые из библиотеки. Содержит параметры:</p>
|
||||||
|
<ul>
|
||||||
|
<li>програмное имя функции (то имя каким функция будет называться в пользовательской програме)</li>
|
||||||
|
<li>импортируемое имя функции (то имя которое записано в библиотеке)</li>
|
||||||
|
</ul>
|
||||||
|
<p>В большинстве случаев эти параметры будут совпадать друг с другом.
|
||||||
|
Эти объекты используется вместе с объектами <a href="#obj_libr">импорт библиотеки</a>, которые должны быть родительскими для них.</p>
|
||||||
|
|
||||||
|
<h3><a name="obj_incl">Включение файла</a></h3>
|
||||||
|
<img src="prop_incl.png">
|
||||||
|
<p>Объект создания кода подключения файлов, через ключевое слово <b>include</b>. Содержит параметры:</p>
|
||||||
|
<ul>
|
||||||
|
<li>имя файла (вместе с путем и одинарными кавычками)</li>
|
||||||
|
<li>комментарий (используется если пользователю необходимо добавить описание подключаемого файла)</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
<h3></h3>
|
<h3></h3>
|
||||||
<p></p>
|
<p></p>
|
||||||
|
@ -20,7 +20,7 @@ include 'obj_codes.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 22.12.10',0
|
hed db 'kol_f_edit 31.12.10',0
|
||||||
|
|
||||||
sizeof.TreeList equ 20 ;need for element 'tree_list'
|
sizeof.TreeList equ 20 ;need for element 'tree_list'
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user