Fixed bug
git-svn-id: svn://kolibrios.org@583 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
1 parent
2199c90dd9
commit
59e4c92d8d
4 files changed
+80
-25
No files matched your search
@@ -1,3 +1,8 @@
|
||||
EDITBOX шёяюы№чєхЄ ьръЁюё macroc.inc т ъюЁэх фшЁхъЄюЁшш, Єръцх шёяюы№чєхЄ Їрщы эрёЄЁюхъ яЁш
|
||||
ъюьяшы Ўшш ъюфр, struct.inc т ъюЄюЁюь эєцэю єърчрЄ№ яЁртшы№э√щ Єшя яЁюЎхёёюЁр фы тр°хщ
|
||||
ёшёЄхь√!!
|
||||
|
||||
|
||||
╧юёфхфэр ьюфшЇшърЎш
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;;;╤ЄЁєъЄєЁэюх юяшёрэшх тючьюцэюёЄш ъюьяюэхЄр ш ьюфхыхщ хую шёяюы№чютрэш .
|
||||
|
||||
@@ -6,6 +6,7 @@ You bunny wrote .....
|
||||
▌Єю эх ьэюую Їюы№ъыхЁр, ёт чрээюх, ё Єхь, ўЄю эряшёрэшх яЁюуЁрьь фышээ√х ш ьєЄюЁэ√щ яЁюЎхёё, ш юэ эх юсїюфшЄ№ё схч т√Ёрцхэшщ яюфюсэюую ёюфхЁцрэш , эю эх яюярфр■∙хую т ъюьхэЄрЁшш ш юёэютэющ ъюф.....
|
||||
|
||||
╥хяыют └ыхъёхщ ▐Ё№хтшў aka <Lrz>
|
||||
; <Lrz> 20.07.2007 ╩юёьхЄшўхёъшх єыєў°хэш т ъюфх яЁюуЁрьь√, шёяЁртыхэ юфшэ эхёє∙хёЄтхээ√щ сру.
|
||||
; <Lrz> 18.05.2007 ╙ыєў°хэшх яюэшьрэш ЁрсюЄ√ яЁюуЁрьь√ чр ёўхЄ т√эхёр юёэютэ√ї ЇєэъЎшщ т юЄфхы№э√х ьръЁюё√
|
||||
; <Lrz> 14.05.2007 ╚ёяюы№чютрэшх ьръЁюёют,єфюсюўшЄрхьюё№ яЁюуЁрьь√ шёяюы№чютрэшх ьръЁюёр mcall фы т√чютр ёшё. ЇєэъЎшщ
|
||||
; <Lrz> 09.05.2007 ╬с∙р фюЁрсюЄър ьръЁюёют,чрьхэр эхёъюы№ъю ьхЄюъ, ьшуЁрЎш ъюфр т edit_box.mac
|
||||
|
||||
@@ -4,27 +4,25 @@
|
||||
;<Lrz> - Теплов Алексей www.lrz.land.ru
|
||||
;заголовок приложения
|
||||
include '..\..\..\..\macros.inc'
|
||||
; include 'macros.inc'
|
||||
include 'editbox.inc'
|
||||
meos_app_start
|
||||
align 4
|
||||
use_edit_box procinfo,22,5
|
||||
;Область кода
|
||||
code
|
||||
;start: ;Точка входа в программу
|
||||
code ;Точка входа в программу
|
||||
mcall 40,0x27 ;установить маску для ожидаемых событий
|
||||
;система будет реагировать только на сообщение о перерисовке,нажата кнопка, определённая ранее, событие от мыши (что-то случилось - нажатие на кнопку мыши или перемещение; сбрасывается при прочтении) и нажатие клавиши
|
||||
;система будет реагировать только на сообщение о перерисовке,нажата кнопка, определённая ранее, событие от мыши (что-то случилось - нажатие на кнопку мыши или перемещение; сбрасывается при прочтении) и нажатие клавиши
|
||||
red_win:
|
||||
call draw_window ;первоначально необходимо нарисовать окно
|
||||
align 4
|
||||
still: ;основной обработчик
|
||||
mcall 10 ;Ожидать события
|
||||
cmp al,0x1 ;если изменилось положение окна
|
||||
jz red_win
|
||||
cmp al,0x2 ;если нажата клавиша то перейти
|
||||
jz key
|
||||
cmp al,0x3 ;если нажата кнопка то перейти
|
||||
jz button
|
||||
dec eax
|
||||
jz red_win
|
||||
dec eax
|
||||
jz key
|
||||
dec eax
|
||||
jz button
|
||||
mouse_edit_boxes editboxes,editboxes_end
|
||||
jmp still ;если ничего из перечисленного то снова в цикл
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
@@ -56,7 +54,7 @@ edit4 edit_box 16,5,70,0xffffff,0x6a9480,0,0,0,1,ed_buffer.4,ed_figure_only
|
||||
editboxes_end:
|
||||
data_of_code dd 0
|
||||
mouse_flag dd 0x0
|
||||
hed db 'EDITBOX optimization and retype <Lrz> date 14.05.2007',0
|
||||
hed db 'EDITBOX optimization and retype <Lrz> date 20.07.2007',0
|
||||
rb 256
|
||||
ed_buffer:
|
||||
;.1: rb 514;256
|
||||
|
||||
@@ -31,9 +31,9 @@ macro use_general_func
|
||||
mov edx,ed_offset
|
||||
add ebx,2
|
||||
shl ebx,16
|
||||
mov bx,ed_top
|
||||
add ebx,4
|
||||
add ebx,ed_top
|
||||
mov ecx,ed_text_color
|
||||
add ebx,4
|
||||
add edx,ed_text
|
||||
mcall
|
||||
ret
|
||||
@@ -47,20 +47,19 @@ ret
|
||||
.draw_bg:
|
||||
mov ebx,ed_left
|
||||
add ebx,1
|
||||
shl ebx,16
|
||||
mov bx,ed_width
|
||||
sub ebx,1
|
||||
mov edx,ed_color
|
||||
shl ebx,16
|
||||
add ebx,ed_width
|
||||
sub ebx,1
|
||||
.draw_bg_eax:
|
||||
mov ecx,ed_top
|
||||
mov eax,13
|
||||
add ecx,1
|
||||
shl ecx,16
|
||||
mov cx,ed_height
|
||||
add ecx,ed_height
|
||||
dec ecx
|
||||
mcall
|
||||
ret
|
||||
|
||||
;----------------------------------------------------------
|
||||
;--- процедура получения количества символов в текущей щирине компонента
|
||||
;----------------------------------------------------------
|
||||
@@ -89,7 +88,7 @@ ret
|
||||
lea ebx,[ebx*2+ebx]
|
||||
shl ebx,1
|
||||
;imul ebx,6
|
||||
add bx,ed_left
|
||||
add ebx,ed_left
|
||||
mov ecx,ed_top
|
||||
inc ebx
|
||||
add ecx,2
|
||||
@@ -100,7 +99,7 @@ ret
|
||||
|
||||
shl ecx,16
|
||||
mov cx,bp
|
||||
add cx,ed_height-4
|
||||
add ecx,ed_height-4
|
||||
|
||||
mov cl_curs_x,ebx
|
||||
mov cl_curs_y,ecx
|
||||
@@ -123,8 +122,8 @@ ret
|
||||
mov ecx,ebx
|
||||
shl ebx,16
|
||||
mov bx,cx
|
||||
add bx,ed_width
|
||||
mov ecx, ed_top
|
||||
add ebx,ed_width
|
||||
mov ecx,ed_top
|
||||
mov esi,ecx
|
||||
shl ecx,16
|
||||
mov cx,si
|
||||
@@ -139,7 +138,7 @@ ret
|
||||
;--- слева ---
|
||||
mov cx,si
|
||||
mov ebp,ebx
|
||||
sub bx,ed_width
|
||||
sub ebx,ed_width
|
||||
mcall
|
||||
;--- справа ---
|
||||
mov ebx,ebp
|
||||
@@ -534,7 +533,7 @@ edit_ex
|
||||
inc ebx
|
||||
add ebx,ed_left
|
||||
shl ebx,16
|
||||
mov bx,6
|
||||
add ebx,6
|
||||
mov edx,ebp
|
||||
call .draw_bg_eax
|
||||
ret
|
||||
@@ -624,12 +623,15 @@ macro are_key_shift_press
|
||||
;Входные данные edx=ed_size;ecx=ed_pos
|
||||
push eax
|
||||
mov edx,ed_size
|
||||
mov ecx,ed_pos
|
||||
mov ecx, ed_pos
|
||||
pusha
|
||||
;;;;;;;;;;;;;;;;;;;;;
|
||||
;clear input arrea
|
||||
mov ebp,ed_color
|
||||
mov ebx,dword ed_shift_pos
|
||||
call .sh_cl_
|
||||
mov ebp,ed_size
|
||||
call .clear_bg
|
||||
;;;;;;;;;;;;;;;;;;;;;
|
||||
popa
|
||||
call .del_char
|
||||
@@ -1075,4 +1077,53 @@ macro debug_func
|
||||
stosb ;записать элемент из регистра al в ячеку памяти es:edi
|
||||
|
||||
ret ;вернуться чень интересный ход т.к. пока в стеке храниться кол-во вызовов то столько раз мы и будем вызываться
|
||||
}
|
||||
|
||||
;;;;;;;;;;;;;;;
|
||||
;For LibGui
|
||||
;;;;;;;;;;;;;;;
|
||||
macro srt_ed_libgui
|
||||
{
|
||||
ed_width equ [EditBox.ed_width] ;ширина компонента
|
||||
ed_left equ [EditBox.ed_left] ;положение по оси х
|
||||
ed_top equ [EditBox.ed_top] ;положение по оси у
|
||||
ed_color equ [EditBox.ed_color] ;цвет фона компонента
|
||||
shift_color equ [EditBox.shift_color] ;=0x6a9480
|
||||
ed_focus_border_color equ [EditBox.ed_focus_border_color] ;цвет рамки компонента
|
||||
ed_blur_border_color equ [EditBox.ed_blur_border_color] ;цвет не активного компонента
|
||||
ed_text_color equ [EditBox.ed_text_color] ;цвет текста
|
||||
ed_max equ [EditBox.ed_max] ;кол-во символов которые можно максимально ввести
|
||||
ed_text equ [EditBox.ed_text] ;указатель на буфер
|
||||
ed_flags equ [EditBox.ed_flags] ;флаги
|
||||
ed_size equ [EditBox.ed_size] ;кол-во символов
|
||||
ed_pos equ [EditBox.ed_poz] ;позиция курсора
|
||||
ed_offset equ [EditBox.ed_offset] ;смещение
|
||||
cl_curs_x equ [EditBox.cl_curs_x] ;предыдущее координата курсора по х
|
||||
cl_curs_y equ [EditBox.cl_curs_y] ;предыдущее координата курсора по у
|
||||
ed_shift_pos equ [EditBox.ed_shift_pos] ;положение курсора
|
||||
ed_shift_pos_old equ [EditBox.ed_shift_pos_old] ;старое положение курсора
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;Bit mask from editbox
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
ed_figure_only= 1000000000000000b ;одни символы
|
||||
ed_always_focus= 100000000000000b
|
||||
ed_focus= 10b ;фокус приложения
|
||||
ed_shift_on= 1000b ;если не установлен -значит впервые нажат shift,если был установлен, значит мы уже что - то делали удерживая shift
|
||||
ed_shift_on_off=1111111111110111b
|
||||
ed_shift= 100b ;включается при нажатии на shift т.е. если нажимаю
|
||||
ed_shift_off= 1111111111111011b
|
||||
ed_shift_bac= 10000b ;бит для очистки выделеного shift т.е. при установке говорит что есть выделение
|
||||
ed_shift_bac_cl=1111111111101111b ;очистка при удалении выделения
|
||||
ed_shift_cl= 1111111111100011b
|
||||
ed_shift_mcl= 1111111111111011b
|
||||
ed_left_fl= 100000b
|
||||
ed_right_fl= 1111111111011111b
|
||||
ed_offset_fl= 1000000b
|
||||
ed_offset_cl= 1111111110111111b
|
||||
ed_insert= 10000000b
|
||||
ed_insert_cl= 1111111101111111b
|
||||
ed_mouse_on = 100000000b
|
||||
ed_mous_adn_b= 100011000b
|
||||
ed_mouse_on_off=1111111011111111b
|
||||
ed_height=14 ; высота
|
||||
}
|
||||
Reference in new issue
Block a user