Subversion Repositories Kolibri OS

Rev

Rev 267 | Rev 288 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
259 mikedld 1
 
2
3
 
4
func flush_cur_tab ;///// SAVE CURRENT TAB DATA TO CONTROL ///////////////////
267 mikedld 5
;-----------------------------------------------------------------------------
259 mikedld 6
; EBP = TABITEM*
7
;-----------------------------------------------------------------------------
8
	push	ecx esi edi
9
	mov	esi,cur_tab
10
	mov	edi,[tab_bar.Current.Ptr]
11
	mov	ecx,sizeof.TABITEM/4
12
	cld
13
	rep	movsd
14
	pop	edi esi ecx
15
	ret
16
endf
17
18
 
19
func set_cur_tab ;///// SET SPECIFIED TAB CURRENT (FOCUS IT) /////////////////
267 mikedld 20
;-----------------------------------------------------------------------------
259 mikedld 21
; EBP = TABITEM*
22
;-----------------------------------------------------------------------------
23
	push	ecx esi edi
24
	cmp	[tab_bar.Current.Ptr],0
25
	je	@f
26
	call	flush_cur_tab
27
    @@: mov	esi,ebp
28
	mov	edi,cur_tab
29
	mov	ecx,sizeof.TABITEM/4
30
	rep	movsd
31
	mov	[tab_bar.Current.Ptr],ebp
32
	call	update_caption
33
	pop	edi esi ecx
34
	ret
35
endf
36
37
 
38
func make_tab_visible ;///// MAKE SPECIFIED TAB VISIBLE IF IT'S OFFSCREEN ////
267 mikedld 39
;-----------------------------------------------------------------------------
259 mikedld 40
	imul	eax,[tab_bar.Items.Left],sizeof.TABITEM
267 mikedld 41
	add	eax,[tab_bar.Items]
42
	cmp	eax,ebp
43
	jb	.go_right
44
	ja	.go_left
45
	ret
46
47
 
48
	push	ebp
280 mikedld 49
	call	get_hidden_tabitems_number
267 mikedld 50
	cmp	ebp,[esp]
51
	ja	.lp1
52
    @@: inc	[tab_bar.Items.Left]
53
	call	get_hidden_tabitems_number
54
	cmp	ebp,[esp]
55
	jbe	@b
56
    @@: inc	[tab_bar.Items.Left]
57
  .lp1: pop	ebp
58
	ret
59
60
 
61
	mov	eax,ebp
62
	sub	eax,[tab_bar.Items]
63
	jz	@f
64
	cwde
65
	mov	ebx,sizeof.TABITEM
66
	div	ebx
67
    @@: mov	[tab_bar.Items.Left],eax
68
	ret
69
endf
70
71
 
72
func create_tab ;///// ADD TAB TO THE END ////////////////////////////////////
73
;-----------------------------------------------------------------------------
74
;       DEBUGF  1,"items count before addition: %d\n",[tab_bar.Items.Count]
280 mikedld 75
	push	eax ecx esi edi
259 mikedld 76
77
 
78
	imul	ebx,[tab_bar.Items.Count],sizeof.TABITEM
79
	mov	eax,[tab_bar.Items]
80
	mov	ecx,eax
81
	call	mem.ReAlloc
82
	mov	[tab_bar.Items],eax
83
	sub	ecx,eax
84
	sub	[tab_bar.Current.Ptr],ecx
85
	cmp	[tab_bar.Default.Ptr],0
280 mikedld 86
	je	@f
87
	sub	[tab_bar.Default.Ptr],ecx
88
    @@: lea	ebp,[eax+ebx-sizeof.TABITEM]
89
	call	set_cur_tab
259 mikedld 90
	call	make_tab_visible
267 mikedld 91
259 mikedld 92
 
93
	mov	[cur_editor.Lines.Size],eax
280 mikedld 94
	call	mem.Alloc
259 mikedld 95
	mov	[cur_editor.Lines],eax
267 mikedld 96
	mov	[cur_editor.Lines.Count],1
97
	mov	[cur_editor.Columns.Count],1
98
	xor	eax,eax
259 mikedld 99
	mov	[cur_editor.TopLeft.X],eax
267 mikedld 100
	mov	[cur_editor.TopLeft.Y],eax
101
	mov	[cur_editor.Caret.X],eax
102
	mov	[cur_editor.Caret.Y],eax
103
	mov	[cur_editor.SelStart.X],eax
104
	mov	[cur_editor.SelStart.Y],eax
105
	mov	edi,[cur_editor.Lines]
106
	add	edi,4
259 mikedld 107
	mov	ecx,10
108
	mov	[edi-4],ecx
109
	mov	[edi+10],eax
110
	mov	al,' '
111
	cld
112
	rep	stosb
113
114
 
115
	mov	edi,cur_editor.FilePath
267 mikedld 116
	mov	ecx,s_defname.size
259 mikedld 117
	rep	movsb
118
	mov	[cur_editor.FileName],0
267 mikedld 119
259 mikedld 120
 
267 mikedld 121
	mov	[cur_editor.AsmMode],0
122
259 mikedld 123
 
124
	call	update_caption
125
	;call    drawwindow
280 mikedld 126
	cmp	[do_not_draw],0
127
	jne	@f
128
	call	align_editor_in_tab
129
	call	draw_editor
130
	call	draw_tabctl
131
	call	draw_statusbar
132
    @@:
133
	mov	ebp,cur_tab
259 mikedld 134
	pop	edi esi ecx eax
135
	ret
136
endf
137
138
 
139
func delete_tab ;///// DELETE SPECIFIED TAB //////////////////////////////////
267 mikedld 140
;-----------------------------------------------------------------------------
259 mikedld 141
;       DEBUGF  1,"items count before deletion: %d\n",[tab_bar.Items.Count]
280 mikedld 142
	cmp	[tab_bar.Default.Ptr],0
143
	je	@f
144
	cmp	ebp,[tab_bar.Default.Ptr]
145
	je	.lp1
146
	ja	@f
147
	sub	[tab_bar.Default.Ptr],sizeof.TABITEM
148
	jmp	@f
149
  .lp1:
150
	mov	[tab_bar.Default.Ptr],0
151
152
 
153
	call	mem.Free
267 mikedld 154
	imul	ecx,[tab_bar.Items.Count],sizeof.TABITEM
155
	add	ecx,[tab_bar.Items]
156
	sub	ecx,ebp
157
	sub	ecx,sizeof.TABITEM
158
	jle	@f
159
	cld
160
	shr	ecx,2
161
	mov	edi,ebp
162
	lea	esi,[edi+sizeof.TABITEM]
163
	rep	movsd
164
    @@: dec	[tab_bar.Items.Count]
165
	jz	.no_tabs
166
	imul	ebx,[tab_bar.Items.Count],sizeof.TABITEM
167
	push	ebx
168
	mov	eax,[tab_bar.Items]
169
	mov	ecx,eax
170
	call	mem.ReAlloc
171
	mov	[tab_bar.Items],eax
172
	sub	ecx,eax
173
	sub	ebp,ecx
174
	cmp	[tab_bar.Default.Ptr],0
280 mikedld 175
	je	@f
176
	sub	[tab_bar.Default.Ptr],ecx
177
    @@:
178
	pop	ecx
267 mikedld 179
	add	ecx,[tab_bar.Items]
180
	sub	ecx,ebp
181
	ja	@f
182
	add	ebp,-sizeof.TABITEM
183
184
 
185
	call	set_cur_tab
186
	call	make_tab_visible
187
	;call    drawwindow
280 mikedld 188
	call	align_editor_in_tab
189
	call	draw_editor
190
	call	draw_tabctl
191
	call	draw_statusbar
192
	ret
259 mikedld 193
194
 
267 mikedld 195
	mov	eax,[tab_bar.Items]
196
	call	mem.Free
197
	xor	eax,eax
280 mikedld 198
	mov	[tab_bar.Items],eax
199
	mov	[tab_bar.Current.Ptr],eax
200
	mov	[tab_bar.Default.Ptr],eax
201
	ret
259 mikedld 202
endf
203
204
 
205
func draw_tabctl ;///// DRAW TAB CONTROL /////////////////////////////////////
267 mikedld 206
;-----------------------------------------------------------------------------
259 mikedld 207
208
 
267 mikedld 209
	js	.lp1
210
    @@: call	get_hidden_tabitems_number
211
	or	eax,eax
212
	jnz	.lp1
213
	dec	[tab_bar.Items.Left]
214
	jns	@b
215
  .lp1: inc	[tab_bar.Items.Left]
216
	mov	eax,[tab_bar.Items.Count]
217
	cmp	[tab_bar.Items.Left],eax
218
	jb	@f
219
	dec	eax
220
	mov	[tab_bar.Items.Left],eax
221
    @@:
222
223
 
224
	mov	edx,[tab_bar.Buttons.First]
225
    @@: cmp	edx,[tab_bar.Buttons.Last]
226
	ja	@f
227
	push	edx
228
	or	edx,0x80000000
229
	mcall
230
	pop	edx
231
	inc	edx
232
	jmp	@b
233
    @@:
234
235
 
259 mikedld 236
	mov	bx,word[tab_bar.Bounds.Right]
237
	sub	bx,word[tab_bar.Bounds.Left]
238
	inc	ebx
239
	mov	ecx,[tab_bar.Bounds.Top-2]
240
	mov	cx,word[tab_bar.Bounds.Bottom]
241
	sub	cx,word[tab_bar.Bounds.Top]
242
	inc	ecx
243
	mov	edx,[cl_3d_normal]
244
	call	draw_framerect
245
246
 
247
	dec	al
248
	jz	.tabs_on_top
249
	dec	al
250
	jz	.tabs_on_bottom
251
	dec	al
252
	jz	.tabs_on_left
253
	dec	al
254
	jz	.tabs_on_right
255
	ret
256
257
 
258
	add	ebx,1*65536-2
259
	mov	ecx,[tab_bar.Bounds.Top-2]
260
	xor	cx,cx
261
	add	ecx,1*65536+TBARH
262
	mcall	13
263
	add	ecx,(TBARH-1)*65536-(TBARH-1)
267 mikedld 264
	mcall	,,,[sc.work]
265
	add	ecx,-1*65536+2
266
	mov	edx,[cl_3d_inset]
259 mikedld 267
	call	draw_framerect
268
267 mikedld 269
 
270
	inc	esi
271
	mov	edi,[tab_bar.Bounds.Top]
272
	inc	edi
273
	push	.curr_top .check_horz .next_horz
274
	call	.draw_tabs
275
	ret
259 mikedld 276
277
 
278
	add	ebx,1*65536-2
279
	mov	ecx,[tab_bar.Bounds.Bottom-2]
280
	xor	cx,cx
281
	add	ecx,-TBARH*65536+TBARH
282
	mcall	13
283
	mov	cx,1
284
	mcall	,,,[sc.work]
285
	add	ecx,-1*65536+2
267 mikedld 286
	mov	edx,[cl_3d_inset]
259 mikedld 287
	call	draw_framerect
288
289
 
290
	inc	esi
291
	mov	edi,[tab_bar.Bounds.Bottom]
292
	add	edi,-TBARH+1
293
	push	.curr_bottom .check_horz .next_horz
267 mikedld 294
	call	.draw_tabs
295
	ret
296
297
 
298
	call	get_max_tab_width
299
	mov	ebx,[tab_bar.Bounds.Left-2]
300
	mov	bx,ax
301
	add	ebx,1*65536-1
302
	add	ecx,1*65536-2
303
	push	eax
304
	mcall	13
305
	pop	ebx
306
	shl	ebx,16
307
	add	ebx,1*65536+1
308
	mcall	,,,[sc.work]
309
	add	ebx,-1*65536+2
310
	mov	edx,[cl_3d_inset]
311
	call	draw_framerect
312
313
 
314
	inc	esi
315
	mov	edi,[tab_bar.Bounds.Top]
316
	inc	edi
317
	push	.curr_left .check_vert .next_vert
318
	call	.draw_tabs
319
	ret
320
321
 
322
	call	get_max_tab_width
323
	push	eax
324
	mov	ebx,[tab_bar.Bounds.Right-2]
325
	mov	bx,ax
326
	shl	eax,16
327
	sub	ebx,eax
328
	add	ecx,1*65536-2
329
	mcall	13
330
	add	ebx,-1*65536
331
	mov	bx,1
332
	mcall	,,,[sc.work]
333
	add	ebx,-1*65536+2
334
	mov	edx,[cl_3d_inset]
335
	call	draw_framerect
336
337
 
338
	pop	eax
339
	sub	esi,eax
340
	mov	edi,[tab_bar.Bounds.Top]
341
	inc	edi
342
	push	.curr_right .check_vert .next_vert
343
	call	.draw_tabs
344
	ret
345
346
 
347
 
348
	mov	ecx,[tab_bar.Items.Count]
349
	mov	ebx,[tab_bar.Items.Left]
350
	imul	ebp,ebx,sizeof.TABITEM
351
	add	ebp,[tab_bar.Items]
352
	push	ecx
353
	sub	[esp],ebx
354
	add	ebx,1000
355
	mov	[tab_bar.Buttons.First],ebx
356
	dec	ebx
357
	mov	[tab_bar.Buttons.Last],ebx
358
    @@: push	ecx
259 mikedld 359
360
 
361
267 mikedld 362
 
363
	jc	.draw_tabs.dontfit
364
365
 
259 mikedld 366
	mov	bx,si
367
	rol	ebx,16
368
	rol	ecx,16
369
	mov	cx,di
370
	rol	ecx,16
371
	mov	edx,[cl_3d_inset]
372
	call	draw_framerect
373
374
 
267 mikedld 375
	cmp	ebp,[tab_bar.Current.Ptr]
259 mikedld 376
	jne	.draw_tabs.inactive
267 mikedld 377
	push	ebx ecx
259 mikedld 378
	call	dword[esp+(8+4)+8+8]
267 mikedld 379
	mcall	13,,,[sc.work]
259 mikedld 380
	pop	ecx ebx
381
	mov	edx,[color_tbl+4*0]
267 mikedld 382
  .draw_tabs.inactive:
383
384
 
280 mikedld 385
	jne	.draw_tabs.notdefault
386
	push	ebx ecx edx
387
	add	ebx,3*65536
388
	add	ecx,(TBARH/2-6)*65536
389
	mov	bx,11
390
	mov	cx,bx
391
	call	draw_framerect
392
	add	ebx,1*65536-2
393
	add	ecx,1*65536-2
394
	mcall	13,,,[sc.work]
395
	shr	ebx,16
396
	shr	ecx,16
397
	add	ebx,2
398
	add	ecx,3
399
	mov	edx,[esp]
400
	call	draw_check
401
	pop	edx ecx ebx
402
  .draw_tabs.notdefault:
403
404
 
267 mikedld 405
	lea	eax,[ebp+TABITEM.Editor.FilePath]
259 mikedld 406
	add	eax,[ebp+TABITEM.Editor.FileName]
407
	mov	edx,eax
408
	call	strlen
409
	mov	esi,eax
410
	shr	ecx,16
411
	mov	bx,cx
412
	add	ebx,5*65536+TBARH/2-4
280 mikedld 413
	pop	ecx
267 mikedld 414
	cmp	ebp,[tab_bar.Default.Ptr]
280 mikedld 415
	jne	.lp2
416
	add	ebx,13*65536
417
  .lp2: mcall	4
418
	pop	esi ecx ebx
267 mikedld 419
259 mikedld 420
 
267 mikedld 421
	cmp	ebp,[tab_bar.Current.Ptr]
422
	je	.draw_tabs.active
423
	push	ebx ecx
424
	dec	ebx
425
	dec	ecx
426
	mov	edx,[tab_bar.Buttons.Last]
427
	or	edx,0x40000000
428
	mcall	8
429
	pop	ecx ebx
430
  .draw_tabs.active:
431
432
 
433
	add	ebp,sizeof.TABITEM
259 mikedld 434
435
 
436
	dec	ecx
437
	dec	dword[esp]
267 mikedld 438
	jnz	@b
259 mikedld 439
440
 
267 mikedld 441
	or	ecx,ecx
442
	jnz	@f
443
444
 
445
446
 
447
448
 
449
450
 
451
	shl	ebx,16
452
	mov	ecx,[tab_bar.Bounds.Bottom]
453
	shl	ecx,16
454
	add	ecx,(-SCRLW-1)*65536+SCRLW
455
	call	get_max_tab_width
456
	mov	edx,eax
457
458
 
459
	dec	al
460
	jz	.scroll_on_top
461
	dec	al
462
	jz	.scroll_on_bottom
463
	dec	al
464
	jz	.scroll_on_left
465
	dec	al
466
	jz	.scroll_on_right
467
	ret
259 mikedld 468
469
 
267 mikedld 470
	add	ebx,(-SCRLW*2-1)*65536+SCRLW
471
	mov	ecx,[tab_bar.Bounds.Top]
472
	shl	ecx,16
473
	add	ecx,1*65536+SCRLW
474
	jmp	.draw_tabs.draw_scroll
475
  .scroll_on_bottom:
476
	add	ebx,(-SCRLW*2-1)*65536+SCRLW
477
	jmp	.draw_tabs.draw_scroll
478
  .scroll_on_left:
479
	mov	ebx,[tab_bar.Bounds.Left]
480
	add	ebx,edx
481
	shl	ebx,16
482
	add	ebx,(-SCRLW*2)*65536+SCRLW
483
	jmp	.draw_tabs.draw_scroll
484
  .scroll_on_right:
485
	shl	edx,16
486
	sub	ebx,edx
487
	add	ebx,SCRLW
488
489
 
490
	mcall	8,,,'TBG' or 0x40000000
491
	push	ebx
492
	add	ebx,SCRLW*65536
493
	mcall	8,,,'TBL' or 0x40000000
494
	pop	ebx
495
	push	ebx ecx
496
	sar	ebx,16
497
	sar	ecx,16
498
	push	ebx ecx SCRLW SCRLW
499
	call	draw_3d_panel
500
	add	ebx,SCRLW
501
	push	ebx ecx SCRLW SCRLW
502
	call	draw_3d_panel
503
	pop	ecx ebx
504
505
 
506
	shr	ecx,16
507
	mov	bx,cx
508
	add	ebx,(SCRLW/2-2)*65536+SCRLW/2-3
509
	mcall	4,,[sc.work_text],esp,1
510
	add	ebx,0x00020000
511
	mcall
512
	add	ebx,(SCRLW-2)*65536
513
	mov	byte[esp],'>'
514
	mcall
515
	add	ebx,0x00020000
516
	mcall
517
	add	esp,4
518
519
 
520
521
 
522
	add	ebx,0x00010000
523
	add	ecx,1*65536-2
259 mikedld 524
	ret
267 mikedld 525
  .curr_top:
526
	add	ebx,1*65536-2
527
	add	ecx,0x00010000
528
	ret
529
  .curr_right:
530
	dec	ebx
531
	add	ecx,1*65536-2
532
	ret
533
  .curr_bottom:
534
	add	ebx,1*65536-2
535
	dec	ecx
536
	ret
537
538
 
539
	lea	eax,[ebx-1]
540
	add	eax,esi
541
	sub	eax,[tab_bar.Bounds.Right]
542
	jge	.check.dontfit
543
	add	eax,SCRLW*2+2
544
	jl	.check.fit
545
	cmp	dword[esp+4],1
546
	jbe	.check.fit
547
  .check.dontfit:
548
	stc
549
	ret
550
  .check_vert:
551
	lea	eax,[ecx-1]
552
	add	eax,edi
553
	sub	eax,[tab_bar.Bounds.Bottom]
554
	jge	.check.dontfit
555
	add	eax,SCRLW+2
556
	jl	.check.fit
557
	cmp	dword[esp+4],1
558
	ja	.check.dontfit
559
  .check.fit:
560
	clc
561
	ret
562
563
 
564
	movzx	ebx,bx
565
	lea	esi,[esi+ebx+1]
566
	ret
567
  .next_vert:
568
	movzx	ecx,cx
569
	lea	edi,[edi+ecx+1]
570
	ret
571
endf
572
573
 
574
func get_tab_size ;///// GET TAB WIDTH ///////////////////////////////////////
575
;-----------------------------------------------------------------------------
576
; EBP = TABITEM*
577
;-----------------------------------------------------------------------------
578
	push	eax
259 mikedld 579
	cmp	[tab_bar.Style],3
267 mikedld 580
	jae	.lp1
581
	lea	eax,[ebp+TABITEM.Editor.FilePath]
582
	add	eax,[ebp+TABITEM.Editor.FileName]
583
	call	strlen
584
	imul	ebx,eax,6
585
	add	ebx,9
586
	cmp	ebp,[tab_bar.Default.Ptr]
280 mikedld 587
	jne	.lp2
588
	add	ebx,13
589
	jmp	.lp2
267 mikedld 590
  .lp1: call	get_max_tab_width
591
	mov	ebx,eax
592
  .lp2: mov	ecx,TBARH-1
593
	pop	eax
259 mikedld 594
	ret
595
endf
267 mikedld 596
259 mikedld 597
 
267 mikedld 598
func get_max_tab_width ;///// GET WIDTH OF LONGEST TAB ///////////////////////
599
;-----------------------------------------------------------------------------
600
	push	ebx ecx ebp
601
	mov	ecx,[tab_bar.Items.Count]
602
	mov	ebp,[tab_bar.Items]
603
	xor	ebx,ebx
604
    @@: dec	ecx
605
	js	@f
606
607
 
608
	add	eax,[ebp+TABITEM.Editor.FileName]
609
	call	strlen
610
	imul	eax,6
611
	add	eax,9
612
613
 
614
	cmp	ebx,eax
615
	jae	@b
616
	mov	ebx,eax
617
	jmp	@b
618
    @@: mov	eax,ebx
619
	cmp	eax,SCRLW*2+2
620
	jae	@f
621
	mov	eax,SCRLW*2+2
622
    @@: cmp	[tab_bar.Default.Ptr],0
280 mikedld 623
	je	@f
624
	add	eax,13
625
    @@: pop	ebp ecx ebx
267 mikedld 626
	ret
259 mikedld 627
endf
628
629
 
267 mikedld 630
func get_hidden_tabitems_number ;/////////////////////////////////////////////
631
;-----------------------------------------------------------------------------
632
	mov	al,[tab_bar.Style]
633
	dec	al
634
	dec	al
635
	jle	.tabs_horz
636
	dec	al
637
	dec	al
638
	jle	.tabs_vert
639
	ret
259 mikedld 640
267 mikedld 641
 
642
	push	draw_tabctl.check_horz draw_tabctl.next_horz
643
	call	.calc_tabs
644
	ret
645
646
 
647
	push	draw_tabctl.check_vert draw_tabctl.next_vert
648
	call	.calc_tabs
649
	ret
650
651
 
652
	mov	esi,[tab_bar.Bounds.Left]
653
	inc	esi
654
	mov	edi,[tab_bar.Bounds.Top]
655
	inc	edi
656
	mov	ecx,[tab_bar.Items.Count]
657
	imul	ebp,[tab_bar.Items.Left],sizeof.TABITEM
280 mikedld 658
	add	ebp,[tab_bar.Items]
659
	mov	eax,ecx
267 mikedld 660
	sub	eax,[tab_bar.Items.Left]
661
	push	eax
662
    @@: push	ecx
663
664
 
665
666
 
667
	jc	.calc_tabs.dontfit
668
669
 
670
	add	ebp,sizeof.TABITEM
671
672
 
673
	dec	ecx
674
	dec	dword[esp]
675
	jnz	@b
676
677
 
678
679
 
680
681
 
682
    @@: pop	ecx
683
	mov	eax,ecx
684
	ret	8
685
endf
259 mikedld 686
687
 
267 mikedld 688
func align_editor_in_tab ;///// ADJUST EDITOR POSITION TO FIT IN TAB /////////
689
;-----------------------------------------------------------------------------
690
	m2m	[cur_editor.Bounds.Left],[tab_bar.Bounds.Left]
691
	m2m	[cur_editor.Bounds.Top],[tab_bar.Bounds.Top]
692
	m2m	[cur_editor.Bounds.Right],[tab_bar.Bounds.Right]
693
	m2m	[cur_editor.Bounds.Bottom],[tab_bar.Bounds.Bottom]
694
259 mikedld 695
 
267 mikedld 696
	inc	[cur_editor.Bounds.Top]
697
	dec	[cur_editor.Bounds.Right]
698
	dec	[cur_editor.Bounds.Bottom]
699
259 mikedld 700
 
267 mikedld 701
	lea	ebx,[eax+1]
702
703
 
259 mikedld 704
	dec	al
705
	jz	.tabs_on_top
706
	dec	al
707
	jz	.tabs_on_bottom
708
	dec	al
709
	jz	.tabs_on_left
710
	dec	al
711
	jz	.tabs_on_right
712
	ret
713
714
 
715
	add	[cur_editor.Bounds.Top],TBARH
267 mikedld 716
	ret
259 mikedld 717
718
 
719
	sub	[cur_editor.Bounds.Bottom],TBARH
267 mikedld 720
	ret
259 mikedld 721
722
 
723
	add	[cur_editor.Bounds.Left],ebx
267 mikedld 724
	ret
259 mikedld 725
726
 
727
	sub	[cur_editor.Bounds.Right],ebx
267 mikedld 728
	ret
259 mikedld 729
endf
267 mikedld 730
>