Subversion Repositories Kolibri OS

Rev

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