diff --git a/programs/develop/libraries/box_lib/trunk/box_lib.mac b/programs/develop/libraries/box_lib/trunk/box_lib.mac index cc272818c9..3a00266a4e 100644 --- a/programs/develop/libraries/box_lib/trunk/box_lib.mac +++ b/programs/develop/libraries/box_lib/trunk/box_lib.mac @@ -31,6 +31,7 @@ ed_struc_size=76 ed_figure_only= 1000000000000000b ;одни символы ed_always_focus= 100000000000000b ed_focus= 10b ;фокус приложения +ed_pass= 1b ;поле с паролем ed_shift_on= 1000b ;если не установлен -значит впервые нажат shift,если был установлен, значит мы уже что - то делали удерживая shift ed_shift_on_off=1111111111110111b ed_shift= 100b ;включается при нажатии на shift т.е. если нажимаю diff --git a/programs/develop/libraries/box_lib/trunk/editbox.mac b/programs/develop/libraries/box_lib/trunk/editbox.mac index 5d146519a3..587da4d9e3 100644 --- a/programs/develop/libraries/box_lib/trunk/editbox.mac +++ b/programs/develop/libraries/box_lib/trunk/editbox.mac @@ -181,8 +181,33 @@ edit_box.draw_text: mov ecx,ed_text_color add ebx,4 add edx,ed_text + test word ed_flags,ed_pass + jz @f + call edit_box.draw_password + jmp .end_f +@@: mcall +.end_f: ret + +txt_pass db '*',0 + +proc edit_box.draw_password +locals + s_len dw ? ;длина выводимого текста +endl + mov [s_len],si + xor esi,esi + inc esi + lea edx,[txt_pass] +@@: + mcall + add ebx,6 shl 16 ;добавляем стандартную ширину символа + dec word[s_len] + cmp word[s_len],0 + jg @b +ret +endp ;---------------------------------------------------------- ;--- процедура прорисовки фона ---------------------------- ;входные данные