Rev 267 | Rev 297 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 267 | Rev 280 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | func check_mouse_in_edit_area |
1 | func check_mouse_in_edit_area |
2 | mcall 37,1 |
2 | mcall 37,1 |
3 | mov ebx,eax |
3 | mov ebx,eax |
4 | and ebx,0x0000FFFF |
4 | and ebx,0x0000FFFF |
5 | shr eax,16 |
5 | shr eax,16 |
6 | mov ecx,[top_ofs] |
6 | mov ecx,[cur_editor.Bounds.Top] ; ecx,[top_ofs] |
7 | inc ecx |
7 | inc ecx |
8 | pushd [left_ofs] ATOPH [p_info.client_box.width] ATOPH |
8 | pushd [cur_editor.Bounds.Left] ecx [cur_editor.Bounds.Right] ecx ; [left_ofs] ATOPH [p_info.client_box.width] ATOPH |
9 | popd [__rc+0xC] [__rc+0x8] [__rc+0x4] [__rc+0x0] |
9 | popd [__rc+0xC] [__rc+0x8] [__rc+0x4] [__rc+0x0] |
10 | sub [__rc+0x8],SCRLW+6 |
10 | sub [__rc+0x8],SCRLW+6 |
- | 11 | mov ecx,[cur_editor.Gutter.Width] |
|
- | 12 | add [__rc+0x0],ecx |
|
11 | imul ecx,[lines.scr],LINEH |
13 | imul ecx,[lines.scr],LINEH |
12 | dec ecx |
14 | dec ecx |
13 | add [__rc+0xC],ecx |
15 | add [__rc+0xC],ecx |
14 | mov ecx,__rc |
16 | mov ecx,__rc |
15 | call pt_in_rect |
17 | call pt_in_rect |
Line 146... | Line 148... | ||
146 | mov [body_capt],1 |
148 | mov [body_capt],1 |
Line 147... | Line 149... | ||
147 | 149 | ||
Line 148... | Line 150... | ||
148 | call clear_selection |
150 | call clear_selection |
- | 151 | ||
- | 152 | .check_body.2: |
|
149 | 153 | sub eax,[cur_editor.Bounds.Left] ; eax,[left_ofs] |
|
150 | .check_body.2: |
154 | sub ebx,[cur_editor.Bounds.Top] ; ebx,[top_ofs] |
151 | sub eax,[left_ofs] |
155 | sub eax,[cur_editor.Gutter.Width] |
152 | sub ebx,[top_ofs] |
156 | sub eax,LCHGW |
153 | dec ebx |
157 | sub ebx,2 |
154 | ; sub ebx,[__rc+0x4] |
158 | ; sub ebx,[__rc+0x4] |
155 | push eax |
159 | push eax |
156 | mov eax,ebx |
160 | mov eax,ebx |
Line 194... | Line 198... | ||
194 | call draw_file.ex |
198 | call draw_file.ex |
195 | .check_ldown: |
199 | .check_ldown: |
196 | jmp still |
200 | jmp still |
Line 197... | Line 201... | ||
197 | 201 | ||
198 | .check_vscroll: |
202 | .check_vscroll: |
- | 203 | ;mov ecx,[p_info.client_box.width] |
|
199 | mov ecx,[p_info.client_box.width] |
204 | mov ecx,[cur_editor.Bounds.Right] |
200 | sub ecx,SCRLW-2 |
205 | sub ecx,SCRLW-1;2 |
201 | pushd ecx [top_ofs] ecx [bot_ofs] |
206 | pushd ecx [cur_editor.Bounds.Top] ecx [cur_editor.Bounds.Bottom] ;ecx [top_ofs] ecx [bot_ofs] |
202 | popd [__rc+0xC] [__rc+0x8] [__rc+0x4] [__rc+0x0] |
207 | popd [__rc+0xC] [__rc+0x8] [__rc+0x4] [__rc+0x0] |
203 | add [__rc+0x8],SCRLW-1;!!!!!!!!!!!!!!-2 |
208 | add [__rc+0x8],SCRLW-2;!!!!!!!!!!!!!!-2 |
204 | add [__rc+0x4],SCRLW;!!!!!!!!!!!!!!+1 |
209 | add [__rc+0x4],SCRLW-1;!!!!!!!!!!!!!!+1 |
205 | sub [__rc+0xC],SCRLW*2+3 |
210 | sub [__rc+0xC],SCRLW*2+1;3 |
206 | mov ecx,__rc |
211 | mov ecx,__rc |
207 | call pt_in_rect |
212 | call pt_in_rect |
Line 208... | Line 213... | ||
208 | jnc .check_hscroll |
213 | jnc .check_hscroll |
209 | 214 | ||
210 | .check_vscroll.2: |
215 | .check_vscroll.2: |
211 | sub ebx,[top_ofs] |
216 | sub ebx,[cur_editor.Bounds.Top] ; ebx,[top_ofs] |
212 | sub ebx,SCRLW;!!!!!!!!!!!!!!+1 |
217 | sub ebx,SCRLW;!!!!!!!!!!!!!!+1 |
213 | ; sub ebx,[__rc+0x4] |
218 | ; sub ebx,[__rc+0x4] |
214 | cmp [vscrl_capt],0 |
219 | cmp [vscrl_capt],0 |
Line 232... | Line 237... | ||
232 | .vcaptured: |
237 | .vcaptured: |
233 | sub ebx,[vscrl_capt] |
238 | sub ebx,[vscrl_capt] |
234 | jns @f |
239 | jns @f |
235 | xor ebx,ebx |
240 | xor ebx,ebx |
236 | @@: mov [mouse_captured],1 |
241 | @@: mov [mouse_captured],1 |
237 | mov eax,[bot_ofs] |
242 | mov eax,[cur_editor.Bounds.Bottom] ; eax,[bot_ofs] |
238 | sub eax,[top_ofs] |
243 | sub eax,[cur_editor.Bounds.Top] ; eax,[top_ofs] |
239 | sub eax,[cur_editor.VScroll.Size] ;! eax,[vscrl_size] |
244 | sub eax,[cur_editor.VScroll.Size] ;! eax,[vscrl_size] |
240 | sub eax,SCRLW*3-2 |
245 | sub eax,SCRLW*3;-2 |
241 | cmp eax,ebx |
246 | cmp eax,ebx |
242 | jge @f |
247 | jge @f |
243 | mov ebx,eax |
248 | mov ebx,eax |
244 | @@: |
249 | @@: |
245 | mov [cur_editor.VScroll.Top],ebx ;! [vscrl_top],ebx |
250 | mov [cur_editor.VScroll.Top],ebx ;! [vscrl_top],ebx |
246 | mov eax,[cur_editor.Lines.Count] ;! eax,[lines] |
251 | mov eax,[cur_editor.Lines.Count] ;! eax,[lines] |
247 | sub eax,[lines.scr] |
252 | sub eax,[lines.scr] |
248 | imul ebx |
253 | imul ebx |
249 | mov ebx,[bot_ofs] |
254 | mov ebx,[cur_editor.Bounds.Bottom] ; ebx,[bot_ofs] |
250 | sub ebx,[top_ofs] |
255 | sub ebx,[cur_editor.Bounds.Top] ; ebx,[top_ofs] |
251 | sub ebx,SCRLW*3-2 ;** |
256 | sub ebx,SCRLW*3;-2 ;** |
252 | sub ebx,[cur_editor.VScroll.Size] ;! ebx,[vscrl_size] |
257 | sub ebx,[cur_editor.VScroll.Size] ;! ebx,[vscrl_size] |
253 | idiv ebx |
258 | idiv ebx |
254 | cmp eax,[cur_editor.TopLeft.Y] ;! eax,[top_line] |
259 | cmp eax,[cur_editor.TopLeft.Y] ;! eax,[top_line] |
255 | je still.skip_write |
260 | je still.skip_write |
256 | mov [cur_editor.TopLeft.Y],eax ;! [top_line],eax |
261 | mov [cur_editor.TopLeft.Y],eax ;! [top_line],eax |
257 | call check_bottom_right |
262 | call check_bottom_right |
258 | call draw_file |
263 | call draw_file |
259 | jmp still.skip_write |
264 | jmp still.skip_write |
Line 260... | Line 265... | ||
260 | 265 | ||
261 | .check_hscroll: |
266 | .check_hscroll: |
262 | pushd (5+SCRLW+1) [bot_ofs] [p_info.box.width] [bot_ofs] |
267 | pushd [cur_editor.Bounds.Left] [cur_editor.Bounds.Bottom] [cur_editor.Bounds.Right] [cur_editor.Bounds.Bottom] ; (5+SCRLW+1) [bot_ofs] [p_info.box.width] [bot_ofs] |
263 | popd [__rc+0xC] [__rc+0x8] [__rc+0x4] [__rc+0x0] |
268 | popd [__rc+0xC] [__rc+0x8] [__rc+0x4] [__rc+0x0] |
264 | add [__rc+0x8],-SCRLW*2-10-1 |
269 | add [__rc+0x8],-SCRLW*2-1 |
265 | add [__rc+0x4],-SCRLW |
270 | add [__rc+0x4],-SCRLW+1 |
- | 271 | add [__rc+0xC],-1 |
|
266 | add [__rc+0xC],-2 |
272 | add [__rc+0x0],SCRLW+1 |
267 | mov ecx,__rc |
273 | mov ecx,__rc |
268 | call pt_in_rect |
274 | call pt_in_rect |
Line 269... | Line 275... | ||
269 | jnc .check_main_menu |
275 | jnc .check_main_menu |
270 | 276 | ||
- | 277 | .check_hscroll.2: |
|
271 | .check_hscroll.2: |
278 | mov ebx,eax |
- | 279 | ;sub ebx,(5+SCRLW+1) |
|
272 | mov ebx,eax |
280 | sub ebx,SCRLW+1 |
273 | sub ebx,(5+SCRLW+1) |
281 | sub ebx,[cur_editor.Bounds.Left] |
274 | ; sub ebx,[__rc+0x0] |
282 | ; sub ebx,[__rc+0x0] |
275 | cmp [hscrl_capt],0 |
283 | cmp [hscrl_capt],0 |
276 | jge .hcaptured |
284 | jge .hcaptured |
Line 293... | Line 301... | ||
293 | .hcaptured: |
301 | .hcaptured: |
294 | sub ebx,[hscrl_capt] |
302 | sub ebx,[hscrl_capt] |
295 | jns @f |
303 | jns @f |
296 | xor ebx,ebx |
304 | xor ebx,ebx |
297 | @@: mov [mouse_captured],1 |
305 | @@: mov [mouse_captured],1 |
298 | mov eax,[p_info.box.width] |
306 | mov eax,[cur_editor.Bounds.Right] ; eax,[p_info.box.width] |
299 | sub eax,[cur_editor.HScroll.Size] ;! eax,[hscrl_size] |
307 | sub eax,[cur_editor.HScroll.Size] ;! eax,[hscrl_size] |
300 | sub eax,SCRLW*3+10+1 |
308 | sub eax,SCRLW*3+1 ; eax,SCRLW*3+10+1 |
301 | cmp eax,ebx |
309 | cmp eax,ebx |
302 | jge @f |
310 | jge @f |
303 | mov ebx,eax |
311 | mov ebx,eax |
304 | @@: |
312 | @@: |
305 | mov [cur_editor.HScroll.Top],ebx ;! [hscrl_top],ebx |
313 | mov [cur_editor.HScroll.Top],ebx ;! [hscrl_top],ebx |
306 | mov eax,[cur_editor.Columns.Count] ;! eax,[columns] |
314 | mov eax,[cur_editor.Columns.Count] ;! eax,[columns] |
307 | sub eax,[columns.scr] |
315 | sub eax,[columns.scr] |
308 | imul ebx |
316 | imul ebx |
309 | mov ebx,[p_info.box.width] |
317 | mov ebx,[cur_editor.Bounds.Right] ; ebx,[p_info.box.width] |
310 | sub ebx,SCRLW*3+10+1 ;** |
318 | sub ebx,SCRLW*3+1 ; ebx,SCRLW*3+10+1 ;** |
311 | sub ebx,[cur_editor.HScroll.Size] ;! ebx,[hscrl_size] |
319 | sub ebx,[cur_editor.HScroll.Size] ;! ebx,[hscrl_size] |
312 | idiv ebx |
320 | idiv ebx |
313 | cmp eax,[cur_editor.TopLeft.X] ;! eax,[left_col] |
321 | cmp eax,[cur_editor.TopLeft.X] ;! eax,[left_col] |
314 | je still.skip_write |
322 | je still.skip_write |
315 | mov [cur_editor.TopLeft.X],eax ;! [left_col],eax |
323 | mov [cur_editor.TopLeft.X],eax ;! [left_col],eax |