TwoColumnTextView.st
author claus
Wed, 03 May 1995 02:43:15 +0200
changeset 49 4dd0f5c3353e
parent 34 159147b254e1
child 64 10910b8b003a
permissions -rw-r--r--
.
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
49
claus
parents: 34
diff changeset
    13
SimpleView 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
49
claus
parents: 34
diff changeset
    24
$Header: /cvs/stx/stx/libwidg2/TwoColumnTextView.st,v 1.5 1995-05-03 00:42:17 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
"
34
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
    43
!
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
    44
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
    45
copyright
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
    46
"
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
    47
 COPYRIGHT (c) 1994 by Claus Gittinger
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
    48
	      All Rights Reserved
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
    49
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
    50
 This software is furnished under a license and may be used
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
    51
 only in accordance with the terms of that license and with the
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
    52
 inclusion of the above copyright notice.   This software may not
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
    53
 be provided or otherwise made available to, or used by, any
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
    54
 other person.  No title to or ownership of the software is
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
    55
 hereby transferred.
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
    56
"
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
    57
!
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
    58
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
    59
version
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
    60
"
49
claus
parents: 34
diff changeset
    61
$Header: /cvs/stx/stx/libwidg2/TwoColumnTextView.st,v 1.5 1995-05-03 00:42:17 claus Exp $
34
159147b254e1 *** empty log message ***
claus
parents: 24
diff changeset
    62
"
12
30f48431927b Initial revision
claus
parents:
diff changeset
    63
! !
30f48431927b Initial revision
claus
parents:
diff changeset
    64
30f48431927b Initial revision
claus
parents:
diff changeset
    65
!TwoColumnTextView class methodsFor:'instance creation'!
30f48431927b Initial revision
claus
parents:
diff changeset
    66
30f48431927b Initial revision
claus
parents:
diff changeset
    67
openOn:firstText and:secondText
24
6704fad5eb7d *** empty log message ***
claus
parents: 14
diff changeset
    68
    "open up a view showing firstText and secondText side-by-side"
12
30f48431927b Initial revision
claus
parents:
diff changeset
    69
30f48431927b Initial revision
claus
parents:
diff changeset
    70
     |top v|
30f48431927b Initial revision
claus
parents:
diff changeset
    71
30f48431927b Initial revision
claus
parents:
diff changeset
    72
     top := StandardSystemView label:'differences'.
24
6704fad5eb7d *** empty log message ***
claus
parents: 14
diff changeset
    73
     v := HVScrollableView 
6704fad5eb7d *** empty log message ***
claus
parents: 14
diff changeset
    74
		for:self 
6704fad5eb7d *** empty log message ***
claus
parents: 14
diff changeset
    75
		miniScrollerH:true miniScrollerV:false
6704fad5eb7d *** empty log message ***
claus
parents: 14
diff changeset
    76
		in:top.
12
30f48431927b Initial revision
claus
parents:
diff changeset
    77
     v origin:0.0 @ 0.0 corner:1.0 @ 1.0.
30f48431927b Initial revision
claus
parents:
diff changeset
    78
     v scrolledView text1:firstText text2:secondText.
30f48431927b Initial revision
claus
parents:
diff changeset
    79
     ^ top open
30f48431927b Initial revision
claus
parents:
diff changeset
    80
! !
30f48431927b Initial revision
claus
parents:
diff changeset
    81
30f48431927b Initial revision
claus
parents:
diff changeset
    82
!TwoColumnTextView methodsFor:'queries'!
30f48431927b Initial revision
claus
parents:
diff changeset
    83
30f48431927b Initial revision
claus
parents:
diff changeset
    84
heightOfContents
30f48431927b Initial revision
claus
parents:
diff changeset
    85
    ^ textView1 heightOfContents
30f48431927b Initial revision
claus
parents:
diff changeset
    86
!
30f48431927b Initial revision
claus
parents:
diff changeset
    87
30f48431927b Initial revision
claus
parents:
diff changeset
    88
widthOfContents
30f48431927b Initial revision
claus
parents:
diff changeset
    89
    ^ textView1 widthOfContents
30f48431927b Initial revision
claus
parents:
diff changeset
    90
!
30f48431927b Initial revision
claus
parents:
diff changeset
    91
30f48431927b Initial revision
claus
parents:
diff changeset
    92
xOriginOfContents
30f48431927b Initial revision
claus
parents:
diff changeset
    93
    ^ textView1 xOriginOfContents
30f48431927b Initial revision
claus
parents:
diff changeset
    94
!
30f48431927b Initial revision
claus
parents:
diff changeset
    95
30f48431927b Initial revision
claus
parents:
diff changeset
    96
yOriginOfContents
30f48431927b Initial revision
claus
parents:
diff changeset
    97
    ^ textView1 yOriginOfContents
30f48431927b Initial revision
claus
parents:
diff changeset
    98
!
30f48431927b Initial revision
claus
parents:
diff changeset
    99
30f48431927b Initial revision
claus
parents:
diff changeset
   100
innerWidth
30f48431927b Initial revision
claus
parents:
diff changeset
   101
    ^ textView1 innerWidth
30f48431927b Initial revision
claus
parents:
diff changeset
   102
!
30f48431927b Initial revision
claus
parents:
diff changeset
   103
30f48431927b Initial revision
claus
parents:
diff changeset
   104
innerHeight
30f48431927b Initial revision
claus
parents:
diff changeset
   105
    ^ textView1 innerHeight
30f48431927b Initial revision
claus
parents:
diff changeset
   106
! !
30f48431927b Initial revision
claus
parents:
diff changeset
   107
30f48431927b Initial revision
claus
parents:
diff changeset
   108
!TwoColumnTextView methodsFor:'scrolling'!
30f48431927b Initial revision
claus
parents:
diff changeset
   109
30f48431927b Initial revision
claus
parents:
diff changeset
   110
scrollVerticalToPercent:p
30f48431927b Initial revision
claus
parents:
diff changeset
   111
    textView1 scrollVerticalToPercent:p.
30f48431927b Initial revision
claus
parents:
diff changeset
   112
    textView2 scrollToLine:textView1 firstLineShown.
30f48431927b Initial revision
claus
parents:
diff changeset
   113
!
30f48431927b Initial revision
claus
parents:
diff changeset
   114
30f48431927b Initial revision
claus
parents:
diff changeset
   115
scrollDown:nLines
30f48431927b Initial revision
claus
parents:
diff changeset
   116
    textView1 scrollDown:nLines.
30f48431927b Initial revision
claus
parents:
diff changeset
   117
    textView2 scrollDown:nLines
30f48431927b Initial revision
claus
parents:
diff changeset
   118
!
30f48431927b Initial revision
claus
parents:
diff changeset
   119
30f48431927b Initial revision
claus
parents:
diff changeset
   120
scrollDown
30f48431927b Initial revision
claus
parents:
diff changeset
   121
    self scrollDown:1.
30f48431927b Initial revision
claus
parents:
diff changeset
   122
!
30f48431927b Initial revision
claus
parents:
diff changeset
   123
30f48431927b Initial revision
claus
parents:
diff changeset
   124
scrollUp
30f48431927b Initial revision
claus
parents:
diff changeset
   125
    self scrollUp:1.
30f48431927b Initial revision
claus
parents:
diff changeset
   126
!
30f48431927b Initial revision
claus
parents:
diff changeset
   127
30f48431927b Initial revision
claus
parents:
diff changeset
   128
scrollUp:nLines
30f48431927b Initial revision
claus
parents:
diff changeset
   129
    textView1 scrollUp:nLines.
30f48431927b Initial revision
claus
parents:
diff changeset
   130
    textView2 scrollUp:nLines
30f48431927b Initial revision
claus
parents:
diff changeset
   131
!
30f48431927b Initial revision
claus
parents:
diff changeset
   132
30f48431927b Initial revision
claus
parents:
diff changeset
   133
scrollLeft:nPixels
30f48431927b Initial revision
claus
parents:
diff changeset
   134
    textView1 scrollLeft:nPixels.
30f48431927b Initial revision
claus
parents:
diff changeset
   135
    textView2 scrollLeft:nPixels
30f48431927b Initial revision
claus
parents:
diff changeset
   136
!
30f48431927b Initial revision
claus
parents:
diff changeset
   137
30f48431927b Initial revision
claus
parents:
diff changeset
   138
scrollRight:nPixels
30f48431927b Initial revision
claus
parents:
diff changeset
   139
    textView1 scrollRight:nPixels.
30f48431927b Initial revision
claus
parents:
diff changeset
   140
    textView2 scrollRight:nPixels
30f48431927b Initial revision
claus
parents:
diff changeset
   141
!
30f48431927b Initial revision
claus
parents:
diff changeset
   142
30f48431927b Initial revision
claus
parents:
diff changeset
   143
scrollRight
30f48431927b Initial revision
claus
parents:
diff changeset
   144
    textView1 scrollRight.
30f48431927b Initial revision
claus
parents:
diff changeset
   145
    textView2 scrollRight
30f48431927b Initial revision
claus
parents:
diff changeset
   146
!
30f48431927b Initial revision
claus
parents:
diff changeset
   147
30f48431927b Initial revision
claus
parents:
diff changeset
   148
scrollToLine:lineNr
30f48431927b Initial revision
claus
parents:
diff changeset
   149
    textView1 scrollToLine:lineNr.
30f48431927b Initial revision
claus
parents:
diff changeset
   150
    textView2 scrollToLine:lineNr
30f48431927b Initial revision
claus
parents:
diff changeset
   151
!
30f48431927b Initial revision
claus
parents:
diff changeset
   152
30f48431927b Initial revision
claus
parents:
diff changeset
   153
scrollHorizontalToPercent:p
30f48431927b Initial revision
claus
parents:
diff changeset
   154
    textView1 scrollHorizontalToPercent:p.
30f48431927b Initial revision
claus
parents:
diff changeset
   155
    textView2 scrollHorizontalTo:textView1 xOriginOfContents.
30f48431927b Initial revision
claus
parents:
diff changeset
   156
!
30f48431927b Initial revision
claus
parents:
diff changeset
   157
30f48431927b Initial revision
claus
parents:
diff changeset
   158
scrollLeft
30f48431927b Initial revision
claus
parents:
diff changeset
   159
    textView1 scrollLeft.
30f48431927b Initial revision
claus
parents:
diff changeset
   160
    textView2 scrollLeft
30f48431927b Initial revision
claus
parents:
diff changeset
   161
! !
30f48431927b Initial revision
claus
parents:
diff changeset
   162
30f48431927b Initial revision
claus
parents:
diff changeset
   163
!TwoColumnTextView methodsFor:'initialization'!
30f48431927b Initial revision
claus
parents:
diff changeset
   164
30f48431927b Initial revision
claus
parents:
diff changeset
   165
initialize
30f48431927b Initial revision
claus
parents:
diff changeset
   166
    |panel|
30f48431927b Initial revision
claus
parents:
diff changeset
   167
30f48431927b Initial revision
claus
parents:
diff changeset
   168
    super initialize.
30f48431927b Initial revision
claus
parents:
diff changeset
   169
30f48431927b Initial revision
claus
parents:
diff changeset
   170
    textView1 := TextView origin:0.0 @ 0.0
24
6704fad5eb7d *** empty log message ***
claus
parents: 14
diff changeset
   171
			  corner:0.5 @ 1.0
6704fad5eb7d *** empty log message ***
claus
parents: 14
diff changeset
   172
			      in:self.
12
30f48431927b Initial revision
claus
parents:
diff changeset
   173
30f48431927b Initial revision
claus
parents:
diff changeset
   174
    textView1 borderWidth:1.
30f48431927b Initial revision
claus
parents:
diff changeset
   175
    textView1 level:0. 
30f48431927b Initial revision
claus
parents:
diff changeset
   176
30f48431927b Initial revision
claus
parents:
diff changeset
   177
    textView2 := TextView origin:0.5 @ 0.0
24
6704fad5eb7d *** empty log message ***
claus
parents: 14
diff changeset
   178
			  corner:1.0 @ 1.0
6704fad5eb7d *** empty log message ***
claus
parents: 14
diff changeset
   179
			      in:self.
12
30f48431927b Initial revision
claus
parents:
diff changeset
   180
30f48431927b Initial revision
claus
parents:
diff changeset
   181
    textView2 borderWidth:1.
30f48431927b Initial revision
claus
parents:
diff changeset
   182
    textView2 level:0. 
30f48431927b Initial revision
claus
parents:
diff changeset
   183
30f48431927b Initial revision
claus
parents:
diff changeset
   184
    "
30f48431927b Initial revision
claus
parents:
diff changeset
   185
     |v|
30f48431927b Initial revision
claus
parents:
diff changeset
   186
30f48431927b Initial revision
claus
parents:
diff changeset
   187
     v := HVScrollableView for:TwoColumnTextView.
30f48431927b Initial revision
claus
parents:
diff changeset
   188
     v scrolledView text1:('smalltalk.rc' asFilename readStream contents)
24
6704fad5eb7d *** empty log message ***
claus
parents: 14
diff changeset
   189
		    text2:('smalltalk_r.rc' asFilename readStream contents).
12
30f48431927b Initial revision
claus
parents:
diff changeset
   190
     v open
30f48431927b Initial revision
claus
parents:
diff changeset
   191
    "
30f48431927b Initial revision
claus
parents:
diff changeset
   192
! !
30f48431927b Initial revision
claus
parents:
diff changeset
   193
30f48431927b Initial revision
claus
parents:
diff changeset
   194
!TwoColumnTextView methodsFor:'accessing'!
30f48431927b Initial revision
claus
parents:
diff changeset
   195
30f48431927b Initial revision
claus
parents:
diff changeset
   196
text1:t1 text2:t2
30f48431927b Initial revision
claus
parents:
diff changeset
   197
    textView1 list:t1 asText.
30f48431927b Initial revision
claus
parents:
diff changeset
   198
    textView2 list:t2 asText.
30f48431927b Initial revision
claus
parents:
diff changeset
   199
! !