HorizontalSlider.st
author claus
Fri, 12 Aug 1994 01:53:54 +0200
changeset 17 bda821037847
child 24 6704fad5eb7d
permissions -rw-r--r--
Initial revision
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
17
bda821037847 Initial revision
claus
parents:
diff changeset
     1
"
bda821037847 Initial revision
claus
parents:
diff changeset
     2
 COPYRIGHT (c) 1992 by Claus Gittinger
bda821037847 Initial revision
claus
parents:
diff changeset
     3
              All Rights Reserved
bda821037847 Initial revision
claus
parents:
diff changeset
     4
bda821037847 Initial revision
claus
parents:
diff changeset
     5
 This software is furnished under a license and may be used
bda821037847 Initial revision
claus
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
bda821037847 Initial revision
claus
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
bda821037847 Initial revision
claus
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
bda821037847 Initial revision
claus
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
bda821037847 Initial revision
claus
parents:
diff changeset
    10
 hereby transferred.
bda821037847 Initial revision
claus
parents:
diff changeset
    11
"
bda821037847 Initial revision
claus
parents:
diff changeset
    12
bda821037847 Initial revision
claus
parents:
diff changeset
    13
HorizontalScroller subclass:#HorizontalSlider
bda821037847 Initial revision
claus
parents:
diff changeset
    14
       instanceVariableNames:'sliderHeight'
bda821037847 Initial revision
claus
parents:
diff changeset
    15
       classVariableNames:   ''
bda821037847 Initial revision
claus
parents:
diff changeset
    16
       poolDictionaries:''
bda821037847 Initial revision
claus
parents:
diff changeset
    17
       category:'Views-Interactors'
bda821037847 Initial revision
claus
parents:
diff changeset
    18
!
bda821037847 Initial revision
claus
parents:
diff changeset
    19
bda821037847 Initial revision
claus
parents:
diff changeset
    20
HorizontalSlider comment:'
bda821037847 Initial revision
claus
parents:
diff changeset
    21
COPYRIGHT (c) 1992 by Claus Gittinger
bda821037847 Initial revision
claus
parents:
diff changeset
    22
              All Rights Reserved
bda821037847 Initial revision
claus
parents:
diff changeset
    23
bda821037847 Initial revision
claus
parents:
diff changeset
    24
$Header: /cvs/stx/stx/libwidg2/HorizontalSlider.st,v 1.1 1994-08-11 23:53:54 claus Exp $
bda821037847 Initial revision
claus
parents:
diff changeset
    25
'!
bda821037847 Initial revision
claus
parents:
diff changeset
    26
bda821037847 Initial revision
claus
parents:
diff changeset
    27
!HorizontalSlider class methodsFor:'documentation'!
bda821037847 Initial revision
claus
parents:
diff changeset
    28
bda821037847 Initial revision
claus
parents:
diff changeset
    29
copyright
bda821037847 Initial revision
claus
parents:
diff changeset
    30
"
bda821037847 Initial revision
claus
parents:
diff changeset
    31
 COPYRIGHT (c) 1992 by Claus Gittinger
bda821037847 Initial revision
claus
parents:
diff changeset
    32
              All Rights Reserved
bda821037847 Initial revision
claus
parents:
diff changeset
    33
bda821037847 Initial revision
claus
parents:
diff changeset
    34
 This software is furnished under a license and may be used
bda821037847 Initial revision
claus
parents:
diff changeset
    35
 only in accordance with the terms of that license and with the
bda821037847 Initial revision
claus
parents:
diff changeset
    36
 inclusion of the above copyright notice.   This software may not
bda821037847 Initial revision
claus
parents:
diff changeset
    37
 be provided or otherwise made available to, or used by, any
bda821037847 Initial revision
claus
parents:
diff changeset
    38
 other person.  No title to or ownership of the software is
bda821037847 Initial revision
claus
parents:
diff changeset
    39
 hereby transferred.
bda821037847 Initial revision
claus
parents:
diff changeset
    40
"
bda821037847 Initial revision
claus
parents:
diff changeset
    41
!
bda821037847 Initial revision
claus
parents:
diff changeset
    42
bda821037847 Initial revision
claus
parents:
diff changeset
    43
version
bda821037847 Initial revision
claus
parents:
diff changeset
    44
"
bda821037847 Initial revision
claus
parents:
diff changeset
    45
$Header: /cvs/stx/stx/libwidg2/HorizontalSlider.st,v 1.1 1994-08-11 23:53:54 claus Exp $
bda821037847 Initial revision
claus
parents:
diff changeset
    46
"
bda821037847 Initial revision
claus
parents:
diff changeset
    47
!
bda821037847 Initial revision
claus
parents:
diff changeset
    48
bda821037847 Initial revision
claus
parents:
diff changeset
    49
documentation
bda821037847 Initial revision
claus
parents:
diff changeset
    50
"
bda821037847 Initial revision
claus
parents:
diff changeset
    51
    this class implements horizontal sliders.
bda821037847 Initial revision
claus
parents:
diff changeset
    52
"
bda821037847 Initial revision
claus
parents:
diff changeset
    53
! !
bda821037847 Initial revision
claus
parents:
diff changeset
    54
bda821037847 Initial revision
claus
parents:
diff changeset
    55
!HorizontalSlider methodsFor:'initialization'!
bda821037847 Initial revision
claus
parents:
diff changeset
    56
bda821037847 Initial revision
claus
parents:
diff changeset
    57
initialize
bda821037847 Initial revision
claus
parents:
diff changeset
    58
    sliderHeight := (self verticalPixelPerMillimeter:10) rounded.
bda821037847 Initial revision
claus
parents:
diff changeset
    59
    super initialize.
bda821037847 Initial revision
claus
parents:
diff changeset
    60
    thumbHeight := 0
bda821037847 Initial revision
claus
parents:
diff changeset
    61
!
bda821037847 Initial revision
claus
parents:
diff changeset
    62
bda821037847 Initial revision
claus
parents:
diff changeset
    63
initStyle
bda821037847 Initial revision
claus
parents:
diff changeset
    64
    super initStyle.
bda821037847 Initial revision
claus
parents:
diff changeset
    65
    tallyMarks := 1.
bda821037847 Initial revision
claus
parents:
diff changeset
    66
    style == #iris ifTrue:[
bda821037847 Initial revision
claus
parents:
diff changeset
    67
        tallyLevel := 1.
bda821037847 Initial revision
claus
parents:
diff changeset
    68
    ] ifFalse:[
bda821037847 Initial revision
claus
parents:
diff changeset
    69
        tallyLevel := -1.
bda821037847 Initial revision
claus
parents:
diff changeset
    70
    ]
bda821037847 Initial revision
claus
parents:
diff changeset
    71
! !
bda821037847 Initial revision
claus
parents:
diff changeset
    72
bda821037847 Initial revision
claus
parents:
diff changeset
    73
!HorizontalSlider methodsFor:'accessing'!
bda821037847 Initial revision
claus
parents:
diff changeset
    74
bda821037847 Initial revision
claus
parents:
diff changeset
    75
thumbHeight
bda821037847 Initial revision
claus
parents:
diff changeset
    76
    "redefined since a slider has no height - just origin"
bda821037847 Initial revision
claus
parents:
diff changeset
    77
bda821037847 Initial revision
claus
parents:
diff changeset
    78
    ^ nil
bda821037847 Initial revision
claus
parents:
diff changeset
    79
! !
bda821037847 Initial revision
claus
parents:
diff changeset
    80
bda821037847 Initial revision
claus
parents:
diff changeset
    81
!HorizontalSlider methodsFor:'private'!
bda821037847 Initial revision
claus
parents:
diff changeset
    82
bda821037847 Initial revision
claus
parents:
diff changeset
    83
absFromPercent:percent
bda821037847 Initial revision
claus
parents:
diff changeset
    84
    "given a percentage, compute number of pixels"
bda821037847 Initial revision
claus
parents:
diff changeset
    85
bda821037847 Initial revision
claus
parents:
diff changeset
    86
    ^ ((percent * (width - sliderHeight - (margin * 2))) / 100) rounded 
bda821037847 Initial revision
claus
parents:
diff changeset
    87
!
bda821037847 Initial revision
claus
parents:
diff changeset
    88
bda821037847 Initial revision
claus
parents:
diff changeset
    89
percentFromAbs:absValue
bda821037847 Initial revision
claus
parents:
diff changeset
    90
    "given a number of pixels, compute percentage"
bda821037847 Initial revision
claus
parents:
diff changeset
    91
bda821037847 Initial revision
claus
parents:
diff changeset
    92
    |val|
bda821037847 Initial revision
claus
parents:
diff changeset
    93
bda821037847 Initial revision
claus
parents:
diff changeset
    94
    val := absValue / (width - sliderHeight - (margin * 2)) * 100.
bda821037847 Initial revision
claus
parents:
diff changeset
    95
    val < 0 ifTrue:[^ 0].
bda821037847 Initial revision
claus
parents:
diff changeset
    96
    val > 100 ifTrue:[^ 100].
bda821037847 Initial revision
claus
parents:
diff changeset
    97
    ^ val
bda821037847 Initial revision
claus
parents:
diff changeset
    98
!
bda821037847 Initial revision
claus
parents:
diff changeset
    99
bda821037847 Initial revision
claus
parents:
diff changeset
   100
computeThumbFrame
bda821037847 Initial revision
claus
parents:
diff changeset
   101
    "redefined, since the thumb-height stays constant"
bda821037847 Initial revision
claus
parents:
diff changeset
   102
bda821037847 Initial revision
claus
parents:
diff changeset
   103
    |nh nw ny nx|
bda821037847 Initial revision
claus
parents:
diff changeset
   104
bda821037847 Initial revision
claus
parents:
diff changeset
   105
    thumbHeight := 0.
bda821037847 Initial revision
claus
parents:
diff changeset
   106
    nx := (self absFromPercent:thumbOrigin) + margin.
bda821037847 Initial revision
claus
parents:
diff changeset
   107
    nw := sliderHeight.
bda821037847 Initial revision
claus
parents:
diff changeset
   108
    ny := margin + inset.     
bda821037847 Initial revision
claus
parents:
diff changeset
   109
    nh := height - (2 * ny).
bda821037847 Initial revision
claus
parents:
diff changeset
   110
    "
bda821037847 Initial revision
claus
parents:
diff changeset
   111
     do not create new Rectangle if its the same anyway
bda821037847 Initial revision
claus
parents:
diff changeset
   112
    "
bda821037847 Initial revision
claus
parents:
diff changeset
   113
    thumbFrame notNil ifTrue:[
bda821037847 Initial revision
claus
parents:
diff changeset
   114
        (ny == thumbFrame top) ifTrue:[
bda821037847 Initial revision
claus
parents:
diff changeset
   115
          (nx == thumbFrame left) ifTrue:[
bda821037847 Initial revision
claus
parents:
diff changeset
   116
            (nh == thumbFrame height) ifTrue:[
bda821037847 Initial revision
claus
parents:
diff changeset
   117
              (nw == thumbFrame width) ifTrue:[ ^ self]
bda821037847 Initial revision
claus
parents:
diff changeset
   118
            ]
bda821037847 Initial revision
claus
parents:
diff changeset
   119
          ]
bda821037847 Initial revision
claus
parents:
diff changeset
   120
        ]
bda821037847 Initial revision
claus
parents:
diff changeset
   121
    ].
bda821037847 Initial revision
claus
parents:
diff changeset
   122
    thumbFrame := Rectangle left:nx top:ny width:nw height:nh
bda821037847 Initial revision
claus
parents:
diff changeset
   123
! !