HScroller.st
author claus
Wed, 24 Aug 1994 01:38:59 +0200
changeset 51 e895ac4cc7c8
parent 38 4b9b70b2cc87
child 118 3ee5ea99d0e2
permissions -rw-r--r--
support non-string entries
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
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     3
              All Rights Reserved
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
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    13
Scroller subclass:#HorizontalScroller
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    14
       instanceVariableNames:''
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    15
       classVariableNames:''
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    16
       poolDictionaries:''
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    17
       category:'Views-Interactors'
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    18
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    19
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    20
HorizontalScroller comment:'
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    21
5
claus
parents: 3
diff changeset
    22
COPYRIGHT (c) 1989 by Claus Gittinger
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    23
              All Rights Reserved
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    24
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    25
the scroller part of a horizontal scrollbar
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    26
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
    27
$Header: /cvs/stx/stx/libwidg/Attic/HScroller.st,v 1.5 1994-08-07 13:22:36 claus Exp $
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    28
written spring/summer 89 by claus
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    29
'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    30
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    31
!HorizontalScroller methodsFor:'initialization'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    32
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    33
initialize
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    34
    super initialize.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    35
    moveDirection := #x
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    36
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    37
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    38
!HorizontalScroller methodsFor:'accessing'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    39
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    40
thumbOrigin:newOrigin
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    41
    "set the thumbs origin (in percent)"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    42
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    43
    |realNewOrigin oldFrame oldLeft oldRight thumbLeft thumbRight
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    44
     tH tW delta top|
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    45
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    46
    ((newOrigin + thumbHeight) > 100) ifTrue:[
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    47
        realNewOrigin := 100 - thumbHeight
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    48
    ] ifFalse: [
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    49
        realNewOrigin := newOrigin
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    50
    ].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    51
    (realNewOrigin > 100) ifTrue:[
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    52
        realNewOrigin := 100
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    53
    ] ifFalse: [
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    54
        (realNewOrigin < 0) ifTrue:[
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    55
            realNewOrigin := 0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    56
        ]
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    57
    ].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    58
    (realNewOrigin = thumbOrigin) ifFalse:[
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    59
        thumbOrigin := realNewOrigin.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    60
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    61
        shown ifTrue:[
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
    62
            oldFrame := thumbFrame.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
    63
            self computeThumbFrame.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
    64
            (thumbHeight = 100) ifTrue:[^ self].
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
    65
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    66
            (thumbFrame ~~ oldFrame) ifTrue:[
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
    67
                oldFrame isNil ifTrue:[
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
    68
                    self drawThumb.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
    69
                    ^ self
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
    70
                ].
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    71
                tH := thumbFrame height.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    72
                tW := thumbFrame width.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    73
                oldLeft := oldFrame left.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    74
                oldRight := oldLeft + tW.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    75
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    76
                thumbLeft := thumbFrame left.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    77
                thumbRight := thumbLeft + tW.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    78
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    79
                top := thumbFrame top.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    80
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    81
                (oldRight >= width) ifTrue:[
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    82
                    "cannot copy - thumb was behind end"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    83
                    self drawThumbBackgroundInX:oldLeft y:top
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    84
                                          width:(width - oldLeft" - 1") height:tH.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    85
                    self drawThumb.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    86
                    ^ self
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    87
                ].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    88
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
    89
                self catchExpose.
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    90
                self copyFrom:self x:oldLeft y:top
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    91
                                 toX:thumbLeft y:top
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    92
                               width:tW height:tH.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    93
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    94
                oldLeft > thumbLeft ifTrue:[
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    95
                    delta := oldLeft - thumbLeft.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    96
                    oldLeft > thumbRight ifTrue:[
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    97
                        self drawThumbBackgroundInX:oldLeft y:top
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    98
                                              width:(tW + 1) height:tH
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    99
                    ] ifFalse:[
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   100
                        self drawThumbBackgroundInX:thumbRight y:top
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   101
                                              width:delta height:tH
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   102
                    ]
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   103
                ] ifFalse:[
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   104
                    delta := thumbLeft - oldLeft.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   105
                    oldRight < thumbLeft ifTrue:[
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   106
                        self drawThumbBackgroundInX:oldLeft y:top
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   107
                                              width:tW + 1 height:tH
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   108
                    ] ifFalse:[
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   109
                        self drawThumbBackgroundInX:oldLeft y:top 
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   110
                                              width:delta height:tH
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   111
                    ]
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   112
                ].
24
966098a893f8 *** empty log message ***
claus
parents: 5
diff changeset
   113
                self waitForExpose
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   114
            ]
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   115
        ]
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   116
    ]
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   117
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   118
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   119
scrollLeftAction:aBlock
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   120
    "ignored -
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   121
     but implemented, so that scroller can be used in place of a scrollbar"
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   122
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   123
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   124
scrollRightAction:aBlock
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   125
    "ignored -
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   126
     but implemented, so that scroller can be used in place of a scrollbar"
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   127
! !