Rev 1372 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1372 | Rev 1432 | ||
---|---|---|---|
1 | ed_struc_size=76 |
- | |
2 | - | ||
3 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
1 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
4 | ;Basic macros for use editbox ; |
2 | ;Basic macros for use editbox ; |
5 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
3 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
6 | ed_width equ [edi] ;è¨à¨ ª®¬¯®¥â |
4 | ed_width equ [edi] ;è¨à¨ ª®¬¯®¥â |
7 | ed_left equ [edi+4] ;¯®«®¦¥¨¥ ¯® ®á¨ å |
5 | ed_left equ [edi+4] ;¯®«®¦¥¨¥ ¯® ®á¨ å |
8 | ed_top equ [edi+8] ;¯®«®¦¥¨¥ ¯® ®á¨ ã |
6 | ed_top equ [edi+8] ;¯®«®¦¥¨¥ ¯® ®á¨ ã |
9 | ed_color equ [edi+12] ;梥â ä® ª®¬¯®¥â |
7 | ed_color equ [edi+12] ;梥â ä® ª®¬¯®¥â |
10 | shift_color equ [edi+16] ;=0x6a9480 ¤«ï ¯à¨¬¥à ¢®§ì¥¬ ¦¥«¥ë© 梥⠡®ªá |
8 | shift_color equ [edi+16] ;=0x6a9480 ¤«ï ¯à¨¬¥à ¢®§ì¥¬ ¦¥«¥ë© 梥⠡®ªá |
11 | ed_focus_border_color equ [edi+20] ;梥â à ¬ª¨ ª®¬¯®¥â |
9 | ed_focus_border_color equ [edi+20] ;梥â à ¬ª¨ ª®¬¯®¥â |
12 | ed_blur_border_color equ [edi+24] ;梥⠥ ªâ¨¢®£® ª®¬¯®¥â |
10 | ed_blur_border_color equ [edi+24] ;梥⠥ ªâ¨¢®£® ª®¬¯®¥â |
13 | ed_text_color equ [edi+28] ;梥â ⥪áâ |
11 | ed_text_color equ [edi+28] ;梥â ⥪áâ |
14 | ed_max equ [edi+32] ;ª®«-¢® ᨬ¢®«®¢ ª®â®àë¥ ¬®¦® ¬ ªá¨¬ «ì® ¢¢¥á⨠|
12 | ed_max equ [edi+32] ;ª®«-¢® ᨬ¢®«®¢ ª®â®àë¥ ¬®¦® ¬ ªá¨¬ «ì® ¢¢¥á⨠|
15 | ed_text equ [edi+36] ;㪠§ â¥«ì ¡ãä¥à |
13 | ed_text equ [edi+36] ;㪠§ â¥«ì ¡ãä¥à |
16 | ed_mouse_variable equ [edi+40] ; 㪠§ â¥«ì ¯¥à¥¬¥ãî ¤«ï ¡®ªá /£à㯯ë |
14 | ed_mouse_variable equ [edi+40] ; 㪠§ â¥«ì ¯¥à¥¬¥ãî ¤«ï ¡®ªá /£à㯯ë |
17 | ed_flags equ [edi+44] ;ä« £¨ |
15 | ed_flags equ [edi+44] ;ä« £¨ |
18 | bp_flags equ [ebp+44] ;¢ ¥ª®â®àëå ¯à®æ¥¤ãà å edi ¨á¯®«ì§ã¥âáï, ¢§ ¬¥ 㪠§ ⥫ì åà ¨âìáï ¢ ebp |
16 | bp_flags equ [ebp+44] ;¢ ¥ª®â®àëå ¯à®æ¥¤ãà å edi ¨á¯®«ì§ã¥âáï, ¢§ ¬¥ 㪠§ ⥫ì åà ¨âìáï ¢ ebp |
19 | ed_size equ [edi+48] ;ª®«-¢® ᨬ¢®«®¢ |
17 | ed_size equ [edi+48] ;ª®«-¢® ᨬ¢®«®¢ |
20 | bp_size equ [ebp+48] ;ª®«-¢® ᨬ¢¯®«®¢, ¤«ï ¤à¥á 樨 ¨á¯«ì§ã¥âáï ebp¡ edi § ïâ |
18 | bp_size equ [ebp+48] ;ª®«-¢® ᨬ¢¯®«®¢, ¤«ï ¤à¥á 樨 ¨á¯«ì§ã¥âáï ebp¡ edi § ïâ |
21 | ed_pos equ [edi+52] ;¯®§¨æ¨ï ªãàá®à |
19 | ed_pos equ [edi+52] ;¯®§¨æ¨ï ªãàá®à |
22 | ed_offset equ [edi+56] ;ᬥ饨¥ |
20 | ed_offset equ [edi+56] ;ᬥ饨¥ |
23 | cl_curs_x equ [edi+60] ;¯à¥¤ë¤ã饥 ª®®à¤¨ â ªãàá®à ¯® å |
21 | cl_curs_x equ [edi+60] ;¯à¥¤ë¤ã饥 ª®®à¤¨ â ªãàá®à ¯® å |
24 | cl_curs_y equ [edi+64] ;¯à¥¤ë¤ã饥 ª®®à¤¨ â ªãàá®à ¯® ã |
22 | cl_curs_y equ [edi+64] ;¯à¥¤ë¤ã饥 ª®®à¤¨ â ªãàá®à ¯® ã |
25 | ed_shift_pos equ [edi+68] ;¯®«®¦¥¨¥ ªãàá®à |
23 | ed_shift_pos equ [edi+68] ;¯®«®¦¥¨¥ ªãàá®à |
26 | ed_shift_pos_old equ [edi+72] ;áâ ஥ ¯®«®¦¥¨¥ ªãàá®à |
24 | ed_shift_pos_old equ [edi+72] ;áâ ஥ ¯®«®¦¥¨¥ ªãàá®à |
27 | - | ||
28 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
- | |
29 | ;Bit mask from editbox |
- | |
30 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
- | |
31 | ed_figure_only= 1000000000000000b ;®¤¨ ᨬ¢®«ë |
- | |
32 | ed_always_focus= 100000000000000b |
- | |
33 | ed_focus= 10b ;䮪ãá ¯à¨«®¦¥¨ï |
- | |
34 | ed_shift_on= 1000b ;¥á«¨ ¥ ãáâ ®¢«¥ -§ ç¨â ¢¯¥à¢ë¥ ¦ â shift,¥á«¨ ¡ë« ãáâ ®¢«¥, § ç¨â ¬ë 㦥 çâ® - â® ¤¥« «¨ 㤥ন¢ ï shift |
- | |
35 | ed_shift_on_off=1111111111110111b |
- | |
36 | ed_shift= 100b ;¢ª«îç ¥âáï ¯à¨ ¦ ⨨ shift â.¥. ¥á«¨ ¦¨¬ î |
- | |
37 | ed_shift_off= 1111111111111011b |
- | |
38 | ed_shift_bac= 10000b ;¡¨â ¤«ï ®ç¨á⪨ ¢ë¤¥«¥®£® shift â.¥. ¯à¨ ãáâ ®¢ª¥ £®¢®à¨â çâ® ¥áâì ¢ë¤¥«¥¨¥ |
- | |
39 | ed_shift_bac_cl=1111111111101111b ;®ç¨á⪠¯à¨ 㤠«¥¨¨ ¢ë¤¥«¥¨ï |
- | |
40 | ed_shift_cl= 1111111111100011b |
- | |
41 | ed_shift_mcl= 1111111111111011b |
- | |
42 | ed_left_fl= 100000b |
- | |
43 | ed_right_fl= 1111111111011111b |
- | |
44 | ed_offset_fl= 1000000b |
- | |
45 | ed_offset_cl= 1111111110111111b |
- | |
46 | ed_insert= 10000000b |
- | |
47 | ed_insert_cl= 1111111101111111b |
- | |
48 | ed_mouse_on = 100000000b |
- | |
49 | ed_mous_adn_b= 100011000b |
- | |
50 | ed_mouse_on_off=1111111011111111b |
- | |
51 | ed_height=14 ; ¢ëá®â |
- | |
52 | - | ||
53 | struc edit_box width,left,top,color,shift_color,focus_border_color,\ |
- | |
54 | blur_border_color,text_color,max,text,mouse_variable,flags,size,pos |
- | |
55 | { |
- | |
56 | .width dd width |
- | |
57 | .left dd left |
- | |
58 | .top dd top |
- | |
59 | .color dd color |
- | |
60 | .shift_color dd shift_color |
- | |
61 | .focus_border_color dd focus_border_color |
- | |
62 | .blur_border_color dd blur_border_color |
- | |
63 | .text_color dd text_color |
- | |
64 | .max dd max |
- | |
65 | .text dd text |
- | |
66 | .mouse_variable dd mouse_variable |
- | |
67 | .flags dd flags+0 |
- | |
68 | .size dd size+0 |
- | |
69 | .pos dd pos+0 |
- | |
70 | .offset dd 0 |
- | |
71 | .cl_curs_x dd 0 |
- | |
72 | .cl_curs_y dd 0 |
- | |
73 | .shift dd 0 |
- | |
74 | .shift_old dd 0 |
- | |
75 | } |
- | |
76 | macro edit_boxes_set_sys_color start,end,color_table |
- | |
77 | { |
- | |
78 | mov edi,start |
- | |
79 | mov ecx,((end-start)/ed_struc_size) |
- | |
80 | mov esi,color_table |
- | |
81 | @@: |
- | |
82 | mov eax,dword [esi+36] |
- | |
83 | mov ebx,dword [esi+20] |
- | |
84 | push dword eax |
- | |
85 | pop dword ed_focus_border_color |
- | |
86 | shr bh,1 |
- | |
87 | shr bl,1 |
- | |
88 | shr ah,1 |
- | |
89 | shr al,1 |
- | |
90 | add ah,bh |
- | |
91 | add al,bl |
- | |
92 | ror eax,16 |
- | |
93 | ror ebx,16 |
- | |
94 | shr bl,1 |
- | |
95 | shr al,1 |
- | |
96 | add al,bl |
- | |
97 | ror eax,16 |
- | |
98 | mov dword ed_blur_border_color,eax |
- | |
99 | mov dword shift_color,eax |
- | |
100 | add edi,ed_struc_size |
- | |
101 | loop @b |
- | |
102 | } |
- | |
103 | 25 | ||
104 | macro init_editbox |
26 | macro init_editbox |
105 | { |
27 | { |
106 | pushad |
28 | pushad |
107 | mcall |
29 | mcall |
108 | 30 | ||
109 | popad |
31 | popad |
110 | } |
32 | } |
111 | 33 | ||
112 | 34 | ||
113 | macro use_editbox_draw |
35 | macro use_editbox_draw |
114 | { |
36 | { |
115 | edit_box: |
37 | edit_box: |
116 | .draw: |
38 | .draw: |
117 | pushad |
39 | pushad |
118 | ;--- à¨á㥬 à ¬ªã --- |
40 | ;--- à¨á㥬 à ¬ªã --- |
119 | mov edi,dword [esp+36] |
41 | mov edi,dword [esp+36] |
120 | call .draw_border ; ãªæ¨ï áâ ¡¨«ì |
42 | call .draw_border ; ãªæ¨ï áâ ¡¨«ì |
121 | .draw_bg_cursor_text: |
43 | .draw_bg_cursor_text: |
122 | ;--- ¨§¬¥ï¥¬ ᬥ饨¥, ¥á«¨ ¤® --- |
44 | ;--- ¨§¬¥ï¥¬ ᬥ饨¥, ¥á«¨ ¤® --- |
123 | call .check_offset ;¢ëç¨á«¥¨¥ ¯®§¨æ¨¨ ªãàá®à áâ ¡¨«ì |
45 | call .check_offset ;¢ëç¨á«¥¨¥ ¯®§¨æ¨¨ ªãàá®à áâ ¡¨«ì |
124 | ;--- à¨á㥬 ¢ãâà¥îî ®¡« áâì --- |
46 | ;--- à¨á㥬 ¢ãâà¥îî ®¡« áâì --- |
125 | call .draw_bg ; à¨á®¢ âì ¯àאַ㣮«ì¨ª à ¡®ç¥© ®¡« á⨠|
47 | call .draw_bg ; à¨á®¢ âì ¯àאַ㣮«ì¨ª à ¡®ç¥© ®¡« á⨠|
126 | ;---- à¨á㥬 ¢ë¤¥«¥¨¥, ¯® shift ¥á«¨ ¥áâì |
48 | ;---- à¨á㥬 ¢ë¤¥«¥¨¥, ¯® shift ¥á«¨ ¥áâì |
127 | call .draw_shift |
49 | call .draw_shift |
128 | .draw_cursor_text: |
50 | .draw_cursor_text: |
129 | ;--- à¨á㥬 ªãàá®à --- |
51 | ;--- à¨á㥬 ªãàá®à --- |
130 | ;--- ¬®¦¥â ¥£® ¥ ¤® à¨á®¢ âì ---- |
52 | ;--- ¬®¦¥â ¥£® ¥ ¤® à¨á®¢ âì ---- |
131 | test word ed_flags,ed_focus |
53 | test word ed_flags,ed_focus |
132 | jz @f |
54 | jz @f |
133 | call .draw_cursor |
55 | call .draw_cursor |
134 | @@: |
56 | @@: |
135 | call .draw_text |
57 | call .draw_text |
136 | ; ret |
58 | ; ret |
137 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
59 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
138 | ;¡é¨© ¢ë室 ¨§ editbox ¤«ï ¢á¥å äãªæ¨© ¨ ¯®áâ ®¡à ¡®â稪®¢;; |
60 | ;¡é¨© ¢ë室 ¨§ editbox ¤«ï ¢á¥å äãªæ¨© ¨ ¯®áâ ®¡à ¡®â稪®¢;; |
139 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
61 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
140 | .editbox_exit: |
62 | .editbox_exit: |
141 | popad |
63 | popad |
142 | ret 4 |
64 | ret 4 |
143 | } |
65 | } |
144 | 66 | ||
145 | 67 | ||
146 | macro use_editbox_key |
68 | macro use_editbox_key |
147 | { |
69 | { |
148 | ;========================================================== |
70 | ;========================================================== |
149 | ;=== ®¡à ¡®âª ª« ¢¨ âãàë ================================= |
71 | ;=== ®¡à ¡®âª ª« ¢¨ âãàë ================================= |
150 | ;========================================================== |
72 | ;========================================================== |
151 | edit_box_key: |
73 | edit_box_key: |
152 | pushad |
74 | pushad |
153 | mov edi,dword [esp+36] |
75 | mov edi,dword [esp+36] |
154 | test word ed_flags,ed_focus ; ¥á«¨ ¥ ¢ 䮪ãá¥, ¢ë室¨¬ |
76 | test word ed_flags,ed_focus ; ¥á«¨ ¥ ¢ 䮪ãá¥, ¢ë室¨¬ |
155 | je edit_box.editbox_exit |
77 | je edit_box.editbox_exit |
156 | test word ed_flags,ed_mouse_on |
78 | test word ed_flags,ed_mouse_on |
157 | jne edit_box.editbox_exit |
79 | jne edit_box.editbox_exit |
158 | 80 | ||
159 | ;஢¥àª ¦ â shift ? |
81 | ;஢¥àª ¦ â shift ? |
160 | call edit_box_key.check_shift |
82 | call edit_box_key.check_shift |
161 | ;---------------------------------------------------------- |
83 | ;---------------------------------------------------------- |
162 | ;--- ¯à®¢¥à塞, çâ® ¦ â® -------------------------------- |
84 | ;--- ¯à®¢¥à塞, çâ® ¦ â® -------------------------------- |
163 | ;---------------------------------------------------------- |
85 | ;---------------------------------------------------------- |
164 | use_key_process backspase,delete,left,right,home,end,insert |
86 | use_key_process backspase,delete,left,right,home,end,insert |
165 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
87 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
166 | ; £«ãèª ®¡à ¡®âªã ª« ¢¨è ¢¢¥àå ¨ ¢¨§ â.¥. ¯à¨ ®¡ à㦥¨¨ íâ¨å ª®¤®¢ ¯à®¨á室¨â ¢ë室 ¨§ ®¡à ¡®â稪 |
88 | ; £«ãèª ®¡à ¡®âªã ª« ¢¨è ¢¢¥àå ¨ ¢¨§ â.¥. ¯à¨ ®¡ à㦥¨¨ íâ¨å ª®¤®¢ ¯à®¨á室¨â ¢ë室 ¨§ ®¡à ¡®â稪 |
167 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
89 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
168 | use_key_no_process up,down,esc,enter,tab,numl,capsl,scrolll |
90 | use_key_no_process up,down,esc,enter,tab,numl,capsl,scrolll |
169 | ;--- ¦ â ¤àã£ ï ª« ¢¨è --- |
91 | ;--- ¦ â ¤àã£ ï ª« ¢¨è --- |
170 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
92 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
171 | ;஢¥àª ãáâ ®¢«¥ «¨ ä« £ ¯à¨ ª®â®à®¬ 㦮 ¢ë¢®¤¨âì ⮫쪮 æ¨äàë ¢ 㦮¬ ¡®ªá¥ ¥á«¨ â ª®©¥®¡å®¤¨¬®á⨠¥â 㦮 § ª®¬¥â¨à®¢ âì ¬ ªà®á |
93 | ;஢¥àª ãáâ ®¢«¥ «¨ ä« £ ¯à¨ ª®â®à®¬ 㦮 ¢ë¢®¤¨âì ⮫쪮 æ¨äàë ¢ 㦮¬ ¡®ªá¥ ¥á«¨ â ª®©¥®¡å®¤¨¬®á⨠¥â 㦮 § ª®¬¥â¨à®¢ âì ¬ ªà®á |
172 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
94 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
173 | use_key_figures_only |
95 | use_key_figures_only |
174 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
96 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
175 | ;¯à®¢¥àª shift ¡ë« «¨ ¦ â |
97 | ;¯à®¢¥àª shift ¡ë« «¨ ¦ â |
176 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
98 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
177 | are_key_shift_press |
99 | are_key_shift_press |
178 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
100 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
179 | ; ¯à®¢¥à塞, 室¨âáï «¨ ªãàá®à ¢ ª®æ¥ + ¤ «ì¥©è ï ®¡à ¡®âª |
101 | ; ¯à®¢¥à塞, 室¨âáï «¨ ªãàá®à ¢ ª®æ¥ + ¤ «ì¥©è ï ®¡à ¡®âª |
180 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
102 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
181 | are_key_cur_end |
103 | are_key_cur_end |
182 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
104 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
183 | ;¡à ¡®âª ª« ¢¨è insert,delete.backspase,home,end,left,right |
105 | ;¡à ¡®âª ª« ¢¨è insert,delete.backspase,home,end,left,right |
184 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
106 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
185 | use_work_key |
107 | use_work_key |
186 | } |
108 | } |
187 | 109 | ||
188 | macro use_editbox_mouse |
110 | macro use_editbox_mouse |
189 | { |
111 | { |
190 | ;========================================================== |
112 | ;========================================================== |
191 | ;=== ®¡à ¡®âª ¬ëè¨ ======================================= |
113 | ;=== ®¡à ¡®âª ¬ëè¨ ======================================= |
192 | ;========================================================== |
114 | ;========================================================== |
193 | ;save for stdcall ebx,esi,edi,ebp |
115 | ;save for stdcall ebx,esi,edi,ebp |
194 | edit_box_mouse: |
116 | edit_box_mouse: |
195 | pushad |
117 | pushad |
196 | mov edi,dword [esp+36] |
118 | mov edi,dword [esp+36] |
197 | ;debug |
119 | ;debug |
198 | ;---------------------------------------------------------- |
120 | ;---------------------------------------------------------- |
199 | ;--- ¯®«ãç ¥¬ á®áâ®ï¨¥ ª®¯®ª ¬ëè¨ ----------------------- |
121 | ;--- ¯®«ãç ¥¬ á®áâ®ï¨¥ ª®¯®ª ¬ëè¨ ----------------------- |
200 | ;---------------------------------------------------------- |
122 | ;---------------------------------------------------------- |
201 | mcall 37,2 |
123 | mcall 37,2 |
202 | ;---------------------------------------------------------- |
124 | ;---------------------------------------------------------- |
203 | ;--- ¯à®¢¥à塞 á®áâ®ï¨¥ ---------------------------------- |
125 | ;--- ¯à®¢¥à塞 á®áâ®ï¨¥ ---------------------------------- |
204 | ;---------------------------------------------------------- |
126 | ;---------------------------------------------------------- |
205 | test eax,1 |
127 | test eax,1 |
206 | jnz edit_box_mouse.mouse_left_button |
128 | jnz edit_box_mouse.mouse_left_button |
207 | and word ed_flags,ed_mouse_on_off |
129 | and word ed_flags,ed_mouse_on_off |
208 | mov ebx,dword ed_mouse_variable |
130 | mov ebx,dword ed_mouse_variable |
209 | push 0 |
131 | push 0 |
210 | pop dword [ebx] |
132 | pop dword [ebx] |
211 | ; mov dword [ebx],ebx |
133 | ; mov dword [ebx],ebx |
212 | jmp edit_box.editbox_exit |
134 | jmp edit_box.editbox_exit |
213 | .mouse_left_button: |
135 | .mouse_left_button: |
214 | ;---------------------------------------------------------- |
136 | ;---------------------------------------------------------- |
215 | ;--- ¡«®ª¨à®¢ª ®â 䮪ãá¨à®¢ª¨ ¢ ¤àã£¨å ¡®ªá å ¯à¨ ¯®¯ ¤ ¨¨ ¨å ªãàá®à |
137 | ;--- ¡«®ª¨à®¢ª ®â 䮪ãá¨à®¢ª¨ ¢ ¤àã£¨å ¡®ªá å ¯à¨ ¯®¯ ¤ ¨¨ ¨å ªãàá®à |
216 | ;---------------------------------------------------------- |
138 | ;---------------------------------------------------------- |
217 | mov eax,dword ed_mouse_variable |
139 | mov eax,dword ed_mouse_variable |
218 | push dword [eax] |
140 | push dword [eax] |
219 | pop eax |
141 | pop eax |
220 | test eax,eax |
142 | test eax,eax |
221 | jz @f |
143 | jz @f |
222 | cmp eax,edi |
144 | cmp eax,edi |
223 | je @f |
145 | je @f |
224 | jmp edit_box_mouse._blur |
146 | jmp edit_box_mouse._blur |
225 | ;---------------------------------------------------------- |
147 | ;---------------------------------------------------------- |
226 | ;--- ¯®«ãç ¥¬ ª®®à¤¨ âë ¬ëè¨ ®â®á¨â¥«ì® 0 â.¥ ¢á¥© ®¡« á⨠íªà |
148 | ;--- ¯®«ãç ¥¬ ª®®à¤¨ âë ¬ëè¨ ®â®á¨â¥«ì® 0 â.¥ ¢á¥© ®¡« á⨠íªà |
227 | ;---------------------------------------------------------- |
149 | ;---------------------------------------------------------- |
228 | @@: mcall 37,1 |
150 | @@: mcall 37,1 |
229 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
151 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
230 | ;ãªæ¨ï ®¡à ¡®âª¨ ¬ë誨 ¯®«ã票¥ ª®®à¤¨ â ¨ ¯à®¢¥àª ¨å + ¢ë¤¥«¥¨ï |
152 | ;ãªæ¨ï ®¡à ¡®âª¨ ¬ë誨 ¯®«ã票¥ ª®®à¤¨ â ¨ ¯à®¢¥àª ¨å + ¢ë¤¥«¥¨ï |
231 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
153 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
232 | use_work_mouse |
154 | use_work_mouse |
233 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
155 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
234 | ;¡é¨¥ äãªæ¨¨ ®¡à ¡®âª¨ |
156 | ;¡é¨¥ äãªæ¨¨ ®¡à ¡®âª¨ |
235 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
157 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
236 | use_general_func |
158 | use_general_func |
237 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
159 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
238 | ;ãªæ¨¨ ¤«ï à ¡®âë á key |
160 | ;ãªæ¨¨ ¤«ï à ¡®âë á key |
239 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
161 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
240 | use_key_func |
162 | use_key_func |
241 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
163 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
242 | ;ãªæ¨¨ ¤«ï à ¡®âë á mouse |
164 | ;ãªæ¨¨ ¤«ï à ¡®âë á mouse |
243 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
165 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
244 | use_mouse_func |
166 | use_mouse_func |
245 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
167 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
246 | ;Bit mask from editbox |
168 | ;Bit mask from editbox |
247 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
169 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
248 | } |
170 | } |
249 | 171 | ||
250 | 172 | ||
251 | 173 | ||
252 | 174 | ||
253 | 175 | ||
254 | 176 | ||
255 | 177 | ||
256 | 178 | ||
257 | 179 | ||
258 | 180 | ||
259 | 181 | ||
260 | 182 | ||
261 | 183 | ||
262 | 184 | ||
263 | 185 | ||
264 | 186 | ||
265 | 187 | ||
266 | 188 | ||
267 | 189 | ||
268 | 190 | ||
269 | 191 | ||
270 | 192 | ||
271 | 193 | ||
272 | ;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
194 | ;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
273 | ;¨¦¥ à ᯮ«®¦¥ë äãªæ¨¨ ª®â®à묨 ॠ«¨§ã¥âáï ¢¥áì «£®à¨â¬ |
195 | ;¨¦¥ à ᯮ«®¦¥ë äãªæ¨¨ ª®â®à묨 ॠ«¨§ã¥âáï ¢¥áì «£®à¨â¬ |
274 | ;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
196 | ;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
275 | ; ªà®á ¤«ï ¢ë¢®¤ ®á®¢ëå äãªæ¨© ª®â®àë¥ ¨á¯«ì§ãîâáï ¡®ªá®¬ |
197 | ; ªà®á ¤«ï ¢ë¢®¤ ®á®¢ëå äãªæ¨© ª®â®àë¥ ¨á¯«ì§ãîâáï ¡®ªá®¬ |
276 | macro use_general_func |
198 | macro use_general_func |
277 | { |
199 | { |
278 | ;debug_func |
200 | ;debug_func |
279 | ;---------------------------------------------------------- |
201 | ;---------------------------------------------------------- |
280 | ;--- ¯à®æ¥¤ãà ¯à®à¨á®¢ª¨ ¢ë¤¥«¥®© ç á⨠----------------- |
202 | ;--- ¯à®æ¥¤ãà ¯à®à¨á®¢ª¨ ¢ë¤¥«¥®© ç á⨠----------------- |
281 | ;---------------------------------------------------------- |
203 | ;---------------------------------------------------------- |
282 | edit_box.draw_shift: |
204 | edit_box.draw_shift: |
283 | test word ed_flags,ed_shift_bac ;ãáâ ®¢ª ä« £ , ¢ë¤¥«¥®© ®¡« á⨠|
205 | test word ed_flags,ed_shift_bac ;ãáâ ®¢ª ä« £ , ¢ë¤¥«¥®© ®¡« á⨠|
284 | jz @f |
206 | jz @f |
285 | mov ebp,shift_color |
207 | mov ebp,shift_color |
286 | mov ebx,dword ed_shift_pos |
208 | mov ebx,dword ed_shift_pos |
287 | call edit_box_key.sh_cl_ |
209 | call edit_box_key.sh_cl_ |
288 | @@: ret |
210 | @@: ret |
289 | ;---------------------------------------------------------- |
211 | ;---------------------------------------------------------- |
290 | ;--- ¯à®æ¥¤ãà ¯à®à¨á®¢ª¨ ⥪áâ -------------------------- |
212 | ;--- ¯à®æ¥¤ãà ¯à®à¨á®¢ª¨ ⥪áâ -------------------------- |
291 | ;---------------------------------------------------------- |
213 | ;---------------------------------------------------------- |
292 | edit_box.draw_text: |
214 | edit_box.draw_text: |
293 | ;--- ¢ëç¨á«ï¥¬, ᪮«ìª® ¯®¬¥é ¥âáï ᨬ¢®«®¢ --- |
215 | ;--- ¢ëç¨á«ï¥¬, ᪮«ìª® ¯®¬¥é ¥âáï ᨬ¢®«®¢ --- |
294 | ;--- çâ®¡ë ¬ãá®à ¥ à¨á®¢ âì --- |
216 | ;--- çâ®¡ë ¬ãá®à ¥ à¨á®¢ âì --- |
295 | call edit_box.get_n |
217 | call edit_box.get_n |
296 | mov esi,ed_size |
218 | mov esi,ed_size |
297 | mov ebx,ed_offset |
219 | mov ebx,ed_offset |
298 | sub esi,ebx |
220 | sub esi,ebx |
299 | cmp eax,esi |
221 | cmp eax,esi |
300 | jae @F |
222 | jae @F |
301 | mov esi,eax ;çâ®¡ë ¥ ¢ë室¨âì § ¯à¥¤¥«ë íªà |
223 | mov esi,eax ;çâ®¡ë ¥ ¢ë室¨âì § ¯à¥¤¥«ë íªà |
302 | ;--- à¨á㥬 ⥪áâ --- |
224 | ;--- à¨á㥬 ⥪áâ --- |
303 | @@: mov eax,4 |
225 | @@: mov eax,4 |
304 | mov ebx,ed_left |
226 | mov ebx,ed_left |
305 | mov edx,ed_offset |
227 | mov edx,ed_offset |
306 | add ebx,2 |
228 | add ebx,2 |
307 | shl ebx,16 |
229 | shl ebx,16 |
308 | add ebx,ed_top |
230 | add ebx,ed_top |
309 | mov ecx,ed_text_color |
231 | mov ecx,ed_text_color |
310 | add ebx,4 |
232 | add ebx,4 |
311 | add edx,ed_text |
233 | add edx,ed_text |
312 | mcall |
234 | mcall |
313 | ret |
235 | ret |
314 | ;---------------------------------------------------------- |
236 | ;---------------------------------------------------------- |
315 | ;--- ¯à®æ¥¤ãà ¯à®à¨á®¢ª¨ ä® ---------------------------- |
237 | ;--- ¯à®æ¥¤ãà ¯à®à¨á®¢ª¨ ä® ---------------------------- |
316 | ;¢å®¤ë¥ ¤ ë¥ |
238 | ;¢å®¤ë¥ ¤ ë¥ |
317 | ;eax |
239 | ;eax |
318 | ;edx - color |
240 | ;edx - color |
319 | ;---------------------------------------------------------- |
241 | ;---------------------------------------------------------- |
320 | ;¢å®¤ ⮫쪮 梥â edx |
242 | ;¢å®¤ ⮫쪮 梥â edx |
321 | edit_box.draw_bg: |
243 | edit_box.draw_bg: |
322 | mov ebx,ed_left |
244 | mov ebx,ed_left |
323 | add ebx,1 |
245 | add ebx,1 |
324 | mov edx,ed_color |
246 | mov edx,ed_color |
325 | shl ebx,16 |
247 | shl ebx,16 |
326 | add ebx,ed_width |
248 | add ebx,ed_width |
327 | sub ebx,1 |
249 | sub ebx,1 |
328 | edit_box.draw_bg_eax: |
250 | edit_box.draw_bg_eax: |
329 | mov ecx,ed_top |
251 | mov ecx,ed_top |
330 | mov eax,13 |
252 | mov eax,13 |
331 | add ecx,1 |
253 | add ecx,1 |
332 | shl ecx,16 |
254 | shl ecx,16 |
333 | add ecx,ed_height |
255 | add ecx,ed_height |
334 | dec ecx |
256 | dec ecx |
335 | mcall |
257 | mcall |
336 | ret |
258 | ret |
337 | ;---------------------------------------------------------- |
259 | ;---------------------------------------------------------- |
338 | ;--- ¯à®æ¥¤ãà ¯®«ãç¥¨ï ª®«¨ç¥á⢠ᨬ¢®«®¢ ¢ ⥪ã饩 é¨à¨¥ ª®¬¯®¥â |
260 | ;--- ¯à®æ¥¤ãà ¯®«ãç¥¨ï ª®«¨ç¥á⢠ᨬ¢®«®¢ ¢ ⥪ã饩 é¨à¨¥ ª®¬¯®¥â |
339 | ;---------------------------------------------------------- |
261 | ;---------------------------------------------------------- |
340 | edit_box.get_n: |
262 | edit_box.get_n: |
341 | mov eax,ed_width ;¯®«ã祬 è¨à¨ã ª®¬¯®¥â |
263 | mov eax,ed_width ;¯®«ã祬 è¨à¨ã ª®¬¯®¥â |
342 | xor edx,edx ;१ã«ìâ â à ᯮ«®£ ¥âáï ¢ ¯ ॠedx:eax ¢ eax - ®áâ ⮪ |
264 | xor edx,edx ;१ã«ìâ â à ᯮ«®£ ¥âáï ¢ ¯ ॠedx:eax ¢ eax - ®áâ ⮪ |
343 | sub eax,4 ;¢ëç⨬ 4 |
265 | sub eax,4 ;¢ëç⨬ 4 |
344 | mov ebx,6 ;§ £à㧬¨ ¤¥«¨â¥«ì |
266 | mov ebx,6 ;§ £à㧬¨ ¤¥«¨â¥«ì |
345 | div ebx ;à §¬¤¥«¨¬ 6 |
267 | div ebx ;à §¬¤¥«¨¬ 6 |
346 | ret |
268 | ret |
347 | ;---------------------------------------------------------- |
269 | ;---------------------------------------------------------- |
348 | ;--- ¯à®æ¥¤ãà à¨á®¢ ¨ï ªãàá®à -------------------------- |
270 | ;--- ¯à®æ¥¤ãà à¨á®¢ ¨ï ªãàá®à -------------------------- |
349 | ;---------------------------------------------------------- |
271 | ;---------------------------------------------------------- |
350 | ;¢å®¤ë¥ ebp- 梥â |
272 | ;¢å®¤ë¥ ebp- 梥â |
351 | edit_box.clear_cursor: |
273 | edit_box.clear_cursor: |
352 | mov edx,ebp |
274 | mov edx,ebp |
353 | mov ebx,cl_curs_x |
275 | mov ebx,cl_curs_x |
354 | mov ecx,cl_curs_y |
276 | mov ecx,cl_curs_y |
355 | jmp edit_box.draw_curs |
277 | jmp edit_box.draw_curs |
356 | edit_box.draw_cursor: |
278 | edit_box.draw_cursor: |
357 | mov edx,ed_text_color |
279 | mov edx,ed_text_color |
358 | mov ebx,ed_pos |
280 | mov ebx,ed_pos |
359 | mov ecx,ed_offset |
281 | mov ecx,ed_offset |
360 | sub ebx,ecx |
282 | sub ebx,ecx |
361 | 283 | ||
362 | lea ebx,[ebx*2+ebx] |
284 | lea ebx,[ebx*2+ebx] |
363 | shl ebx,1 |
285 | shl ebx,1 |
364 | ;imul ebx,6 |
286 | ;imul ebx,6 |
365 | add ebx,ed_left |
287 | add ebx,ed_left |
366 | mov ecx,ed_top |
288 | mov ecx,ed_top |
367 | inc ebx |
289 | inc ebx |
368 | add ecx,2 |
290 | add ecx,2 |
369 | mov ebp,ebx |
291 | mov ebp,ebx |
370 | shl ebx,16 |
292 | shl ebx,16 |
371 | mov bx,bp |
293 | mov bx,bp |
372 | mov ebp,ecx |
294 | mov ebp,ecx |
373 | 295 | ||
374 | shl ecx,16 |
296 | shl ecx,16 |
375 | mov cx,bp |
297 | mov cx,bp |
376 | add ecx,ed_height-4 |
298 | add ecx,ed_height-4 |
377 | 299 | ||
378 | mov cl_curs_x,ebx |
300 | mov cl_curs_x,ebx |
379 | mov cl_curs_y,ecx |
301 | mov cl_curs_y,ecx |
380 | edit_box.draw_curs: |
302 | edit_box.draw_curs: |
381 | mcall 38 |
303 | mcall 38 |
382 | ret |
304 | ret |
383 | ;---------------------------------------------------------- |
305 | ;---------------------------------------------------------- |
384 | ;--- ¯à®æ¥¤ãà à¨á®¢ ¨ï à ¬ª¨ ---------------------------- |
306 | ;--- ¯à®æ¥¤ãà à¨á®¢ ¨ï à ¬ª¨ ---------------------------- |
385 | ;---------------------------------------------------------- |
307 | ;---------------------------------------------------------- |
386 | edit_box.draw_border: |
308 | edit_box.draw_border: |
387 | ;--- 梥â à ¬ª¨ --- |
309 | ;--- 梥â à ¬ª¨ --- |
388 | test word ed_flags,ed_focus |
310 | test word ed_flags,ed_focus |
389 | mov edx,ed_focus_border_color |
311 | mov edx,ed_focus_border_color |
390 | jne @f |
312 | jne @f |
391 | mov edx,ed_blur_border_color |
313 | mov edx,ed_blur_border_color |
392 | @@: |
314 | @@: |
393 | ;--- ᢥàåã --- |
315 | ;--- ᢥàåã --- |
394 | mov eax,38 |
316 | mov eax,38 |
395 | mov ebx,ed_left |
317 | mov ebx,ed_left |
396 | mov ecx,ebx |
318 | mov ecx,ebx |
397 | shl ebx,16 |
319 | shl ebx,16 |
398 | mov bx,cx |
320 | mov bx,cx |
399 | add ebx,ed_width |
321 | add ebx,ed_width |
400 | mov ecx,ed_top |
322 | mov ecx,ed_top |
401 | mov esi,ecx |
323 | mov esi,ecx |
402 | shl ecx,16 |
324 | shl ecx,16 |
403 | mov cx,si |
325 | mov cx,si |
404 | mcall |
326 | mcall |
405 | ;--- ᨧã --- |
327 | ;--- ᨧã --- |
406 | mov esi,ecx |
328 | mov esi,ecx |
407 | add ecx,ed_height |
329 | add ecx,ed_height |
408 | mov ebp,ecx |
330 | mov ebp,ecx |
409 | shl ecx,16 |
331 | shl ecx,16 |
410 | mov cx,bp |
332 | mov cx,bp |
411 | mcall |
333 | mcall |
412 | ;--- á«¥¢ --- |
334 | ;--- á«¥¢ --- |
413 | mov cx,si |
335 | mov cx,si |
414 | mov ebp,ebx |
336 | mov ebp,ebx |
415 | sub ebx,ed_width |
337 | sub ebx,ed_width |
416 | mcall |
338 | mcall |
417 | ;--- á¯à ¢ --- |
339 | ;--- á¯à ¢ --- |
418 | mov ebx,ebp |
340 | mov ebx,ebp |
419 | shl ebx,16 |
341 | shl ebx,16 |
420 | mov bx,bp |
342 | mov bx,bp |
421 | mcall |
343 | mcall |
422 | ret |
344 | ret |
423 | ;---------------------------------------------------------- |
345 | ;---------------------------------------------------------- |
424 | ;--- ¯à®¢¥àª , § 襫 «¨ ªãàá®à § £à ¨æë ¨, ¥á«¨ ¤®, --- |
346 | ;--- ¯à®¢¥àª , § 襫 «¨ ªãàá®à § £à ¨æë ¨, ¥á«¨ ¤®, --- |
425 | ;--- ¨§¬¥ï¥¬ ᬥ饨¥ ------------------------------------ |
347 | ;--- ¨§¬¥ï¥¬ ᬥ饨¥ ------------------------------------ |
426 | ;--- ¥á«¨ ᬥ饨¥ ¡ë«® ãáâ ®¢ª ä« £ ed_offset_cl ¨ ç¥ |
348 | ;--- ¥á«¨ ᬥ饨¥ ¡ë«® ãáâ ®¢ª ä« £ ed_offset_cl ¨ ç¥ |
427 | ; ¥á«¨ ¨ç¥£® ¥ ¨§¬¥¨«®áì â® ¢ëáâ ¢«¥¨¥ ed_offset_fl |
349 | ; ¥á«¨ ¨ç¥£® ¥ ¨§¬¥¨«®áì â® ¢ëáâ ¢«¥¨¥ ed_offset_fl |
428 | ; ¢ ®¡é¥© ¡¨â®¢®© ¬ àà¨æ¥ á®áâ®ï¨ï ª®¬¯®¥â®¢ word ed_flags |
350 | ; ¢ ®¡é¥© ¡¨â®¢®© ¬ àà¨æ¥ á®áâ®ï¨ï ª®¬¯®¥â®¢ word ed_flags |
429 | ;---------------------------------------------------------- |
351 | ;---------------------------------------------------------- |
430 | edit_box.check_offset: |
352 | edit_box.check_offset: |
431 | pushad |
353 | pushad |
432 | mov ecx,ed_pos |
354 | mov ecx,ed_pos |
433 | mov ebx,ed_offset |
355 | mov ebx,ed_offset |
434 | cmp ebx,ecx |
356 | cmp ebx,ecx |
435 | ja edit_box.sub_8 |
357 | ja edit_box.sub_8 |
436 | 358 | ||
437 | push ebx |
359 | push ebx |
438 | call edit_box.get_n ;¯®«ã稬 ª®«-¢® ᨬ¢®«®¢ ¢ ¯ ॠॣ¨áâ஢ edx:eax |
360 | call edit_box.get_n ;¯®«ã稬 ª®«-¢® ᨬ¢®«®¢ ¢ ¯ ॠॣ¨áâ஢ edx:eax |
439 | pop ebx |
361 | pop ebx |
440 | mov edx,ebx |
362 | mov edx,ebx |
441 | add edx,eax ;ed_offset+width editbox |
363 | add edx,eax ;ed_offset+width editbox |
442 | inc edx ;¥®¡å®¤¨¬® ¤«ï ®¬ «ì®£® ¯®«®¦¥¨ï ªãàá®à ¢ ªà ©¥© «¥¢®© ¯®§¨æ¨¨ |
364 | inc edx ;¥®¡å®¤¨¬® ¤«ï ®¬ «ì®£® ¯®«®¦¥¨ï ªãàá®à ¢ ªà ©¥© «¥¢®© ¯®§¨æ¨¨ |
443 | cmp edx,ecx |
365 | cmp edx,ecx |
444 | ja @f |
366 | ja @f |
445 | 367 | ||
446 | mov edx,ed_size |
368 | mov edx,ed_size |
447 | cmp edx,ecx |
369 | cmp edx,ecx |
448 | je edit_box.add_end |
370 | je edit_box.add_end |
449 | 371 | ||
450 | sub edx,ecx |
372 | sub edx,ecx |
451 | cmp edx,8 |
373 | cmp edx,8 |
452 | jbe edit_box.add_8 |
374 | jbe edit_box.add_8 |
453 | add ebx,8 |
375 | add ebx,8 |
454 | jmp edit_box.chk_d |
376 | jmp edit_box.chk_d |
455 | 377 | ||
456 | edit_box.sub_8: |
378 | edit_box.sub_8: |
457 | cmp ecx,0 |
379 | cmp ecx,0 |
458 | je edit_box.sub_min |
380 | je edit_box.sub_min |
459 | cmp ebx,8 |
381 | cmp ebx,8 |
460 | jbe edit_box.sub_min |
382 | jbe edit_box.sub_min |
461 | sub ebx,8 ;ebx=ed_offset |
383 | sub ebx,8 ;ebx=ed_offset |
462 | jmp edit_box.chk_d |
384 | jmp edit_box.chk_d |
463 | edit_box.sub_min: |
385 | edit_box.sub_min: |
464 | xor ebx,ebx |
386 | xor ebx,ebx |
465 | jmp edit_box.chk_d |
387 | jmp edit_box.chk_d |
466 | 388 | ||
467 | edit_box.add_end:sub edx,eax |
389 | edit_box.add_end:sub edx,eax |
468 | mov ebx,edx |
390 | mov ebx,edx |
469 | jmp edit_box.chk_d |
391 | jmp edit_box.chk_d |
470 | edit_box.add_8: add ebx,edx |
392 | edit_box.add_8: add ebx,edx |
471 | edit_box.chk_d: mov ed_offset,ebx |
393 | edit_box.chk_d: mov ed_offset,ebx |
472 | call edit_box.draw_bg |
394 | call edit_box.draw_bg |
473 | and word ed_flags,ed_offset_cl |
395 | and word ed_flags,ed_offset_cl |
474 | edit_ex |
396 | edit_ex |
475 | @@: |
397 | @@: |
476 | or word ed_flags,ed_offset_fl |
398 | or word ed_flags,ed_offset_fl |
477 | edit_ex |
399 | edit_ex |
478 | } |
400 | } |
479 | 401 | ||
480 | macro use_key_func |
402 | macro use_key_func |
481 | { |
403 | { |
482 | ;¡à ¡®âª Shift ¤«ï áïâ¨ï ¢ë¤¥«¥¨ï ¥¨§¢¥á⮩ ®¡« á⨠|
404 | ;¡à ¡®âª Shift ¤«ï áïâ¨ï ¢ë¤¥«¥¨ï ¥¨§¢¥á⮩ ®¡« á⨠|
483 | edit_box_key.shift: ;;;;;;;SHIFT |
405 | edit_box_key.shift: ;;;;;;;SHIFT |
484 | test word ed_flags,ed_shift |
406 | test word ed_flags,ed_shift |
485 | je edit_box_key.f_exit |
407 | je edit_box_key.f_exit |
486 | 408 | ||
487 | @@: mov ebp,shift_color |
409 | @@: mov ebp,shift_color |
488 | or word ed_flags,ed_shift_bac ;ãáâ ®¢ª ä« £ , ¢ë¤¥«¥®© ®¡« á⨠|
410 | or word ed_flags,ed_shift_bac ;ãáâ ®¢ª ä« £ , ¢ë¤¥«¥®© ®¡« á⨠|
489 | mov ebx,dword ed_shift_pos |
411 | mov ebx,dword ed_shift_pos |
490 | call edit_box_key.sh_cl_ |
412 | call edit_box_key.sh_cl_ |
491 | jmp edit_box.draw_cursor_text |
413 | jmp edit_box.draw_cursor_text |
492 | ;;;;;;;;;;;;;;;;;;;;; |
414 | ;;;;;;;;;;;;;;;;;;;;; |
493 | edit_box_key.f_exit: call edit_box.check_offset |
415 | edit_box_key.f_exit: call edit_box.check_offset |
494 | and word ed_flags,ed_shift_cl |
416 | and word ed_flags,ed_shift_cl |
495 | call edit_box_key.enable_null |
417 | call edit_box_key.enable_null |
496 | jmp edit_box.draw_cursor_text |
418 | jmp edit_box.draw_cursor_text |
497 | edit_box_key.sh_cl_: |
419 | edit_box_key.sh_cl_: |
498 | ;;;;;;SHIFT end |
420 | ;;;;;;SHIFT end |
499 | ;®¡à ¡®âª ®ç¨á⪨, ¯à¨ «¥¢®¬ - ¯à ¢®¬ ¤¢¨¦¥¨¨ ¢ë¤¥«¥¨ï |
421 | ;®¡à ¡®âª ®ç¨á⪨, ¯à¨ «¥¢®¬ - ¯à ¢®¬ ¤¢¨¦¥¨¨ ¢ë¤¥«¥¨ï |
500 | ;¤«ï ®¡à ¡®âª¨ áïâ¨ï ¢ë¤¥«¥¨ï |
422 | ;¤«ï ®¡à ¡®âª¨ áïâ¨ï ¢ë¤¥«¥¨ï |
501 | ;¢å®¤ë¥ ¯ à ¬¥âàë ebp=color ebx=ed_shift_pos |
423 | ;¢å®¤ë¥ ¯ à ¬¥âàë ebp=color ebx=ed_shift_pos |
502 | mov eax,dword ed_pos |
424 | mov eax,dword ed_pos |
503 | cmp eax,ebx |
425 | cmp eax,ebx |
504 | 426 | ||
505 | jae edit_box_key.sh_n |
427 | jae edit_box_key.sh_n |
506 | push eax ;¬¥ì襥 ¢ eax |
428 | push eax ;¬¥ì襥 ¢ eax |
507 | push ebx ;¡®«ì襥 |
429 | push ebx ;¡®«ì襥 |
508 | jmp edit_box_key.sh_n1 |
430 | jmp edit_box_key.sh_n1 |
509 | ;¥á«¨ ¨ ç¥ |
431 | ;¥á«¨ ¨ ç¥ |
510 | edit_box_key.sh_n: |
432 | edit_box_key.sh_n: |
511 | push ebx |
433 | push ebx |
512 | push eax |
434 | push eax |
513 | edit_box_key.sh_n1: |
435 | edit_box_key.sh_n1: |
514 | call edit_box.check_offset |
436 | call edit_box.check_offset |
515 | call edit_box.get_n |
437 | call edit_box.get_n |
516 | mov edx,eax ;size of ed_box |
438 | mov edx,eax ;size of ed_box |
517 | mov ecx,ed_offset |
439 | mov ecx,ed_offset |
518 | add eax,ecx ;eax = w_off= ed_offset+width |
440 | add eax,ecx ;eax = w_off= ed_offset+width |
519 | mov edx,eax ;save |
441 | mov edx,eax ;save |
520 | pop ebx ;¡®«ì襥 |
442 | pop ebx ;¡®«ì襥 |
521 | pop eax ;¬¥ì襥 |
443 | pop eax ;¬¥ì襥 |
522 | 444 | ||
523 | cmp eax,ecx ;áà ¢¥¨¥ á ¬¥ì襣® á offset. |
445 | cmp eax,ecx ;áà ¢¥¨¥ á ¬¥ì襣® á offset. |
524 | jae edit_box_key.f_f ;¥á«¨ ¡®«ìè¥ |
446 | jae edit_box_key.f_f ;¥á«¨ ¡®«ìè¥ |
525 | xor eax,eax |
447 | xor eax,eax |
526 | cmp edx,ebx ;cà ¢¨¬ à §¬¥à w_off á ¡®«ì訬 |
448 | cmp edx,ebx ;cà ¢¨¬ à §¬¥à w_off á ¡®«ì訬 |
527 | jb @f |
449 | jb @f |
528 | sub ebx,ecx |
450 | sub ebx,ecx |
529 | jmp edit_box_key.nxt_f |
451 | jmp edit_box_key.nxt_f |
530 | @@: mov ebx,edx |
452 | @@: mov ebx,edx |
531 | sub ebx,ecx |
453 | sub ebx,ecx |
532 | jmp edit_box_key.nxt_f |
454 | jmp edit_box_key.nxt_f |
533 | edit_box_key.f_f: |
455 | edit_box_key.f_f: |
534 | sub eax,ecx |
456 | sub eax,ecx |
535 | cmp edx,ebx ;cà ¢¨¬ à §¬¥à w_off á ¡®«ì訬 |
457 | cmp edx,ebx ;cà ¢¨¬ à §¬¥à w_off á ¡®«ì訬 |
536 | jle @f |
458 | jle @f |
537 | sub ebx,ecx |
459 | sub ebx,ecx |
538 | sub ebx,eax |
460 | sub ebx,eax |
539 | jmp edit_box_key.nxt_f |
461 | jmp edit_box_key.nxt_f |
540 | @@: |
462 | @@: |
541 | mov ebx,edx |
463 | mov ebx,edx |
542 | sub ebx,ecx |
464 | sub ebx,ecx |
543 | sub ebx,eax |
465 | sub ebx,eax |
544 | edit_box_key.nxt_f: |
466 | edit_box_key.nxt_f: |
545 | mov edx,ebx |
467 | mov edx,ebx |
546 | lea ebx,[eax*2+eax] |
468 | lea ebx,[eax*2+eax] |
547 | shl ebx,1 |
469 | shl ebx,1 |
548 | add ebx,ed_left |
470 | add ebx,ed_left |
549 | inc ebx |
471 | inc ebx |
550 | shl ebx,16 |
472 | shl ebx,16 |
551 | lea ecx,[edx*2+edx] |
473 | lea ecx,[edx*2+edx] |
552 | shl ecx,1 |
474 | shl ecx,1 |
553 | mov bx,cx |
475 | mov bx,cx |
554 | inc ebx |
476 | inc ebx |
555 | mov edx,ebp;shift_color |
477 | mov edx,ebp;shift_color |
556 | 478 | ||
557 | call edit_box.draw_bg_eax |
479 | call edit_box.draw_bg_eax |
558 | @@: call edit_box_key.enable_null |
480 | @@: call edit_box_key.enable_null |
559 | ret |
481 | ret |
560 | ;;;;;;;;;;;;;;;;;;;;; |
482 | ;;;;;;;;;;;;;;;;;;;;; |
561 | ;áâ ®¢ª - áï⨥ ¢ë¤¥«¥¨ï ¢ ®¤¨ ᨬ¢®« |
483 | ;áâ ®¢ª - áï⨥ ¢ë¤¥«¥¨ï ¢ ®¤¨ ᨬ¢®« |
562 | ;;;;;;;;;;;;;;;;;;;;; |
484 | ;;;;;;;;;;;;;;;;;;;;; |
563 | edit_box_key.drw_sim: |
485 | edit_box_key.drw_sim: |
564 | mov eax,dword ed_pos |
486 | mov eax,dword ed_pos |
565 | call edit_box_key.draw_rectangle ; à¨á®¢ âì ¯àאַ㣮«ì¨ª á § ¤ ë¬ æ¢¥â®¬ |
487 | call edit_box_key.draw_rectangle ; à¨á®¢ âì ¯àאַ㣮«ì¨ª á § ¤ ë¬ æ¢¥â®¬ |
566 | jmp @b |
488 | jmp @b |
567 | ;;;;;;;;;;;;;;;;;;;;; |
489 | ;;;;;;;;;;;;;;;;;;;;; |
568 | ;ãªæ¨ï ãáâ ®¢ª¨ ¢ë¤¥«¥¨ï ¯à¨ ¤¢¨¦¥¨ï ¢«¥¢® ¨ ¢¯à ¢® ¨ ¦ ⨨ shift |
490 | ;ãªæ¨ï ãáâ ®¢ª¨ ¢ë¤¥«¥¨ï ¯à¨ ¤¢¨¦¥¨ï ¢«¥¢® ¨ ¢¯à ¢® ¨ ¦ ⨨ shift |
569 | ;®£¨ª : |
491 | ;®£¨ª : |
570 | ;;;;;;;;;; |
492 | ;;;;;;;;;; |
571 | edit_box_key.draw_wigwag: |
493 | edit_box_key.draw_wigwag: |
572 | ;äãªæ¨ï ãáâ ®¢ª¨ ¯¥à¥¬¥ëå |
494 | ;äãªæ¨ï ãáâ ®¢ª¨ ¯¥à¥¬¥ëå |
573 | mov ebp,shift_color |
495 | mov ebp,shift_color |
574 | call edit_box.clear_cursor |
496 | call edit_box.clear_cursor |
575 | 497 | ||
576 | or word ed_flags,ed_shift_bac ;ãáâ ®¢ª ä« £ , ¢ë¤¥«¥®© ®¡« á⨠|
498 | or word ed_flags,ed_shift_bac ;ãáâ ®¢ª ä« £ , ¢ë¤¥«¥®© ®¡« á⨠|
577 | mov ebp,shift_color |
499 | mov ebp,shift_color |
578 | mov eax,dword ed_pos |
500 | mov eax,dword ed_pos |
579 | test word ed_flags,ed_left_fl |
501 | test word ed_flags,ed_left_fl |
580 | jz edit_box_key.low |
502 | jz edit_box_key.low |
581 | jmp @f |
503 | jmp @f |
582 | ;;;;;;;;;; |
504 | ;;;;;;;;;; |
583 | ;ãªæ¨ï 㤠«¥¨ï ¢ë¤¥«¥¨ï ¯à¨ ¤¢¨¦¥¨ï ¢«¥¢® ¨ ¢¯à ¢® ¨ ¦ ⨨ shift |
505 | ;ãªæ¨ï 㤠«¥¨ï ¢ë¤¥«¥¨ï ¯à¨ ¤¢¨¦¥¨ï ¢«¥¢® ¨ ¢¯à ¢® ¨ ¦ ⨨ shift |
584 | ;®£¨ª : |
506 | ;®£¨ª : |
585 | ;;;;;;;;;; |
507 | ;;;;;;;;;; |
586 | edit_box_key.draw_wigwag_cl: |
508 | edit_box_key.draw_wigwag_cl: |
587 | ;äãªæ¨ï ãáâ ®¢ª¨ ¯¥à¥¬¥ëå |
509 | ;äãªæ¨ï ãáâ ®¢ª¨ ¯¥à¥¬¥ëå |
588 | mov ebp,ed_color |
510 | mov ebp,ed_color |
589 | call edit_box.clear_cursor |
511 | call edit_box.clear_cursor |
590 | 512 | ||
591 | mov ebp,ed_color |
513 | mov ebp,ed_color |
592 | mov eax,dword ed_pos |
514 | mov eax,dword ed_pos |
593 | test word ed_flags,ed_left_fl |
515 | test word ed_flags,ed_left_fl |
594 | jz edit_box_key.low |
516 | jz edit_box_key.low |
595 | @@: call edit_box_key.draw_rectangle ; à¨á®¢ âì ¯àאַ㣮«ì¨ª § ªà 訢 ¥¬®© ®¡« á⨠|
517 | @@: call edit_box_key.draw_rectangle ; à¨á®¢ âì ¯àאַ㣮«ì¨ª § ªà 訢 ¥¬®© ®¡« á⨠|
596 | ret |
518 | ret |
597 | edit_box_key.low: dec eax |
519 | edit_box_key.low: dec eax |
598 | jmp @b |
520 | jmp @b |
599 | ;¢å®¤®© ¯ à ¬¥âà ebx - ed_pos |
521 | ;¢å®¤®© ¯ à ¬¥âà ebx - ed_pos |
600 | edit_box_key.sh_first_sh: |
522 | edit_box_key.sh_first_sh: |
601 | test word ed_flags,ed_shift |
523 | test word ed_flags,ed_shift |
602 | je @f |
524 | je @f |
603 | mov dword ed_shift_pos_old,ebx |
525 | mov dword ed_shift_pos_old,ebx |
604 | test word ed_flags,ed_shift_on |
526 | test word ed_flags,ed_shift_on |
605 | jne @f |
527 | jne @f |
606 | mov dword ed_shift_pos,ebx |
528 | mov dword ed_shift_pos,ebx |
607 | or word ed_flags,ed_shift_on |
529 | or word ed_flags,ed_shift_on |
608 | @@: ret |
530 | @@: ret |
609 | ;¡à ¡®âª ªà ©¨å ¯®«®¦¥¨© ¢ editbox ¯à¨ ¦ ⮬ shift |
531 | ;¡à ¡®âª ªà ©¨å ¯®«®¦¥¨© ¢ editbox ¯à¨ ¦ ⮬ shift |
610 | ;¯à®¨§¢®¤¨â áï⨥ ¢ë¤¥«¥¨¥, ¥á«¨ ¥â shift |
532 | ;¯à®¨§¢®¤¨â áï⨥ ¢ë¤¥«¥¨¥, ¥á«¨ ¥â shift |
611 | ;¨ ç¥ ¢®®¡é¥ ¢ë室¨â |
533 | ;¨ ç¥ ¢®®¡é¥ ¢ë室¨â |
612 | edit_box_key.sh_st_of: |
534 | edit_box_key.sh_st_of: |
613 | test word ed_flags,ed_shift |
535 | test word ed_flags,ed_shift |
614 | jne @f |
536 | jne @f |
615 | test word ed_flags,ed_shift_bac |
537 | test word ed_flags,ed_shift_bac |
616 | je @f |
538 | je @f |
617 | mov ebp,ed_color |
539 | mov ebp,ed_color |
618 | mov ebx,dword ed_shift_pos |
540 | mov ebx,dword ed_shift_pos |
619 | call edit_box_key.sh_cl_ ;®ç¨á⪠¢ë¤¥«¥®£® äà £¬¥â |
541 | call edit_box_key.sh_cl_ ;®ç¨á⪠¢ë¤¥«¥®£® äà £¬¥â |
620 | and word ed_flags,ed_shift_cl ; ®ç¨á⪠®â ⮣® çâ® ã¡à «¨ ¢ë¤¥«¥¨¥ |
542 | and word ed_flags,ed_shift_cl ; ®ç¨á⪠®â ⮣® çâ® ã¡à «¨ ¢ë¤¥«¥¨¥ |
621 | jmp edit_box.draw_cursor_text |
543 | jmp edit_box.draw_cursor_text |
622 | @@: |
544 | @@: |
623 | and word ed_flags,ed_shift_off |
545 | and word ed_flags,ed_shift_off |
624 | popad |
546 | popad |
625 | ret 4 |
547 | ret 4 |
626 | ;¯à®¢¥àª á®áâ®ï¨ï shift ¡ë« «¨ ® ¦ â à ìè¥? |
548 | ;¯à®¢¥àª á®áâ®ï¨ï shift ¡ë« «¨ ® ¦ â à ìè¥? |
627 | edit_box_key.sh_enable: |
549 | edit_box_key.sh_enable: |
628 | test word ed_flags,ed_shift |
550 | test word ed_flags,ed_shift |
629 | jne edit_box_key.sh_ext_en ; à¨á®¢ âì § ªà è¥ë© ¯àאַ㣮«ì¨ª |
551 | jne edit_box_key.sh_ext_en ; à¨á®¢ âì § ªà è¥ë© ¯àאַ㣮«ì¨ª |
630 | 552 | ||
631 | test word ed_flags,ed_shift_bac |
553 | test word ed_flags,ed_shift_bac |
632 | je @f |
554 | je @f |
633 | call edit_box.check_offset |
555 | call edit_box.check_offset |
634 | 556 | ||
635 | mov ebp,ed_color |
557 | mov ebp,ed_color |
636 | mov ebx,dword ed_shift_pos |
558 | mov ebx,dword ed_shift_pos |
637 | call edit_box_key.sh_cl_ ;®ç¨á⪠¢ë¤¥«¥®£® äà £¬¥â |
559 | call edit_box_key.sh_cl_ ;®ç¨á⪠¢ë¤¥«¥®£® äà £¬¥â |
638 | call edit_box_key.draw_wigwag_cl |
560 | call edit_box_key.draw_wigwag_cl |
639 | and word ed_flags,ed_shift_cl ; 1¢ à ¥ 㦮 |
561 | and word ed_flags,ed_shift_cl ; 1¢ à ¥ 㦮 |
640 | ret |
562 | ret |
641 | 563 | ||
642 | @@: mov ebp,ed_color |
564 | @@: mov ebp,ed_color |
643 | call edit_box.clear_cursor |
565 | call edit_box.clear_cursor |
644 | call edit_box.check_offset |
566 | call edit_box.check_offset |
645 | ret |
567 | ret |
646 | edit_box_key.sh_ext_en: |
568 | edit_box_key.sh_ext_en: |
647 | call edit_box.check_offset |
569 | call edit_box.check_offset |
648 | test word ed_flags,ed_offset_fl |
570 | test word ed_flags,ed_offset_fl |
649 | je @f |
571 | je @f |
650 | ;¨á®¢ ¨¥ § ªà è¥ëå ¯àאַ㣮«ì¨ª®¢ ¨ ®ç¨á⪠¨å |
572 | ;¨á®¢ ¨¥ § ªà è¥ëå ¯àאַ㣮«ì¨ª®¢ ¨ ®ç¨á⪠¨å |
651 | mov eax,dword ed_shift_pos |
573 | mov eax,dword ed_shift_pos |
652 | mov ebx,dword ed_pos |
574 | mov ebx,dword ed_pos |
653 | mov ecx,dword ed_shift_pos_old |
575 | mov ecx,dword ed_shift_pos_old |
654 | ;¯à®¢¥àª ¨ à¨á®¢ ¨¥ § ªà è¥ëå ®¡« á⥩ |
576 | ;¯à®¢¥àª ¨ à¨á®¢ ¨¥ § ªà è¥ëå ®¡« á⥩ |
655 | cmp eax,ecx |
577 | cmp eax,ecx |
656 | je edit_box_key.1_shem |
578 | je edit_box_key.1_shem |
657 | jb edit_box_key.smaller |
579 | jb edit_box_key.smaller |
658 | cmp ecx,ebx |
580 | cmp ecx,ebx |
659 | ja edit_box_key.1_shem |
581 | ja edit_box_key.1_shem |
660 | call edit_box_key.draw_wigwag_cl ;clear |
582 | call edit_box_key.draw_wigwag_cl ;clear |
661 | jmp edit_box_key.sh_e_end |
583 | jmp edit_box_key.sh_e_end |
662 | edit_box_key.smaller: |
584 | edit_box_key.smaller: |
663 | cmp ecx,ebx |
585 | cmp ecx,ebx |
664 | jb edit_box_key.1_shem |
586 | jb edit_box_key.1_shem |
665 | call edit_box_key.draw_wigwag_cl ;clear |
587 | call edit_box_key.draw_wigwag_cl ;clear |
666 | jmp edit_box_key.sh_e_end |
588 | jmp edit_box_key.sh_e_end |
667 | ;alike = |
589 | ;alike = |
668 | edit_box_key.1_shem: call edit_box_key.draw_wigwag |
590 | edit_box_key.1_shem: call edit_box_key.draw_wigwag |
669 | edit_box_key.sh_e_end: and word ed_flags,ed_shift_off |
591 | edit_box_key.sh_e_end: and word ed_flags,ed_shift_off |
670 | ret |
592 | ret |
671 | @@: mov ebp,shift_color |
593 | @@: mov ebp,shift_color |
672 | mov ebx,dword ed_shift_pos |
594 | mov ebx,dword ed_shift_pos |
673 | call edit_box_key.sh_cl_ |
595 | call edit_box_key.sh_cl_ |
674 | jmp edit_box_key.sh_e_end |
596 | jmp edit_box_key.sh_e_end |
675 | ;äãªæ¨ï ¤«ï ®¡à ¡®âª¨ shift ¯à¨ ¦ ⨨ home and end |
597 | ;äãªæ¨ï ¤«ï ®¡à ¡®âª¨ shift ¯à¨ ¦ ⨨ home and end |
676 | edit_box_key.sh_home_end: |
598 | edit_box_key.sh_home_end: |
677 | mov ebp,ed_color |
599 | mov ebp,ed_color |
678 | call edit_box.clear_cursor |
600 | call edit_box.clear_cursor |
679 | test word ed_flags,ed_shift_bac |
601 | test word ed_flags,ed_shift_bac |
680 | je @f |
602 | je @f |
681 | mov ebp,ed_color |
603 | mov ebp,ed_color |
682 | mov ebx,dword ed_shift_pos_old |
604 | mov ebx,dword ed_shift_pos_old |
683 | call edit_box_key.sh_cl_ |
605 | call edit_box_key.sh_cl_ |
684 | 606 | ||
685 | @@: test word ed_flags,ed_shift |
607 | @@: test word ed_flags,ed_shift |
686 | je edit_box_key.sh_exit_ ;¢ë©â¨ |
608 | je edit_box_key.sh_exit_ ;¢ë©â¨ |
687 | mov ebp,shift_color |
609 | mov ebp,shift_color |
688 | mov ebx,dword ed_shift_pos |
610 | mov ebx,dword ed_shift_pos |
689 | call edit_box_key.sh_cl_ |
611 | call edit_box_key.sh_cl_ |
690 | or word ed_flags,ed_shift_bac ;ãáâ ®¢ª ä« £ , ¢ë¤¥«¥®© ®¡« á⨠|
612 | or word ed_flags,ed_shift_bac ;ãáâ ®¢ª ä« £ , ¢ë¤¥«¥®© ®¡« á⨠|
691 | jmp edit_box_key.sh_e_end |
613 | jmp edit_box_key.sh_e_end |
692 | edit_box_key.sh_exit_: |
614 | edit_box_key.sh_exit_: |
693 | call edit_box.check_offset |
615 | call edit_box.check_offset |
694 | ret |
616 | ret |
695 | ;äãªæ¨ï ¢¥á¥¨ï 0 ¯® ¤à¥áã ed_size+1 |
617 | ;äãªæ¨ï ¢¥á¥¨ï 0 ¯® ¤à¥áã ed_size+1 |
696 | edit_box_key.enable_null: |
618 | edit_box_key.enable_null: |
697 | pusha |
619 | pusha |
698 | mov eax,ed_size |
620 | mov eax,ed_size |
699 | mov ebx,ed_text |
621 | mov ebx,ed_text |
700 | test eax,eax |
622 | test eax,eax |
701 | add eax,ebx |
623 | add eax,ebx |
702 | jne @f |
624 | jne @f |
703 | inc eax |
625 | inc eax |
704 | @@: xor ebx,ebx |
626 | @@: xor ebx,ebx |
705 | mov [eax],bl |
627 | mov [eax],bl |
706 | edit_ex |
628 | edit_ex |
707 | ;- 㤠«¥¨¥ ᨬ¢®« |
629 | ;- 㤠«¥¨¥ ᨬ¢®« |
708 | ;å®¤ë¥ ¤ ë¥ edx=ed_size;ecx=ed_pos |
630 | ;å®¤ë¥ ¤ ë¥ edx=ed_size;ecx=ed_pos |
709 | edit_box_key.del_char: |
631 | edit_box_key.del_char: |
710 | mov esi,ed_text |
632 | mov esi,ed_text |
711 | test word ed_flags,ed_shift_on |
633 | test word ed_flags,ed_shift_on |
712 | je @f |
634 | je @f |
713 | mov eax,dword ed_shift_pos |
635 | mov eax,dword ed_shift_pos |
714 | mov ebx,esi |
636 | mov ebx,esi |
715 | cmp eax,ecx |
637 | cmp eax,ecx |
716 | jae edit_box_key.dh_n |
638 | jae edit_box_key.dh_n |
717 | 639 | ||
718 | mov ed_pos,eax ;çâ® ¡ë ¥ ¡ë«® ã¡¥£ ¨ï ªãàá®à |
640 | mov ed_pos,eax ;çâ® ¡ë ¥ ¡ë«® ã¡¥£ ¨ï ªãàá®à |
719 | mov ebp,ecx |
641 | mov ebp,ecx |
720 | sub ebp,eax |
642 | sub ebp,eax |
721 | add ebx,eax ;eax ¬¥ìè¥ |
643 | add ebx,eax ;eax ¬¥ìè¥ |
722 | sub edx,ecx |
644 | sub edx,ecx |
723 | add esi,ecx |
645 | add esi,ecx |
724 | 646 | ||
725 | mov dword ed_shift_pos,ebp |
647 | mov dword ed_shift_pos,ebp |
726 | jmp edit_box_key.del_ch_sh |
648 | jmp edit_box_key.del_ch_sh |
727 | ;¥á«¨ ¨ ç¥ |
649 | ;¥á«¨ ¨ ç¥ |
728 | edit_box_key.dh_n: |
650 | edit_box_key.dh_n: |
729 | mov ebp,eax |
651 | mov ebp,eax |
730 | sub ebp,ecx |
652 | sub ebp,ecx |
731 | add ebx,ecx |
653 | add ebx,ecx |
732 | sub edx,eax |
654 | sub edx,eax |
733 | add esi,eax |
655 | add esi,eax |
734 | mov dword ed_shift_pos,ebp |
656 | mov dword ed_shift_pos,ebp |
735 | jmp edit_box_key.del_ch_sh |
657 | jmp edit_box_key.del_ch_sh |
736 | 658 | ||
737 | @@: add esi,ecx ;㪠§ ⥫ì + ᬥ饨¥ ª ॠ«ì®¬ã ¡ãää¥àã |
659 | @@: add esi,ecx ;㪠§ ⥫ì + ᬥ饨¥ ª ॠ«ì®¬ã ¡ãää¥àã |
738 | mov ebx,esi |
660 | mov ebx,esi |
739 | inc esi |
661 | inc esi |
740 | cld |
662 | cld |
741 | 663 | ||
742 | sub edx,ecx |
664 | sub edx,ecx |
743 | edit_box_key.del_ch_sh: |
665 | edit_box_key.del_ch_sh: |
744 | 666 | ||
745 | push edi |
667 | push edi |
746 | mov edi,ebx |
668 | mov edi,ebx |
747 | @@: |
669 | @@: |
748 | lodsb |
670 | lodsb |
749 | stosb |
671 | stosb |
750 | dec edx |
672 | dec edx |
751 | jns @b |
673 | jns @b |
752 | 674 | ||
753 | pop edi |
675 | pop edi |
754 | ret |
676 | ret |
755 | ;¢ëç¨á«¨âì § ªà 訢 ¥¬ãî ®¡« áâì |
677 | ;¢ëç¨á«¨âì § ªà 訢 ¥¬ãî ®¡« áâì |
756 | ;ᮣ« 襨¥ ¢ ebp - ¯¥à¥¤ ¥âáï ed_size |
678 | ;ᮣ« 襨¥ ¢ ebp - ¯¥à¥¤ ¥âáï ed_size |
757 | edit_box_key.clear_bg: |
679 | edit_box_key.clear_bg: |
758 | call edit_box.get_n ;¯®«ãç¨âì à §¬¥à ¢ ᨬ¢®« å è¨à¨ë ª®¬¯®¥â |
680 | call edit_box.get_n ;¯®«ãç¨âì à §¬¥à ¢ ᨬ¢®« å è¨à¨ë ª®¬¯®¥â |
759 | push eax |
681 | push eax |
760 | mov ebx,ed_offset |
682 | mov ebx,ed_offset |
761 | add eax,ebx ;eax = w_off= ed_offset+width |
683 | add eax,ebx ;eax = w_off= ed_offset+width |
762 | mov ebx,ebp ;ed_size |
684 | mov ebx,ebp ;ed_size |
763 | 685 | ||
764 | cmp eax,ebx |
686 | cmp eax,ebx |
765 | jb @f |
687 | jb @f |
766 | mov eax,ed_pos |
688 | mov eax,ed_pos |
767 | sub ebx,eax |
689 | sub ebx,eax |
768 | mov ecx,ed_offset |
690 | mov ecx,ed_offset |
769 | sub eax,ecx |
691 | sub eax,ecx |
770 | jmp edit_box_key.nxt |
692 | jmp edit_box_key.nxt |
771 | @@: mov ebx,ed_pos |
693 | @@: mov ebx,ed_pos |
772 | push ebx |
694 | push ebx |
773 | sub eax,ebx |
695 | sub eax,ebx |
774 | mov ebx,eax ;It is don't optimal |
696 | mov ebx,eax ;It is don't optimal |
775 | 697 | ||
776 | pop eax ;ed_pos |
698 | pop eax ;ed_pos |
777 | mov ecx,ed_offset |
699 | mov ecx,ed_offset |
778 | sub eax,ecx |
700 | sub eax,ecx |
779 | edit_box_key.nxt: |
701 | edit_box_key.nxt: |
780 | mov ebp,eax ;¯à®¢¥àª ¢ë室 § ªà 訢 ¥¬®© ®¡« á⨠§ ¯à¥¤¥«ë ¤«¨ë |
702 | mov ebp,eax ;¯à®¢¥àª ¢ë室 § ªà 訢 ¥¬®© ®¡« á⨠§ ¯à¥¤¥«ë ¤«¨ë |
781 | add ebp,ebx |
703 | add ebp,ebx |
782 | pop edx |
704 | pop edx |
783 | cmp ebp,edx |
705 | cmp ebp,edx |
784 | je @f |
706 | je @f |
785 | inc ebx |
707 | inc ebx |
786 | 708 | ||
787 | @@: mov edx,ebx |
709 | @@: mov edx,ebx |
788 | lea ebx,[eax*2+eax] |
710 | lea ebx,[eax*2+eax] |
789 | shl ebx,1 |
711 | shl ebx,1 |
790 | add ebx,ed_left |
712 | add ebx,ed_left |
791 | inc ebx |
713 | inc ebx |
792 | shl ebx,16 |
714 | shl ebx,16 |
793 | lea ecx,[edx*2+edx] |
715 | lea ecx,[edx*2+edx] |
794 | shl ecx,1 |
716 | shl ecx,1 |
795 | mov bx,cx |
717 | mov bx,cx |
796 | mov edx,ed_color |
718 | mov edx,ed_color |
797 | call edit_box.draw_bg_eax |
719 | call edit_box.draw_bg_eax |
798 | ret |
720 | ret |
799 | ;;;;;;;;;;;;;;;;;;; |
721 | ;;;;;;;;;;;;;;;;;;; |
800 | ;;; ¡à ¡®âª ¯à¨¬¨â¨¢®¢ |
722 | ;;; ¡à ¡®âª ¯à¨¬¨â¨¢®¢ |
801 | ;;;;;;;;;;;;;;;;;;;; |
723 | ;;;;;;;;;;;;;;;;;;;; |
802 | ; à¨á®¢ âì ¯àאַ㣮«ì¨ª, 梥⠯¥à¥¤ ¥âáï ¢ ebp |
724 | ; à¨á®¢ âì ¯àאַ㣮«ì¨ª, 梥⠯¥à¥¤ ¥âáï ¢ ebp |
803 | ;¢å®¤ë¥ ¯ à ¬¥âàë: |
725 | ;¢å®¤ë¥ ¯ à ¬¥âàë: |
804 | ;eax=dword ed_pos |
726 | ;eax=dword ed_pos |
805 | ;ebp=-梥â ed_color or shift_color |
727 | ;ebp=-梥â ed_color or shift_color |
806 | edit_box_key.draw_rectangle: |
728 | edit_box_key.draw_rectangle: |
807 | mov ecx,dword ed_offset |
729 | mov ecx,dword ed_offset |
808 | sub eax,ecx |
730 | sub eax,ecx |
809 | lea ebx,[eax*2+eax] |
731 | lea ebx,[eax*2+eax] |
810 | shl ebx,1 |
732 | shl ebx,1 |
811 | inc ebx |
733 | inc ebx |
812 | add ebx,ed_left |
734 | add ebx,ed_left |
813 | shl ebx,16 |
735 | shl ebx,16 |
814 | add ebx,6 |
736 | add ebx,6 |
815 | mov edx,ebp |
737 | mov edx,ebp |
816 | call edit_box.draw_bg_eax |
738 | call edit_box.draw_bg_eax |
817 | ret |
739 | ret |
818 | ;;;;;;;;;;;;;;;;;; |
740 | ;;;;;;;;;;;;;;;;;; |
819 | ;;஢¥àª ¦ â «¨ shift |
741 | ;;஢¥àª ¦ â «¨ shift |
820 | ;;;;;;;;;;;;;;;;;; |
742 | ;;;;;;;;;;;;;;;;;; |
821 | edit_box_key.check_shift: |
743 | edit_box_key.check_shift: |
822 | pusha ;á®åà ¨¬ ¢á¥ ॣ¨áâàë |
744 | pusha ;á®åà ¨¬ ¢á¥ ॣ¨áâàë |
823 | mcall 66,3 |
745 | mcall 66,3 |
824 | test al,0x03 |
746 | test al,0x03 |
825 | je @f |
747 | je @f |
826 | or word ed_flags,ed_shift ;ãáâ ®¢¨¬ ä« £ |
748 | or word ed_flags,ed_shift ;ãáâ ®¢¨¬ ä« £ |
827 | @@:edit_ex |
749 | @@:edit_ex |
828 | } |
750 | } |
829 | ;¬ ªà®á ª« ¢¨è ª®â®àë¥ ¯à®¨á室¨â ॠªæ¨ï |
751 | ;¬ ªà®á ª« ¢¨è ª®â®àë¥ ¯à®¨á室¨â ॠªæ¨ï |
830 | macro use_key_process backspase,delete,left,right,home,end,insert |
752 | macro use_key_process backspase,delete,left,right,home,end,insert |
831 | { |
753 | { |
832 | if backspase eq |
754 | if backspase eq |
833 | else |
755 | else |
834 | cmp ah,8 |
756 | cmp ah,8 |
835 | jz edit_box_key.backspace |
757 | jz edit_box_key.backspace |
836 | end if |
758 | end if |
837 | if delete eq |
759 | if delete eq |
838 | else |
760 | else |
839 | cmp ah,0xb6 |
761 | cmp ah,0xb6 |
840 | jz edit_box_key.delete |
762 | jz edit_box_key.delete |
841 | end if |
763 | end if |
842 | if left eq |
764 | if left eq |
843 | else |
765 | else |
844 | cmp ah,176 |
766 | cmp ah,176 |
845 | jz edit_box_key.left |
767 | jz edit_box_key.left |
846 | end if |
768 | end if |
847 | if right eq |
769 | if right eq |
848 | else |
770 | else |
849 | cmp ah,179 |
771 | cmp ah,179 |
850 | jz edit_box_key.right |
772 | jz edit_box_key.right |
851 | end if |
773 | end if |
852 | if home eq |
774 | if home eq |
853 | else |
775 | else |
854 | cmp ah,180 |
776 | cmp ah,180 |
855 | jz edit_box_key.home |
777 | jz edit_box_key.home |
856 | end if |
778 | end if |
857 | if home eq |
779 | if home eq |
858 | else |
780 | else |
859 | cmp ah,181 |
781 | cmp ah,181 |
860 | jz edit_box_key.end |
782 | jz edit_box_key.end |
861 | end if |
783 | end if |
862 | if insert eq |
784 | if insert eq |
863 | else |
785 | else |
864 | cmp ah,185 ;insert |
786 | cmp ah,185 ;insert |
865 | jz edit_box_key.insert |
787 | jz edit_box_key.insert |
866 | end if |
788 | end if |
867 | } |
789 | } |
868 | 790 | ||
869 | macro use_key_no_process up,down,esc,enter,tab,numl,capsl,scrolll |
791 | macro use_key_no_process up,down,esc,enter,tab,numl,capsl,scrolll |
870 | { |
792 | { |
871 | if up eq |
793 | if up eq |
872 | else |
794 | else |
873 | cmp ah,177 |
795 | cmp ah,177 |
874 | jz edit_box.editbox_exit |
796 | jz edit_box.editbox_exit |
875 | end if |
797 | end if |
876 | if down eq |
798 | if down eq |
877 | else |
799 | else |
878 | cmp ah,178 |
800 | cmp ah,178 |
879 | jz edit_box.editbox_exit |
801 | jz edit_box.editbox_exit |
880 | end if |
802 | end if |
881 | if esc eq |
803 | if esc eq |
882 | else |
804 | else |
883 | cmp ah,27 ;ESC - ª« ¢¨è )) |
805 | cmp ah,27 ;ESC - ª« ¢¨è )) |
884 | jz edit_box.editbox_exit |
806 | jz edit_box.editbox_exit |
885 | end if |
807 | end if |
886 | if enter eq |
808 | if enter eq |
887 | else |
809 | else |
888 | cmp ah,13 ;ENTER - ª« ¢¨è )) |
810 | cmp ah,13 ;ENTER - ª« ¢¨è )) |
889 | jz edit_box.editbox_exit |
811 | jz edit_box.editbox_exit |
890 | end if |
812 | end if |
891 | if tab eq |
813 | if tab eq |
892 | else |
814 | else |
893 | cmp ah,9 ;TAB - ª« ¢¨è )) |
815 | cmp ah,9 ;TAB - ª« ¢¨è )) |
894 | jz edit_box.editbox_exit |
816 | jz edit_box.editbox_exit |
895 | end if |
817 | end if |
896 | 818 | ||
897 | if numl eq |
819 | if numl eq |
898 | else |
820 | else |
899 | cmp ah,4 ;Num Lock - ª« ¢¨è )) |
821 | cmp ah,4 ;Num Lock - ª« ¢¨è )) |
900 | jz edit_box.editbox_exit |
822 | jz edit_box.editbox_exit |
901 | end if |
823 | end if |
902 | 824 | ||
903 | if capsl eq |
825 | if capsl eq |
904 | else |
826 | else |
905 | cmp ah,2 ;Caps Lock - ª« ¢¨è )) |
827 | cmp ah,2 ;Caps Lock - ª« ¢¨è )) |
906 | jz edit_box.editbox_exit |
828 | jz edit_box.editbox_exit |
907 | end if |
829 | end if |
908 | 830 | ||
909 | if scrolll eq |
831 | if scrolll eq |
910 | else |
832 | else |
911 | cmp ah,1 ;Scroll Lock - ª« ¢¨è )) |
833 | cmp ah,1 ;Scroll Lock - ª« ¢¨è )) |
912 | jz edit_box.editbox_exit |
834 | jz edit_box.editbox_exit |
913 | end if |
835 | end if |
914 | 836 | ||
915 | } |
837 | } |
916 | 838 | ||
917 | macro use_key_figures_only |
839 | macro use_key_figures_only |
918 | { |
840 | { |
919 | test word ed_flags,ed_figure_only ; ⮫쪮 æ¨äàë ? |
841 | test word ed_flags,ed_figure_only ; ⮫쪮 æ¨äàë ? |
920 | jz @f |
842 | jz @f |
921 | cmp ah,'0' |
843 | cmp ah,'0' |
922 | jb edit_box.editbox_exit |
844 | jb edit_box.editbox_exit |
923 | cmp ah,'9' |
845 | cmp ah,'9' |
924 | ja edit_box.editbox_exit |
846 | ja edit_box.editbox_exit |
925 | @@: |
847 | @@: |
926 | } |
848 | } |
927 | macro are_key_shift_press |
849 | macro are_key_shift_press |
928 | { |
850 | { |
929 | test word ed_flags,ed_shift_on |
851 | test word ed_flags,ed_shift_on |
930 | je @f |
852 | je @f |
931 | ;å®¤ë¥ ¤ ë¥ edx=ed_size;ecx=ed_pos |
853 | ;å®¤ë¥ ¤ ë¥ edx=ed_size;ecx=ed_pos |
932 | push eax |
854 | push eax |
933 | mov edx,ed_size |
855 | mov edx,ed_size |
934 | mov ecx, ed_pos |
856 | mov ecx, ed_pos |
935 | pusha |
857 | pusha |
936 | ;;;;;;;;;;;;;;;;;;;;; |
858 | ;;;;;;;;;;;;;;;;;;;;; |
937 | ;clear input arrea |
859 | ;clear input arrea |
938 | mov ebp,ed_color |
860 | mov ebp,ed_color |
939 | mov ebx,dword ed_shift_pos |
861 | mov ebx,dword ed_shift_pos |
940 | call edit_box_key.sh_cl_ |
862 | call edit_box_key.sh_cl_ |
941 | mov ebp,ed_size |
863 | mov ebp,ed_size |
942 | call edit_box_key.clear_bg |
864 | call edit_box_key.clear_bg |
943 | ;;;;;;;;;;;;;;;;;;;;; |
865 | ;;;;;;;;;;;;;;;;;;;;; |
944 | popa |
866 | popa |
945 | call edit_box_key.del_char |
867 | call edit_box_key.del_char |
946 | ;;;; |
868 | ;;;; |
947 | mov eax,dword ed_shift_pos |
869 | mov eax,dword ed_shift_pos |
948 | mov ebx,ed_size |
870 | mov ebx,ed_size |
949 | sub ebx,eax |
871 | sub ebx,eax |
950 | mov ed_size,ebx |
872 | mov ed_size,ebx |
951 | pop eax |
873 | pop eax |
952 | @@: |
874 | @@: |
953 | } |
875 | } |
954 | macro are_key_cur_end |
876 | macro are_key_cur_end |
955 | { |
877 | { |
956 | mov ecx,ed_size |
878 | mov ecx,ed_size |
957 | mov edx, ed_max |
879 | mov edx, ed_max |
958 | test word ed_flags,ed_insert |
880 | test word ed_flags,ed_insert |
959 | jne @f |
881 | jne @f |
960 | cmp ecx,edx |
882 | cmp ecx,edx |
961 | jae edit_box.editbox_exit |
883 | jae edit_box.editbox_exit |
962 | @@: mov ebx, ed_pos |
884 | @@: mov ebx, ed_pos |
963 | cmp ebx,edx |
885 | cmp ebx,edx |
964 | jl @f ; ¥á«¨ ¬¥ìè¥ ¨«¨ à ¢® |
886 | jl @f ; ¥á«¨ ¬¥ìè¥ ¨«¨ à ¢® |
965 | jmp edit_box.editbox_exit |
887 | jmp edit_box.editbox_exit |
966 | 888 | ||
967 | @@: ; ᤢ¨£ ¥¬ ᨬ¢®«ë ¯®á«¥ ªãàá®à ¢¯à ¢® |
889 | @@: ; ᤢ¨£ ¥¬ ᨬ¢®«ë ¯®á«¥ ªãàá®à ¢¯à ¢® |
968 | mov ecx,ed_size |
890 | mov ecx,ed_size |
969 | push edi eax |
891 | push edi eax |
970 | mov ebp,edi |
892 | mov ebp,edi |
971 | mov esi,ed_text ; ª § â¥«ì ¡ãä¥à |
893 | mov esi,ed_text ; ª § â¥«ì ¡ãä¥à |
972 | ;㤥¬ à ¡®â âì á® áâப®© |
894 | ;㤥¬ à ¡®â âì á® áâப®© |
973 | add esi,ecx ;add ed_size ¤®¡ ¢¨¬ max size |
895 | add esi,ecx ;add ed_size ¤®¡ ¢¨¬ max size |
974 | mov edi,esi |
896 | mov edi,esi |
975 | 897 | ||
976 | cmp ecx,ebx ; ᫨ ã á ¯®§¨æ¨ï ªãàá®à = ⥪ã饬ã à §¬¥àã ¯¥ç â ëå ᨬ¢®«®¢ â.¥. ªãàá®à á⮨⠢ ª®æ¥ |
898 | cmp ecx,ebx ; ᫨ ã á ¯®§¨æ¨ï ªãàá®à = ⥪ã饬ã à §¬¥àã ¯¥ç â ëå ᨬ¢®«®¢ â.¥. ªãàá®à á⮨⠢ ª®æ¥ |
977 | je edit_box_key.In_k |
899 | je edit_box_key.In_k |
978 | 900 | ||
979 | test dword bp_flags,ed_insert ;IF insert is enable â.ª. edi ¨§¬¥¥ ¤à¥á㥬 ç¥à¥§ ebp |
901 | test dword bp_flags,ed_insert ;IF insert is enable â.ª. edi ¨§¬¥¥ ¤à¥á㥬 ç¥à¥§ ebp |
980 | jne edit_box_key.ins_v |
902 | jne edit_box_key.ins_v |
981 | ;clear |
903 | ;clear |
982 | pusha |
904 | pusha |
983 | mov edi,ebp |
905 | mov edi,ebp |
984 | mov ebp,ed_size |
906 | mov ebp,ed_size |
985 | call edit_box_key.clear_bg |
907 | call edit_box_key.clear_bg |
986 | popa |
908 | popa |
987 | sub ecx,ebx ; ©¤¥¬ ª®«-¢® ᨬ¢®«®¢ ¤«ï ¯¥à¥¤¢¨¦¥¨ï. |
909 | sub ecx,ebx ; ©¤¥¬ ª®«-¢® ᨬ¢®«®¢ ¤«ï ¯¥à¥¤¢¨¦¥¨ï. |
988 | inc edi ;¬¥á⨬ è¨ á¨¬¢®«ë ¢ ¯à ¢® |
910 | inc edi ;¬¥á⨬ è¨ á¨¬¢®«ë ¢ ¯à ¢® |
989 | std |
911 | std |
990 | inc ecx |
912 | inc ecx |
991 | @@: |
913 | @@: |
992 | ;-------- |
914 | ;-------- |
993 | lodsb |
915 | lodsb |
994 | stosb |
916 | stosb |
995 | ;-------- |
917 | ;-------- |
996 | loop @b |
918 | loop @b |
997 | edit_box_key.In_k: |
919 | edit_box_key.In_k: |
998 | cld |
920 | cld |
999 | pop eax |
921 | pop eax |
1000 | mov al,ah |
922 | mov al,ah |
1001 | stosb |
923 | stosb |
1002 | pop edi |
924 | pop edi |
1003 | ; ¢áâ ¢«ï¥¬ ª®¤ ª« ¢¨è¨ â㤠, £¤¥ ªãàá®à |
925 | ; ¢áâ ¢«ï¥¬ ª®¤ ª« ¢¨è¨ â㤠, £¤¥ ªãàá®à |
1004 | ; 㢥«¨ç¨¢ ¥¬ § 票¥ à §¬¥à ¨ ¯®§¨æ¨¨ |
926 | ; 㢥«¨ç¨¢ ¥¬ § 票¥ à §¬¥à ¨ ¯®§¨æ¨¨ |
1005 | inc dword ed_size |
927 | inc dword ed_size |
1006 | inc dword ed_pos |
928 | inc dword ed_pos |
1007 | call edit_box_key.draw_all2 |
929 | call edit_box_key.draw_all2 |
1008 | jmp edit_box_key.shift |
930 | jmp edit_box_key.shift |
1009 | } |
931 | } |
1010 | macro use_work_key |
932 | macro use_work_key |
1011 | { |
933 | { |
1012 | edit_box_key.insert: test word ed_flags,ed_insert ;not word ed_insert |
934 | edit_box_key.insert: test word ed_flags,ed_insert ;not word ed_insert |
1013 | je @f |
935 | je @f |
1014 | and word ed_flags,ed_insert_cl |
936 | and word ed_flags,ed_insert_cl |
1015 | 937 | ||
1016 | jmp edit_box.editbox_exit |
938 | jmp edit_box.editbox_exit |
1017 | @@: |
939 | @@: |
1018 | or word ed_flags,ed_insert |
940 | or word ed_flags,ed_insert |
1019 | jmp edit_box.editbox_exit |
941 | jmp edit_box.editbox_exit |
1020 | edit_box_key.ins_v: |
942 | edit_box_key.ins_v: |
1021 | ; dec dword [ebp+48];ed_size ;processing is insert |
943 | ; dec dword [ebp+48];ed_size ;processing is insert |
1022 | dec dword bp_size |
944 | dec dword bp_size |
1023 | sub esi,ecx |
945 | sub esi,ecx |
1024 | add esi,ebx |
946 | add esi,ebx |
1025 | mov edi,esi |
947 | mov edi,esi |
1026 | ;clear |
948 | ;clear |
1027 | pusha |
949 | pusha |
1028 | mov edi,ebp |
950 | mov edi,ebp |
1029 | mov ebp,ed_pos |
951 | mov ebp,ed_pos |
1030 | call edit_box_key.clear_bg |
952 | call edit_box_key.clear_bg |
1031 | popa |
953 | popa |
1032 | jmp edit_box_key.In_k |
954 | jmp edit_box_key.In_k |
1033 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
955 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
1034 | edit_box_key.delete: |
956 | edit_box_key.delete: |
1035 | mov edx,ed_size |
957 | mov edx,ed_size |
1036 | mov ecx,ed_pos |
958 | mov ecx,ed_pos |
1037 | cmp edx,ecx |
959 | cmp edx,ecx |
1038 | jg edit_box_key.bac_del |
960 | jg edit_box_key.bac_del |
1039 | test word ed_flags,ed_shift_on |
961 | test word ed_flags,ed_shift_on |
1040 | jne edit_box_key.del_bac |
962 | jne edit_box_key.del_bac |
1041 | popad |
963 | popad |
1042 | ret 4 |
964 | ret 4 |
1043 | edit_box_key.bac_del: |
965 | edit_box_key.bac_del: |
1044 | call edit_box_key.del_char |
966 | call edit_box_key.del_char |
1045 | jmp edit_box_key.draw_all |
967 | jmp edit_box_key.draw_all |
1046 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
968 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
1047 | ;--- ¦ â ª« ¢¨è backspace --- |
969 | ;--- ¦ â ª« ¢¨è backspace --- |
1048 | edit_box_key.backspace: |
970 | edit_box_key.backspace: |
1049 | ; ¯à®¢¥à塞, ªãàá®à ã «¥¢®£® ªà ï ? |
971 | ; ¯à®¢¥à塞, ªãàá®à ã «¥¢®£® ªà ï ? |
1050 | mov ecx,ed_pos |
972 | mov ecx,ed_pos |
1051 | test ecx,ecx |
973 | test ecx,ecx |
1052 | jnz edit_box_key.del_bac |
974 | jnz edit_box_key.del_bac |
1053 | test word ed_flags,ed_shift_on |
975 | test word ed_flags,ed_shift_on |
1054 | jne edit_box_key.bac_del |
976 | jne edit_box_key.bac_del |
1055 | popad |
977 | popad |
1056 | ret 4 |
978 | ret 4 |
1057 | 979 | ||
1058 | edit_box_key.del_bac: |
980 | edit_box_key.del_bac: |
1059 | mov edx,ed_size |
981 | mov edx,ed_size |
1060 | cmp edx,ecx ;if ed_pos=ed_size |
982 | cmp edx,ecx ;if ed_pos=ed_size |
1061 | je @f |
983 | je @f |
1062 | dec ecx |
984 | dec ecx |
1063 | call edit_box_key.del_char |
985 | call edit_box_key.del_char |
1064 | @@: test word ed_flags,ed_shift_on |
986 | @@: test word ed_flags,ed_shift_on |
1065 | jne edit_box_key.bac_del |
987 | jne edit_box_key.bac_del |
1066 | dec dword ed_pos |
988 | dec dword ed_pos |
1067 | edit_box_key.draw_all: |
989 | edit_box_key.draw_all: |
1068 | push edit_box_key.shift;.draw_cursor_text;eax |
990 | push edit_box_key.shift;.draw_cursor_text;eax |
1069 | 991 | ||
1070 | test word ed_flags,ed_shift_on |
992 | test word ed_flags,ed_shift_on |
1071 | je @f |
993 | je @f |
1072 | mov eax,dword ed_shift_pos |
994 | mov eax,dword ed_shift_pos |
1073 | mov ebx,ed_size |
995 | mov ebx,ed_size |
1074 | sub ebx,eax |
996 | sub ebx,eax |
1075 | mov ed_size,ebx |
997 | mov ed_size,ebx |
1076 | 998 | ||
1077 | mov ebp,ed_color |
999 | mov ebp,ed_color |
1078 | call edit_box.clear_cursor |
1000 | call edit_box.clear_cursor |
1079 | call edit_box.check_offset |
1001 | call edit_box.check_offset |
1080 | call edit_box.draw_bg |
1002 | call edit_box.draw_bg |
1081 | ret |
1003 | ret |
1082 | @@: dec dword ed_size |
1004 | @@: dec dword ed_size |
1083 | 1005 | ||
1084 | edit_box_key.draw_all2: |
1006 | edit_box_key.draw_all2: |
1085 | and word ed_flags,ed_shift_cl |
1007 | and word ed_flags,ed_shift_cl |
1086 | mov ebp,ed_color |
1008 | mov ebp,ed_color |
1087 | call edit_box.clear_cursor |
1009 | call edit_box.clear_cursor |
1088 | call edit_box.check_offset |
1010 | call edit_box.check_offset |
1089 | mov ebp,ed_size |
1011 | mov ebp,ed_size |
1090 | call edit_box_key.clear_bg |
1012 | call edit_box_key.clear_bg |
1091 | ret |
1013 | ret |
1092 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
1014 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
1093 | ;--- ¦ â ª« ¢¨è left --- |
1015 | ;--- ¦ â ª« ¢¨è left --- |
1094 | edit_box_key.left: |
1016 | edit_box_key.left: |
1095 | mov ebx,ed_pos |
1017 | mov ebx,ed_pos |
1096 | test ebx,ebx |
1018 | test ebx,ebx |
1097 | jz edit_box_key.sh_st_of |
1019 | jz edit_box_key.sh_st_of |
1098 | or word ed_flags,ed_left_fl |
1020 | or word ed_flags,ed_left_fl |
1099 | call edit_box_key.sh_first_sh |
1021 | call edit_box_key.sh_first_sh |
1100 | dec dword ed_pos |
1022 | dec dword ed_pos |
1101 | call edit_box_key.sh_enable |
1023 | call edit_box_key.sh_enable |
1102 | jmp edit_box.draw_cursor_text |
1024 | jmp edit_box.draw_cursor_text |
1103 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
1025 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
1104 | ;--- ¦ â ª« ¢¨è right --- |
1026 | ;--- ¦ â ª« ¢¨è right --- |
1105 | edit_box_key.right: |
1027 | edit_box_key.right: |
1106 | mov ebx,ed_pos |
1028 | mov ebx,ed_pos |
1107 | cmp ebx,ed_size |
1029 | cmp ebx,ed_size |
1108 | je edit_box_key.sh_st_of |
1030 | je edit_box_key.sh_st_of |
1109 | and word ed_flags,ed_right_fl |
1031 | and word ed_flags,ed_right_fl |
1110 | call edit_box_key.sh_first_sh |
1032 | call edit_box_key.sh_first_sh |
1111 | inc dword ed_pos |
1033 | inc dword ed_pos |
1112 | call edit_box_key.sh_enable |
1034 | call edit_box_key.sh_enable |
1113 | jmp edit_box.draw_cursor_text |
1035 | jmp edit_box.draw_cursor_text |
1114 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
1036 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
1115 | edit_box_key.home: |
1037 | edit_box_key.home: |
1116 | mov ebx,ed_pos |
1038 | mov ebx,ed_pos |
1117 | test ebx,ebx |
1039 | test ebx,ebx |
1118 | jz edit_box_key.sh_st_of |
1040 | jz edit_box_key.sh_st_of |
1119 | call edit_box_key.sh_first_sh |
1041 | call edit_box_key.sh_first_sh |
1120 | xor eax,eax |
1042 | xor eax,eax |
1121 | mov ed_pos,eax |
1043 | mov ed_pos,eax |
1122 | call edit_box_key.sh_home_end |
1044 | call edit_box_key.sh_home_end |
1123 | jmp edit_box.draw_cursor_text |
1045 | jmp edit_box.draw_cursor_text |
1124 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
1046 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
1125 | edit_box_key.end: |
1047 | edit_box_key.end: |
1126 | mov ebx,ed_pos |
1048 | mov ebx,ed_pos |
1127 | cmp ebx,dword ed_size |
1049 | cmp ebx,dword ed_size |
1128 | je edit_box_key.sh_st_of |
1050 | je edit_box_key.sh_st_of |
1129 | call edit_box_key.sh_first_sh |
1051 | call edit_box_key.sh_first_sh |
1130 | mov eax,ed_size |
1052 | mov eax,ed_size |
1131 | mov ed_pos,eax |
1053 | mov ed_pos,eax |
1132 | call edit_box_key.sh_home_end |
1054 | call edit_box_key.sh_home_end |
1133 | jmp edit_box.draw_cursor_text |
1055 | jmp edit_box.draw_cursor_text |
1134 | } |
1056 | } |
1135 | 1057 | ||
1136 | macro use_mouse_func |
1058 | macro use_mouse_func |
1137 | { |
1059 | { |
1138 | ;---------------------------------------------------------- |
1060 | ;---------------------------------------------------------- |
1139 | ;--- ¡à ¡®âª .mouse_wigwag |
1061 | ;--- ¡à ¡®âª .mouse_wigwag |
1140 | ;---------------------------------------------------------- |
1062 | ;---------------------------------------------------------- |
1141 | edit_box_mouse.mouse_wigwag: |
1063 | edit_box_mouse.mouse_wigwag: |
1142 | shr eax,16 |
1064 | shr eax,16 |
1143 | or word ed_flags,ed_shift_bac+ed_shift_on+ed_shift |
1065 | or word ed_flags,ed_shift_bac+ed_shift_on+ed_shift |
1144 | ;;;;;;;;;;;;;;;;;; |
1066 | ;;;;;;;;;;;;;;;;;; |
1145 | ;;¯à®æ¥¤ãà ®¡à ¡®âª¨ ¯®«®¦¥¨ï ¢ë¤¥«¥®£® ⥪áâ , ª®£¤ ¯à®¨á室¨â ¢ë室 § ¯à¥¤¥«ë editbox |
1067 | ;;¯à®æ¥¤ãà ®¡à ¡®âª¨ ¯®«®¦¥¨ï ¢ë¤¥«¥®£® ⥪áâ , ª®£¤ ¯à®¨á室¨â ¢ë室 § ¯à¥¤¥«ë editbox |
1146 | ;;;;;;;;;;;;;;;;;; |
1068 | ;;;;;;;;;;;;;;;;;; |
1147 | test ax,0x8000 |
1069 | test ax,0x8000 |
1148 | jnz edit_box_mouse.mleft |
1070 | jnz edit_box_mouse.mleft |
1149 | 1071 | ||
1150 | mov ebx,ed_left |
1072 | mov ebx,ed_left |
1151 | cmp eax,ebx |
1073 | cmp eax,ebx |
1152 | jb edit_box_mouse.mleft |
1074 | jb edit_box_mouse.mleft |
1153 | 1075 | ||
1154 | add ebx,ed_width |
1076 | add ebx,ed_width |
1155 | cmp eax,ebx |
1077 | cmp eax,ebx |
1156 | ja edit_box_mouse.mright |
1078 | ja edit_box_mouse.mright |
1157 | 1079 | ||
1158 | sub ebx,ed_width |
1080 | sub ebx,ed_width |
1159 | 1081 | ||
1160 | xor edx,edx |
1082 | xor edx,edx |
1161 | sub eax,ebx ; ¢ëç⨬ ¨§ ª®®à¤¨ â ¬ë誨 ¯® ®á¨ å ª®®à¤¨ âë ¤® editbox ¯® ®á¨ å |
1083 | sub eax,ebx ; ¢ëç⨬ ¨§ ª®®à¤¨ â ¬ë誨 ¯® ®á¨ å ª®®à¤¨ âë ¤® editbox ¯® ®á¨ å |
1162 | mov ebx,6 |
1084 | mov ebx,6 |
1163 | div ebx |
1085 | div ebx |
1164 | ;;;;;;;;;;;;;;;;;; |
1086 | ;;;;;;;;;;;;;;;;;; |
1165 | ;;¯à®æ¥¤ãà ®¡à ¡®âª¨ ¯®«®¦¥¨ï ¢ë¤¥«¥®£® ⥪áâ , ¢ ¯à¥¤¥« å ®¡« á⨠editbox |
1087 | ;;¯à®æ¥¤ãà ®¡à ¡®âª¨ ¯®«®¦¥¨ï ¢ë¤¥«¥®£® ⥪áâ , ¢ ¯à¥¤¥« å ®¡« á⨠editbox |
1166 | ;;;;;;;;;;;;;;;;;; |
1088 | ;;;;;;;;;;;;;;;;;; |
1167 | ;®«ã稫¨ ª®®à¤¨ âë ¢ eax ¬ë誨, â.¥. ªã¤ ® ¯¥à¥¬¥á⨫ áì |
1089 | ;®«ã稫¨ ª®®à¤¨ âë ¢ eax ¬ë誨, â.¥. ªã¤ ® ¯¥à¥¬¥á⨫ áì |
1168 | ;¨á®¢ ¨¥ § ªà è¥ëå ¯àאַ㣮«ì¨ª®¢ ¨ ®ç¨á⪠¨å |
1090 | ;¨á®¢ ¨¥ § ªà è¥ëå ¯àאַ㣮«ì¨ª®¢ ¨ ®ç¨á⪠¨å |
1169 | add eax,ed_offset ;¤®¡ ¢¨¬ ᬥ饨¥ |
1091 | add eax,ed_offset ;¤®¡ ¢¨¬ ᬥ饨¥ |
1170 | cmp eax,dword ed_size ;¥á«¨ ¢ë諨 § ¯à¥¤¥«ë, â® ¨ç¥£® ¥ ¤¥« âì |
1092 | cmp eax,dword ed_size ;¥á«¨ ¢ë諨 § ¯à¥¤¥«ë, â® ¨ç¥£® ¥ ¤¥« âì |
1171 | ja edit_box_mouse.mwigvag |
1093 | ja edit_box_mouse.mwigvag |
1172 | edit_box_mouse.mdraw: |
1094 | edit_box_mouse.mdraw: |
1173 | mov dword ed_pos,eax ;á®åà ¨¬ ®¢®¥ § 票¥ |
1095 | mov dword ed_pos,eax ;á®åà ¨¬ ®¢®¥ § 票¥ |
1174 | ;¨á®¢ ¨¥ § ªà è¥ëå ¯àאַ㣮«ì¨ª®¢ ¨ ®ç¨á⪠¨å |
1096 | ;¨á®¢ ¨¥ § ªà è¥ëå ¯àאַ㣮«ì¨ª®¢ ¨ ®ç¨á⪠¨å |
1175 | mov ecx,dword ed_shift_pos |
1097 | mov ecx,dword ed_shift_pos |
1176 | mov ebx,dword ed_shift_pos_old |
1098 | mov ebx,dword ed_shift_pos_old |
1177 | mov dword ed_shift_pos_old,eax ;¢¥á¥¬ ®¢®¥ § 票¥ áâ ன ¯®§¨æ¨¨ ªãàá®à |
1099 | mov dword ed_shift_pos_old,eax ;¢¥á¥¬ ®¢®¥ § 票¥ áâ ன ¯®§¨æ¨¨ ªãàá®à |
1178 | ;¯à®¢¥àª ¨ à¨á®¢ ¨¥ § ªà è¥ëå ®¡« á⥩ |
1100 | ;¯à®¢¥àª ¨ à¨á®¢ ¨¥ § ªà è¥ëå ®¡« á⥩ |
1179 | cmp ecx,ebx ;¢ëïá塞 ªã¤ ¡ë«® ¤¢¨¦¥¨¥ ®¤¨ è £ § ¤ |
1101 | cmp ecx,ebx ;¢ëïá塞 ªã¤ ¡ë«® ¤¢¨¦¥¨¥ ®¤¨ è £ § ¤ |
1180 | je edit_box_mouse.m1_shem ;¤¢¨¦¥¨ï ¥ ¡ë«® à ¥¥ |
1102 | je edit_box_mouse.m1_shem ;¤¢¨¦¥¨ï ¥ ¡ë«® à ¥¥ |
1181 | jb edit_box_mouse.msmaller ;¤¢¨¦¥¨¥ ¡ë«® -> |
1103 | jb edit_box_mouse.msmaller ;¤¢¨¦¥¨¥ ¡ë«® -> |
1182 | cmp ebx,eax ;¤¢¨¦¥¨¥ ¡ë«® ¤® í⮣® <- ¨ âãâ ¬ë ¯à®¢¥à塞 ᥩç á ªã¤ ¤¢¨¦¥¨¥ ¯à®¨á室¨â |
1104 | cmp ebx,eax ;¤¢¨¦¥¨¥ ¡ë«® ¤® í⮣® <- ¨ âãâ ¬ë ¯à®¢¥à塞 ᥩç á ªã¤ ¤¢¨¦¥¨¥ ¯à®¨á室¨â |
1183 | ja edit_box_mouse.m1_shem ;¥á«¨ ¡ë«® ¤¢¨¦¥¨¥ <- ⮠㦮 § ªà á¨âì ®¡« áâì |
1105 | ja edit_box_mouse.m1_shem ;¥á«¨ ¡ë«® ¤¢¨¦¥¨¥ <- ⮠㦮 § ªà á¨âì ®¡« áâì |
1184 | je edit_box_mouse.mwigvag ;¥á«¨ ¨§¬¥¥¨ï ¥ ¡ë«®, â® ¨ç¥£® ¥ ¤¥« âì |
1106 | je edit_box_mouse.mwigvag ;¥á«¨ ¨§¬¥¥¨ï ¥ ¡ë«®, â® ¨ç¥£® ¥ ¤¥« âì |
1185 | mov ebp,ed_color ;âãâ 㦮 ®ç¨áâ¨âì ®¡« áâì c ed_pos ed_shift_pos_old |
1107 | mov ebp,ed_color ;âãâ 㦮 ®ç¨áâ¨âì ®¡« áâì c ed_pos ed_shift_pos_old |
1186 | ;¢å®¤ë¥ ¯ à ¬¥âàë ebp=color ebx=ed_shift_pos |
1108 | ;¢å®¤ë¥ ¯ à ¬¥âàë ebp=color ebx=ed_shift_pos |
1187 | call edit_box_key.sh_cl_ |
1109 | call edit_box_key.sh_cl_ |
1188 | jmp edit_box_mouse.mwigvag |
1110 | jmp edit_box_mouse.mwigvag |
1189 | edit_box_mouse.msmaller: |
1111 | edit_box_mouse.msmaller: |
1190 | cmp ebx,eax |
1112 | cmp ebx,eax |
1191 | jb edit_box_mouse.m1_shem |
1113 | jb edit_box_mouse.m1_shem |
1192 | mov ebp,ed_color |
1114 | mov ebp,ed_color |
1193 | ;¢å®¤ë¥ ¯ à ¬¥âàë ebp=color ebx=ed_shift_pos |
1115 | ;¢å®¤ë¥ ¯ à ¬¥âàë ebp=color ebx=ed_shift_pos |
1194 | call edit_box_key.sh_cl_ |
1116 | call edit_box_key.sh_cl_ |
1195 | jmp edit_box_mouse.mwigvag |
1117 | jmp edit_box_mouse.mwigvag |
1196 | ;alike = |
1118 | ;alike = |
1197 | edit_box_mouse.m1_shem: |
1119 | edit_box_mouse.m1_shem: |
1198 | mov ebp,shift_color |
1120 | mov ebp,shift_color |
1199 | ;¢å®¤ë¥ ¯ à ¬¥âàë ebp=color ebx=ed_shift_pos |
1121 | ;¢å®¤ë¥ ¯ à ¬¥âàë ebp=color ebx=ed_shift_pos |
1200 | mov ebx,ecx |
1122 | mov ebx,ecx |
1201 | call edit_box_key.sh_cl_ |
1123 | call edit_box_key.sh_cl_ |
1202 | jmp edit_box_mouse.mwigvag |
1124 | jmp edit_box_mouse.mwigvag |
1203 | edit_box_mouse.mwigvag: |
1125 | edit_box_mouse.mwigvag: |
1204 | and word ed_flags,ed_shift_mcl |
1126 | and word ed_flags,ed_shift_mcl |
1205 | jmp edit_box.draw_cursor_text |
1127 | jmp edit_box.draw_cursor_text |
1206 | ; popa |
1128 | ; popa |
1207 | ; ret |
1129 | ; ret |
1208 | edit_box_mouse.mleft: |
1130 | edit_box_mouse.mleft: |
1209 | mov eax,ed_pos |
1131 | mov eax,ed_pos |
1210 | cmp eax,0 |
1132 | cmp eax,0 |
1211 | jbe edit_box_mouse.mwigvag |
1133 | jbe edit_box_mouse.mwigvag |
1212 | dec eax |
1134 | dec eax |
1213 | call edit_box.check_offset |
1135 | call edit_box.check_offset |
1214 | push eax |
1136 | push eax |
1215 | mov ebx,ed_shift_pos |
1137 | mov ebx,ed_shift_pos |
1216 | mov ebp,shift_color |
1138 | mov ebp,shift_color |
1217 | call edit_box_key.sh_cl_ |
1139 | call edit_box_key.sh_cl_ |
1218 | pop eax |
1140 | pop eax |
1219 | jmp edit_box_mouse.mdraw |
1141 | jmp edit_box_mouse.mdraw |
1220 | edit_box_mouse.mright: |
1142 | edit_box_mouse.mright: |
1221 | mov eax,ed_pos |
1143 | mov eax,ed_pos |
1222 | mov ebx,ed_size |
1144 | mov ebx,ed_size |
1223 | cmp eax,ebx |
1145 | cmp eax,ebx |
1224 | jae edit_box_mouse.mwigvag |
1146 | jae edit_box_mouse.mwigvag |
1225 | inc eax |
1147 | inc eax |
1226 | call edit_box.check_offset |
1148 | call edit_box.check_offset |
1227 | mov ebx,ed_shift_pos |
1149 | mov ebx,ed_shift_pos |
1228 | mov ebp,shift_color |
1150 | mov ebp,shift_color |
1229 | push eax |
1151 | push eax |
1230 | call edit_box_key.sh_cl_ |
1152 | call edit_box_key.sh_cl_ |
1231 | pop eax |
1153 | pop eax |
1232 | jmp edit_box_mouse.mdraw |
1154 | jmp edit_box_mouse.mdraw |
1233 | } |
1155 | } |
1234 | 1156 | ||
1235 | macro use_work_mouse |
1157 | macro use_work_mouse |
1236 | ;---------------------------------------------------------- |
1158 | ;---------------------------------------------------------- |
1237 | ;--- ¥ 㤥ন¢ ¥¬ «¨ ¬ë ª« ¢¨èã ¬ë誨, ¯¥à¥¬¥é ï ªãàá®à, ¢® ¢á¥ à §ë¥ áâ®à®ë? |
1159 | ;--- ¥ 㤥ন¢ ¥¬ «¨ ¬ë ª« ¢¨èã ¬ë誨, ¯¥à¥¬¥é ï ªãàá®à, ¢® ¢á¥ à §ë¥ áâ®à®ë? |
1238 | ;---------------------------------------------------------- |
1160 | ;---------------------------------------------------------- |
1239 | { |
1161 | { |
1240 | test word ed_flags,ed_mouse_on |
1162 | test word ed_flags,ed_mouse_on |
1241 | jne edit_box_mouse.mouse_wigwag |
1163 | jne edit_box_mouse.mouse_wigwag |
1242 | ;---------------------------------------------------------- |
1164 | ;---------------------------------------------------------- |
1243 | ;--- ¯à®¢¥à塞, ¯®¯ ¤ ¥â «¨ ªãàá®à ¢ edit box ------------- |
1165 | ;--- ¯à®¢¥à塞, ¯®¯ ¤ ¥â «¨ ªãàá®à ¢ edit box ------------- |
1244 | ;---------------------------------------------------------- |
1166 | ;---------------------------------------------------------- |
1245 | mov ebx,ed_top |
1167 | mov ebx,ed_top |
1246 | cmp ax,bx |
1168 | cmp ax,bx |
1247 | jl edit_box_mouse._blur;.mouse_end_no_focus |
1169 | jl edit_box_mouse._blur;.mouse_end_no_focus |
1248 | 1170 | ||
1249 | add ebx,ed_height |
1171 | add ebx,ed_height |
1250 | cmp ax,bx |
1172 | cmp ax,bx |
1251 | jg edit_box_mouse._blur;.mouse_end_no_focus |
1173 | jg edit_box_mouse._blur;.mouse_end_no_focus |
1252 | 1174 | ||
1253 | shr eax,16 |
1175 | shr eax,16 |
1254 | 1176 | ||
1255 | mov ebx,ed_left |
1177 | mov ebx,ed_left |
1256 | cmp ax,bx |
1178 | cmp ax,bx |
1257 | jl edit_box_mouse._blur;.mouse_end_no_focus |
1179 | jl edit_box_mouse._blur;.mouse_end_no_focus |
1258 | 1180 | ||
1259 | add ebx,ed_width |
1181 | add ebx,ed_width |
1260 | 1182 | ||
1261 | cmp ax,bx |
1183 | cmp ax,bx |
1262 | jg edit_box_mouse._blur;.mouse_end_no_focus |
1184 | jg edit_box_mouse._blur;.mouse_end_no_focus |
1263 | 1185 | ||
1264 | ;--- ¨§¬¥ï¥¬ ¯®§¨æ¨î ªãàá®à --- |
1186 | ;--- ¨§¬¥ï¥¬ ¯®§¨æ¨î ªãàá®à --- |
1265 | push eax |
1187 | push eax |
1266 | mov ebp,ed_color |
1188 | mov ebp,ed_color |
1267 | call edit_box.clear_cursor |
1189 | call edit_box.clear_cursor |
1268 | pop eax |
1190 | pop eax |
1269 | edit_box_mouse._mvpos: |
1191 | edit_box_mouse._mvpos: |
1270 | xor edx,edx |
1192 | xor edx,edx |
1271 | sub eax,ed_left |
1193 | sub eax,ed_left |
1272 | 1194 | ||
1273 | mov ebx,6 |
1195 | mov ebx,6 |
1274 | div bx |
1196 | div bx |
1275 | add eax,ed_offset |
1197 | add eax,ed_offset |
1276 | cmp eax,ed_size |
1198 | cmp eax,ed_size |
1277 | jna edit_box_mouse._mshift |
1199 | jna edit_box_mouse._mshift |
1278 | mov eax,ed_size |
1200 | mov eax,ed_size |
1279 | 1201 | ||
1280 | edit_box_mouse._mshift: |
1202 | edit_box_mouse._mshift: |
1281 | ;;;;;;; |
1203 | ;;;;;;; |
1282 | ;;¥ªæ¨ï ®¡à ¡®âª¨ shift ¨ ¢ë¤¥«¥¨ï ¯® shift |
1204 | ;;¥ªæ¨ï ®¡à ¡®âª¨ shift ¨ ¢ë¤¥«¥¨ï ¯® shift |
1283 | ;;;;;;; |
1205 | ;;;;;;; |
1284 | test word ed_flags,ed_shift_bac |
1206 | test word ed_flags,ed_shift_bac |
1285 | je @f |
1207 | je @f |
1286 | mov ebp,dword ed_color |
1208 | mov ebp,dword ed_color |
1287 | mov ebx,dword ed_shift_pos |
1209 | mov ebx,dword ed_shift_pos |
1288 | push eax |
1210 | push eax |
1289 | call edit_box_key.sh_cl_ |
1211 | call edit_box_key.sh_cl_ |
1290 | and word ed_flags,ed_shift_bac_cl |
1212 | and word ed_flags,ed_shift_bac_cl |
1291 | pop eax |
1213 | pop eax |
1292 | @@: |
1214 | @@: |
1293 | test word ed_flags,ed_mouse_on |
1215 | test word ed_flags,ed_mouse_on |
1294 | jne @f |
1216 | jne @f |
1295 | 1217 | ||
1296 | mov dword ed_shift_pos,eax |
1218 | mov dword ed_shift_pos,eax |
1297 | or word ed_flags,ed_mouse_on |
1219 | or word ed_flags,ed_mouse_on |
1298 | mov dword ed_pos,eax |
1220 | mov dword ed_pos,eax |
1299 | 1221 | ||
1300 | ; mov dword [mouse_flag],edi ;ãáâ ®¢¨¬ ¨¤¥â¨ä¨ª â®à |
1222 | ; mov dword [mouse_flag],edi ;ãáâ ®¢¨¬ ¨¤¥â¨ä¨ª â®à |
1301 | 1223 | ||
1302 | mov ebx,dword ed_mouse_variable |
1224 | mov ebx,dword ed_mouse_variable |
1303 | push edi |
1225 | push edi |
1304 | pop dword [ebx] |
1226 | pop dword [ebx] |
1305 | 1227 | ||
1306 | 1228 | ||
1307 | 1229 | ||
1308 | 1230 | ||
1309 | bts word ed_flags,1 ;ãáâ ®¢ª 䮪ãá |
1231 | bts word ed_flags,1 ;ãáâ ®¢ª 䮪ãá |
1310 | jmp edit_box_mouse.m_sh |
1232 | jmp edit_box_mouse.m_sh |
1311 | @@: |
1233 | @@: |
1312 | cmp eax,dword ed_shift_pos ;¥á«¨ ¯®§¨æ¨¨ ¥ ¨§¬¥¨«¨áì |
1234 | cmp eax,dword ed_shift_pos ;¥á«¨ ¯®§¨æ¨¨ ¥ ¨§¬¥¨«¨áì |
1313 | je edit_box.editbox_exit |
1235 | je edit_box.editbox_exit |
1314 | mov ed_pos,eax |
1236 | mov ed_pos,eax |
1315 | mov ebp,dword shift_color |
1237 | mov ebp,dword shift_color |
1316 | mov ebx,dword ed_shift_pos |
1238 | mov ebx,dword ed_shift_pos |
1317 | call edit_box_key.sh_cl_ |
1239 | call edit_box_key.sh_cl_ |
1318 | or word ed_flags,ed_mous_adn_b ;ãáâ ®¢¨¬ ¡¨â çâ® ¬ë ¢ë¤¥«¨«¨ +shift_on + |
1240 | or word ed_flags,ed_mous_adn_b ;ãáâ ®¢¨¬ ¡¨â çâ® ¬ë ¢ë¤¥«¨«¨ +shift_on + |
1319 | edit_box_mouse.m_sh: |
1241 | edit_box_mouse.m_sh: |
1320 | call edit_box.draw_text |
1242 | call edit_box.draw_text |
1321 | call edit_box.draw_cursor |
1243 | call edit_box.draw_cursor |
1322 | ;---------------------------------------------------------- |
1244 | ;---------------------------------------------------------- |
1323 | ;--- ¯à®æ¥¤ãà ãáâ ®¢ª¨ 䮪ãá --------------------------- |
1245 | ;--- ¯à®æ¥¤ãà ãáâ ®¢ª¨ 䮪ãá --------------------------- |
1324 | ;---------------------------------------------------------- |
1246 | ;---------------------------------------------------------- |
1325 | jmp edit_box_mouse.drc |
1247 | jmp edit_box_mouse.drc |
1326 | edit_box_mouse._blur: |
1248 | edit_box_mouse._blur: |
1327 | test word ed_flags,ed_always_focus |
1249 | test word ed_flags,ed_always_focus |
1328 | jne edit_box.editbox_exit |
1250 | jne edit_box.editbox_exit |
1329 | btr word ed_flags,1 ; ¥á«¨ ¥ ¢ 䮪ãá¥, ¢ë室¨¬ |
1251 | btr word ed_flags,1 ; ¥á«¨ ¥ ¢ 䮪ãá¥, ¢ë室¨¬ |
1330 | jnc edit_box.editbox_exit |
1252 | jnc edit_box.editbox_exit |
1331 | 1253 | ||
1332 | mov ebp,ed_color |
1254 | mov ebp,ed_color |
1333 | call edit_box.clear_cursor |
1255 | call edit_box.clear_cursor |
1334 | edit_box_mouse.drc: call edit_box.draw_border |
1256 | edit_box_mouse.drc: call edit_box.draw_border |
1335 | jmp edit_box.editbox_exit |
1257 | jmp edit_box.editbox_exit |
1336 | } |
1258 | } |
1337 | 1259 | ||
1338 | 1260 | ||
1339 | ; ªà®á ¢ë室 |
1261 | ; ªà®á ¢ë室 |
1340 | macro edit_ex |
1262 | macro edit_ex |
1341 | { |
1263 | { |
1342 | popad |
1264 | popad |
1343 | ret |
1265 | ret |
1344 | } |
1266 | } |
1345 | macro debug |
1267 | macro debug |
1346 | { |
1268 | { |
1347 | ;----------- ®â« ¤ª |
1269 | ;----------- ®â« ¤ª |
1348 | pushad |
1270 | pushad |
1349 | ; mov dword [ed_buffer.2],0 |
1271 | ; mov dword [ed_buffer.2],0 |
1350 | ; mov eax,edi |
1272 | ; mov eax,edi |
1351 | mov eax,dword [ed_buffer.2] |
1273 | mov eax,dword [ed_buffer.2] |
1352 | mov edi,ed_buffer.3 |
1274 | mov edi,ed_buffer.3 |
1353 | call .str |
1275 | call .str |
1354 | ;à¨á®¢ ¨¥ ä® |
1276 | ;à¨á®¢ ¨¥ ä® |
1355 | mov eax,13 |
1277 | mov eax,13 |
1356 | mov ebx,178*65536+70 |
1278 | mov ebx,178*65536+70 |
1357 | mov ecx,28*65536+10 |
1279 | mov ecx,28*65536+10 |
1358 | xor edx,edx |
1280 | xor edx,edx |
1359 | int 0x40 |
1281 | int 0x40 |
1360 | ;¢ë¢®¤ § 票ï íªà |
1282 | ;¢ë¢®¤ § 票ï íªà |
1361 | mov eax,4 |
1283 | mov eax,4 |
1362 | mov ebx,180*65536+30 |
1284 | mov ebx,180*65536+30 |
1363 | mov ecx,0x10DDBBCC |
1285 | mov ecx,0x10DDBBCC |
1364 | mov edx,ed_buffer.3 |
1286 | mov edx,ed_buffer.3 |
1365 | mov esi,8 |
1287 | mov esi,8 |
1366 | int 0x40 |
1288 | int 0x40 |
1367 | popad |
1289 | popad |
1368 | ;----------- ®â« ¤ª |
1290 | ;----------- ®â« ¤ª |
1369 | } |
1291 | } |
1370 | macro debug_func |
1292 | macro debug_func |
1371 | { |
1293 | { |
1372 | .str: |
1294 | .str: |
1373 | mov ecx,0x0a ;§ ¤ ¥âáï á¨á⥬ áç¨á«¥¨ï ¨§¬¥ïîâáï ॣ¨áâàë ebx,eax,ecx,edx ¢å®¤ë¥ ¯ à ¬¥âàë eax - ç¨á«® |
1295 | mov ecx,0x0a ;§ ¤ ¥âáï á¨á⥬ áç¨á«¥¨ï ¨§¬¥ïîâáï ॣ¨áâàë ebx,eax,ecx,edx ¢å®¤ë¥ ¯ à ¬¥âàë eax - ç¨á«® |
1374 | ;¯à¥à¥¢®¤ ç¨á« ¢ ASCII áâப㠢§®¤ë¥ ¤ ë¥ ecx=á¨á⥬ áç¨á«¥ï edi ¤à¥á ªã¤ § ¯¨áë¢ âì, ¡ã¤¥¬ áâபã, ¯à¨ç¥¬ ª®¥æ ¯¥à¥¬¥®© |
1296 | ;¯à¥à¥¢®¤ ç¨á« ¢ ASCII áâப㠢§®¤ë¥ ¤ ë¥ ecx=á¨á⥬ áç¨á«¥ï edi ¤à¥á ªã¤ § ¯¨áë¢ âì, ¡ã¤¥¬ áâபã, ¯à¨ç¥¬ ª®¥æ ¯¥à¥¬¥®© |
1375 | cmp eax,ecx ;áà ¢¨âì ¥á«¨ ¢ eax ¬¥ìè¥ ç¥¬ ¢ ecx â® ¯¥à¥©â¨ @@-1 â.¥. pop eax |
1297 | cmp eax,ecx ;áà ¢¨âì ¥á«¨ ¢ eax ¬¥ìè¥ ç¥¬ ¢ ecx â® ¯¥à¥©â¨ @@-1 â.¥. pop eax |
1376 | jb @f |
1298 | jb @f |
1377 | xor edx,edx ;®ç¨áâ¨âì edx |
1299 | xor edx,edx ;®ç¨áâ¨âì edx |
1378 | div ecx ;à §¤¥«¨âì - ®áâ ⮪ ¢ edx |
1300 | div ecx ;à §¤¥«¨âì - ®áâ ⮪ ¢ edx |
1379 | push edx ;¯®«®¦¨âì ¢ á⥪ |
1301 | push edx ;¯®«®¦¨âì ¢ á⥪ |
1380 | ;dec edi ;ᬥ饨¥ ¥®¡å®¤¨¬®¥ ¤«ï § ¯¨á¨ á ª®æ áâப¨ |
1302 | ;dec edi ;ᬥ饨¥ ¥®¡å®¤¨¬®¥ ¤«ï § ¯¨á¨ á ª®æ áâப¨ |
1381 | call .str;¯¥à¥©â¨ á ¬ã ᥡï â.¥. ¢ë§¢ âì á ¬ã á¥¡ï ¨ â ª ¤® ⮣® ¬®¬¥â ¯®ª ¢ eax ¥ á⠥⠬¥ìè¥ ç¥¬ ¢ ecx |
1303 | call .str;¯¥à¥©â¨ á ¬ã ᥡï â.¥. ¢ë§¢ âì á ¬ã á¥¡ï ¨ â ª ¤® ⮣® ¬®¬¥â ¯®ª ¢ eax ¥ á⠥⠬¥ìè¥ ç¥¬ ¢ ecx |
1382 | pop eax |
1304 | pop eax |
1383 | @@: ;cmp al,10 ;¯à®¢¥à¨âì ¥ ¬¥ìè¥ «¨ § 票¥ ¢ al 祬 10 (¤«ï á¨á⥬ë áç¨á«¥ï 10 ¤ ï ª®¬ ¤ - «¨è ï)) |
1305 | @@: ;cmp al,10 ;¯à®¢¥à¨âì ¥ ¬¥ìè¥ «¨ § 票¥ ¢ al 祬 10 (¤«ï á¨á⥬ë áç¨á«¥ï 10 ¤ ï ª®¬ ¤ - «¨è ï)) |
1384 | ;sbb al,$69 ;- ç¥áâ® ¤ ï ¨áâàãªæ¨ï ¬¥ï § áâ ¢«ï¥â § ¤ã¬ âìáï â.¥. ï ¥ § î ª ª íâ® à ¡®â ¥â |
1306 | ;sbb al,$69 ;- ç¥áâ® ¤ ï ¨áâàãªæ¨ï ¬¥ï § áâ ¢«ï¥â § ¤ã¬ âìáï â.¥. ï ¥ § î ª ª íâ® à ¡®â ¥â |
1385 | ;das ;¯®á«¥ ¤ ®© ª®¬ ¤ë ª ª ¡ë ¯à®¨á室¨â 㬥ì襨¥ al 66h (¢ ª¨£¥ ¯¨á ® ¤à㣮¥) |
1307 | ;das ;¯®á«¥ ¤ ®© ª®¬ ¤ë ª ª ¡ë ¯à®¨á室¨â 㬥ì襨¥ al 66h (¢ ª¨£¥ ¯¨á ® ¤à㣮¥) |
1386 | or al,0x30 ;¤ ï ª®¬ ¤ ª®à®ç¥ 祬 ¤¢¥ ¢ëè¥ |
1308 | or al,0x30 ;¤ ï ª®¬ ¤ ª®à®ç¥ 祬 ¤¢¥ ¢ëè¥ |
1387 | stosb ;§ ¯¨á âì í«¥¬¥â ¨§ ॣ¨áâà al ¢ ï祪㠯 ¬ï⨠es:edi |
1309 | stosb ;§ ¯¨á âì í«¥¬¥â ¨§ ॣ¨áâà al ¢ ï祪㠯 ¬ï⨠es:edi |
1388 | 1310 | ||
1389 | ret ;¢¥àãâìáï ç¥ì ¨â¥à¥áë© å®¤ â.ª. ¯®ª ¢ á⥪¥ åà ¨âìáï ª®«-¢® ¢ë§®¢®¢ â® á⮫쪮 à § ¬ë ¨ ¡ã¤¥¬ ¢ë§ë¢ âìáï |
1311 | ret ;¢¥àãâìáï ç¥ì ¨â¥à¥áë© å®¤ â.ª. ¯®ª ¢ á⥪¥ åà ¨âìáï ª®«-¢® ¢ë§®¢®¢ â® á⮫쪮 à § ¬ë ¨ ¡ã¤¥¬ ¢ë§ë¢ âìáï |
1390 | } |
1312 | } |
1391 | 1313 | ||
1392 | ed_struc_size=76 |
1314 | ed_struc_size=76 |
1393 | struc edit_box width,left,top,color,shift_color,focus_border_color,\ |
1315 | struc edit_box width,left,top,color,shift_color,focus_border_color,\ |
1394 | blur_border_color,text_color,max,text,mouse_variable,flags,size,pos |
1316 | blur_border_color,text_color,max,text,mouse_variable,flags,size,pos |
1395 | { |
1317 | { |
1396 | .width dd width |
1318 | .width dd width |
1397 | .left dd left |
1319 | .left dd left |
1398 | .top dd top |
1320 | .top dd top |
1399 | .color dd color |
1321 | .color dd color |
1400 | .shift_color dd shift_color |
1322 | .shift_color dd shift_color |
1401 | .focus_border_color dd focus_border_color |
1323 | .focus_border_color dd focus_border_color |
1402 | .blur_border_color dd blur_border_color |
1324 | .blur_border_color dd blur_border_color |
1403 | .text_color dd text_color |
1325 | .text_color dd text_color |
1404 | .max dd max |
1326 | .max dd max |
1405 | .text dd text |
1327 | .text dd text |
1406 | .mouse_variable dd mouse_variable |
1328 | .mouse_variable dd mouse_variable |
1407 | .flags dd flags+0 |
1329 | .flags dd flags+0 |
1408 | .size dd size+0 |
1330 | .size dd size+0 |
1409 | .pos dd pos+0 |
1331 | .pos dd pos+0 |
1410 | .offset dd 0 |
1332 | .offset dd 0 |
1411 | .cl_curs_x dd 0 |
1333 | .cl_curs_x dd 0 |
1412 | .cl_curs_y dd 0 |
1334 | .cl_curs_y dd 0 |
1413 | .shift dd 0 |
1335 | .shift dd 0 |
1414 | .shift_old dd 0 |
1336 | .shift_old dd 0 |
1415 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
1337 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
1416 | ;Bit mask from editbox |
1338 | ;Bit mask from editbox |
1417 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
1339 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
1418 | ed_figure_only= 1000000000000000b ;®¤¨ ᨬ¢®«ë |
1340 | ed_figure_only= 1000000000000000b ;®¤¨ ᨬ¢®«ë |
1419 | ed_always_focus= 100000000000000b |
1341 | ed_always_focus= 100000000000000b |
1420 | ed_focus= 10b ;䮪ãá ¯à¨«®¦¥¨ï |
1342 | ed_focus= 10b ;䮪ãá ¯à¨«®¦¥¨ï |
1421 | ed_shift_on= 1000b ;¥á«¨ ¥ ãáâ ®¢«¥ -§ ç¨â ¢¯¥à¢ë¥ ¦ â shift,¥á«¨ ¡ë« ãáâ ®¢«¥, § ç¨â ¬ë 㦥 çâ® - â® ¤¥« «¨ 㤥ন¢ ï shift |
1343 | ed_shift_on= 1000b ;¥á«¨ ¥ ãáâ ®¢«¥ -§ ç¨â ¢¯¥à¢ë¥ ¦ â shift,¥á«¨ ¡ë« ãáâ ®¢«¥, § ç¨â ¬ë 㦥 çâ® - â® ¤¥« «¨ 㤥ন¢ ï shift |
1422 | ed_shift_on_off=1111111111110111b |
1344 | ed_shift_on_off=1111111111110111b |
1423 | ed_shift= 100b ;¢ª«îç ¥âáï ¯à¨ ¦ ⨨ shift â.¥. ¥á«¨ ¦¨¬ î |
1345 | ed_shift= 100b ;¢ª«îç ¥âáï ¯à¨ ¦ ⨨ shift â.¥. ¥á«¨ ¦¨¬ î |
1424 | ed_shift_off= 1111111111111011b |
1346 | ed_shift_off= 1111111111111011b |
1425 | ed_shift_bac= 10000b ;¡¨â ¤«ï ®ç¨á⪨ ¢ë¤¥«¥®£® shift â.¥. ¯à¨ ãáâ ®¢ª¥ £®¢®à¨â çâ® ¥áâì ¢ë¤¥«¥¨¥ |
1347 | ed_shift_bac= 10000b ;¡¨â ¤«ï ®ç¨á⪨ ¢ë¤¥«¥®£® shift â.¥. ¯à¨ ãáâ ®¢ª¥ £®¢®à¨â çâ® ¥áâì ¢ë¤¥«¥¨¥ |
1426 | ed_shift_bac_cl=1111111111101111b ;®ç¨á⪠¯à¨ 㤠«¥¨¨ ¢ë¤¥«¥¨ï |
1348 | ed_shift_bac_cl=1111111111101111b ;®ç¨á⪠¯à¨ 㤠«¥¨¨ ¢ë¤¥«¥¨ï |
1427 | ed_shift_cl= 1111111111100011b |
1349 | ed_shift_cl= 1111111111100011b |
1428 | ed_shift_mcl= 1111111111111011b |
1350 | ed_shift_mcl= 1111111111111011b |
1429 | ed_left_fl= 100000b |
1351 | ed_left_fl= 100000b |
1430 | ed_right_fl= 1111111111011111b |
1352 | ed_right_fl= 1111111111011111b |
1431 | ed_offset_fl= 1000000b |
1353 | ed_offset_fl= 1000000b |
1432 | ed_offset_cl= 1111111110111111b |
1354 | ed_offset_cl= 1111111110111111b |
1433 | ed_insert= 10000000b |
1355 | ed_insert= 10000000b |
1434 | ed_insert_cl= 1111111101111111b |
1356 | ed_insert_cl= 1111111101111111b |
1435 | ed_mouse_on = 100000000b |
1357 | ed_mouse_on = 100000000b |
1436 | ed_mous_adn_b= 100011000b |
1358 | ed_mous_adn_b= 100011000b |
1437 | ed_mouse_on_off=1111111011111111b |
1359 | ed_mouse_on_off=1111111011111111b |
1438 | ed_height=14 ; ¢ëá®â |
1360 | ed_height=14 ; ¢ëá®â |
1439 | 1361 | ||
1440 | }->-> |
1362 | }->-> |