ScrollableView.st
author Stefan Vogel <sv@exept.de>
Mon, 05 Aug 1996 13:49:43 +0200
changeset 819 32ac89843fa8
parent 814 5b80bc44f52b
child 852 3d828d54ebee
permissions -rw-r--r--
Send only one scroll message for horizontal and vertical scroll on size changes of HVScrollableView.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     1
"
5
claus
parents: 3
diff changeset
     2
 COPYRIGHT (c) 1989 by Claus Gittinger
59
450ce95a72a4 *** empty log message ***
claus
parents: 53
diff changeset
     3
	      All Rights Reserved
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     4
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     5
 This software is furnished under a license and may be used
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    10
 hereby transferred.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    11
"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    12
119
claus
parents: 113
diff changeset
    13
SimpleView subclass:#ScrollableView
444
ef26eba8c854 added style resource directive
Claus Gittinger <cg@exept.de>
parents: 300
diff changeset
    14
	instanceVariableNames:'scrolledView scrollBar helpView innerMargin scrollBarPosition
248
c58fabf73c35 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 217
diff changeset
    15
		lockUpdates'
444
ef26eba8c854 added style resource directive
Claus Gittinger <cg@exept.de>
parents: 300
diff changeset
    16
	classVariableNames:'DefaultScrolledViewLevel'
ef26eba8c854 added style resource directive
Claus Gittinger <cg@exept.de>
parents: 300
diff changeset
    17
	poolDictionaries:''
ef26eba8c854 added style resource directive
Claus Gittinger <cg@exept.de>
parents: 300
diff changeset
    18
	category:'Views-Basic'
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    19
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    20
799
64f8700489a4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 754
diff changeset
    21
!ScrollableView  class methodsFor:'documentation'!
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
    22
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
    23
copyright
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
    24
"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
    25
 COPYRIGHT (c) 1989 by Claus Gittinger
59
450ce95a72a4 *** empty log message ***
claus
parents: 53
diff changeset
    26
	      All Rights Reserved
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
    27
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
    28
 This software is furnished under a license and may be used
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
    29
 only in accordance with the terms of that license and with the
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
    30
 inclusion of the above copyright notice.   This software may not
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
    31
 be provided or otherwise made available to, or used by, any
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
    32
 other person.  No title to or ownership of the software is
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
    33
 hereby transferred.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
    34
"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
    35
!
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
    36
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
    37
documentation
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
    38
"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
    39
    a view containing a scrollbar and some other (slave-)view.
130
claus
parents: 122
diff changeset
    40
    This view wraps scrollbar(s) around the view to be scrolled.
65
b33e4f3a264e *** empty log message ***
claus
parents: 63
diff changeset
    41
    The scrollbars are setup to send scrollUp/scrollDown/scrollVerticalTo
b33e4f3a264e *** empty log message ***
claus
parents: 63
diff changeset
    42
    and scrollLeft/scrollRight/scrollHorizontalTo- messages whenever moved.
130
claus
parents: 122
diff changeset
    43
    The view itself has to implement these (there is a default implementation
65
b33e4f3a264e *** empty log message ***
claus
parents: 63
diff changeset
    44
    in the common View class for this.
b33e4f3a264e *** empty log message ***
claus
parents: 63
diff changeset
    45
b33e4f3a264e *** empty log message ***
claus
parents: 63
diff changeset
    46
    For the scrollbars to know about the full (maximum) size, the view
b33e4f3a264e *** empty log message ***
claus
parents: 63
diff changeset
    47
    must implement #heightOfContents and/or #widthOfContents.
130
claus
parents: 122
diff changeset
    48
    The values returned by these methods are used to compute the fraction
claus
parents: 122
diff changeset
    49
    which is visible (i.e. the scrollers thumb heights).
65
b33e4f3a264e *** empty log message ***
claus
parents: 63
diff changeset
    50
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
    51
    There are two ways to create a ScrollableView:
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
    52
    if the type of the view to be scrolled is known in advance,
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
    53
    use:
584
e3b11115fc18 documentation
Claus Gittinger <cg@exept.de>
parents: 572
diff changeset
    54
        v := ScrollableView for:<ViewClass>
130
claus
parents: 122
diff changeset
    55
    or:
584
e3b11115fc18 documentation
Claus Gittinger <cg@exept.de>
parents: 572
diff changeset
    56
        v := ScrollableView for:<ViewClass> in:someSuperView
65
b33e4f3a264e *** empty log message ***
claus
parents: 63
diff changeset
    57
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
    58
    otherwise, create the scrollableView empty with:
130
claus
parents: 122
diff changeset
    59
584
e3b11115fc18 documentation
Claus Gittinger <cg@exept.de>
parents: 572
diff changeset
    60
        v := ScrollableView new
130
claus
parents: 122
diff changeset
    61
    or:
584
e3b11115fc18 documentation
Claus Gittinger <cg@exept.de>
parents: 572
diff changeset
    62
        v := ScrollableView in:someSuperView
130
claus
parents: 122
diff changeset
    63
65
b33e4f3a264e *** empty log message ***
claus
parents: 63
diff changeset
    64
    and define the view later with:
130
claus
parents: 122
diff changeset
    65
584
e3b11115fc18 documentation
Claus Gittinger <cg@exept.de>
parents: 572
diff changeset
    66
        v scrolledView:aViewToBeScrolled
65
b33e4f3a264e *** empty log message ***
claus
parents: 63
diff changeset
    67
130
claus
parents: 122
diff changeset
    68
    Finally, if the view to be scrolled has been already created,
claus
parents: 122
diff changeset
    69
    use:
claus
parents: 122
diff changeset
    70
584
e3b11115fc18 documentation
Claus Gittinger <cg@exept.de>
parents: 572
diff changeset
    71
        v := ScrollableView forView:aViewToBeScrolled
130
claus
parents: 122
diff changeset
    72
    or:    
584
e3b11115fc18 documentation
Claus Gittinger <cg@exept.de>
parents: 572
diff changeset
    73
        v := ScrollableView forView:aViewToBeScrolled in:someSuperView
65
b33e4f3a264e *** empty log message ***
claus
parents: 63
diff changeset
    74
130
claus
parents: 122
diff changeset
    75
    It is also possible to change the scrolledView later (even multiple times).
claus
parents: 122
diff changeset
    76
    This may be useful, if different views are needed to display different types
claus
parents: 122
diff changeset
    77
    of data (see example2) and at creation time, it is not known what type
claus
parents: 122
diff changeset
    78
    of view is required (multimedia applications).
claus
parents: 122
diff changeset
    79
claus
parents: 122
diff changeset
    80
    If you want to scroll views (instead of a views contents), you need a 
claus
parents: 122
diff changeset
    81
    companion class (ViewScroller). See the documentation there.
65
b33e4f3a264e *** empty log message ***
claus
parents: 63
diff changeset
    82
b33e4f3a264e *** empty log message ***
claus
parents: 63
diff changeset
    83
    If you need horizontal scrolling too, use an instance of HVScrollableView.
113
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
    84
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
    85
    By default, scrollbars are full size scrollbars - for horizontal scrolling
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
    86
    (which is less often used), scrollableViews can optionally be created with
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
    87
    miniscrollers which take up less screen space.
130
claus
parents: 122
diff changeset
    88
claus
parents: 122
diff changeset
    89
    TODO:
584
e3b11115fc18 documentation
Claus Gittinger <cg@exept.de>
parents: 572
diff changeset
    90
        this is pretty old and needs a rewrite. There are quite some
e3b11115fc18 documentation
Claus Gittinger <cg@exept.de>
parents: 572
diff changeset
    91
        historic leftovers found here and things can be done better
e3b11115fc18 documentation
Claus Gittinger <cg@exept.de>
parents: 572
diff changeset
    92
        (especially in initializeFor...)
e3b11115fc18 documentation
Claus Gittinger <cg@exept.de>
parents: 572
diff changeset
    93
e3b11115fc18 documentation
Claus Gittinger <cg@exept.de>
parents: 572
diff changeset
    94
        Also, it should be rewritten into one class which supports both
e3b11115fc18 documentation
Claus Gittinger <cg@exept.de>
parents: 572
diff changeset
    95
        Vertical-only, Horizontal-only and HV scrolling.
e3b11115fc18 documentation
Claus Gittinger <cg@exept.de>
parents: 572
diff changeset
    96
        Currently, horizontal-only scrolling is not available.
e3b11115fc18 documentation
Claus Gittinger <cg@exept.de>
parents: 572
diff changeset
    97
        (you have to write your own class ...)
130
claus
parents: 122
diff changeset
    98
584
e3b11115fc18 documentation
Claus Gittinger <cg@exept.de>
parents: 572
diff changeset
    99
        Finally, some means to hide scrollbars should be added - this would
e3b11115fc18 documentation
Claus Gittinger <cg@exept.de>
parents: 572
diff changeset
   100
        give more screenspace to the view when all is visible 
e3b11115fc18 documentation
Claus Gittinger <cg@exept.de>
parents: 572
diff changeset
   101
        (and therefore, the scrollbars are not needed, anyway)
e3b11115fc18 documentation
Claus Gittinger <cg@exept.de>
parents: 572
diff changeset
   102
e3b11115fc18 documentation
Claus Gittinger <cg@exept.de>
parents: 572
diff changeset
   103
        Expect the above things to be fixed in an upcoming version.
130
claus
parents: 122
diff changeset
   104
584
e3b11115fc18 documentation
Claus Gittinger <cg@exept.de>
parents: 572
diff changeset
   105
    [author:]
e3b11115fc18 documentation
Claus Gittinger <cg@exept.de>
parents: 572
diff changeset
   106
        Claus Gittinger
130
claus
parents: 122
diff changeset
   107
584
e3b11115fc18 documentation
Claus Gittinger <cg@exept.de>
parents: 572
diff changeset
   108
    [see also:]
e3b11115fc18 documentation
Claus Gittinger <cg@exept.de>
parents: 572
diff changeset
   109
        ScrollBar Scroller
e3b11115fc18 documentation
Claus Gittinger <cg@exept.de>
parents: 572
diff changeset
   110
         HVScrollableView
63
f4eaf04d1eaf *** empty log message ***
claus
parents: 59
diff changeset
   111
"
f4eaf04d1eaf *** empty log message ***
claus
parents: 59
diff changeset
   112
!
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
   113
63
f4eaf04d1eaf *** empty log message ***
claus
parents: 59
diff changeset
   114
examples
f4eaf04d1eaf *** empty log message ***
claus
parents: 59
diff changeset
   115
"
65
b33e4f3a264e *** empty log message ***
claus
parents: 63
diff changeset
   116
    example1 (simple scrolled text):
591
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   117
                                                                        [exBegin]
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   118
        |top scr txt|
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   119
591
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   120
        top := StandardSystemView label:'scroll example1'.
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   121
        top extent:200@100.
113
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   122
591
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   123
        scr := ScrollableView for:EditTextView in:top.
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   124
        scr origin:0.0@0.0 corner:1.0@1.0.
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   125
        txt := scr scrolledView.
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
   126
591
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   127
        txt list:#('line1'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   128
                   'line2'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   129
                   'line3'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   130
                   'line4'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   131
                   'line5'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   132
                   'line7'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   133
                   'line8'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   134
                   'line9'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   135
                   'line10'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   136
                  ).
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   137
        top open
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   138
                                                                        [exEnd]
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
   139
65
b33e4f3a264e *** empty log message ***
claus
parents: 63
diff changeset
   140
b33e4f3a264e *** empty log message ***
claus
parents: 63
diff changeset
   141
    example2 (changing the scrolledView later):
591
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   142
                                                                        [exBegin]
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   143
        |top scr txtView1 txtView2 browserView|
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
   144
591
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   145
        top := StandardSystemView label:'scroll example2'.
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   146
        top extent:300@100.
113
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   147
591
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   148
        scr := ScrollableView in:top.
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   149
        scr origin:0.0@0.0 corner:1.0@1.0.
113
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   150
591
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   151
        top open.
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   152
591
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   153
        (Delay forSeconds:5) wait.
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
   154
591
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   155
        txtView1 := EditTextView new.
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   156
        txtView1 list:#(
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   157
                        'wait 5 seconds to see the other text'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   158
                        'line2'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   159
                        'line3'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   160
                        'line4'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   161
                        'line5'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   162
                        'line7'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   163
                        'line8'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   164
                        'line9'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   165
                        'line10'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   166
                  ).
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   167
        scr scrolledView:txtView1.
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
   168
591
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   169
        (Delay forSeconds:5) wait.
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
   170
591
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   171
        txtView2 := EditTextView new.
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   172
        txtView2 list:#('this is the other views text' 
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   173
                        'alternative line2'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   174
                        'alternative line3'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   175
                        'alternative line4'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   176
                        'alternative line5'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   177
                        'alternative line6').
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   178
        scr scrolledView:txtView2.
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   179
                                                                        [exEnd]
113
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   180
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   181
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   182
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   183
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   184
    example3 (using a miniscroller):
591
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   185
                                                                        [exBegin]
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   186
        |top scr txt|
113
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   187
591
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   188
        top := StandardSystemView label:'scroll example3'.
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   189
        top extent:200@100.
113
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   190
591
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   191
        scr := ScrollableView for:EditTextView miniScroller:true in:top.
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   192
        scr origin:0.0@0.0 corner:1.0@1.0.
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   193
        txt := scr scrolledView.
113
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   194
591
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   195
        txt list:#('line1'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   196
                   'line2'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   197
                   'line3'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   198
                   'line4'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   199
                   'line5'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   200
                   'line7'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   201
                   'line8'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   202
                   'line9'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   203
                   'line10'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   204
                  ).
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   205
        top open
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   206
                                                                        [exEnd]
113
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   207
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   208
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   209
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   210
    example4 (scrolling in both directions):
591
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   211
                                                                        [exBegin]
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   212
        |top scr txt|
113
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   213
591
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   214
        top := StandardSystemView label:'scroll example4'.
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   215
        top extent:200@100.
113
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   216
591
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   217
        scr := HVScrollableView for:EditTextView in:top.
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   218
        scr origin:0.0@0.0 corner:1.0@1.0.
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   219
        txt := scr scrolledView.
113
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   220
591
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   221
        txt list:#('line1'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   222
                   'line2'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   223
                   'line3'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   224
                   'line4'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   225
                   'line5'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   226
                   'line7'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   227
                   'line8'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   228
                   'line9'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   229
                   'line10'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   230
                  ).
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   231
        top open
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   232
                                                                        [exEnd]
113
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   233
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   234
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   235
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   236
    example5 (using a full scroller vertically, miniscroller horizontally):
591
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   237
                                                                        [exBegin]
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   238
        |top scr txt|
113
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   239
591
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   240
        top := StandardSystemView label:'scroll example5'.
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   241
        top extent:200@100.
113
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   242
591
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   243
        scr := HVScrollableView for:EditTextView miniScrollerH:true in:top.
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   244
        scr origin:0.0@0.0 corner:1.0@1.0.
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   245
        txt := scr scrolledView.
113
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   246
591
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   247
        txt list:#('line1'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   248
                   'line2'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   249
                   'line3'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   250
                   'line4'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   251
                   'line5'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   252
                   'line7'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   253
                   'line8'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   254
                   'line9'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   255
                   'line10'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   256
                  ).
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   257
        top open
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   258
                                                                        [exEnd]
113
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   259
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   260
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   261
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   262
    example6 (using miniscrollers for both directions ):
591
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   263
                                                                        [exBegin]
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   264
        |top scr txt|
113
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   265
591
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   266
        top := StandardSystemView label:'scroll example6'.
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   267
        top extent:200@100.
113
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   268
591
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   269
        scr := HVScrollableView for:EditTextView miniScroller:true in:top.
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   270
        scr origin:0.0@0.0 corner:1.0@1.0.
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   271
        txt := scr scrolledView.
113
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   272
591
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   273
        txt list:#('line1'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   274
                   'line2'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   275
                   'line3'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   276
                   'line4'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   277
                   'line5'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   278
                   'line7'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   279
                   'line8'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   280
                   'line9'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   281
                   'line10'
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   282
                  ).
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   283
        top open
c746e5229f3d examples
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   284
                                                                        [exEnd]
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
   285
"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
   286
! !
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   287
799
64f8700489a4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 754
diff changeset
   288
!ScrollableView  class methodsFor:'instance creation'!
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   289
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   290
for:aViewClass
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   291
    "return a new scrolling view scrolling an instance of aViewClass.
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   292
     The subview is created here.
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   293
     The view will have full scrollbars."
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   294
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   295
    ^ self for:aViewClass miniScrollerH:false miniScrollerV:false in:nil
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   296
!
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   297
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   298
for:aViewClass in:aView
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   299
    "return a new scrolling view scrolling an instance of aViewClass.
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   300
     The subview is created here.
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   301
     The view will have full scrollbars."
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   302
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   303
    ^ self for:aViewClass miniScrollerH:false miniScrollerV:false in:aView
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   304
!
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   305
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   306
for:aViewClass miniScroller:mini
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   307
    "return a new scrolling view scrolling an instance of aViewClass.
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   308
     The subview is created here.
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   309
     The view will have full scrollbars if mini is false, miniscrollers
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   310
     if true."
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   311
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   312
    ^ self for:aViewClass miniScrollerH:mini miniScrollerV:mini in:nil 
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   313
!
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   314
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   315
for:aViewClass miniScroller:mini in:aView
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   316
    "return a new scrolling view scrolling an instance of aViewClass.
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   317
     The subview is created here.
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   318
     The view will have full scrollbars if mini is false, miniscrollers
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   319
     if true."
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   320
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   321
    ^ self for:aViewClass miniScrollerH:mini miniScrollerV:mini in:aView 
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   322
!
153
claus
parents: 132
diff changeset
   323
546
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   324
for:aViewClass miniScroller:mini origin:org corner:corn in:aView
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   325
    "return a new scrolling view scrolling an instance of aViewClass.
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   326
     The subview is created here.
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   327
     The view will have full scrollbars if mini is false, miniscrollers
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   328
     if true."
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   329
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   330
    ^ self for:aViewClass miniScrollerH:mini miniScrollerV:mini origin:org corner:corn in:aView
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   331
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   332
    "Created: 18.4.1996 / 14:31:41 / cg"
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   333
!
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   334
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   335
for:aViewClass miniScrollerH:miniH
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   336
    "return a new scrolling view scrolling an instance of aViewClass.
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   337
     The subview is created here.
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   338
     The view will have full scrollbars if miniH is false, 
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   339
     and a horizontal miniscroller if true."
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   340
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   341
    ^ self for:aViewClass miniScrollerH:miniH miniScrollerV:false in:nil
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   342
!
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   343
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   344
for:aViewClass miniScrollerH:miniH in:aView
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   345
    "return a new scrolling view scrolling an instance of aViewClass.
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   346
     The subview is created here.
546
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   347
     The view will have full scrollbars if the corresponding miniH/miniV
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   348
     is false, miniscrollers if true."
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   349
546
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   350
    ^ self for:aViewClass miniScrollerH:miniH miniScrollerV:false in:aView
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   351
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   352
    "Modified: 18.4.1996 / 14:29:23 / cg"
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   353
!
153
claus
parents: 132
diff changeset
   354
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   355
for:aViewClass miniScrollerH:miniH miniScrollerV:miniV
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   356
    "return a new scrolling view scrolling an instance of aViewClass.
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   357
     The subview is created here.
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   358
     The view will have full scrollbars if the corresponding miniH/miniV
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   359
     is false, miniscrollers if true."
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   360
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   361
    ^ self for:aViewClass miniScrollerH:miniH miniScrollerV:miniV in:nil
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   362
!
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   363
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   364
for:aViewClass miniScrollerH:miniH miniScrollerV:miniV in:aView
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   365
    "return a new scrolling view scrolling an instance of aViewClass.
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   366
     The subview is created here.
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   367
     The view will have full scrollbars if the corresponding miniH/miniV
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   368
     is false, miniscrollers if true."
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   369
300
0823ef38e629 adding/removing views to Panels
ah
parents: 248
diff changeset
   370
    |newView dev|
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   371
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   372
    aView notNil ifTrue:[
703
8889152157c9 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 678
diff changeset
   373
        dev := aView graphicsDevice
300
0823ef38e629 adding/removing views to Panels
ah
parents: 248
diff changeset
   374
    ] ifFalse:[ 
703
8889152157c9 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 678
diff changeset
   375
        dev := Screen current
300
0823ef38e629 adding/removing views to Panels
ah
parents: 248
diff changeset
   376
    ].
0823ef38e629 adding/removing views to Panels
ah
parents: 248
diff changeset
   377
    newView := self basicNew device:dev.
0823ef38e629 adding/removing views to Panels
ah
parents: 248
diff changeset
   378
    newView initializeFor:aViewClass miniScrollerH:miniH miniScrollerV:miniV.
0823ef38e629 adding/removing views to Panels
ah
parents: 248
diff changeset
   379
    aView notNil ifTrue:[
703
8889152157c9 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 678
diff changeset
   380
        aView addSubView:newView
153
claus
parents: 132
diff changeset
   381
    ].
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   382
    ^ newView
703
8889152157c9 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 678
diff changeset
   383
8889152157c9 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 678
diff changeset
   384
    "Modified: 28.5.1996 / 20:23:46 / cg"
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   385
!
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   386
546
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   387
for:aViewClass miniScrollerH:miniH miniScrollerV:miniV origin:org corner:corn in:aView
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   388
    "return a new scrolling view scrolling an instance of aViewClass.
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   389
     The subview is created here.
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   390
     The view will have full scrollbars if the corresponding miniH/miniV
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   391
     is false, miniscrollers if true."
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   392
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   393
    |newView|
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   394
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   395
    newView := self for:aViewClass miniScrollerH:miniH miniScrollerV:miniV in:aView.
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   396
    newView origin:org corner:corn.
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   397
    ^ newView
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   398
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   399
    "Created: 18.4.1996 / 11:41:05 / cg"
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   400
    "Modified: 18.4.1996 / 14:27:39 / cg"
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   401
!
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   402
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   403
for:aViewClass miniScrollerH:miniH origin:org corner:corn in:aView
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   404
    "return a new scrolling view scrolling an instance of aViewClass.
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   405
     The subview is created here.
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   406
     The view will have a full horizontal scrollbar if miniH is false,
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   407
     a miniscroller if true."
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   408
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   409
    ^ self for:aViewClass miniScrollerH:miniH miniScrollerV:false origin:org corner:corn in:aView
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   410
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   411
    "Modified: 18.4.1996 / 14:32:07 / cg"
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   412
!
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   413
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   414
for:aViewClass miniScrollerV:miniV origin:org corner:corn in:aView
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   415
    "return a new scrolling view scrolling an instance of aViewClass.
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   416
     The subview is created here.
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   417
     The view will have a full vertical scrollbar if miniV is false,
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   418
     a miniscroller if true."
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   419
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   420
    ^ self for:aViewClass miniScrollerH:false miniScrollerV:miniV origin:org corner:corn in:aView
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   421
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   422
    "Created: 18.4.1996 / 14:30:57 / cg"
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   423
    "Modified: 18.4.1996 / 14:32:21 / cg"
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   424
!
b643875bda30 more inst creation variations
Claus Gittinger <cg@exept.de>
parents: 492
diff changeset
   425
492
80950bd2462e added #for:origin:corner:in
Claus Gittinger <cg@exept.de>
parents: 444
diff changeset
   426
for:aViewClass origin:org corner:corner in:aView
80950bd2462e added #for:origin:corner:in
Claus Gittinger <cg@exept.de>
parents: 444
diff changeset
   427
    "return a new scrolling view scrolling an instance of aViewClass.
80950bd2462e added #for:origin:corner:in
Claus Gittinger <cg@exept.de>
parents: 444
diff changeset
   428
     The subview is created here.
80950bd2462e added #for:origin:corner:in
Claus Gittinger <cg@exept.de>
parents: 444
diff changeset
   429
     The view will have full scrollbars."
80950bd2462e added #for:origin:corner:in
Claus Gittinger <cg@exept.de>
parents: 444
diff changeset
   430
80950bd2462e added #for:origin:corner:in
Claus Gittinger <cg@exept.de>
parents: 444
diff changeset
   431
    |v|
80950bd2462e added #for:origin:corner:in
Claus Gittinger <cg@exept.de>
parents: 444
diff changeset
   432
80950bd2462e added #for:origin:corner:in
Claus Gittinger <cg@exept.de>
parents: 444
diff changeset
   433
    v := self for:aViewClass miniScrollerH:false miniScrollerV:false in:aView.
80950bd2462e added #for:origin:corner:in
Claus Gittinger <cg@exept.de>
parents: 444
diff changeset
   434
    v origin:org corner:corner.
80950bd2462e added #for:origin:corner:in
Claus Gittinger <cg@exept.de>
parents: 444
diff changeset
   435
    ^ v
80950bd2462e added #for:origin:corner:in
Claus Gittinger <cg@exept.de>
parents: 444
diff changeset
   436
80950bd2462e added #for:origin:corner:in
Claus Gittinger <cg@exept.de>
parents: 444
diff changeset
   437
    "Created: 7.3.1996 / 13:01:08 / cg"
80950bd2462e added #for:origin:corner:in
Claus Gittinger <cg@exept.de>
parents: 444
diff changeset
   438
!
80950bd2462e added #for:origin:corner:in
Claus Gittinger <cg@exept.de>
parents: 444
diff changeset
   439
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   440
forView:aView
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   441
    "return a new scrolling view scrolling aView.
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   442
     The view will have full scrollbars."
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   443
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   444
    ^ self forView:aView miniScrollerH:false miniScrollerV:false in:nil
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   445
!
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   446
248
c58fabf73c35 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 217
diff changeset
   447
forView:aView miniScrollerH:mini
c58fabf73c35 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 217
diff changeset
   448
    "return a new scrolling view scrolling aView.
c58fabf73c35 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 217
diff changeset
   449
     The view will have a full vertical scrollbar and a horizontal
c58fabf73c35 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 217
diff changeset
   450
     miniScroller if mini is true."
c58fabf73c35 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 217
diff changeset
   451
c58fabf73c35 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 217
diff changeset
   452
    ^ self forView:aView miniScrollerH:mini miniScrollerV:false in:nil
c58fabf73c35 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 217
diff changeset
   453
c58fabf73c35 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 217
diff changeset
   454
    "Created: 10.12.1995 / 17:26:16 / cg"
c58fabf73c35 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 217
diff changeset
   455
!
c58fabf73c35 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 217
diff changeset
   456
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   457
forView:scrolledView miniScrollerH:miniH miniScrollerV:miniV in:aView
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   458
    "return a new scrolling view, scrolling aView.
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   459
     The view will have full scrollbars if the corresponding miniH/miniV
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   460
     is false, miniscrollers if true."
153
claus
parents: 132
diff changeset
   461
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   462
    |newView|
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   463
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   464
    newView := self for:nil miniScrollerH:miniH miniScrollerV:miniV in:aView.
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   465
    newView scrolledView:scrolledView.
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   466
    ^ newView
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   467
!
153
claus
parents: 132
diff changeset
   468
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   469
in:aView
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   470
    "return a new scrolling view to be contained in aView.
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   471
     There is no slave view now - this has to be set later via
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   472
     the scrolledView: method.
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   473
     The view will have full scrollbars."
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   474
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   475
    ^ self for:nil miniScrollerH:false miniScrollerV:false in:aView
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   476
!
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   477
93
f608d94e31ff *** empty log message ***
claus
parents: 77
diff changeset
   478
miniScroller:mini
f608d94e31ff *** empty log message ***
claus
parents: 77
diff changeset
   479
    "return a new scrolling view. The subview will be created later.
f608d94e31ff *** empty log message ***
claus
parents: 77
diff changeset
   480
     The view will have full scrollbars if mini is false, 
f608d94e31ff *** empty log message ***
claus
parents: 77
diff changeset
   481
     miniscrollers if true."
f608d94e31ff *** empty log message ***
claus
parents: 77
diff changeset
   482
f608d94e31ff *** empty log message ***
claus
parents: 77
diff changeset
   483
    ^ self for:nil miniScrollerH:mini miniScrollerV:mini 
f608d94e31ff *** empty log message ***
claus
parents: 77
diff changeset
   484
!
f608d94e31ff *** empty log message ***
claus
parents: 77
diff changeset
   485
113
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   486
miniScrollerH:miniH
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   487
    "return a new scrolling view. The subview will be created later.
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   488
     The view will have full scrollbars if miniH is false, 
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   489
     and a horizontal miniscroller if true."
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   490
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   491
    ^ self for:nil miniScrollerH:miniH miniScrollerV:false in:nil
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   492
!
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   493
93
f608d94e31ff *** empty log message ***
claus
parents: 77
diff changeset
   494
miniScrollerH:miniH miniScrollerV:miniV
f608d94e31ff *** empty log message ***
claus
parents: 77
diff changeset
   495
    "return a new scrolling view. The subview will be created later.
f608d94e31ff *** empty log message ***
claus
parents: 77
diff changeset
   496
     The view will have full scrollbars if the corresponding miniH/miniV
113
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   497
     is false, miniscrollers if true."
93
f608d94e31ff *** empty log message ***
claus
parents: 77
diff changeset
   498
f608d94e31ff *** empty log message ***
claus
parents: 77
diff changeset
   499
    ^ self for:nil miniScrollerH:miniH miniScrollerV:miniV in:nil
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   500
! !
93
f608d94e31ff *** empty log message ***
claus
parents: 77
diff changeset
   501
799
64f8700489a4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 754
diff changeset
   502
!ScrollableView  class methodsFor:'defaults'!
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   503
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   504
updateStyleCache
444
ef26eba8c854 added style resource directive
Claus Gittinger <cg@exept.de>
parents: 300
diff changeset
   505
    "extract values from the styleSheet and cache them in class variables"
ef26eba8c854 added style resource directive
Claus Gittinger <cg@exept.de>
parents: 300
diff changeset
   506
ef26eba8c854 added style resource directive
Claus Gittinger <cg@exept.de>
parents: 300
diff changeset
   507
    <resource: #style (#scrolledViewLevel)>
ef26eba8c854 added style resource directive
Claus Gittinger <cg@exept.de>
parents: 300
diff changeset
   508
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   509
    |d|
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
   510
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   511
    StyleSheet name == #st80 ifTrue:[
444
ef26eba8c854 added style resource directive
Claus Gittinger <cg@exept.de>
parents: 300
diff changeset
   512
        d := 1
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   513
    ] ifFalse:[
444
ef26eba8c854 added style resource directive
Claus Gittinger <cg@exept.de>
parents: 300
diff changeset
   514
        StyleSheet is3D ifTrue:[
ef26eba8c854 added style resource directive
Claus Gittinger <cg@exept.de>
parents: 300
diff changeset
   515
            d := -1
ef26eba8c854 added style resource directive
Claus Gittinger <cg@exept.de>
parents: 300
diff changeset
   516
        ] ifFalse:[
ef26eba8c854 added style resource directive
Claus Gittinger <cg@exept.de>
parents: 300
diff changeset
   517
            d := 0
ef26eba8c854 added style resource directive
Claus Gittinger <cg@exept.de>
parents: 300
diff changeset
   518
        ]
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   519
    ].
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   520
    DefaultScrolledViewLevel := StyleSheet at:'scrolledViewLevel' default:d.
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   521
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   522
    "Modified: 31.8.1995 / 04:05:55 / claus"
444
ef26eba8c854 added style resource directive
Claus Gittinger <cg@exept.de>
parents: 300
diff changeset
   523
    "Modified: 1.3.1996 / 13:46:39 / cg"
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   524
! !
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   525
678
c1967a46b2c1 added query for lines/cols - prefExt
Claus Gittinger <cg@exept.de>
parents: 608
diff changeset
   526
!ScrollableView methodsFor:'accessing - components'!
119
claus
parents: 113
diff changeset
   527
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   528
scrollBar
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   529
    "return the scrollbar"
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   530
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   531
    ^ scrollBar
119
claus
parents: 113
diff changeset
   532
!
claus
parents: 113
diff changeset
   533
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   534
scrolledView
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   535
    "return the scrolled view"
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
   536
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   537
    ^ scrolledView
113
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   538
!
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   539
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   540
scrolledView:aView
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   541
    "set the view to scroll"
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   542
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   543
    |halfMargin twoMargins isOpenwin|
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   544
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   545
    scrolledView notNil ifTrue:[
814
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   546
        scrolledView destroy.
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   547
        scrolledView := nil.
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   548
    ].
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   549
    scrolledView := aView.
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   550
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   551
"/    ((style ~~ #normal) and:[style ~~ #mswindows]) ifTrue:[
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   552
    styleSheet is3D ifTrue:[
814
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   553
        "3D look"
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   554
814
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   555
        isOpenwin := styleSheet name = #openwin.
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   556
814
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   557
        twoMargins := innerMargin * 2.
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   558
        halfMargin := innerMargin // 2.
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   559
814
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   560
        isOpenwin ifTrue:[
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   561
            scrolledView level:0.
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   562
            scrolledView borderWidth:1
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   563
        ] ifFalse:[
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   564
            scrolledView level:DefaultScrolledViewLevel.
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   565
"/            scrolledView level:-1
814
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   566
        ].
77
565b052f5277 *** empty log message ***
claus
parents: 65
diff changeset
   567
814
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   568
        (scrollBarPosition == #right) ifTrue:[
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   569
            scrolledView 
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   570
                origin:halfMargin asPoint
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   571
                extent:[(width - 
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   572
                         scrollBar width - 
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   573
                         twoMargins) 
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   574
                        @ 
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   575
                        (height - innerMargin)
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   576
                       ].
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   577
        ] ifFalse:[
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   578
            scrolledView 
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   579
                origin:((scrollBar origin x 
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   580
                         + scrollBar width 
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   581
                         + innerMargin)
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   582
                        @
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   583
                        halfMargin)
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   584
                extent:[(width 
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   585
                         - scrollBar width 
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   586
                         - twoMargins) 
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   587
                        @ 
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   588
                        (height - innerMargin)
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   589
                       ].
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   590
        ]
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   591
    ] ifFalse:[
814
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   592
        "non 3D look"
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   593
        (scrollBarPosition == #right) ifTrue:[
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   594
            scrolledView 
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   595
                origin:scrolledView borderWidth negated asPoint
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   596
        ] ifFalse:[
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   597
            scrolledView 
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   598
                origin:((scrollBar width 
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   599
                         + scrollBar borderWidth 
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   600
                         - scrolledView borderWidth) 
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   601
                        @ 
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   602
                        scrolledView borderWidth negated)
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   603
        ].
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   604
        scrolledView 
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   605
            extent:[
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   606
                    (width 
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   607
                     - scrollBar width 
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   608
                     - scrolledView borderWidth) 
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   609
                    @ 
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   610
                    (height + (scrollBar borderWidth))
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   611
                   ]
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   612
    ].
132
claus
parents: 130
diff changeset
   613
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   614
    super addSubView:scrolledView.
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   615
    self setScrollActions.
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   616
814
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   617
    realized ifTrue:[
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   618
        self sizeChanged:nil.
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   619
        scrolledView realize
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   620
    ].
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   621
814
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   622
    "Modified: 1.8.1996 / 12:44:27 / cg"
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   623
! !
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   624
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   625
!ScrollableView methodsFor:'changes '!
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   626
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   627
update:something with:argument from:changedObject
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   628
    "whenever the scrolledView changes its contents, the scroller must
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   629
     be updated"
132
claus
parents: 130
diff changeset
   630
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   631
    changedObject == scrolledView ifTrue:[
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   632
	something == #sizeOfContents ifTrue:[
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   633
	    scrollBar setThumbFor:scrolledView.
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   634
	    ^ self
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   635
	].
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   636
	something == #originOfContents ifTrue:[
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   637
	    lockUpdates ifFalse:[
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   638
		scrollBar setThumbOriginFor:scrolledView.
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   639
	    ].
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   640
	    ^ self
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   641
	].
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   642
    ].
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   643
! !
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
   644
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   645
!ScrollableView methodsFor:'event processing'!
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   646
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   647
keyPress:key x:x y:y
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   648
    "a key was pressed - handle page-keys here"
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   649
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   650
    <resource: #keyboard ( #Prior #Next ) >
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   651
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   652
    (key == #Prior)    ifTrue: [^ self pageUp].
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   653
    (key == #Next)     ifTrue: [^ self pageDown].
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   654
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   655
    super keyPress:key x:x y:y
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
   656
!
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
   657
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   658
sizeChanged:how
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   659
    super sizeChanged:how.
819
32ac89843fa8 Send only one scroll message for horizontal and vertical scroll
Stefan Vogel <sv@exept.de>
parents: 814
diff changeset
   660
32ac89843fa8 Send only one scroll message for horizontal and vertical scroll
Stefan Vogel <sv@exept.de>
parents: 814
diff changeset
   661
    "/ The following action will be done in a atomic operation
32ac89843fa8 Send only one scroll message for horizontal and vertical scroll
Stefan Vogel <sv@exept.de>
parents: 814
diff changeset
   662
    "/ in HVScrollableView
32ac89843fa8 Send only one scroll message for horizontal and vertical scroll
Stefan Vogel <sv@exept.de>
parents: 814
diff changeset
   663
32ac89843fa8 Send only one scroll message for horizontal and vertical scroll
Stefan Vogel <sv@exept.de>
parents: 814
diff changeset
   664
    (scrolledView notNil and:[self isHorizontalScrollable not]) ifTrue:[
32ac89843fa8 Send only one scroll message for horizontal and vertical scroll
Stefan Vogel <sv@exept.de>
parents: 814
diff changeset
   665
        scrollBar setThumbFor:scrolledView.
32ac89843fa8 Send only one scroll message for horizontal and vertical scroll
Stefan Vogel <sv@exept.de>
parents: 814
diff changeset
   666
        scrollBar thumbOrigin + scrollBar thumbHeight >= 100 ifTrue:[
32ac89843fa8 Send only one scroll message for horizontal and vertical scroll
Stefan Vogel <sv@exept.de>
parents: 814
diff changeset
   667
            scrollBar thumbOrigin:(100 - scrollBar thumbHeight).
32ac89843fa8 Send only one scroll message for horizontal and vertical scroll
Stefan Vogel <sv@exept.de>
parents: 814
diff changeset
   668
            scrolledView scrollVerticalToPercent:scrollBar thumbOrigin.
32ac89843fa8 Send only one scroll message for horizontal and vertical scroll
Stefan Vogel <sv@exept.de>
parents: 814
diff changeset
   669
        ].
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   670
    ].
113
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   671
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   672
    "Modified: 8.9.1995 / 12:46:36 / claus"
819
32ac89843fa8 Send only one scroll message for horizontal and vertical scroll
Stefan Vogel <sv@exept.de>
parents: 814
diff changeset
   673
    "Modified: 5.8.1996 / 12:31:34 / stefan"
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   674
! !
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   675
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   676
!ScrollableView methodsFor:'forced scroll'!
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   677
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   678
pageDown
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   679
    "page down"
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   680
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   681
    scrollBar pageDown
113
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   682
!
fdd18cfff57e *** empty log message ***
claus
parents: 110
diff changeset
   683
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   684
pageUp
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   685
    "page up"
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   686
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   687
    scrollBar pageUp
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   688
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   689
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   690
!ScrollableView methodsFor:'initialization'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   691
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   692
initStyle
608
aedd7bf72edc checkin from browser
Claus Gittinger <cg@exept.de>
parents: 591
diff changeset
   693
    <resource: #style (#scrollBarPosition)>
aedd7bf72edc checkin from browser
Claus Gittinger <cg@exept.de>
parents: 591
diff changeset
   694
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   695
    super initStyle.
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   696
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   697
    scrollBarPosition := styleSheet at:'scrollBarPosition' default:#left
608
aedd7bf72edc checkin from browser
Claus Gittinger <cg@exept.de>
parents: 591
diff changeset
   698
aedd7bf72edc checkin from browser
Claus Gittinger <cg@exept.de>
parents: 591
diff changeset
   699
    "Modified: 30.4.1996 / 17:01:53 / cg"
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   700
!
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   701
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   702
initialize
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
   703
    "default setup: full scrollers"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
   704
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
   705
    ^ self initializeFor:nil miniScrollerH:false miniScrollerV:false 
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   706
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   707
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
   708
initializeFor:aViewClass miniScrollerH:miniH miniScrollerV:miniV 
130
claus
parents: 122
diff changeset
   709
    |negativeOffset twoMargins halfMargin cls isST80 isOpenWin is3D lvl extra|
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   710
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   711
    super initialize.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   712
65
b33e4f3a264e *** empty log message ***
claus
parents: 63
diff changeset
   713
    lockUpdates := false.
b33e4f3a264e *** empty log message ***
claus
parents: 63
diff changeset
   714
110
eb59f6e31e84 *** empty log message ***
claus
parents: 105
diff changeset
   715
    "
eb59f6e31e84 *** empty log message ***
claus
parents: 105
diff changeset
   716
     mhmh - these must go into the stylesheet as well...
eb59f6e31e84 *** empty log message ***
claus
parents: 105
diff changeset
   717
    "
130
claus
parents: 122
diff changeset
   718
    isST80 := styleSheet name = #st80.
claus
parents: 122
diff changeset
   719
    isOpenWin := styleSheet name = #openwin.
59
450ce95a72a4 *** empty log message ***
claus
parents: 53
diff changeset
   720
110
eb59f6e31e84 *** empty log message ***
claus
parents: 105
diff changeset
   721
    isOpenWin ifTrue:[self level:0].
130
claus
parents: 122
diff changeset
   722
    is3D := styleSheet is3D.
59
450ce95a72a4 *** empty log message ***
claus
parents: 53
diff changeset
   723
450ce95a72a4 *** empty log message ***
claus
parents: 53
diff changeset
   724
    isST80 ifTrue:[
814
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   725
        innerMargin := 0
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
   726
    ] ifFalse:[
814
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   727
        is3D ifTrue:[
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   728
            innerMargin := ViewSpacing.
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   729
        ] ifFalse:[
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   730
            innerMargin := 0    
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   731
        ]
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
   732
    ].
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   733
    negativeOffset := borderWidth negated.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   734
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   735
    "create the scrollbar"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   736
59
450ce95a72a4 *** empty log message ***
claus
parents: 53
diff changeset
   737
    isST80 ifTrue:[
814
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   738
        cls := ScrollBar
59
450ce95a72a4 *** empty log message ***
claus
parents: 53
diff changeset
   739
    ] ifFalse:[
814
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   740
        cls := miniV ifTrue:[MiniScroller] ifFalse:[ScrollBar].
59
450ce95a72a4 *** empty log message ***
claus
parents: 53
diff changeset
   741
    ].
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
   742
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
   743
    scrollBar := cls in:self.
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   744
    scrollBar thumbOrigin:0 thumbHeight:100.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   745
130
claus
parents: 122
diff changeset
   746
    extra := 0.
claus
parents: 122
diff changeset
   747
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   748
    "create the subview"
59
450ce95a72a4 *** empty log message ***
claus
parents: 53
diff changeset
   749
    is3D ifTrue:[
814
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   750
        twoMargins := innerMargin * 2.
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   751
        halfMargin := innerMargin // 2.
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   752
814
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   753
        aViewClass notNil ifTrue:[
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   754
            scrolledView := aViewClass in:self.
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   755
            isOpenWin ifTrue:[
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   756
                lvl := 0.
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   757
                "/ scrolledView level:0.
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   758
                scrolledView borderWidth:1.
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   759
            ] ifFalse:[
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   760
                lvl := DefaultScrolledViewLevel.
153
claus
parents: 132
diff changeset
   761
"/                isST80 ifTrue:[
claus
parents: 132
diff changeset
   762
"/                    "/ scrolledView level:1.
claus
parents: 132
diff changeset
   763
"/                    lvl := 1.
claus
parents: 132
diff changeset
   764
"/                ] ifFalse:[
claus
parents: 132
diff changeset
   765
"/                    "/ scrolledView level:-1
claus
parents: 132
diff changeset
   766
"/                     lvl := -1
claus
parents: 132
diff changeset
   767
"/                ]
814
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   768
            ].
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   769
            scrolledView level:lvl.
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   770
            extra := scrolledView borderWidth * 2.
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   771
        ].
130
claus
parents: 122
diff changeset
   772
814
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   773
        scrollBar extent:[scrollBar extent x
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   774
                          @ 
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   775
                          (height - innerMargin "new:" + extra)].
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   776
        scrolledView notNil ifTrue:[
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   777
            scrolledView
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   778
                extent:[(width 
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   779
                         - scrollBar width 
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   780
                         - twoMargins) 
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   781
                        @ 
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   782
                        (height - innerMargin)].
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   783
        ].
130
claus
parents: 122
diff changeset
   784
814
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   785
        (scrollBarPosition == #right) ifTrue:[
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   786
            scrollBar origin:[width - scrollBar extent x 
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   787
                                    - (scrollBar borderWidth * 2)
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   788
                                    - halfMargin
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   789
                              @
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   790
                              halfMargin].
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
   791
814
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   792
            scrolledView notNil ifTrue:[
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   793
                scrolledView origin:halfMargin asPoint
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   794
                ]
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   795
        ] ifFalse:[
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   796
            scrollBar origin:halfMargin asPoint.
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
   797
814
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   798
            scrolledView notNil ifTrue:[
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   799
                scrolledView origin:((scrollBar origin x + scrollBar width + innerMargin)
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   800
                                     @
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   801
                                     halfMargin)
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   802
            ]
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   803
        ].
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   804
    ] ifFalse:[
814
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   805
        (scrollBarPosition == #right) ifTrue:[
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   806
            scrollBar origin:[width - scrollBar extent x 
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   807
                                    - scrollBar borderWidth
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   808
                              @
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   809
                              negativeOffset]
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   810
        ] ifFalse:[
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   811
            scrollBar origin:negativeOffset asPoint
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   812
        ].
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   813
        scrollBar extent:[scrollBar extent x 
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   814
                          @ 
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   815
                          (height "+ (scrollBar borderWidth * 1)")].
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   816
814
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   817
        aViewClass notNil ifTrue:[
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   818
            scrolledView := aViewClass in:self.
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   819
            (scrollBarPosition == #right) ifTrue:[
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   820
                scrolledView origin:scrolledView borderWidth negated asPoint
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   821
            ] ifFalse:[
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   822
                scrolledView origin:((scrollBar width + 
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   823
                                      scrollBar borderWidth - 
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   824
                                      scrolledView borderWidth) 
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   825
                                    @ 
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   826
                                    scrolledView borderWidth negated)
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   827
            ].
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   828
            scrolledView extent:[(width - scrollBar width - scrolledView borderWidth) 
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   829
                                 @ 
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   830
                                 (height + (scrollBar borderWidth))
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   831
                                ]
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   832
        ].
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   833
    ].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   834
    scrolledView notNil ifTrue:[
814
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   835
        self setScrollActions.
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   836
    ]
814
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   837
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   838
    "Modified: 1.8.1996 / 12:44:32 / cg"
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   839
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   840
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   841
realize
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   842
    super realize.
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
   843
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   844
    "since scrolledview may have done something to its contents
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   845
     during init-time we had no chance yet to catch contents-
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   846
     changes; do it now
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   847
    "
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
   848
    scrolledView notNil ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 53
diff changeset
   849
	scrollBar setThumbFor:scrolledView
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
   850
    ]
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   851
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   852
7
15a9291b9bd0 *** empty log message ***
claus
parents: 5
diff changeset
   853
!ScrollableView methodsFor:'private'!
15a9291b9bd0 *** empty log message ***
claus
parents: 5
diff changeset
   854
15a9291b9bd0 *** empty log message ***
claus
parents: 5
diff changeset
   855
setScrollActions
15a9291b9bd0 *** empty log message ***
claus
parents: 5
diff changeset
   856
    "lock prevents repositioning the scroller to the
15a9291b9bd0 *** empty log message ***
claus
parents: 5
diff changeset
   857
     actual (often rounded) position while scrolling,
15a9291b9bd0 *** empty log message ***
claus
parents: 5
diff changeset
   858
     and keeps it instead at the pointer position.
15a9291b9bd0 *** empty log message ***
claus
parents: 5
diff changeset
   859
15a9291b9bd0 *** empty log message ***
claus
parents: 5
diff changeset
   860
     (this avoids run-away scroller when scrolling
15a9291b9bd0 *** empty log message ***
claus
parents: 5
diff changeset
   861
      textviews, when the text is aligned line-wise).
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
   862
      Consider this as a kludge."
7
15a9291b9bd0 *** empty log message ***
claus
parents: 5
diff changeset
   863
65
b33e4f3a264e *** empty log message ***
claus
parents: 63
diff changeset
   864
    lockUpdates := false.
7
15a9291b9bd0 *** empty log message ***
claus
parents: 5
diff changeset
   865
15a9291b9bd0 *** empty log message ***
claus
parents: 5
diff changeset
   866
    scrollBar scrollAction:[:position |
814
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   867
        lockUpdates := true.
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   868
        scrolledView scrollVerticalToPercent:position.
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   869
        lockUpdates := false
7
15a9291b9bd0 *** empty log message ***
claus
parents: 5
diff changeset
   870
    ].
15a9291b9bd0 *** empty log message ***
claus
parents: 5
diff changeset
   871
    scrollBar scrollUpAction:[scrolledView scrollUp].
15a9291b9bd0 *** empty log message ***
claus
parents: 5
diff changeset
   872
    scrollBar scrollDownAction:[scrolledView scrollDown].
15a9291b9bd0 *** empty log message ***
claus
parents: 5
diff changeset
   873
65
b33e4f3a264e *** empty log message ***
claus
parents: 63
diff changeset
   874
    scrolledView addDependent:self.
814
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   875
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   876
    "
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   877
     pass my keyboard input (and other subviews input) 
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   878
     to the scrolled view ...
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   879
    "
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   880
    self delegate:(KeyboardForwarder toView:scrolledView).
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   881
5b80bc44f52b share code
Claus Gittinger <cg@exept.de>
parents: 799
diff changeset
   882
    "Modified: 1.8.1996 / 12:44:21 / cg"
7
15a9291b9bd0 *** empty log message ***
claus
parents: 5
diff changeset
   883
! !
15a9291b9bd0 *** empty log message ***
claus
parents: 5
diff changeset
   884
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   885
!ScrollableView methodsFor:'queries'!
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
   886
819
32ac89843fa8 Send only one scroll message for horizontal and vertical scroll
Stefan Vogel <sv@exept.de>
parents: 814
diff changeset
   887
isHorizontalScrollable
32ac89843fa8 Send only one scroll message for horizontal and vertical scroll
Stefan Vogel <sv@exept.de>
parents: 814
diff changeset
   888
    "return false, because I am not horizontal scrollable"
32ac89843fa8 Send only one scroll message for horizontal and vertical scroll
Stefan Vogel <sv@exept.de>
parents: 814
diff changeset
   889
32ac89843fa8 Send only one scroll message for horizontal and vertical scroll
Stefan Vogel <sv@exept.de>
parents: 814
diff changeset
   890
    ^ false
32ac89843fa8 Send only one scroll message for horizontal and vertical scroll
Stefan Vogel <sv@exept.de>
parents: 814
diff changeset
   891
32ac89843fa8 Send only one scroll message for horizontal and vertical scroll
Stefan Vogel <sv@exept.de>
parents: 814
diff changeset
   892
    "Created: 5.8.1996 / 12:28:05 / stefan"
32ac89843fa8 Send only one scroll message for horizontal and vertical scroll
Stefan Vogel <sv@exept.de>
parents: 814
diff changeset
   893
!
32ac89843fa8 Send only one scroll message for horizontal and vertical scroll
Stefan Vogel <sv@exept.de>
parents: 814
diff changeset
   894
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   895
preferredExtent
572
121735c2aff6 commentary
Claus Gittinger <cg@exept.de>
parents: 562
diff changeset
   896
    "return my preferredExtent from the scrolledViews prefExtent
121735c2aff6 commentary
Claus Gittinger <cg@exept.de>
parents: 562
diff changeset
   897
     plus the size of the scrollBar"
121735c2aff6 commentary
Claus Gittinger <cg@exept.de>
parents: 562
diff changeset
   898
799
64f8700489a4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 754
diff changeset
   899
    "/ If I have an explicit preferredExtent ..
64f8700489a4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 754
diff changeset
   900
713
0c38ad51016d care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 703
diff changeset
   901
    preferredExtent notNil ifTrue:[
0c38ad51016d care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 703
diff changeset
   902
        ^ preferredExtent
0c38ad51016d care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 703
diff changeset
   903
    ].
0c38ad51016d care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 703
diff changeset
   904
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   905
    scrolledView notNil ifTrue:[ 
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   906
       | pref |
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   907
       pref := scrolledView preferredExtent.
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   908
       ^ (pref x + scrollBar width + (innerMargin * 2)) @ pref y.
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   909
    ].
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   910
    ^ super preferredExtent.
572
121735c2aff6 commentary
Claus Gittinger <cg@exept.de>
parents: 562
diff changeset
   911
799
64f8700489a4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 754
diff changeset
   912
    "Modified: 19.7.1996 / 20:45:30 / cg"
678
c1967a46b2c1 added query for lines/cols - prefExt
Claus Gittinger <cg@exept.de>
parents: 608
diff changeset
   913
!
c1967a46b2c1 added query for lines/cols - prefExt
Claus Gittinger <cg@exept.de>
parents: 608
diff changeset
   914
c1967a46b2c1 added query for lines/cols - prefExt
Claus Gittinger <cg@exept.de>
parents: 608
diff changeset
   915
preferredExtentForLines:numLines cols:numCols
c1967a46b2c1 added query for lines/cols - prefExt
Claus Gittinger <cg@exept.de>
parents: 608
diff changeset
   916
    "return my preferredExtent for given number of lines and cols."
c1967a46b2c1 added query for lines/cols - prefExt
Claus Gittinger <cg@exept.de>
parents: 608
diff changeset
   917
c1967a46b2c1 added query for lines/cols - prefExt
Claus Gittinger <cg@exept.de>
parents: 608
diff changeset
   918
    scrolledView notNil ifTrue:[ 
c1967a46b2c1 added query for lines/cols - prefExt
Claus Gittinger <cg@exept.de>
parents: 608
diff changeset
   919
       | pref |
c1967a46b2c1 added query for lines/cols - prefExt
Claus Gittinger <cg@exept.de>
parents: 608
diff changeset
   920
       pref := scrolledView preferredExtentForLines:numLines cols:numCols.
c1967a46b2c1 added query for lines/cols - prefExt
Claus Gittinger <cg@exept.de>
parents: 608
diff changeset
   921
       ^ (pref x + scrollBar width + (innerMargin * 2)) @ pref y.
c1967a46b2c1 added query for lines/cols - prefExt
Claus Gittinger <cg@exept.de>
parents: 608
diff changeset
   922
    ].
c1967a46b2c1 added query for lines/cols - prefExt
Claus Gittinger <cg@exept.de>
parents: 608
diff changeset
   923
    ^ super preferredExtent.
c1967a46b2c1 added query for lines/cols - prefExt
Claus Gittinger <cg@exept.de>
parents: 608
diff changeset
   924
c1967a46b2c1 added query for lines/cols - prefExt
Claus Gittinger <cg@exept.de>
parents: 608
diff changeset
   925
    "Created: 24.5.1996 / 17:13:26 / cg"
c1967a46b2c1 added query for lines/cols - prefExt
Claus Gittinger <cg@exept.de>
parents: 608
diff changeset
   926
    "Modified: 24.5.1996 / 17:15:50 / cg"
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   927
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   928
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   929
!ScrollableView methodsFor:'slave-view messages'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   930
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   931
doesNotUnderstand:aMessage
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   932
    "this is funny: all message we do not understand, are passed
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   933
     on to the scrolledView - so we do not have to care for all
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   934
     possible messages ...(thanks to the Message class)"
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   935
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   936
     scrolledView isNil ifFalse:[
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   937
	 ^ scrolledView perform:(aMessage selector)
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   938
		  withArguments:(aMessage arguments)
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   939
     ]
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   940
!
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   941
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   942
leftButtonMenu
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
   943
    "return scrolledViews leftbuttonmenu"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
   944
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
   945
    scrolledView isNil ifTrue:[^ nil].
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   946
    ^ scrolledView leftButtonMenu
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   947
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   948
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   949
leftButtonMenu:aMenu
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   950
    "pass on leftbuttonmenu to scrolledView"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   951
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   952
    scrolledView leftButtonMenu:aMenu
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   953
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   954
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   955
middleButtonMenu
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
   956
    "return scrolledViews middlebuttonmenu"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
   957
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
   958
    scrolledView isNil ifTrue:[^ nil].
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   959
    ^ scrolledView middleButtonMenu
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   960
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   961
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   962
middleButtonMenu:aMenu
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   963
    "pass on middlebuttonmenu to scrolledView"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   964
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   965
    scrolledView middleButtonMenu:aMenu
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   966
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   967
562
1199debbda51 forward model access
Claus Gittinger <cg@exept.de>
parents: 546
diff changeset
   968
model
754
4db5b854cc88 comment
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   969
    "return my scrolledViews model"
4db5b854cc88 comment
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   970
562
1199debbda51 forward model access
Claus Gittinger <cg@exept.de>
parents: 546
diff changeset
   971
    ^ scrolledView model
1199debbda51 forward model access
Claus Gittinger <cg@exept.de>
parents: 546
diff changeset
   972
1199debbda51 forward model access
Claus Gittinger <cg@exept.de>
parents: 546
diff changeset
   973
    "Created: 20.4.1996 / 13:27:25 / cg"
754
4db5b854cc88 comment
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   974
    "Modified: 5.6.1996 / 14:17:04 / cg"
562
1199debbda51 forward model access
Claus Gittinger <cg@exept.de>
parents: 546
diff changeset
   975
!
1199debbda51 forward model access
Claus Gittinger <cg@exept.de>
parents: 546
diff changeset
   976
1199debbda51 forward model access
Claus Gittinger <cg@exept.de>
parents: 546
diff changeset
   977
model:aModel
754
4db5b854cc88 comment
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   978
    "forward model change to my scrolledViews"
4db5b854cc88 comment
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   979
562
1199debbda51 forward model access
Claus Gittinger <cg@exept.de>
parents: 546
diff changeset
   980
    ^ scrolledView model:aModel
1199debbda51 forward model access
Claus Gittinger <cg@exept.de>
parents: 546
diff changeset
   981
1199debbda51 forward model access
Claus Gittinger <cg@exept.de>
parents: 546
diff changeset
   982
    "Created: 20.4.1996 / 13:27:33 / cg"
754
4db5b854cc88 comment
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   983
    "Modified: 5.6.1996 / 17:09:50 / cg"
562
1199debbda51 forward model access
Claus Gittinger <cg@exept.de>
parents: 546
diff changeset
   984
!
1199debbda51 forward model access
Claus Gittinger <cg@exept.de>
parents: 546
diff changeset
   985
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   986
rightButtonMenu
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
   987
    "return scrolledViews rightbuttonmenu"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
   988
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
   989
    scrolledView isNil ifTrue:[^ nil].
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   990
    ^ scrolledView rightButtonMenu
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   991
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   992
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   993
rightButtonMenu:aMenu
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   994
    "pass on rightbuttonmenu to scrolledView"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   995
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   996
    scrolledView rightButtonMenu:aMenu
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
   997
! !
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 7
diff changeset
   998
799
64f8700489a4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 754
diff changeset
   999
!ScrollableView  class methodsFor:'documentation'!
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
  1000
217
c208ce696327 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1001
version
819
32ac89843fa8 Send only one scroll message for horizontal and vertical scroll
Stefan Vogel <sv@exept.de>
parents: 814
diff changeset
  1002
    ^ '$Header: /cvs/stx/stx/libwidg/ScrollableView.st,v 1.39 1996-08-05 11:49:43 stefan Exp $'
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
  1003
! !