Subversion Repositories Kolibri OS

Rev

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

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