TwoColumnTextView.st
author claus
Mon, 10 Oct 1994 04:13:51 +0100
changeset 24 6704fad5eb7d
parent 14 66a5cdf0adea
child 34 159147b254e1
permissions -rw-r--r--
*** empty log message ***
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12
30f48431927b Initial revision
claus
parents:
diff changeset
     1
"
30f48431927b Initial revision
claus
parents:
diff changeset
     2
 COPYRIGHT (c) 1994 by Claus Gittinger
24
6704fad5eb7d *** empty log message ***
claus
parents: 14
diff changeset
     3
	      All Rights Reserved
12
30f48431927b Initial revision
claus
parents:
diff changeset
     4
30f48431927b Initial revision
claus
parents:
diff changeset
     5
 This software is furnished under a license and may be used
30f48431927b Initial revision
claus
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
30f48431927b Initial revision
claus
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
30f48431927b Initial revision
claus
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
30f48431927b Initial revision
claus
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
30f48431927b Initial revision
claus
parents:
diff changeset
    10
 hereby transferred.
30f48431927b Initial revision
claus
parents:
diff changeset
    11
"
30f48431927b Initial revision
claus
parents:
diff changeset
    12
30f48431927b Initial revision
claus
parents:
diff changeset
    13
View subclass:#TwoColumnTextView
24
6704fad5eb7d *** empty log message ***
claus
parents: 14
diff changeset
    14
	 instanceVariableNames:'textView1 textView2'
6704fad5eb7d *** empty log message ***
claus
parents: 14
diff changeset
    15
	 classVariableNames:''
6704fad5eb7d *** empty log message ***
claus
parents: 14
diff changeset
    16
	 poolDictionaries:''
6704fad5eb7d *** empty log message ***
claus
parents: 14
diff changeset
    17
	 category:'Views-Text'
12
30f48431927b Initial revision
claus
parents:
diff changeset
    18
!
30f48431927b Initial revision
claus
parents:
diff changeset
    19
30f48431927b Initial revision
claus
parents:
diff changeset
    20
TwoColumnTextView comment:'
30f48431927b Initial revision
claus
parents:
diff changeset
    21
COPYRIGHT (c) 1994 by Claus Gittinger
24
6704fad5eb7d *** empty log message ***
claus
parents: 14
diff changeset
    22
	      All Rights Reserved
12
30f48431927b Initial revision
claus
parents:
diff changeset
    23
24
6704fad5eb7d *** empty log message ***
claus
parents: 14
diff changeset
    24
$Header: /cvs/stx/stx/libwidg2/TwoColumnTextView.st,v 1.3 1994-10-10 03:13:07 claus Exp $
12
30f48431927b Initial revision
claus
parents:
diff changeset
    25
'!
30f48431927b Initial revision
claus
parents:
diff changeset
    26
30f48431927b Initial revision
claus
parents:
diff changeset
    27
!TwoColumnTextView class methodsFor:'documentation'!
30f48431927b Initial revision
claus
parents:
diff changeset
    28
30f48431927b Initial revision
claus
parents:
diff changeset
    29
documentation
30f48431927b Initial revision
claus
parents:
diff changeset
    30
"
30f48431927b Initial revision
claus
parents:
diff changeset
    31
    a view showing two texts side-by-side.
30f48431927b Initial revision
claus
parents:
diff changeset
    32
    Scrolling is synced, by always scrolling both views.
30f48431927b Initial revision
claus
parents:
diff changeset
    33
    This type of view is especially useful to show diff-lists,
14
66a5cdf0adea *** empty log message ***
claus
parents: 12
diff changeset
    34
    code-versions, or other one-by-one vievable texts.
12
30f48431927b Initial revision
claus
parents:
diff changeset
    35
30f48431927b Initial revision
claus
parents:
diff changeset
    36
    Usually, it does not make much sense, to put totally different
24
6704fad5eb7d *** empty log message ***
claus
parents: 14
diff changeset
    37
    or unrelated texts into this kind of view.
6704fad5eb7d *** empty log message ***
claus
parents: 14
diff changeset
    38
6704fad5eb7d *** empty log message ***
claus
parents: 14
diff changeset
    39
    See subclass DiffTextView for a real class;
6704fad5eb7d *** empty log message ***
claus
parents: 14
diff changeset
    40
    see ChangesBrowsers compare operation for a real application
6704fad5eb7d *** empty log message ***
claus
parents: 14
diff changeset
    41
    of this kind of views.
12
30f48431927b Initial revision
claus
parents:
diff changeset
    42
"
30f48431927b Initial revision
claus
parents:
diff changeset
    43
! !
30f48431927b Initial revision
claus
parents:
diff changeset
    44
30f48431927b Initial revision
claus
parents:
diff changeset
    45
!TwoColumnTextView class methodsFor:'instance creation'!
30f48431927b Initial revision
claus
parents:
diff changeset
    46
30f48431927b Initial revision
claus
parents:
diff changeset
    47
openOn:firstText and:secondText
24
6704fad5eb7d *** empty log message ***
claus
parents: 14
diff changeset
    48
    "open up a view showing firstText and secondText side-by-side"
12
30f48431927b Initial revision
claus
parents:
diff changeset
    49
30f48431927b Initial revision
claus
parents:
diff changeset
    50
     |top v|
30f48431927b Initial revision
claus
parents:
diff changeset
    51
30f48431927b Initial revision
claus
parents:
diff changeset
    52
     top := StandardSystemView label:'differences'.
24
6704fad5eb7d *** empty log message ***
claus
parents: 14
diff changeset
    53
     v := HVScrollableView 
6704fad5eb7d *** empty log message ***
claus
parents: 14
diff changeset
    54
		for:self 
6704fad5eb7d *** empty log message ***
claus
parents: 14
diff changeset
    55
		miniScrollerH:true miniScrollerV:false
6704fad5eb7d *** empty log message ***
claus
parents: 14
diff changeset
    56
		in:top.
12
30f48431927b Initial revision
claus
parents:
diff changeset
    57
     v origin:0.0 @ 0.0 corner:1.0 @ 1.0.
30f48431927b Initial revision
claus
parents:
diff changeset
    58
     v scrolledView text1:firstText text2:secondText.
30f48431927b Initial revision
claus
parents:
diff changeset
    59
     ^ top open
30f48431927b Initial revision
claus
parents:
diff changeset
    60
! !
30f48431927b Initial revision
claus
parents:
diff changeset
    61
30f48431927b Initial revision
claus
parents:
diff changeset
    62
!TwoColumnTextView methodsFor:'queries'!
30f48431927b Initial revision
claus
parents:
diff changeset
    63
30f48431927b Initial revision
claus
parents:
diff changeset
    64
heightOfContents
30f48431927b Initial revision
claus
parents:
diff changeset
    65
    ^ textView1 heightOfContents
30f48431927b Initial revision
claus
parents:
diff changeset
    66
!
30f48431927b Initial revision
claus
parents:
diff changeset
    67
30f48431927b Initial revision
claus
parents:
diff changeset
    68
widthOfContents
30f48431927b Initial revision
claus
parents:
diff changeset
    69
    ^ textView1 widthOfContents
30f48431927b Initial revision
claus
parents:
diff changeset
    70
!
30f48431927b Initial revision
claus
parents:
diff changeset
    71
30f48431927b Initial revision
claus
parents:
diff changeset
    72
xOriginOfContents
30f48431927b Initial revision
claus
parents:
diff changeset
    73
    ^ textView1 xOriginOfContents
30f48431927b Initial revision
claus
parents:
diff changeset
    74
!
30f48431927b Initial revision
claus
parents:
diff changeset
    75
30f48431927b Initial revision
claus
parents:
diff changeset
    76
yOriginOfContents
30f48431927b Initial revision
claus
parents:
diff changeset
    77
    ^ textView1 yOriginOfContents
30f48431927b Initial revision
claus
parents:
diff changeset
    78
!
30f48431927b Initial revision
claus
parents:
diff changeset
    79
30f48431927b Initial revision
claus
parents:
diff changeset
    80
innerWidth
30f48431927b Initial revision
claus
parents:
diff changeset
    81
    ^ textView1 innerWidth
30f48431927b Initial revision
claus
parents:
diff changeset
    82
!
30f48431927b Initial revision
claus
parents:
diff changeset
    83
30f48431927b Initial revision
claus
parents:
diff changeset
    84
innerHeight
30f48431927b Initial revision
claus
parents:
diff changeset
    85
    ^ textView1 innerHeight
30f48431927b Initial revision
claus
parents:
diff changeset
    86
! !
30f48431927b Initial revision
claus
parents:
diff changeset
    87
30f48431927b Initial revision
claus
parents:
diff changeset
    88
!TwoColumnTextView methodsFor:'scrolling'!
30f48431927b Initial revision
claus
parents:
diff changeset
    89
30f48431927b Initial revision
claus
parents:
diff changeset
    90
scrollVerticalToPercent:p
30f48431927b Initial revision
claus
parents:
diff changeset
    91
    textView1 scrollVerticalToPercent:p.
30f48431927b Initial revision
claus
parents:
diff changeset
    92
    textView2 scrollToLine:textView1 firstLineShown.
30f48431927b Initial revision
claus
parents:
diff changeset
    93
!
30f48431927b Initial revision
claus
parents:
diff changeset
    94
30f48431927b Initial revision
claus
parents:
diff changeset
    95
scrollDown:nLines
30f48431927b Initial revision
claus
parents:
diff changeset
    96
    textView1 scrollDown:nLines.
30f48431927b Initial revision
claus
parents:
diff changeset
    97
    textView2 scrollDown:nLines
30f48431927b Initial revision
claus
parents:
diff changeset
    98
!
30f48431927b Initial revision
claus
parents:
diff changeset
    99
30f48431927b Initial revision
claus
parents:
diff changeset
   100
scrollDown
30f48431927b Initial revision
claus
parents:
diff changeset
   101
    self scrollDown:1.
30f48431927b Initial revision
claus
parents:
diff changeset
   102
!
30f48431927b Initial revision
claus
parents:
diff changeset
   103
30f48431927b Initial revision
claus
parents:
diff changeset
   104
scrollUp
30f48431927b Initial revision
claus
parents:
diff changeset
   105
    self scrollUp:1.
30f48431927b Initial revision
claus
parents:
diff changeset
   106
!
30f48431927b Initial revision
claus
parents:
diff changeset
   107
30f48431927b Initial revision
claus
parents:
diff changeset
   108
scrollUp:nLines
30f48431927b Initial revision
claus
parents:
diff changeset
   109
    textView1 scrollUp:nLines.
30f48431927b Initial revision
claus
parents:
diff changeset
   110
    textView2 scrollUp:nLines
30f48431927b Initial revision
claus
parents:
diff changeset
   111
!
30f48431927b Initial revision
claus
parents:
diff changeset
   112
30f48431927b Initial revision
claus
parents:
diff changeset
   113
scrollLeft:nPixels
30f48431927b Initial revision
claus
parents:
diff changeset
   114
    textView1 scrollLeft:nPixels.
30f48431927b Initial revision
claus
parents:
diff changeset
   115
    textView2 scrollLeft:nPixels
30f48431927b Initial revision
claus
parents:
diff changeset
   116
!
30f48431927b Initial revision
claus
parents:
diff changeset
   117
30f48431927b Initial revision
claus
parents:
diff changeset
   118
scrollRight:nPixels
30f48431927b Initial revision
claus
parents:
diff changeset
   119
    textView1 scrollRight:nPixels.
30f48431927b Initial revision
claus
parents:
diff changeset
   120
    textView2 scrollRight:nPixels
30f48431927b Initial revision
claus
parents:
diff changeset
   121
!
30f48431927b Initial revision
claus
parents:
diff changeset
   122
30f48431927b Initial revision
claus
parents:
diff changeset
   123
scrollRight
30f48431927b Initial revision
claus
parents:
diff changeset
   124
    textView1 scrollRight.
30f48431927b Initial revision
claus
parents:
diff changeset
   125
    textView2 scrollRight
30f48431927b Initial revision
claus
parents:
diff changeset
   126
!
30f48431927b Initial revision
claus
parents:
diff changeset
   127
30f48431927b Initial revision
claus
parents:
diff changeset
   128
scrollToLine:lineNr
30f48431927b Initial revision
claus
parents:
diff changeset
   129
    textView1 scrollToLine:lineNr.
30f48431927b Initial revision
claus
parents:
diff changeset
   130
    textView2 scrollToLine:lineNr
30f48431927b Initial revision
claus
parents:
diff changeset
   131
!
30f48431927b Initial revision
claus
parents:
diff changeset
   132
30f48431927b Initial revision
claus
parents:
diff changeset
   133
scrollHorizontalToPercent:p
30f48431927b Initial revision
claus
parents:
diff changeset
   134
    textView1 scrollHorizontalToPercent:p.
30f48431927b Initial revision
claus
parents:
diff changeset
   135
    textView2 scrollHorizontalTo:textView1 xOriginOfContents.
30f48431927b Initial revision
claus
parents:
diff changeset
   136
!
30f48431927b Initial revision
claus
parents:
diff changeset
   137
30f48431927b Initial revision
claus
parents:
diff changeset
   138
scrollLeft
30f48431927b Initial revision
claus
parents:
diff changeset
   139
    textView1 scrollLeft.
30f48431927b Initial revision
claus
parents:
diff changeset
   140
    textView2 scrollLeft
30f48431927b Initial revision
claus
parents:
diff changeset
   141
! !
30f48431927b Initial revision
claus
parents:
diff changeset
   142
30f48431927b Initial revision
claus
parents:
diff changeset
   143
!TwoColumnTextView methodsFor:'initialization'!
30f48431927b Initial revision
claus
parents:
diff changeset
   144
30f48431927b Initial revision
claus
parents:
diff changeset
   145
initialize
30f48431927b Initial revision
claus
parents:
diff changeset
   146
    |panel|
30f48431927b Initial revision
claus
parents:
diff changeset
   147
30f48431927b Initial revision
claus
parents:
diff changeset
   148
    super initialize.
30f48431927b Initial revision
claus
parents:
diff changeset
   149
30f48431927b Initial revision
claus
parents:
diff changeset
   150
    textView1 := TextView origin:0.0 @ 0.0
24
6704fad5eb7d *** empty log message ***
claus
parents: 14
diff changeset
   151
			  corner:0.5 @ 1.0
6704fad5eb7d *** empty log message ***
claus
parents: 14
diff changeset
   152
			      in:self.
12
30f48431927b Initial revision
claus
parents:
diff changeset
   153
30f48431927b Initial revision
claus
parents:
diff changeset
   154
    textView1 borderWidth:1.
30f48431927b Initial revision
claus
parents:
diff changeset
   155
    textView1 level:0. 
30f48431927b Initial revision
claus
parents:
diff changeset
   156
30f48431927b Initial revision
claus
parents:
diff changeset
   157
    textView2 := TextView origin:0.5 @ 0.0
24
6704fad5eb7d *** empty log message ***
claus
parents: 14
diff changeset
   158
			  corner:1.0 @ 1.0
6704fad5eb7d *** empty log message ***
claus
parents: 14
diff changeset
   159
			      in:self.
12
30f48431927b Initial revision
claus
parents:
diff changeset
   160
30f48431927b Initial revision
claus
parents:
diff changeset
   161
    textView2 borderWidth:1.
30f48431927b Initial revision
claus
parents:
diff changeset
   162
    textView2 level:0. 
30f48431927b Initial revision
claus
parents:
diff changeset
   163
30f48431927b Initial revision
claus
parents:
diff changeset
   164
    "
30f48431927b Initial revision
claus
parents:
diff changeset
   165
     |v|
30f48431927b Initial revision
claus
parents:
diff changeset
   166
30f48431927b Initial revision
claus
parents:
diff changeset
   167
     v := HVScrollableView for:TwoColumnTextView.
30f48431927b Initial revision
claus
parents:
diff changeset
   168
     v scrolledView text1:('smalltalk.rc' asFilename readStream contents)
24
6704fad5eb7d *** empty log message ***
claus
parents: 14
diff changeset
   169
		    text2:('smalltalk_r.rc' asFilename readStream contents).
12
30f48431927b Initial revision
claus
parents:
diff changeset
   170
     v open
30f48431927b Initial revision
claus
parents:
diff changeset
   171
    "
30f48431927b Initial revision
claus
parents:
diff changeset
   172
! !
30f48431927b Initial revision
claus
parents:
diff changeset
   173
30f48431927b Initial revision
claus
parents:
diff changeset
   174
!TwoColumnTextView methodsFor:'accessing'!
30f48431927b Initial revision
claus
parents:
diff changeset
   175
30f48431927b Initial revision
claus
parents:
diff changeset
   176
text1:t1 text2:t2
30f48431927b Initial revision
claus
parents:
diff changeset
   177
    textView1 list:t1 asText.
30f48431927b Initial revision
claus
parents:
diff changeset
   178
    textView2 list:t2 asText.
30f48431927b Initial revision
claus
parents:
diff changeset
   179
! !