forked from KolibriOS/kolibrios
1) new function 'edit_box_set_text' in 'box_lib'
2) small updates in 'fasm', 'planet_v', 'nu_pogodi' git-svn-id: svn://kolibrios.org@1619 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
@@ -125,6 +125,7 @@ dd sz_version, 0x00000001
|
||||
dd sz_edit_box, edit_box
|
||||
dd sz_edit_box_key, edit_box_key
|
||||
dd sz_edit_box_mouse, edit_box_mouse
|
||||
dd sz_edit_box_set_text, edit_box_set_text
|
||||
dd szVersion_ed, 0x00000001
|
||||
|
||||
dd sz_check_box_draw, check_box_draw
|
||||
@@ -222,6 +223,7 @@ sz_version db 'version',0
|
||||
sz_edit_box db 'edit_box',0
|
||||
sz_edit_box_key db 'edit_box_key',0
|
||||
sz_edit_box_mouse db 'edit_box_mouse',0
|
||||
sz_edit_box_set_text db 'edit_box_set_text',0
|
||||
szVersion_ed db 'version_ed',0
|
||||
|
||||
sz_check_box_draw db 'check_box_draw',0
|
||||
|
||||
@@ -257,6 +257,7 @@ tl_err_load_caption equ 1b ;
|
||||
tl_err_load_info_size equ 100b ;¥ ᮢ¯ ¤ ¥â à §¬¥à ¨ä®à¬ 樮®© áâàãªâãàë ¯à¨ ®âªàë⨨
|
||||
tl_load_mode_add equ 0x20000 ;®¯æ¨ï áç¨âë¢ ¨ï ¢ ०¨¬¥ ¤®¡ ¢«¥¨ï ¨ä®à¬ 樨
|
||||
tl_save_load_heder_size equ 26 ;à §¬¥à § £®«®¢ª ¤«ï § ¯¨á¨/ç⥨ï í«¥¬¥â®¢
|
||||
tl_offs_box equ 58 ; ç «® BOX áâàãªâãàë ¤«ï tree_list
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;Basic macros for use TextEditor ;
|
||||
|
||||
@@ -12,6 +12,8 @@
|
||||
<ul>
|
||||
<li><a href="#fun_key">edit_box_key</a></li>
|
||||
<li><a href="#fun_mouse">edit_box_mouse</a></li>
|
||||
<li><a href="#fun_draw">edit_box_draw</a></li>
|
||||
<li><a href="#fun_set_text">edit_box_set_text</a></li>
|
||||
<li><a href="#version">version_ed</a></li>
|
||||
</ul>
|
||||
<p><a href="#struc_editbox">Структура editbox</a></p>
|
||||
@@ -30,6 +32,18 @@
|
||||
<h2><a name="fun_mouse">edit_box_mouse</a></h2>
|
||||
<p>Эта функция должна вызыватся при вводе информации с мыши.</p>
|
||||
|
||||
<h2><a name="fun_draw">edit_box_draw</a></h2>
|
||||
<p>Эта функция должна вызыватся при вводе перерисовке элемента.</p>
|
||||
|
||||
<h2><a name="fun_set_text">edit_box_set_text</a></h2>
|
||||
<p>Эта функция копирует текст из указателя в текстовое поле. Если текст в указателе окажется длиннее чем допустимый в элементе edit_box, то он запишется не весь. После вызова данной функции необходимо перерисовать окно функцией edit_box_draw, иначе изменения будут сразу не видны. Пример использования:</p>
|
||||
<pre> push dword buf
|
||||
push dword edit1
|
||||
call dword [edit_box_set_text]
|
||||
.........
|
||||
buf db '111-222-333',0</pre>
|
||||
<p>где <b>edit1</b> - структура элемента edit_box; <b>buf</b> - буфер, в котором содержится устанавливаемый текст.</p>
|
||||
|
||||
<h2><a name="version">version_ed</a></h2>
|
||||
<p>Версия элемента</p>
|
||||
|
||||
@@ -74,6 +88,6 @@
|
||||
<p>Текстовое поле в фокусе.</p>
|
||||
|
||||
<hr>
|
||||
<p>Äîêóìåíòàöèÿ îáíîâëÿëàñü ïîñëåäíèé ðàç 10.01.10.</p>
|
||||
<p>Документация обновлялась последний раз 17.09.10.</p>
|
||||
</body>
|
||||
</html>
|
||||
@@ -327,7 +327,7 @@ ret
|
||||
;--- ¨§¬¥ï¥¬ ᬥ饨¥ ------------------------------------
|
||||
;--- ¥á«¨ ᬥ饨¥ ¡ë«® ãáâ ®¢ª ä« £ ed_offset_cl ¨ ç¥
|
||||
; ¥á«¨ ¨ç¥£® ¥ ¨§¬¥¨«®áì â® ¢ëáâ ¢«¥¨¥ ed_offset_fl
|
||||
; ¢ ®¡é¥© ¡¨â®¢®© ¬ àà¨æ¥ á®áâ®ï¨ï ª®¬¯®¥â®¢ word ed_flags
|
||||
; ¢ ®¡é¥© ¡¨â®¢®© ¬ âà¨æ¥ á®áâ®ï¨ï ª®¬¯®¥â®¢ word ed_flags
|
||||
;----------------------------------------------------------
|
||||
edit_box.check_offset:
|
||||
pushad
|
||||
@@ -378,6 +378,31 @@ edit_ex
|
||||
or word ed_flags,ed_offset_fl
|
||||
|
||||
edit_ex
|
||||
|
||||
align 4
|
||||
proc edit_box_set_text, edit:dword, text:dword
|
||||
pushad
|
||||
mov edi,dword[edit]
|
||||
mov ecx,ed_max
|
||||
inc ecx ;ãç¨âë¢ ¥¬ ¡ã¤ã饥 ®¡à¥§ ¨¥ áâப¨ ¤«ï ascii 0
|
||||
mov edi,dword[text]
|
||||
xor al,al
|
||||
cld
|
||||
repne scasb ;¯®¨áª ¢ áâப¥ edi ᨬ¢®« al
|
||||
mov ecx,edi ;ecx = text + ¬¨. § 票¥ ¨§: 1) ed_max ¨«¨ 2) ¤«¨ë áâப¨ text
|
||||
|
||||
mov edi,dword[edit]
|
||||
mov esi,dword[text]
|
||||
sub ecx,esi ;ecx = ¤«¨ áâப¨ text (® ¥ ¡®«ìè¥ ç¥¬ ed_max)
|
||||
dec ecx
|
||||
mov ed_size,ecx ;áâ ¢¨¬ ®¢ë© à §¬¥à áâப¨
|
||||
mov ed_pos,ecx ;áâ ¢¨¬ ªãàá®à ¢ ª®¥æ ®¢®© áâப¨
|
||||
mov edi,ed_text
|
||||
repne movsb ;ª®¯¨à®¢ ¨¥ ⥪á⮢®© áâப¨ text ¢ edit_box
|
||||
mov byte[edi],0 ;áâ ¢¨¬ ascii 0 ¢ ª®æ¥ áâப¨
|
||||
popad
|
||||
ret
|
||||
endp
|
||||
}
|
||||
|
||||
macro use_key_func
|
||||
|
||||
Reference in New Issue
Block a user