1,6 → 1,15 |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
;Basic macros for use editbox ; |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
macro init_editbox |
{ |
pushad |
mcall |
|
popad |
} |
|
|
macro use_editbox_draw |
{ |
edit_box: |
14,14 → 23,15 |
ed_text_color equ [edi+28] ;梥â ⥪áâ |
ed_max equ [edi+32] ;ª®«-¢® ᨬ¢®«®¢ ª®â®àë¥ ¬®¦® ¬ ªá¨¬ «ì® ¢¢¥á⨠|
ed_text equ [edi+36] ;㪠§ â¥«ì ¡ãä¥à |
ed_flags equ [edi+40] ;ä« £¨ |
ed_size equ [edi+44] ;ª®«-¢® ᨬ¢®«®¢ |
ed_pos equ [edi+48] ;¯®§¨æ¨ï ªãàá®à |
ed_offset equ [edi+52] ;ᬥ饨¥ |
cl_curs_x equ [edi+56] ;¯à¥¤ë¤ã饥 ª®®à¤¨ â ªãàá®à ¯® å |
cl_curs_y equ [edi+60] ;¯à¥¤ë¤ã饥 ª®®à¤¨ â ªãàá®à ¯® ã |
ed_shift_pos equ [edi+64] ;¯®«®¦¥¨¥ ªãàá®à |
ed_shift_pos_old equ [edi+68] ;áâ ஥ ¯®«®¦¥¨¥ ªãàá®à |
ed_mouse_variable equ [edi+40] ; 㪠§ â¥«ì ¯¥à¥¬¥ãî ¤«ï ¡®ªá /£à㯯ë |
ed_flags equ [edi+44] ;ä« £¨ |
ed_size equ [edi+48] ;ª®«-¢® ᨬ¢®«®¢ |
ed_pos equ [edi+52] ;¯®§¨æ¨ï ªãàá®à |
ed_offset equ [edi+56] ;ᬥ饨¥ |
cl_curs_x equ [edi+60] ;¯à¥¤ë¤ã饥 ª®®à¤¨ â ªãàá®à ¯® å |
cl_curs_y equ [edi+64] ;¯à¥¤ë¤ã饥 ª®®à¤¨ â ªãàá®à ¯® ã |
ed_shift_pos equ [edi+68] ;¯®«®¦¥¨¥ ªãàá®à |
ed_shift_pos_old equ [edi+72] ;áâ ஥ ¯®«®¦¥¨¥ ªãàá®à |
|
ed_figure_only= 1000000000000000b ;®¤¨ ᨬ¢®«ë |
ed_always_focus= 100000000000000b |
62,7 → 72,7 |
;--- à¨á㥬 ªãàá®à --- |
;--- ¬®¦¥â ¥£® ¥ ¤® à¨á®¢ âì ---- |
test word ed_flags,ed_focus |
je @f |
jz @f |
call .draw_cursor |
@@: |
call .draw_text |
138,14 → 148,18 |
test eax,1 |
jnz edit_box_mouse.mouse_left_button |
and word ed_flags,ed_mouse_on_off |
xor ebx,ebx |
mov dword [mouse_flag],ebx |
mov ebx,dword ed_mouse_variable |
push 0 |
pop dword [ebx] |
; mov dword [ebx],ebx |
jmp edit_box.editbox_exit |
.mouse_left_button: |
;---------------------------------------------------------- |
;--- ¡«®ª¨à®¢ª ®â 䮪ãá¨à®¢ª¨ ¢ ¤àã£¨å ¡®ªá å ¯à¨ ¯®¯ ¤ ¨¨ ¨å ªãàá®à |
;---------------------------------------------------------- |
mov eax,dword [mouse_flag] |
mov eax,dword ed_mouse_variable |
push dword [eax] |
pop eax |
test eax,eax |
jz @f |
cmp eax,edi |
435,7 → 449,8 |
push ebx ;¡®«ì襥 |
jmp edit_box_key.sh_n1 |
;¥á«¨ ¨ ç¥ |
edit_box_key.sh_n: push ebx |
edit_box_key.sh_n: |
push ebx |
push eax |
edit_box_key.sh_n1: |
call edit_box.check_offset |
920,7 → 935,8 |
stosb |
;-------- |
loop @b |
edit_box_key.In_k: cld |
edit_box_key.In_k: |
cld |
pop eax |
mov al,ah |
stosb |
1015,7 → 1031,8 |
ret |
;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
;--- ¦ â ª« ¢¨è left --- |
edit_box_key.left: mov ebx,ed_pos |
edit_box_key.left: |
mov ebx,ed_pos |
test ebx,ebx |
jz edit_box_key.sh_st_of |
or word ed_flags,ed_left_fl |
1025,7 → 1042,8 |
jmp edit_box.draw_cursor_text |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
;--- ¦ â ª« ¢¨è right --- |
edit_box_key.right: mov ebx,ed_pos |
edit_box_key.right: |
mov ebx,ed_pos |
cmp ebx,ed_size |
je edit_box_key.sh_st_of |
and word ed_flags,ed_right_fl |
1218,7 → 1236,16 |
mov dword ed_shift_pos,eax |
or word ed_flags,ed_mouse_on |
mov dword ed_pos,eax |
mov dword [mouse_flag],edi ;ãáâ ®¢¨¬ ¨¤¥â¨ä¨ª â®à |
|
; mov dword [mouse_flag],edi ;ãáâ ®¢¨¬ ¨¤¥â¨ä¨ª â®à |
|
mov ebx,dword ed_mouse_variable |
push edi |
pop dword [ebx] |
|
|
|
|
bts word ed_flags,1 ;ãáâ ®¢ª 䮪ãá |
jmp edit_box_mouse.m_sh |
@@: |
1229,7 → 1256,8 |
mov ebx,dword ed_shift_pos |
call edit_box_key.sh_cl_ |
or word ed_flags,ed_mous_adn_b ;ãáâ ®¢¨¬ ¡¨â çâ® ¬ë ¢ë¤¥«¨«¨ +shift_on + |
edit_box_mouse.m_sh: call edit_box.draw_text |
edit_box_mouse.m_sh: |
call edit_box.draw_text |
call edit_box.draw_cursor |
;---------------------------------------------------------- |
;--- ¯à®æ¥¤ãà ãáâ ®¢ª¨ 䮪ãá --------------------------- |
1350,9 → 1378,9 |
ed_height=24 ; ¢ëá®â |
} |
|
ed_struc_size=72 |
ed_struc_size=76 |
struc edit_box width,left,top,color,shift_color,focus_border_color,\ |
blur_border_color,text_color,max,text,flags,size,pos |
blur_border_color,text_color,max,text,mouse_variable,flags,size,pos |
{ |
.width dd width |
.left dd left |
1364,6 → 1392,7 |
.text_color dd text_color |
.max dd max |
.text dd text |
.mouse_variable dd mouse_variable |
.flags dd flags+0 |
.size dd size+0 |
.pos dd pos+0 |