Scale.st
author Jan Vrany <jan.vrany@labware.com>
Fri, 02 Sep 2022 11:25:39 +0100
branchjv
changeset 6261 9b7eb7159d29
parent 4770 6634b540fea2
permissions -rw-r--r--
Fix loong standing bug with some menus not being translated / resolved This has happened with browser "View" menu when sometimes it had the slice resolved and sometimes not. It turned out that it was because the code disabled resources (and therefore slices) resolution when processing shortcuts, so the menu was created and cached unresolved. This fixes the issue. eXept apparently run into the same problem.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
     1
"
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
     2
 COPYRIGHT (c) 1993 by Claus Gittinger
34
159147b254e1 *** empty log message ***
claus
parents: 1
diff changeset
     3
	      All Rights Reserved
1
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
     4
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
     5
 This software is furnished under a license and may be used
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
    10
 hereby transferred.
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
    11
"
4770
6634b540fea2 Added PluggableHierarchicalList to define ad-hoc tree models.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3150
diff changeset
    12
"{ Package: 'stx:libwidg2' }"
1
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
    13
4770
6634b540fea2 Added PluggableHierarchicalList to define ad-hoc tree models.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3150
diff changeset
    14
"{ NameSpace: Smalltalk }"
3150
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
    15
49
claus
parents: 34
diff changeset
    16
SimpleView subclass:#Scale
1229
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
    17
	instanceVariableNames:'slider range action'
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
    18
	classVariableNames:''
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
    19
	poolDictionaries:''
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
    20
	category:'Views-Interactors'
1
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
    21
!
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
    22
34
159147b254e1 *** empty log message ***
claus
parents: 1
diff changeset
    23
!Scale class methodsFor:'documentation'!
159147b254e1 *** empty log message ***
claus
parents: 1
diff changeset
    24
159147b254e1 *** empty log message ***
claus
parents: 1
diff changeset
    25
copyright
159147b254e1 *** empty log message ***
claus
parents: 1
diff changeset
    26
"
159147b254e1 *** empty log message ***
claus
parents: 1
diff changeset
    27
 COPYRIGHT (c) 1993 by Claus Gittinger
159147b254e1 *** empty log message ***
claus
parents: 1
diff changeset
    28
	      All Rights Reserved
159147b254e1 *** empty log message ***
claus
parents: 1
diff changeset
    29
159147b254e1 *** empty log message ***
claus
parents: 1
diff changeset
    30
 This software is furnished under a license and may be used
159147b254e1 *** empty log message ***
claus
parents: 1
diff changeset
    31
 only in accordance with the terms of that license and with the
159147b254e1 *** empty log message ***
claus
parents: 1
diff changeset
    32
 inclusion of the above copyright notice.   This software may not
159147b254e1 *** empty log message ***
claus
parents: 1
diff changeset
    33
 be provided or otherwise made available to, or used by, any
159147b254e1 *** empty log message ***
claus
parents: 1
diff changeset
    34
 other person.  No title to or ownership of the software is
159147b254e1 *** empty log message ***
claus
parents: 1
diff changeset
    35
 hereby transferred.
159147b254e1 *** empty log message ***
claus
parents: 1
diff changeset
    36
"
159147b254e1 *** empty log message ***
claus
parents: 1
diff changeset
    37
!
159147b254e1 *** empty log message ***
claus
parents: 1
diff changeset
    38
159147b254e1 *** empty log message ***
claus
parents: 1
diff changeset
    39
documentation
159147b254e1 *** empty log message ***
claus
parents: 1
diff changeset
    40
"
159147b254e1 *** empty log message ***
claus
parents: 1
diff changeset
    41
    like a slider, but with a range (i.e. may be different from 0..100)
159147b254e1 *** empty log message ***
claus
parents: 1
diff changeset
    42
    and displaying the current value.
159147b254e1 *** empty log message ***
claus
parents: 1
diff changeset
    43
"
159147b254e1 *** empty log message ***
claus
parents: 1
diff changeset
    44
!
159147b254e1 *** empty log message ***
claus
parents: 1
diff changeset
    45
3150
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
    46
examples
34
159147b254e1 *** empty log message ***
claus
parents: 1
diff changeset
    47
"
159147b254e1 *** empty log message ***
claus
parents: 1
diff changeset
    48
    |top s1 s2|
159147b254e1 *** empty log message ***
claus
parents: 1
diff changeset
    49
159147b254e1 *** empty log message ***
claus
parents: 1
diff changeset
    50
    top := StandardSystemView new.
159147b254e1 *** empty log message ***
claus
parents: 1
diff changeset
    51
    top extent:200@200.
1229
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
    52
    s1 := Scale origin:0.0 @ 0.0 in:top.
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
    53
    s1 extent:50 @ 1.0.
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
    54
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
    55
    s2 := Scale origin:0.5 @ 0.0 in:top.
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
    56
    s2 extent:50 @ 1.0.
34
159147b254e1 *** empty log message ***
claus
parents: 1
diff changeset
    57
    s2 range:(-50 to:50).
159147b254e1 *** empty log message ***
claus
parents: 1
diff changeset
    58
    top open
159147b254e1 *** empty log message ***
claus
parents: 1
diff changeset
    59
"
159147b254e1 *** empty log message ***
claus
parents: 1
diff changeset
    60
! !
159147b254e1 *** empty log message ***
claus
parents: 1
diff changeset
    61
1
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
    62
!Scale methodsFor:'accessing'!
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
    63
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
    64
range:anInterval
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
    65
    range := anInterval
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
    66
!
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
    67
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
    68
scrollAction:aBlock
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
    69
    action := aBlock
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
    70
! !
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
    71
1229
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
    72
!Scale methodsFor:'drawing'!
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
    73
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
    74
redraw
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
    75
    |percent value y label|
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
    76
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
    77
    percent := slider thumbOrigin.
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
    78
    value := (range last - range first) * (percent / 100).
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
    79
    value := value + range first.
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
    80
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
    81
    y := slider thumbFrame top + (slider thumbFrame height // 2).
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
    82
    self clear.
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
    83
    self paint:Black.
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
    84
    value := value roundTo:(range last - range first) / 100.
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
    85
    label := value asFloat printString.
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
    86
    (label endsWith:'.0') ifTrue:[
3150
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
    87
	label := value asInteger printString
1229
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
    88
    ].
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
    89
    self displayString:label
3150
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
    90
		     x:slider width + device horizontalPixelPerMillimeter
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
    91
		     y:y + (font ascent // 2)
1229
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
    92
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
    93
    "Created: / 7.3.1999 / 00:12:42 / cg"
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
    94
    "Modified: / 7.3.1999 / 00:17:52 / cg"
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
    95
! !
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
    96
1
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
    97
!Scale methodsFor:'initialization'!
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
    98
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
    99
initialize
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
   100
    super initialize.
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
   101
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
   102
    range := (0 to:100).
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
   103
    slider := Slider in:self.
1229
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   104
"/    slider fixSize.
1
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
   105
    slider origin:0.0 @ 0.0.
1229
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   106
    slider height:1.0.
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   107
3150
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
   108
"/    self width:(slider width
1229
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   109
"/                + (font widthOf:'100')
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   110
"/                + (device horizontalPixelPerMillimeter * 2) rounded).
1
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
   111
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
   112
    slider scrollAction:[:percent | self scroll:percent].
1229
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   113
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   114
    "Modified: / 7.3.1999 / 00:23:42 / cg"
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   115
! !
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   116
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   117
!Scale methodsFor:'queries'!
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   118
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   119
preferredExtent
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   120
    ^ slider preferredExtent + ((font widthOf:'999') @ 0)
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   121
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   122
    "Created: / 7.3.1999 / 00:02:25 / cg"
1
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
   123
! !
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
   124
1229
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   125
!Scale methodsFor:'slider actions'!
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   126
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   127
scroll:percent
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   128
    |value|
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   129
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   130
    value := (range last - range first) * (percent / 100).
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   131
    value := value + range first.
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   132
    action notNil ifTrue:[
3150
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
   133
	action value:value.
1229
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   134
    ].
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   135
    self redraw
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   136
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   137
    "Modified: / 7.3.1999 / 00:17:46 / cg"
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   138
! !
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   139
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   140
!Scale class methodsFor:'documentation'!
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   141
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   142
version
3150
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
   143
    ^ '$Header: /cvs/stx/stx/libwidg2/Scale.st,v 1.6 2006-11-13 16:11:31 cg Exp $'
1229
a0a54048f8ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   144
! !
4770
6634b540fea2 Added PluggableHierarchicalList to define ad-hoc tree models.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3150
diff changeset
   145