Fixed bug

git-svn-id: svn://kolibrios.org@583 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Alexey Teplov ( 2007-07-20 07:18:18 +00:00
parent 2199c90dd9
commit 59e4c92d8d
4 changed files with 80 additions and 25 deletions

View File

@ -1,3 +1,8 @@
EDITBOX использует макрос macroc.inc в корне директории, также использует файл настроек при
компиляции кода, struct.inc в котором нужно указать правильный тип процессора для вашей
системы!!
Посдедная модификация Посдедная модификация
;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;Структурное описание возможности компонета и моделей его использования. ;;;Структурное описание возможности компонета и моделей его использования.

View File

@ -6,6 +6,7 @@ You bunny wrote .....
Это не много фольклера, связанное, с тем, что написание программ длинные и муторный процесс, и он не обходиться без выражений подобного содержания, но не попадающего в коментарии и основной код..... Это не много фольклера, связанное, с тем, что написание программ длинные и муторный процесс, и он не обходиться без выражений подобного содержания, но не попадающего в коментарии и основной код.....
Теплов Алексей Юрьевич aka <Lrz> Теплов Алексей Юрьевич aka <Lrz>
; <Lrz> 20.07.2007 Косметические улучшения в коде программы, исправлен один несущественный баг.
; <Lrz> 18.05.2007 Улучшение понимания работы программы за счет вынеса основных функций в отдельные макросы ; <Lrz> 18.05.2007 Улучшение понимания работы программы за счет вынеса основных функций в отдельные макросы
; <Lrz> 14.05.2007 Использование макросов,удобочитаемось программы использование макроса mcall для вызова сис. функций ; <Lrz> 14.05.2007 Использование макросов,удобочитаемось программы использование макроса mcall для вызова сис. функций
; <Lrz> 09.05.2007 Общая доработка макросов,замена несколько меток, миграция кода в edit_box.mac ; <Lrz> 09.05.2007 Общая доработка макросов,замена несколько меток, миграция кода в edit_box.mac

View File

@ -4,27 +4,25 @@
;<Lrz> - ’¥¯«®¢ €«¥ªá¥© www.lrz.land.ru ;<Lrz> - ’¥¯«®¢ €«¥ªá¥© www.lrz.land.ru
;§ £®«®¢®ª ¯à¨«®¦¥­¨ï ;§ £®«®¢®ª ¯à¨«®¦¥­¨ï
include '..\..\..\..\macros.inc' include '..\..\..\..\macros.inc'
; include 'macros.inc'
include 'editbox.inc' include 'editbox.inc'
meos_app_start meos_app_start
align 4 align 4
use_edit_box procinfo,22,5 use_edit_box procinfo,22,5
;Ž¡« áâì ª®¤  ;Ž¡« áâì ª®¤ 
code code ;’®çª  ¢å®¤  ¢ ¯à®£à ¬¬ã
;start: ;’®çª  ¢å®¤  ¢ ¯à®£à ¬¬ã
mcall 40,0x27 ;ãáâ ­®¢¨âì ¬ áªã ¤«ï ®¦¨¤ ¥¬ëå ᮡë⨩ mcall 40,0x27 ;ãáâ ­®¢¨âì ¬ áªã ¤«ï ®¦¨¤ ¥¬ëå ᮡë⨩
;á¨á⥬  ¡ã¤¥â ॠ£¨à®¢ âì ⮫쪮 ­  á®®¡é¥­¨¥ ® ¯¥à¥à¨á®¢ª¥,­ ¦ â  ª­®¯ª , ®¯à¥¤¥«ñ­­ ï à ­¥¥, ᮡë⨥ ®â ¬ëè¨ (çâ®-â® á«ã稫®áì - ­ ¦ â¨¥ ­  ª­®¯ªã ¬ëè¨ ¨«¨ ¯¥à¥¬¥é¥­¨¥; á¡à á뢠¥âáï ¯à¨ ¯à®ç⥭¨¨) ¨ ­ ¦ â¨¥ ª« ¢¨è¨ ;á¨á⥬  ¡ã¤¥â ॠ£¨à®¢ âì ⮫쪮 ­  á®®¡é¥­¨¥ ® ¯¥à¥à¨á®¢ª¥,­ ¦ â  ª­®¯ª , ®¯à¥¤¥«ñ­­ ï à ­¥¥, ᮡë⨥ ®â ¬ëè¨ (çâ®-â® á«ã稫®áì - ­ ¦ â¨¥ ­  ª­®¯ªã ¬ëè¨ ¨«¨ ¯¥à¥¬¥é¥­¨¥; á¡à á뢠¥âáï ¯à¨ ¯à®ç⥭¨¨) ¨ ­ ¦ â¨¥ ª« ¢¨è¨
red_win: red_win:
call draw_window ;¯¥à¢®­ ç «ì­® ­¥®¡å®¤¨¬® ­ à¨á®¢ âì ®ª­® call draw_window ;¯¥à¢®­ ç «ì­® ­¥®¡å®¤¨¬® ­ à¨á®¢ âì ®ª­®
align 4 align 4
still: ;®á­®¢­®© ®¡à ¡®â稪 still: ;®á­®¢­®© ®¡à ¡®â稪
mcall 10 ;Ž¦¨¤ âì ᮡëâ¨ï mcall 10 ;Ž¦¨¤ âì ᮡëâ¨ï
cmp al,0x1 ;¥á«¨ ¨§¬¥­¨«®áì ¯®«®¦¥­¨¥ ®ª­  dec eax
jz red_win jz red_win
cmp al,0x2 ;¥á«¨ ­ ¦ â  ª« ¢¨è  â® ¯¥à¥©â¨ dec eax
jz key jz key
cmp al,0x3 ;¥á«¨ ­ ¦ â  ª­®¯ª  â® ¯¥à¥©â¨ dec eax
jz button jz button
mouse_edit_boxes editboxes,editboxes_end mouse_edit_boxes editboxes,editboxes_end
jmp still ;¥á«¨ ­¨ç¥£® ¨§ ¯¥à¥ç¨á«¥­­®£® â® á­®¢  ¢ 横« 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: editboxes_end:
data_of_code dd 0 data_of_code dd 0
mouse_flag dd 0x0 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 rb 256
ed_buffer: ed_buffer:
;.1: rb 514;256 ;.1: rb 514;256

View File

@ -31,9 +31,9 @@ macro use_general_func
mov edx,ed_offset mov edx,ed_offset
add ebx,2 add ebx,2
shl ebx,16 shl ebx,16
mov bx,ed_top add ebx,ed_top
add ebx,4
mov ecx,ed_text_color mov ecx,ed_text_color
add ebx,4
add edx,ed_text add edx,ed_text
mcall mcall
ret ret
@ -47,20 +47,19 @@ ret
.draw_bg: .draw_bg:
mov ebx,ed_left mov ebx,ed_left
add ebx,1 add ebx,1
shl ebx,16
mov bx,ed_width
sub ebx,1
mov edx,ed_color mov edx,ed_color
shl ebx,16
add ebx,ed_width
sub ebx,1
.draw_bg_eax: .draw_bg_eax:
mov ecx,ed_top mov ecx,ed_top
mov eax,13 mov eax,13
add ecx,1 add ecx,1
shl ecx,16 shl ecx,16
mov cx,ed_height add ecx,ed_height
dec ecx dec ecx
mcall mcall
ret ret
;---------------------------------------------------------- ;----------------------------------------------------------
;--- ¯à®æ¥¤ãà  ¯®«ã祭¨ï ª®«¨ç¥á⢠ ᨬ¢®«®¢ ¢ ⥪ã饩 é¨à¨­¥ ª®¬¯®­¥­â  ;--- ¯à®æ¥¤ãà  ¯®«ã祭¨ï ª®«¨ç¥á⢠ ᨬ¢®«®¢ ¢ ⥪ã饩 é¨à¨­¥ ª®¬¯®­¥­â 
;---------------------------------------------------------- ;----------------------------------------------------------
@ -89,7 +88,7 @@ ret
lea ebx,[ebx*2+ebx] lea ebx,[ebx*2+ebx]
shl ebx,1 shl ebx,1
;imul ebx,6 ;imul ebx,6
add bx,ed_left add ebx,ed_left
mov ecx,ed_top mov ecx,ed_top
inc ebx inc ebx
add ecx,2 add ecx,2
@ -100,7 +99,7 @@ ret
shl ecx,16 shl ecx,16
mov cx,bp mov cx,bp
add cx,ed_height-4 add ecx,ed_height-4
mov cl_curs_x,ebx mov cl_curs_x,ebx
mov cl_curs_y,ecx mov cl_curs_y,ecx
@ -123,8 +122,8 @@ ret
mov ecx,ebx mov ecx,ebx
shl ebx,16 shl ebx,16
mov bx,cx mov bx,cx
add bx,ed_width add ebx,ed_width
mov ecx, ed_top mov ecx,ed_top
mov esi,ecx mov esi,ecx
shl ecx,16 shl ecx,16
mov cx,si mov cx,si
@ -139,7 +138,7 @@ ret
;--- á«¥¢  --- ;--- á«¥¢  ---
mov cx,si mov cx,si
mov ebp,ebx mov ebp,ebx
sub bx,ed_width sub ebx,ed_width
mcall mcall
;--- á¯à ¢  --- ;--- á¯à ¢  ---
mov ebx,ebp mov ebx,ebp
@ -534,7 +533,7 @@ edit_ex
inc ebx inc ebx
add ebx,ed_left add ebx,ed_left
shl ebx,16 shl ebx,16
mov bx,6 add ebx,6
mov edx,ebp mov edx,ebp
call .draw_bg_eax call .draw_bg_eax
ret ret
@ -624,12 +623,15 @@ macro are_key_shift_press
;‚室­ë¥ ¤ ­­ë¥ edx=ed_size;ecx=ed_pos ;‚室­ë¥ ¤ ­­ë¥ edx=ed_size;ecx=ed_pos
push eax push eax
mov edx,ed_size mov edx,ed_size
mov ecx,ed_pos mov ecx, ed_pos
pusha pusha
;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;
;clear input arrea
mov ebp,ed_color mov ebp,ed_color
mov ebx,dword ed_shift_pos mov ebx,dword ed_shift_pos
call .sh_cl_ call .sh_cl_
mov ebp,ed_size
call .clear_bg
;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;
popa popa
call .del_char call .del_char
@ -1075,4 +1077,53 @@ macro debug_func
stosb ;§ ¯¨á âì í«¥¬¥­â ¨§ ॣ¨áâà  al ¢ ï祪㠯 ¬ï⨠es:edi stosb ;§ ¯¨á âì í«¥¬¥­â ¨§ ॣ¨áâà  al ¢ ï祪㠯 ¬ï⨠es:edi
ret ;¢¥à­ãâìáï ç¥­ì ¨­â¥à¥á­ë© 室 â.ª. ¯®ª  ¢ á⥪¥ åà ­¨âìáï ª®«-¢® ¢ë§®¢®¢ â® á⮫쪮 à § ¬ë ¨ ¡ã¤¥¬ ¢ë§ë¢ âìáï 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 ; ¢ëá®â 
} }