forked from KolibriOS/kolibrios
optimization mouse code and delete 9 function and not use it now
git-svn-id: svn://kolibrios.org@830 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
a4d9a318f2
commit
4533639793
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
#pragma option A
|
#pragma option A
|
||||||
#codesize
|
#codesize
|
||||||
#include "..\..\lib\kolibri.h--"
|
#include "..\lib\kolibri.h--"
|
||||||
#include "use_library.h--"
|
#include "use_library.h--"
|
||||||
//////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////
|
||||||
//Bit mask from editbox
|
//Bit mask from editbox
|
||||||
@ -62,7 +62,7 @@ byte id;
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
edit_box_mouse stdcall (dword 0,0,#edit1);
|
edit_box_mouse stdcall (#edit1);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Binary file not shown.
@ -30,12 +30,7 @@ cl_curs_y equ [edi+60] ;
|
|||||||
ed_shift_pos equ [edi+64] ;¯®«®¦¥¨¥ ªãàá®à
|
ed_shift_pos equ [edi+64] ;¯®«®¦¥¨¥ ªãàá®à
|
||||||
ed_shift_pos_old equ [edi+68] ;áâ ஥ ¯®«®¦¥¨¥ ªãàá®à
|
ed_shift_pos_old equ [edi+68] ;áâ ஥ ¯®«®¦¥¨¥ ªãàá®à
|
||||||
.draw:
|
.draw:
|
||||||
pusha
|
pushad
|
||||||
mov eax,9
|
|
||||||
push procinfo
|
|
||||||
pop ebx
|
|
||||||
or ecx,-1
|
|
||||||
mcall
|
|
||||||
;--- à¨á㥬 à ¬ªã ---
|
;--- à¨á㥬 à ¬ªã ---
|
||||||
mov edi,dword [esp+36]
|
mov edi,dword [esp+36]
|
||||||
call .draw_border ; ”ãªæ¨ï áâ ¡¨«ì
|
call .draw_border ; ”ãªæ¨ï áâ ¡¨«ì
|
||||||
@ -59,14 +54,14 @@ ed_shift_pos_old equ [edi+68] ;
|
|||||||
;<3B>¡é¨© ¢ë室 ¨§ editbox ¤«ï ¢á¥å äãªæ¨© ¨ ¯®áâ ®¡à ¡®â稪®¢
|
;<3B>¡é¨© ¢ë室 ¨§ editbox ¤«ï ¢á¥å äãªæ¨© ¨ ¯®áâ ®¡à ¡®â稪®¢
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
.editbox_exit:
|
.editbox_exit:
|
||||||
popa
|
popad
|
||||||
ret 4
|
ret 4
|
||||||
|
|
||||||
;==========================================================
|
;==========================================================
|
||||||
;=== ®¡à ¡®âª ª« ¢¨ âãàë =================================
|
;=== ®¡à ¡®âª ª« ¢¨ âãàë =================================
|
||||||
;==========================================================
|
;==========================================================
|
||||||
edit_box_key:
|
edit_box_key:
|
||||||
pusha
|
pushad
|
||||||
mov edi,dword [esp+36]
|
mov edi,dword [esp+36]
|
||||||
test word ed_flags,ed_focus ; ¥á«¨ ¥ ¢ 䮪ãá¥, ¢ë室¨¬
|
test word ed_flags,ed_focus ; ¥á«¨ ¥ ¢ 䮪ãá¥, ¢ë室¨¬
|
||||||
je edit_box.editbox_exit
|
je edit_box.editbox_exit
|
||||||
@ -106,18 +101,7 @@ use_work_key
|
|||||||
;==========================================================
|
;==========================================================
|
||||||
;save for stdcall ebx,esi,edi,ebp
|
;save for stdcall ebx,esi,edi,ebp
|
||||||
edit_box_mouse:
|
edit_box_mouse:
|
||||||
pop eax ;opint to back
|
pushad
|
||||||
pop edx ;scr_w
|
|
||||||
pop ecx ;ebp ;scr_h
|
|
||||||
push eax
|
|
||||||
|
|
||||||
; pop eax
|
|
||||||
; pop edx ;scr_w
|
|
||||||
; pop ecx ;scr_h
|
|
||||||
; push eax ;pointer to back
|
|
||||||
pusha
|
|
||||||
mov ebp,ecx
|
|
||||||
|
|
||||||
mov edi,dword [esp+36]
|
mov edi,dword [esp+36]
|
||||||
;debug
|
;debug
|
||||||
;----------------------------------------------------------
|
;----------------------------------------------------------
|
||||||
@ -146,7 +130,7 @@ pusha
|
|||||||
;----------------------------------------------------------
|
;----------------------------------------------------------
|
||||||
;--- ¯®«ãç ¥¬ ª®®à¤¨ âë ¬ëè¨ ®â®á¨â¥«ì® 0 â.¥ ¢á¥© ®¡« á⨠íªà
|
;--- ¯®«ãç ¥¬ ª®®à¤¨ âë ¬ëè¨ ®â®á¨â¥«ì® 0 â.¥ ¢á¥© ®¡« á⨠íªà
|
||||||
;----------------------------------------------------------
|
;----------------------------------------------------------
|
||||||
@@: mcall 37,0
|
@@: mcall 37,1
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;”ãªæ¨ï ®¡à ¡®âª¨ ¬ë誨 ¯®«ã票¥ ª®®à¤¨ â ¨ ¯à®¢¥àª ¨å + ¢ë¤¥«¥¨ï
|
;”ãªæ¨ï ®¡à ¡®âª¨ ¬ë誨 ¯®«ã票¥ ª®®à¤¨ â ¨ ¯à®¢¥àª ¨å + ¢ë¤¥«¥¨ï
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
@ -162,7 +146,7 @@ use_key_func
|
|||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;”ãªæ¨¨ ¤«ï à ¡®âë á mouse
|
;”ãªæ¨¨ ¤«ï à ¡®âë á mouse
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
use_mouse_func ;scr_w
|
use_mouse_func
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;Bit mask from editbox
|
;Bit mask from editbox
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
@ -548,4 +532,3 @@ szVersion_op db 'version_op',0
|
|||||||
;;;;;;;;;;;
|
;;;;;;;;;;;
|
||||||
align 16
|
align 16
|
||||||
mouse_flag dd 0x0
|
mouse_flag dd 0x0
|
||||||
procinfo process_information
|
|
Binary file not shown.
@ -154,7 +154,7 @@ ret
|
|||||||
; ¢ ®¡é¥© ¡¨â®¢®© ¬ àà¨æ¥ á®áâ®ï¨ï ª®¬¯®¥â®¢ word ed_flags
|
; ¢ ®¡é¥© ¡¨â®¢®© ¬ àà¨æ¥ á®áâ®ï¨ï ª®¬¯®¥â®¢ word ed_flags
|
||||||
;----------------------------------------------------------
|
;----------------------------------------------------------
|
||||||
edit_box.check_offset:
|
edit_box.check_offset:
|
||||||
pusha
|
pushad
|
||||||
mov ecx,ed_pos
|
mov ecx,ed_pos
|
||||||
mov ebx,ed_offset
|
mov ebx,ed_offset
|
||||||
cmp ebx,ecx
|
cmp ebx,ecx
|
||||||
@ -830,11 +830,10 @@ edit_box_mouse.mouse_wigwag:
|
|||||||
;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;
|
||||||
;;¯à®æ¥¤ãà ®¡à ¡®âª¨ ¯®«®¦¥¨ï ¢ë¤¥«¥®£® ⥪áâ , ª®£¤ ¯à®¨á室¨â ¢ë室 § ¯à¥¤¥«ë editbox
|
;;¯à®æ¥¤ãà ®¡à ¡®âª¨ ¯®«®¦¥¨ï ¢ë¤¥«¥®£® ⥪áâ , ª®£¤ ¯à®¨á室¨â ¢ë室 § ¯à¥¤¥«ë editbox
|
||||||
;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;
|
||||||
mov ebx,[procinfo.box.left]
|
test ax,0x8000
|
||||||
add ebx,ed_left
|
jnz edit_box_mouse.mleft
|
||||||
|
|
||||||
add ebx,dword [esp+20];scr_w
|
|
||||||
|
|
||||||
|
mov ebx,ed_left
|
||||||
cmp eax,ebx
|
cmp eax,ebx
|
||||||
jb edit_box_mouse.mleft
|
jb edit_box_mouse.mleft
|
||||||
|
|
||||||
@ -920,8 +919,6 @@ edit_box_mouse.mright:
|
|||||||
}
|
}
|
||||||
|
|
||||||
macro use_work_mouse
|
macro use_work_mouse
|
||||||
; pop edx ;scr_h
|
|
||||||
; pop ebp ;scr_w
|
|
||||||
;----------------------------------------------------------
|
;----------------------------------------------------------
|
||||||
;--- € ¥ 㤥ন¢ ¥¬ «¨ ¬ë ª« ¢¨èã ¬ë誨, ¯¥à¥¬¥é ï ªãàá®à, ¢® ¢á¥ à §ë¥ áâ®à®ë?
|
;--- € ¥ 㤥ন¢ ¥¬ «¨ ¬ë ª« ¢¨èã ¬ë誨, ¯¥à¥¬¥é ï ªãàá®à, ¢® ¢á¥ à §ë¥ áâ®à®ë?
|
||||||
;----------------------------------------------------------
|
;----------------------------------------------------------
|
||||||
@ -931,48 +928,41 @@ macro use_work_mouse
|
|||||||
;----------------------------------------------------------
|
;----------------------------------------------------------
|
||||||
;--- ¯à®¢¥à塞, ¯®¯ ¤ ¥â «¨ ªãàá®à ¢ edit box -------------
|
;--- ¯à®¢¥à塞, ¯®¯ ¤ ¥â «¨ ªãàá®à ¢ edit box -------------
|
||||||
;----------------------------------------------------------
|
;----------------------------------------------------------
|
||||||
mov ebx,[procinfo.box.top]
|
mov ebx,ed_top
|
||||||
add ebx,ed_top
|
|
||||||
add ebx,dword [esp+24] ;ecx scr_h
|
|
||||||
cmp ax,bx
|
cmp ax,bx
|
||||||
jl edit_box_mouse._blur;.mouse_end_no_focus
|
jl edit_box_mouse._blur;.mouse_end_no_focus
|
||||||
|
|
||||||
add ebx,ed_height
|
add ebx,ed_height
|
||||||
cmp ax,bx
|
cmp ax,bx
|
||||||
jg edit_box_mouse._blur;.mouse_end_no_focus
|
jg edit_box_mouse._blur;.mouse_end_no_focus
|
||||||
|
|
||||||
shr eax,16
|
shr eax,16
|
||||||
|
|
||||||
mov ebx,[procinfo.box.left]
|
mov ebx,ed_left
|
||||||
add ebx,ed_left
|
|
||||||
add ebx,dword [esp+20] ;edx scr_w
|
|
||||||
|
|
||||||
cmp ax,bx
|
cmp ax,bx
|
||||||
jl edit_box_mouse._blur;.mouse_end_no_focus
|
jl edit_box_mouse._blur;.mouse_end_no_focus
|
||||||
|
|
||||||
add ebx,ed_width
|
add ebx,ed_width
|
||||||
|
|
||||||
cmp ax,bx
|
cmp ax,bx
|
||||||
jg edit_box_mouse._blur;.mouse_end_no_focus
|
jg edit_box_mouse._blur;.mouse_end_no_focus
|
||||||
|
|
||||||
;--- ¨§¬¥ï¥¬ ¯®§¨æ¨î ªãàá®à ---
|
;--- ¨§¬¥ï¥¬ ¯®§¨æ¨î ªãàá®à ---
|
||||||
push eax
|
push eax
|
||||||
mov ebp,ed_color
|
mov ebp,ed_color
|
||||||
call edit_box.clear_cursor
|
call edit_box.clear_cursor
|
||||||
pop eax
|
pop eax
|
||||||
edit_box_mouse._mvpos:
|
edit_box_mouse._mvpos:
|
||||||
mov ebx,dword [procinfo.box.left]
|
|
||||||
xor edx,edx
|
xor edx,edx
|
||||||
sub eax,ed_left
|
sub eax,ed_left
|
||||||
sub eax,ebx
|
|
||||||
;
|
|
||||||
add ebx,dword [esp+20] ; scr_w
|
|
||||||
sub eax,2
|
|
||||||
;
|
|
||||||
mov ebx,6
|
mov ebx,6
|
||||||
div bx
|
div bx
|
||||||
add eax,ed_offset
|
add eax,ed_offset
|
||||||
cmp eax,ed_size
|
cmp eax,ed_size
|
||||||
jna edit_box_mouse._mshift
|
jna edit_box_mouse._mshift
|
||||||
mov eax,ed_size
|
mov eax,ed_size
|
||||||
|
|
||||||
edit_box_mouse._mshift:
|
edit_box_mouse._mshift:
|
||||||
;;;;;;;
|
;;;;;;;
|
||||||
;;‘¥ªæ¨ï ®¡à ¡®âª¨ shift ¨ ¢ë¤¥«¥¨ï ¯® shift
|
;;‘¥ªæ¨ï ®¡à ¡®âª¨ shift ¨ ¢ë¤¥«¥¨ï ¯® shift
|
||||||
@ -1025,7 +1015,7 @@ edit_box_mouse.drc: call edit_box.draw_border
|
|||||||
; Œ ªà®á ¢ë室
|
; Œ ªà®á ¢ë室
|
||||||
macro edit_ex
|
macro edit_ex
|
||||||
{
|
{
|
||||||
popa
|
popad
|
||||||
ret
|
ret
|
||||||
}
|
}
|
||||||
macro debug
|
macro debug
|
||||||
|
@ -111,13 +111,9 @@ still: ;
|
|||||||
jz button
|
jz button
|
||||||
|
|
||||||
push dword edit1
|
push dword edit1
|
||||||
push 22
|
|
||||||
push 5
|
|
||||||
call [edit_box_mouse]
|
call [edit_box_mouse]
|
||||||
|
|
||||||
push dword edit2
|
push dword edit2
|
||||||
push 22
|
|
||||||
push 5
|
|
||||||
call [edit_box_mouse]
|
call [edit_box_mouse]
|
||||||
|
|
||||||
push dword check1
|
push dword check1
|
||||||
|
Binary file not shown.
@ -1,4 +1,4 @@
|
|||||||
..\FASM\fasm.exe box_lib.asm
|
@fasm.exe box_lib.asm
|
||||||
..\FASM\fasm.exe editbox_ex.asm editbox_ex.kex
|
@fasm.exe editbox_ex.asm editbox_ex.kex
|
||||||
REM ..\FASM\kpack.exe editbox_ex
|
REM ..\FASM\kpack.exe editbox_ex
|
||||||
..\emul\klbrinwin.exe editbox_ex.kex
|
@klbrinwin.exe editbox_ex.kex
|
@ -2,7 +2,7 @@
|
|||||||
;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;
|
||||||
include 'editbox.mac' ;¬ ªà®á ª®â®àë© ¤®«¦¥ ®¡«¥£ç¨âì ¦¨§ì :) á¯¥æ¨ «ì® ¤«ï editbox
|
include 'editbox.mac' ;¬ ªà®á ª®â®àë© ¤®«¦¥ ®¡«¥£ç¨âì ¦¨§ì :) á¯¥æ¨ «ì® ¤«ï editbox
|
||||||
;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;
|
||||||
macro use_edit_box procinfo,scr_h,scr_w
|
macro use_edit_box
|
||||||
{
|
{
|
||||||
edit_box:
|
edit_box:
|
||||||
ed_width equ [edi] ;è¨à¨ ª®¬¯®¥â
|
ed_width equ [edi] ;è¨à¨ ª®¬¯®¥â
|
||||||
@ -16,18 +16,18 @@ ed_text_color equ [edi+28] ;梥
|
|||||||
ed_max equ [edi+32] ;ª®«-¢® ᨬ¢®«®¢ ª®â®àë¥ ¬®¦® ¬ ªá¨¬ «ì® ¢¢¥áâ¨
|
ed_max equ [edi+32] ;ª®«-¢® ᨬ¢®«®¢ ª®â®àë¥ ¬®¦® ¬ ªá¨¬ «ì® ¢¢¥áâ¨
|
||||||
ed_text equ [edi+36] ;㪠§ â¥«ì ¡ãä¥à
|
ed_text equ [edi+36] ;㪠§ â¥«ì ¡ãä¥à
|
||||||
ed_flags equ [edi+40] ;ä« £¨
|
ed_flags equ [edi+40] ;ä« £¨
|
||||||
ed_size equ [edi+42] ;ª®«-¢® ᨬ¢®«®¢
|
ed_size equ [edi+44] ;ª®«-¢® ᨬ¢®«®¢
|
||||||
ed_pos equ [edi+46] ;¯®§¨æ¨ï ªãàá®à
|
ed_pos equ [edi+48] ;¯®§¨æ¨ï ªãàá®à
|
||||||
ed_offset equ [edi+50] ;ᬥ饨¥
|
ed_offset equ [edi+52] ;ᬥ饨¥
|
||||||
cl_curs_x equ [edi+54] ;¯à¥¤ë¤ã饥 ª®®à¤¨ â ªãàá®à ¯® å
|
cl_curs_x equ [edi+56] ;¯à¥¤ë¤ã饥 ª®®à¤¨ â ªãàá®à ¯® å
|
||||||
cl_curs_y equ [edi+58] ;¯à¥¤ë¤ã饥 ª®®à¤¨ â ªãàá®à ¯® ã
|
cl_curs_y equ [edi+60] ;¯à¥¤ë¤ã饥 ª®®à¤¨ â ªãàá®à ¯® ã
|
||||||
ed_shift_pos equ [edi+62] ;¯®«®¦¥¨¥ ªãàá®à
|
ed_shift_pos equ [edi+64] ;¯®«®¦¥¨¥ ªãàá®à
|
||||||
ed_shift_pos_old equ [edi+66] ;áâ ஥ ¯®«®¦¥¨¥ ªãàá®à
|
ed_shift_pos_old equ [edi+68] ;áâ ஥ ¯®«®¦¥¨¥ ªãàá®à
|
||||||
;==========================================================
|
;==========================================================
|
||||||
;=== ¯à®æ¥¤ãà ¯à®à¨á®¢ª¨ =================================
|
;=== ¯à®æ¥¤ãà ¯à®à¨á®¢ª¨ =================================
|
||||||
;==========================================================
|
;==========================================================
|
||||||
.draw:
|
.draw:
|
||||||
pusha
|
pushad
|
||||||
;--- à¨á㥬 à ¬ªã ---
|
;--- à¨á㥬 à ¬ªã ---
|
||||||
call .draw_border ; ”ãªæ¨ï áâ ¡¨«ì
|
call .draw_border ; ”ãªæ¨ï áâ ¡¨«ì
|
||||||
.draw_bg_cursor_text:
|
.draw_bg_cursor_text:
|
||||||
@ -54,7 +54,7 @@ edit_ex
|
|||||||
;=== ®¡à ¡®âª ª« ¢¨ âãàë =================================
|
;=== ®¡à ¡®âª ª« ¢¨ âãàë =================================
|
||||||
;==========================================================
|
;==========================================================
|
||||||
.key:
|
.key:
|
||||||
pusha
|
pushad
|
||||||
test word ed_flags,ed_focus ; ¥á«¨ ¥ ¢ 䮪ãá¥, ¢ë室¨¬
|
test word ed_flags,ed_focus ; ¥á«¨ ¥ ¢ 䮪ãá¥, ¢ë室¨¬
|
||||||
je .editbox_exit
|
je .editbox_exit
|
||||||
test word ed_flags,ed_mouse_on
|
test word ed_flags,ed_mouse_on
|
||||||
@ -91,7 +91,7 @@ use_work_key
|
|||||||
;=== ®¡à ¡®âª ¬ëè¨ =======================================
|
;=== ®¡à ¡®âª ¬ëè¨ =======================================
|
||||||
;==========================================================
|
;==========================================================
|
||||||
.mouse:
|
.mouse:
|
||||||
pusha
|
pushad
|
||||||
;debug
|
;debug
|
||||||
;----------------------------------------------------------
|
;----------------------------------------------------------
|
||||||
;--- ¯®«ãç ¥¬ á®áâ®ï¨¥ ª®¯®ª ¬ëè¨ -----------------------
|
;--- ¯®«ãç ¥¬ á®áâ®ï¨¥ ª®¯®ª ¬ëè¨ -----------------------
|
||||||
@ -117,13 +117,14 @@ pusha
|
|||||||
je @f
|
je @f
|
||||||
jmp ._blur
|
jmp ._blur
|
||||||
;----------------------------------------------------------
|
;----------------------------------------------------------
|
||||||
;--- ¯®«ãç ¥¬ ª®®à¤¨ âë ¬ëè¨ ®â®á¨â¥«ì® 0 â.¥ ¢á¥© ®¡« á⨠íªà
|
;--- ¯®«ãç ¥¬ ª®®à¤¨ âë ¬ëè¨ ®â®á¨â¥«ì® ®ª
|
||||||
;----------------------------------------------------------
|
;----------------------------------------------------------
|
||||||
@@: mcall 37,0
|
@@: mcall 37,1
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;”ãªæ¨ï ®¡à ¡®âª¨ ¬ë誨 ¯®«ã票¥ ª®®à¤¨ â ¨ ¯à®¢¥àª ¨å + ¢ë¤¥«¥¨ï
|
;”ãªæ¨ï ®¡à ¡®âª¨ ¬ë誨 ¯®«ã票¥ ª®®à¤¨ â ¨ ¯à®¢¥àª ¨å + ¢ë¤¥«¥¨ï
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
use_work_mause scr_h,scr_w
|
use_work_mouse
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;Ž¡é¨¥ äãªæ¨¨ ®¡à ¡®âª¨
|
;Ž¡é¨¥ äãªæ¨¨ ®¡à ¡®âª¨
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
@ -135,7 +136,7 @@ use_key_func
|
|||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;”ãªæ¨¨ ¤«ï à ¡®âë á mouse
|
;”ãªæ¨¨ ¤«ï à ¡®âë á mouse
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
use_mouse_func scr_w
|
use_mouse_func
|
||||||
}
|
}
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;Bit mask from editbox
|
;Bit mask from editbox
|
||||||
@ -161,12 +162,8 @@ ed_mouse_on = 100000000b
|
|||||||
ed_mous_adn_b= 100011000b
|
ed_mous_adn_b= 100011000b
|
||||||
ed_mouse_on_off=1111111011111111b
|
ed_mouse_on_off=1111111011111111b
|
||||||
ed_height=14 ; ¢ëá®â
|
ed_height=14 ; ¢ëá®â
|
||||||
macro draw_edit_boxes start,_end,use_f9,procinfo
|
macro draw_edit_boxes start,_end
|
||||||
{
|
{
|
||||||
if use_f9 eq
|
|
||||||
else
|
|
||||||
mcall 9,procinfo,-1
|
|
||||||
end if
|
|
||||||
mov edi,start
|
mov edi,start
|
||||||
mov ecx,((_end-start)/ed_struc_size)
|
mov ecx,((_end-start)/ed_struc_size)
|
||||||
@@:
|
@@:
|
||||||
@ -194,7 +191,7 @@ macro key_edit_boxes start,end
|
|||||||
add edi,ed_struc_size
|
add edi,ed_struc_size
|
||||||
loop @b
|
loop @b
|
||||||
}
|
}
|
||||||
ed_struc_size=70
|
ed_struc_size=72
|
||||||
struc edit_box width,left,top,color,shift_color,focus_border_color,\
|
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,flags,size,pos
|
||||||
{
|
{
|
||||||
@ -208,7 +205,7 @@ struc edit_box width,left,top,color,shift_color,focus_border_color,\
|
|||||||
.text_color dd text_color
|
.text_color dd text_color
|
||||||
.max dd max
|
.max dd max
|
||||||
.text dd text
|
.text dd text
|
||||||
.flags dw flags+0
|
.flags dd flags+0
|
||||||
.size dd size+0
|
.size dd size+0
|
||||||
.pos dd pos+0
|
.pos dd pos+0
|
||||||
.offset dd 0
|
.offset dd 0
|
||||||
@ -245,12 +242,8 @@ macro edit_boxes_set_sys_color start,end,color_table
|
|||||||
loop @b
|
loop @b
|
||||||
}
|
}
|
||||||
|
|
||||||
macro draw_edit_box ed_ptr,use_f9,procinfo
|
macro draw_edit_box ed_ptr
|
||||||
{
|
{
|
||||||
if use_f9 eq
|
|
||||||
else
|
|
||||||
mcall 9,procinfo,-1
|
|
||||||
end if
|
|
||||||
mov edi,ed_ptr
|
mov edi,ed_ptr
|
||||||
call edit_box.draw
|
call edit_box.draw
|
||||||
}
|
}
|
||||||
|
@ -84,23 +84,17 @@ draw_edit_boxes -
|
|||||||
Передаваемые параметры
|
Передаваемые параметры
|
||||||
editboxes - указатель на информационную структуру боксов
|
editboxes - указатель на информационную структуру боксов
|
||||||
editboxes_end - конец информационной структуры боксов
|
editboxes_end - конец информационной структуры боксов
|
||||||
use_f9 и procinfo - при передаче этого параметра - при перерисовки боксов будет исползована фунция
|
|
||||||
mcall 9,procinfo,-1
|
|
||||||
которая получает данные о окне и складывает параметры по адресу procinfo- его то же обязательно нужно передавать!!!!
|
|
||||||
Если в программе уже используется эта функция, то не нужно указывать данные параметр!!!!
|
|
||||||
|
|
||||||
Как под вариант существует макрос
|
Как под вариант существует макрос
|
||||||
draw_edit_box - он используется если выводится один бокс
|
draw_edit_box - он используется если выводится один бокс
|
||||||
Передаваемый параметр
|
Передаваемый параметр
|
||||||
editboxes - указатель на информационную структуру боксов
|
editboxes - указатель на информационную структуру боксов
|
||||||
use_f9 и procinfo - при передаче этого параметра - при перерисовки боксов будет использована функция
|
|
||||||
mcall 9,procinfo,-1
|
|
||||||
которая получает данные о окне и складывает параметры по адресу procinfo- его то же обязательно нужно передавать!!!!
|
|
||||||
Если в программе уже используется эта функция, то не нужно указывать данные параметр!!!!
|
|
||||||
Больше никаких параметров передавать не нужно.
|
Больше никаких параметров передавать не нужно.
|
||||||
**********
|
**********
|
||||||
default_box - макрос который приводит основные данные макроса по дефолту т.е. Снимает битовую матрицу выделения
|
default_box - макрос который приводит основные данные макроса по дефолту т.е. Снимает битовую матрицу выделения
|
||||||
Специально для KFM :)) Нужно добавить этот код при обработчике yes or no при копировании. Если будет вести себя неадекватно - необходимо раскомментировать строки в данном макросе
|
Специально для KFM :)) Нужно добавить этот код при обработчике yes or no при копировании. Если будет вести себя неадекватно - необходимо раскомментировать строки в данном макросе
|
||||||
|
так за все время и не был использован в KFM
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -128,7 +122,7 @@ struc edit_box width,left,top,color,focus_border_color,blur_border_color,text_co
|
|||||||
.text_color dd text_color
|
.text_color dd text_color
|
||||||
.max dd max
|
.max dd max
|
||||||
.text dd text
|
.text dd text
|
||||||
.flags dw flags+0
|
.flags dd flags+0
|
||||||
.size dd size+0
|
.size dd size+0
|
||||||
.pos dd 0 - где будет находиться курсор
|
.pos dd 0 - где будет находиться курсор
|
||||||
.offset dd 0
|
.offset dd 0
|
||||||
|
@ -6,6 +6,7 @@ You bunny wrote .....
|
|||||||
Это не много фольклера, связанное, с тем, что написание программ длинные и муторный процесс, и он не обходиться без выражений подобного содержания, но не попадающего в коментарии и основной код.....
|
Это не много фольклера, связанное, с тем, что написание программ длинные и муторный процесс, и он не обходиться без выражений подобного содержания, но не попадающего в коментарии и основной код.....
|
||||||
|
|
||||||
Теплов Алексей Юрьевич aka <Lrz>
|
Теплов Алексей Юрьевич aka <Lrz>
|
||||||
|
; <Lrz> 23.07.2008 Переписана обработка мышки без использования 9-ой функции, уменьшил примерно на 50 байт код.
|
||||||
; <Lrz> 20.07.2007 Косметические улучшения в коде программы, исправлен один несущественный баг.
|
; <Lrz> 20.07.2007 Косметические улучшения в коде программы, исправлен один несущественный баг.
|
||||||
; <Lrz> 18.05.2007 Улучшение понимания работы программы за счет вынеса основных функций в отдельные макросы
|
; <Lrz> 18.05.2007 Улучшение понимания работы программы за счет вынеса основных функций в отдельные макросы
|
||||||
; <Lrz> 14.05.2007 Использование макросов,удобочитаемось программы использование макроса mcall для вызова сис. функций
|
; <Lrz> 14.05.2007 Использование макросов,удобочитаемось программы использование макроса mcall для вызова сис. функций
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
@fasm editbox.asm editbox
|
@fasm editbox.asm editbox.kex
|
||||||
REM @kpack editbox
|
REM @kpack editbox
|
||||||
@pause
|
@pause
|
@ -7,7 +7,7 @@
|
|||||||
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
|
||||||
;Ž¡« áâì ª®¤
|
;Ž¡« áâì ª®¤
|
||||||
code ;’®çª ¢å®¤ ¢ ¯à®£à ¬¬ã
|
code ;’®çª ¢å®¤ ¢ ¯à®£à ¬¬ã
|
||||||
mcall 40,0x27 ;ãáâ ®¢¨âì ¬ áªã ¤«ï ®¦¨¤ ¥¬ëå ᮡë⨩
|
mcall 40,0x27 ;ãáâ ®¢¨âì ¬ áªã ¤«ï ®¦¨¤ ¥¬ëå ᮡë⨩
|
||||||
@ -41,7 +41,7 @@ align 4
|
|||||||
draw_window: ;à¨á®¢ ¨¥ ®ª ¯à¨«®¦¥¨ï
|
draw_window: ;à¨á®¢ ¨¥ ®ª ¯à¨«®¦¥¨ï
|
||||||
mcall 12,1
|
mcall 12,1
|
||||||
mcall 0,(50*65536+390),(30*65536+200),0xb3AABBCC,0x805080DD,hed
|
mcall 0,(50*65536+390),(30*65536+200),0xb3AABBCC,0x805080DD,hed
|
||||||
draw_edit_boxes editboxes,editboxes_end,use_f9,procinfo ;à¨á®¢ ¨¥ edit box'®¢
|
draw_edit_boxes editboxes,editboxes_end ;à¨á®¢ ¨¥ edit box'®¢
|
||||||
mcall 12,2
|
mcall 12,2
|
||||||
ret
|
ret
|
||||||
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||||
@ -54,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 20.07.2007',0
|
hed db 'EDITBOX optimization and retype <Lrz> date 23.07.2008',0
|
||||||
rb 256
|
rb 256
|
||||||
ed_buffer:
|
ed_buffer:
|
||||||
;.1: rb 514;256
|
;.1: rb 514;256
|
||||||
@ -64,6 +64,5 @@ ed_buffer:
|
|||||||
;¤¢ § ¯ áëå ¡ ©â ¥®¡å®¤¨¬ë ¤«ï ⮣® çâ® ¡ë ¥ ¯¥¯¥à¥¯¨á âì á«¥¤ãî騥© ¡ ©âë, ¢ ª®æ¥ ¡ãä¥à 0
|
;¤¢ § ¯ áëå ¡ ©â ¥®¡å®¤¨¬ë ¤«ï ⮣® çâ® ¡ë ¥ ¯¥¯¥à¥¯¨á âì á«¥¤ãî騥© ¡ ©âë, ¢ ª®æ¥ ¡ãä¥à 0
|
||||||
buffer_end:
|
buffer_end:
|
||||||
align 16
|
align 16
|
||||||
procinfo process_information
|
|
||||||
meos_app_end
|
meos_app_end
|
||||||
udata
|
udata
|
@ -818,7 +818,7 @@ edit_ex
|
|||||||
jmp .draw_cursor_text
|
jmp .draw_cursor_text
|
||||||
}
|
}
|
||||||
|
|
||||||
macro use_mouse_func scr_w
|
macro use_mouse_func
|
||||||
{
|
{
|
||||||
;----------------------------------------------------------
|
;----------------------------------------------------------
|
||||||
;--- Ž¡à ¡®âª .mouse_wigwag
|
;--- Ž¡à ¡®âª .mouse_wigwag
|
||||||
@ -829,12 +829,10 @@ macro use_mouse_func scr_w
|
|||||||
;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;
|
||||||
;;¯à®æ¥¤ãà ®¡à ¡®âª¨ ¯®«®¦¥¨ï ¢ë¤¥«¥®£® ⥪áâ , ª®£¤ ¯à®¨á室¨â ¢ë室 § ¯à¥¤¥«ë editbox
|
;;¯à®æ¥¤ãà ®¡à ¡®âª¨ ¯®«®¦¥¨ï ¢ë¤¥«¥®£® ⥪áâ , ª®£¤ ¯à®¨á室¨â ¢ë室 § ¯à¥¤¥«ë editbox
|
||||||
;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;
|
||||||
mov ebx,dword [procinfo+34]
|
test ax,0x8000
|
||||||
add ebx,ed_left
|
jnz .mleft
|
||||||
if scr_w eq
|
|
||||||
else
|
mov ebx,ed_left
|
||||||
add ebx,dword scr_w
|
|
||||||
end if
|
|
||||||
cmp eax,ebx
|
cmp eax,ebx
|
||||||
jb .mleft
|
jb .mleft
|
||||||
|
|
||||||
@ -893,6 +891,7 @@ end if
|
|||||||
; popa
|
; popa
|
||||||
; ret
|
; ret
|
||||||
.mleft:
|
.mleft:
|
||||||
|
|
||||||
mov eax,ed_pos
|
mov eax,ed_pos
|
||||||
cmp eax,0
|
cmp eax,0
|
||||||
jbe .mwigvag
|
jbe .mwigvag
|
||||||
@ -919,7 +918,7 @@ end if
|
|||||||
jmp .mdraw
|
jmp .mdraw
|
||||||
}
|
}
|
||||||
|
|
||||||
macro use_work_mause scr_h,scr_w
|
macro use_work_mouse
|
||||||
;----------------------------------------------------------
|
;----------------------------------------------------------
|
||||||
;--- € ¥ 㤥ন¢ ¥¬ «¨ ¬ë ª« ¢¨èã ¬ë誨, ¯¥à¥¬¥é ï ªãàá®à, ¢® ¢á¥ à §ë¥ áâ®à®ë?
|
;--- € ¥ 㤥ন¢ ¥¬ «¨ ¬ë ª« ¢¨èã ¬ë誨, ¯¥à¥¬¥é ï ªãàá®à, ¢® ¢á¥ à §ë¥ áâ®à®ë?
|
||||||
;----------------------------------------------------------
|
;----------------------------------------------------------
|
||||||
@ -929,48 +928,36 @@ macro use_work_mause scr_h,scr_w
|
|||||||
;----------------------------------------------------------
|
;----------------------------------------------------------
|
||||||
;--- ¯à®¢¥à塞, ¯®¯ ¤ ¥â «¨ ªãàá®à ¢ edit box -------------
|
;--- ¯à®¢¥à塞, ¯®¯ ¤ ¥â «¨ ªãàá®à ¢ edit box -------------
|
||||||
;----------------------------------------------------------
|
;----------------------------------------------------------
|
||||||
mov ebx,dword [procinfo + 38]
|
|
||||||
add ebx,ed_top
|
mov ebx,ed_top
|
||||||
if scr_h eq
|
|
||||||
else
|
|
||||||
add ebx,scr_h
|
|
||||||
end if
|
|
||||||
cmp ax,bx
|
cmp ax,bx
|
||||||
jl ._blur;.mouse_end_no_focus
|
jl ._blur;.mouse_end_no_focus
|
||||||
|
|
||||||
add ebx,ed_height
|
add ebx,ed_height
|
||||||
cmp ax,bx
|
cmp ax,bx
|
||||||
jg ._blur;.mouse_end_no_focus
|
jg ._blur;.mouse_end_no_focus
|
||||||
|
|
||||||
shr eax,16
|
shr eax,16
|
||||||
|
|
||||||
mov ebx,dword [procinfo + 34]
|
mov ebx,ed_left
|
||||||
add ebx,ed_left
|
|
||||||
if scr_w eq
|
|
||||||
else
|
|
||||||
add ebx,scr_w
|
|
||||||
end if
|
|
||||||
cmp ax,bx
|
cmp ax,bx
|
||||||
jl ._blur;.mouse_end_no_focus
|
jl ._blur;.mouse_end_no_focus
|
||||||
|
|
||||||
add ebx,ed_width
|
add ebx,ed_width
|
||||||
|
|
||||||
cmp ax,bx
|
cmp ax,bx
|
||||||
jg ._blur;.mouse_end_no_focus
|
jg ._blur;.mouse_end_no_focus
|
||||||
|
|
||||||
;--- ¨§¬¥ï¥¬ ¯®§¨æ¨î ªãàá®à ---
|
;--- ¨§¬¥ï¥¬ ¯®§¨æ¨î ªãàá®à ---
|
||||||
push eax
|
push eax
|
||||||
mov ebp,ed_color
|
mov ebp,ed_color
|
||||||
call .clear_cursor
|
call .clear_cursor
|
||||||
pop eax
|
pop eax
|
||||||
._mvpos:
|
._mvpos:
|
||||||
mov ebx,dword [procinfo+ 34]
|
|
||||||
xor edx,edx
|
xor edx,edx
|
||||||
sub eax,ed_left
|
sub eax,ed_left
|
||||||
sub eax,ebx
|
|
||||||
if scr_w eq
|
|
||||||
else
|
|
||||||
add ebx,scr_w
|
|
||||||
sub eax,2
|
|
||||||
end if
|
|
||||||
mov ebx,6
|
mov ebx,6
|
||||||
div bx
|
div bx
|
||||||
add eax,ed_offset
|
add eax,ed_offset
|
||||||
@ -1029,7 +1016,7 @@ end if
|
|||||||
; Œ ªà®á ¢ë室
|
; Œ ªà®á ¢ë室
|
||||||
macro edit_ex
|
macro edit_ex
|
||||||
{
|
{
|
||||||
popa
|
popad
|
||||||
ret
|
ret
|
||||||
}
|
}
|
||||||
macro debug
|
macro debug
|
||||||
|
Loading…
Reference in New Issue
Block a user