Subversion Repositories Kolibri OS

Rev

Rev 258 | Rev 267 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 258 Rev 259
Line 121... Line 121...
121
    @@: cmp	[mouse_captured],0
121
    @@: cmp	[mouse_captured],0
122
	jne	still.skip_write
122
	jne	still.skip_write
123
	call	check_mouse_in_edit_area
123
	call	check_mouse_in_edit_area
124
	jnc	still.skip_write
124
	jnc	still.skip_write
125
	mcall	37,0
125
	mcall	37,0
126
	mov	[popup_edit+POPUP.pos],eax
126
	mov	[mm.Edit+POPUP.pos],eax
127
    @@: mcall	37,2
127
    @@: mcall	37,2
128
	cmp	eax,ebx
128
	cmp	eax,ebx
129
	jnz	@f
129
	jnz	@f
130
	mcall	5,1
130
	mcall	5,1
131
	jmp	@b
131
	jmp	@b
132
    @@: and	[mst],0xFD
132
    @@: and	[mst],0xFD
133
	call	onshow.edit
133
	call	onshow.edit
134
	mov	dword[POPUP_STACK],popup_edit
134
	mov	dword[POPUP_STACK],mm.Edit
135
	mcall	51,1,popup_thread_start,POPUP_STACK
135
	mcall	51,1,popup_thread_start,POPUP_STACK
136
	mov	[h_popup],eax
136
	mov	[h_popup],eax
137
	jmp	still.skip_write
137
	jmp	still.skip_write
Line 138... Line 138...
138
 
138
 
Line 155... Line 155...
155
	push	eax
155
	push	eax
156
	mov	eax,ebx
156
	mov	eax,ebx
157
	cdq;xor     edx,edx
157
	cdq;xor     edx,edx
158
	mov	ecx,LINEH
158
	mov	ecx,LINEH
159
	idiv	ecx
159
	idiv	ecx
160
    @@: add	eax,[top_line]
160
    @@: add	eax,[cur_tab.Editor.TopLeft.Y] ;! eax,[top_line]
161
	mov	ebx,eax
161
	mov	ebx,eax
162
	pop	eax
162
	pop	eax
163
	cdq;xor     edx,edx
163
	cdq;xor     edx,edx
164
	mov	ecx,6
164
	mov	ecx,6
165
	idiv	ecx
165
	idiv	ecx
166
    @@: add	eax,[left_col]
166
    @@: add	eax,[cur_tab.Editor.TopLeft.X] ;! eax,[left_col]
Line 167... Line 167...
167
 
167
 
168
	cmp	eax,[columns]
168
	cmp	eax,[cur_tab.Editor.Columns] ;! eax,[columns]
169
	jl	@f
169
	jl	@f
170
	mov	eax,[columns]
170
	mov	eax,[cur_tab.Editor.Columns] ;! eax,[columns]
171
    @@: cmp	ebx,[lines]
171
    @@: cmp	ebx,[cur_tab.Editor.Lines] ;! ebx,[lines]
172
	jl	@f
172
	jl	@f
173
	mov	ebx,[lines]
173
	mov	ebx,[cur_tab.Editor.Lines] ;! ebx,[lines]
174
	dec	ebx
174
	dec	ebx
175
    @@:
175
    @@:
176
	cmp	[pos.x],eax
176
	cmp	[cur_tab.Editor.Caret.X],eax ;! [pos.x],eax
177
	jne	.change_cur_pos
177
	jne	.change_cur_pos
178
	cmp	[pos.y],ebx
178
	cmp	[cur_tab.Editor.Caret.Y],ebx ;! [pos.y],ebx
Line 179... Line 179...
179
	je	still.skip_write
179
	je	still.skip_write
180
 
180
 
181
  .change_cur_pos:
181
  .change_cur_pos:
182
	mov	[pos.x],eax
182
	mov	[cur_tab.Editor.Caret.X],eax ;! [pos.x],eax
183
	mov	eax,[pos.y]
183
	mov	eax,[cur_tab.Editor.Caret.Y] ;! eax,[pos.y]
184
	mov	[pos.y],ebx
184
	mov	[cur_tab.Editor.Caret.Y],ebx ;! [pos.y],ebx
185
	call	check_cur_vis_inv
185
	call	check_cur_vis_inv
186
	jc	.check_ldown
186
	jc	.check_ldown
187
;        cmp     eax,ebx
187
;        cmp     eax,ebx
Line 211... Line 211...
211
	sub	ebx,[top_ofs]
211
	sub	ebx,[top_ofs]
212
	sub	ebx,SCRLW;!!!!!!!!!!!!!!+1
212
	sub	ebx,SCRLW;!!!!!!!!!!!!!!+1
213
;       sub     ebx,[__rc+0x4]
213
;       sub     ebx,[__rc+0x4]
214
	cmp	[vscrl_capt],0
214
	cmp	[vscrl_capt],0
215
	jge	.vcaptured
215
	jge	.vcaptured
216
	mov	eax,[vscrl_top]
216
	mov	eax,[cur_tab.Editor.VScroll.Top] ;! eax,[vscrl_top]
217
	cmp	ebx,eax
217
	cmp	ebx,eax
218
	jb	.center_vcapture
218
	jb	.center_vcapture
219
	add	eax,[vscrl_size]
219
	add	eax,[cur_tab.Editor.VScroll.Size] ;! eax,[vscrl_size]
220
	cmp	ebx,eax
220
	cmp	ebx,eax
221
	jae	.center_vcapture
221
	jae	.center_vcapture
222
	mov	eax,ebx
222
	mov	eax,ebx
223
	sub	eax,[vscrl_top]
223
	sub	eax,[cur_tab.Editor.VScroll.Top] ;! eax,[vscrl_top]
224
	dec	eax
224
	dec	eax
225
	mov	[vscrl_capt],eax
225
	mov	[vscrl_capt],eax
226
	dec	ebx
226
	dec	ebx
227
	jmp	.vcaptured
227
	jmp	.vcaptured
228
  .center_vcapture:
228
  .center_vcapture:
229
	mov	eax,[vscrl_size]
229
	mov	eax,[cur_tab.Editor.VScroll.Size] ;! eax,[vscrl_size]
230
	shr	eax,1
230
	shr	eax,1
231
	mov	[vscrl_capt],eax
231
	mov	[vscrl_capt],eax
232
  .vcaptured:
232
  .vcaptured:
233
	sub	ebx,[vscrl_capt]
233
	sub	ebx,[vscrl_capt]
234
	jns	@f
234
	jns	@f
235
	xor	ebx,ebx
235
	xor	ebx,ebx
236
    @@: mov	[mouse_captured],1
236
    @@: mov	[mouse_captured],1
237
	mov	eax,[bot_ofs]
237
	mov	eax,[bot_ofs]
238
	sub	eax,[top_ofs]
238
	sub	eax,[top_ofs]
239
	sub	eax,[vscrl_size]
239
	sub	eax,[cur_tab.Editor.VScroll.Size] ;! eax,[vscrl_size]
240
	sub	eax,SCRLW*3-2
240
	sub	eax,SCRLW*3-2
241
	cmp	eax,ebx
241
	cmp	eax,ebx
242
	jge	@f
242
	jge	@f
243
	mov	ebx,eax
243
	mov	ebx,eax
244
    @@:
244
    @@:
245
	mov	[vscrl_top],ebx
245
	mov	[cur_tab.Editor.VScroll.Top],ebx ;! [vscrl_top],ebx
246
	mov	eax,[lines]
246
	mov	eax,[cur_tab.Editor.Lines] ;! eax,[lines]
247
	sub	eax,[lines.scr]
247
	sub	eax,[lines.scr]
248
	imul	ebx
248
	imul	ebx
249
	mov	ebx,[bot_ofs]
249
	mov	ebx,[bot_ofs]
250
	sub	ebx,[top_ofs]
250
	sub	ebx,[top_ofs]
251
	sub	ebx,SCRLW*3-2	      ;**
251
	sub	ebx,SCRLW*3-2	      ;**
252
	sub	ebx,[vscrl_size]
252
	sub	ebx,[cur_tab.Editor.VScroll.Size] ;! ebx,[vscrl_size]
253
	idiv	ebx
253
	idiv	ebx
254
	cmp	eax,[top_line]
254
	cmp	eax,[cur_tab.Editor.TopLeft.Y] ;! eax,[top_line]
255
	je	still.skip_write
255
	je	still.skip_write
256
	mov	[top_line],eax
256
	mov	[cur_tab.Editor.TopLeft.Y],eax ;! [top_line],eax
257
	call	check_bottom_right
257
	call	check_bottom_right
258
	call	draw_file
258
	call	draw_file
259
	jmp	still.skip_write
259
	jmp	still.skip_write
Line 260... Line 260...
260
 
260
 
Line 272... Line 272...
272
	mov	ebx,eax
272
	mov	ebx,eax
273
	sub	ebx,(5+SCRLW+1)
273
	sub	ebx,(5+SCRLW+1)
274
;       sub     ebx,[__rc+0x0]
274
;       sub     ebx,[__rc+0x0]
275
	cmp	[hscrl_capt],0
275
	cmp	[hscrl_capt],0
276
	jge	.hcaptured
276
	jge	.hcaptured
277
	mov	eax,[hscrl_top]
277
	mov	eax,[cur_tab.Editor.HScroll.Top] ;! eax,[hscrl_top]
278
	cmp	ebx,eax
278
	cmp	ebx,eax
279
	jl	.center_hcapture
279
	jl	.center_hcapture
280
	add	eax,[hscrl_size]
280
	add	eax,[cur_tab.Editor.HScroll.Size] ;! eax,[hscrl_size]
281
	cmp	ebx,eax
281
	cmp	ebx,eax
282
	jge	.center_hcapture
282
	jge	.center_hcapture
283
	mov	eax,ebx
283
	mov	eax,ebx
284
	sub	eax,[hscrl_top]
284
	sub	eax,[cur_tab.Editor.HScroll.Top] ;! eax,[hscrl_top]
285
	dec	eax
285
	dec	eax
286
	mov	[hscrl_capt],eax
286
	mov	[hscrl_capt],eax
287
	dec	ebx
287
	dec	ebx
288
	jmp	.hcaptured
288
	jmp	.hcaptured
289
  .center_hcapture:
289
  .center_hcapture:
290
	mov	eax,[hscrl_size]
290
	mov	eax,[cur_tab.Editor.HScroll.Size] ;! eax,[hscrl_size]
291
	shr	eax,1
291
	shr	eax,1
292
	mov	[hscrl_capt],eax
292
	mov	[hscrl_capt],eax
293
  .hcaptured:
293
  .hcaptured:
294
	sub	ebx,[hscrl_capt]
294
	sub	ebx,[hscrl_capt]
295
	jns	@f
295
	jns	@f
296
	xor	ebx,ebx
296
	xor	ebx,ebx
297
    @@: mov	[mouse_captured],1
297
    @@: mov	[mouse_captured],1
298
	mov	eax,[p_info.box.width]
298
	mov	eax,[p_info.box.width]
299
	sub	eax,[hscrl_size]
299
	sub	eax,[cur_tab.Editor.HScroll.Size] ;! eax,[hscrl_size]
300
	sub	eax,SCRLW*3+10+1
300
	sub	eax,SCRLW*3+10+1
301
	cmp	eax,ebx
301
	cmp	eax,ebx
302
	jge	@f
302
	jge	@f
303
	mov	ebx,eax
303
	mov	ebx,eax
304
    @@:
304
    @@:
305
	mov	[hscrl_top],ebx
305
	mov	[cur_tab.Editor.HScroll.Top],ebx ;! [hscrl_top],ebx
306
	mov	eax,[columns]
306
	mov	eax,[cur_tab.Editor.Columns] ;! eax,[columns]
307
	sub	eax,[columns.scr]
307
	sub	eax,[columns.scr]
308
	imul	ebx
308
	imul	ebx
309
	mov	ebx,[p_info.box.width]
309
	mov	ebx,[p_info.box.width]
310
	sub	ebx,SCRLW*3+10+1	;**
310
	sub	ebx,SCRLW*3+10+1	;**
311
	sub	ebx,[hscrl_size]
311
	sub	ebx,[cur_tab.Editor.HScroll.Size] ;! ebx,[hscrl_size]
312
	idiv	ebx
312
	idiv	ebx
313
	cmp	eax,[left_col]
313
	cmp	eax,[cur_tab.Editor.TopLeft.X] ;! eax,[left_col]
314
	je	still.skip_write
314
	je	still.skip_write
315
	mov	[left_col],eax
315
	mov	[cur_tab.Editor.TopLeft.X],eax ;! [left_col],eax
316
	call	check_bottom_right
316
	call	check_bottom_right
317
	call	draw_file
317
	call	draw_file
318
	jmp	still.skip_write
318
	jmp	still.skip_write
Line 319... Line 319...
319
 
319
 
Line 371... Line 371...
371
endf
371
endf
Line 372... Line 372...
372
 
372
 
Line 373... Line 373...
373
onshow:
373
onshow:
374
 
374
 
375
  .file:
375
  .file:
376
	or	byte[popup_file+3],0x01
376
	or	byte[mm.File+3],0x01
377
	cmp	[f_info.length],0
377
	cmp	[f_info.length],0
378
	jne	@f
378
	jne	@f
Line 379... Line 379...
379
	and	byte[popup_file+3],0xFE
379
	and	byte[mm.File+3],0xFE
380
    @@: ret
380
    @@: ret
381
 
381
 
382
  .edit:
382
  .edit:
383
	or	byte[popup_edit+2],0x01
383
	or	byte[mm.Edit+2],0x01
384
	cmp	[copy_size],0
384
	cmp	[copy_size],0
385
	jne	@f
385
	jne	@f
386
	and	byte[popup_edit+2],0xFE
386
	and	byte[mm.Edit+2],0xFE
387
    @@: or	dword[popup_edit+0],0x01000101
387
    @@: or	dword[mm.Edit+0],0x01000101
388
	cmp	[sel.selected],0
388
	cmp	[sel.selected],0
Line 389... Line 389...
389
	jne	@f
389
	jne	@f
390
	and	dword[popup_edit+0],0xFEFFFEFE
390
	and	dword[mm.Edit+0],0xFEFFFEFE
391
    @@: ret
391
    @@: ret
392
 
392
 
393
  .search:
393
  .search:
394
	mov	byte[popup_search+0],0
394
	mov	byte[mm.Search+0],0
395
	;mov     byte[popup_search+4],0
395
	;mov     byte[mm.Search+4],0
396
	ret
396
	ret
397
  .run:
397
  .run:
398
	ret
398
	ret
399
  .recode:
399
  .recode:
400
	ret
400
	ret
401
  .options:
401
  .options:
402
	mov	word[popup_options+0],0
402
	mov	word[mm.Options+0],0
403
	mov	byte[popup_options+5],0
403
	mov	byte[mm.Options+5],0
404
	or	byte[popup_options+2],0x02
404
	or	byte[mm.Options+2],0x02
405
	test	[options],OPTS_SECURESEL
405
	test	[options],OPTS_SECURESEL
406
	jnz	@f
406
	jnz	@f
407
	and	byte[popup_options+2],0xFD
407
	and	byte[mm.Options+2],0xFD
408
    @@: or	byte[popup_options+3],0x02
408
    @@: or	byte[mm.Options+3],0x02
409
	test	[options],OPTS_AUTOBRACES
409
	test	[options],OPTS_AUTOBRACES
410
	jnz	@f
410
	jnz	@f
411
	and	byte[popup_options+3],0xFD
411
	and	byte[mm.Options+3],0xFD
412
    @@: or	byte[popup_options+4],0x02
412
    @@: or	byte[mm.Options+4],0x02
413
	test	[options],OPTS_AUTOINDENT
413
	test	[options],OPTS_AUTOINDENT
414
	jnz	@f
414
	jnz	@f
415
	and	byte[popup_options+4],0xFD
415
	and	byte[mm.Options+4],0xFD
416
    @@: or	byte[popup_options+6],0x02
416
    @@: or	byte[mm.Options+6],0x02
417
	test	[options],OPTS_OPTIMSAVE
417
	test	[options],OPTS_OPTIMSAVE
418
	jnz	@f
418
	jnz	@f
419
	and	byte[popup_options+6],0xFD
419
	and	byte[mm.Options+6],0xFD
420
    @@: or	byte[popup_options+8],0x02
420
    @@: or	byte[mm.Options+8],0x02
421
	test	[options],OPTS_LINENUMS
421
	test	[options],OPTS_LINENUMS