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