HorizontalSlider.st
author claus
Sun, 30 Apr 1995 15:40:33 +0200
changeset 48 c844acacf010
parent 24 6704fad5eb7d
child 49 4dd0f5c3353e
permissions -rw-r--r--
*** empty log message ***
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
24
6704fad5eb7d *** empty log message ***
claus
parents: 17
diff changeset
     3
	      All Rights Reserved
17
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
24
6704fad5eb7d *** empty log message ***
claus
parents: 17
diff changeset
    22
	      All Rights Reserved
17
bda821037847 Initial revision
claus
parents:
diff changeset
    23
48
c844acacf010 *** empty log message ***
claus
parents: 24
diff changeset
    24
$Header: /cvs/stx/stx/libwidg2/HorizontalSlider.st,v 1.3 1995-04-30 13:40:33 claus Exp $
17
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
24
6704fad5eb7d *** empty log message ***
claus
parents: 17
diff changeset
    32
	      All Rights Reserved
17
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
"
48
c844acacf010 *** empty log message ***
claus
parents: 24
diff changeset
    45
$Header: /cvs/stx/stx/libwidg2/HorizontalSlider.st,v 1.3 1995-04-30 13:40:33 claus Exp $
17
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.
48
c844acacf010 *** empty log message ***
claus
parents: 24
diff changeset
    60
    thumbHeight := 0.
17
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.
24
6704fad5eb7d *** empty log message ***
claus
parents: 17
diff changeset
    65
    tallyMarks := StyleSheet at:'sliderNTallyMarks' default:1.
6704fad5eb7d *** empty log message ***
claus
parents: 17
diff changeset
    66
    tallyLevel := StyleSheet at:'sliderTallyLevel' default:-1.    
17
bda821037847 Initial revision
claus
parents:
diff changeset
    67
! !
bda821037847 Initial revision
claus
parents:
diff changeset
    68
bda821037847 Initial revision
claus
parents:
diff changeset
    69
!HorizontalSlider methodsFor:'accessing'!
bda821037847 Initial revision
claus
parents:
diff changeset
    70
bda821037847 Initial revision
claus
parents:
diff changeset
    71
thumbHeight
bda821037847 Initial revision
claus
parents:
diff changeset
    72
    "redefined since a slider has no height - just origin"
bda821037847 Initial revision
claus
parents:
diff changeset
    73
bda821037847 Initial revision
claus
parents:
diff changeset
    74
    ^ nil
bda821037847 Initial revision
claus
parents:
diff changeset
    75
! !
bda821037847 Initial revision
claus
parents:
diff changeset
    76
bda821037847 Initial revision
claus
parents:
diff changeset
    77
!HorizontalSlider methodsFor:'private'!
bda821037847 Initial revision
claus
parents:
diff changeset
    78
bda821037847 Initial revision
claus
parents:
diff changeset
    79
absFromPercent:percent
bda821037847 Initial revision
claus
parents:
diff changeset
    80
    "given a percentage, compute number of pixels"
bda821037847 Initial revision
claus
parents:
diff changeset
    81
bda821037847 Initial revision
claus
parents:
diff changeset
    82
    ^ ((percent * (width - sliderHeight - (margin * 2))) / 100) rounded 
bda821037847 Initial revision
claus
parents:
diff changeset
    83
!
bda821037847 Initial revision
claus
parents:
diff changeset
    84
bda821037847 Initial revision
claus
parents:
diff changeset
    85
percentFromAbs:absValue
bda821037847 Initial revision
claus
parents:
diff changeset
    86
    "given a number of pixels, compute percentage"
bda821037847 Initial revision
claus
parents:
diff changeset
    87
bda821037847 Initial revision
claus
parents:
diff changeset
    88
    |val|
bda821037847 Initial revision
claus
parents:
diff changeset
    89
bda821037847 Initial revision
claus
parents:
diff changeset
    90
    val := absValue / (width - sliderHeight - (margin * 2)) * 100.
bda821037847 Initial revision
claus
parents:
diff changeset
    91
    val < 0 ifTrue:[^ 0].
bda821037847 Initial revision
claus
parents:
diff changeset
    92
    val > 100 ifTrue:[^ 100].
bda821037847 Initial revision
claus
parents:
diff changeset
    93
    ^ val
bda821037847 Initial revision
claus
parents:
diff changeset
    94
!
bda821037847 Initial revision
claus
parents:
diff changeset
    95
bda821037847 Initial revision
claus
parents:
diff changeset
    96
computeThumbFrame
bda821037847 Initial revision
claus
parents:
diff changeset
    97
    "redefined, since the thumb-height stays constant"
bda821037847 Initial revision
claus
parents:
diff changeset
    98
bda821037847 Initial revision
claus
parents:
diff changeset
    99
    |nh nw ny nx|
bda821037847 Initial revision
claus
parents:
diff changeset
   100
bda821037847 Initial revision
claus
parents:
diff changeset
   101
    thumbHeight := 0.
bda821037847 Initial revision
claus
parents:
diff changeset
   102
    nx := (self absFromPercent:thumbOrigin) + margin.
bda821037847 Initial revision
claus
parents:
diff changeset
   103
    nw := sliderHeight.
bda821037847 Initial revision
claus
parents:
diff changeset
   104
    ny := margin + inset.     
bda821037847 Initial revision
claus
parents:
diff changeset
   105
    nh := height - (2 * ny).
bda821037847 Initial revision
claus
parents:
diff changeset
   106
    "
bda821037847 Initial revision
claus
parents:
diff changeset
   107
     do not create new Rectangle if its the same anyway
bda821037847 Initial revision
claus
parents:
diff changeset
   108
    "
bda821037847 Initial revision
claus
parents:
diff changeset
   109
    thumbFrame notNil ifTrue:[
24
6704fad5eb7d *** empty log message ***
claus
parents: 17
diff changeset
   110
	(ny == thumbFrame top) ifTrue:[
6704fad5eb7d *** empty log message ***
claus
parents: 17
diff changeset
   111
	  (nx == thumbFrame left) ifTrue:[
6704fad5eb7d *** empty log message ***
claus
parents: 17
diff changeset
   112
	    (nh == thumbFrame height) ifTrue:[
6704fad5eb7d *** empty log message ***
claus
parents: 17
diff changeset
   113
	      (nw == thumbFrame width) ifTrue:[ ^ self]
6704fad5eb7d *** empty log message ***
claus
parents: 17
diff changeset
   114
	    ]
6704fad5eb7d *** empty log message ***
claus
parents: 17
diff changeset
   115
	  ]
6704fad5eb7d *** empty log message ***
claus
parents: 17
diff changeset
   116
	]
17
bda821037847 Initial revision
claus
parents:
diff changeset
   117
    ].
bda821037847 Initial revision
claus
parents:
diff changeset
   118
    thumbFrame := Rectangle left:nx top:ny width:nw height:nh
bda821037847 Initial revision
claus
parents:
diff changeset
   119
! !