Button.st
changeset 1206 003498bf0349
parent 1196 42a10a56d284
child 1223 840e31e3f140
equal deleted inserted replaced
1205:26928c428c5c 1206:003498bf0349
    13 Label subclass:#Button
    13 Label subclass:#Button
    14 	instanceVariableNames:'activeLogo passiveLogo disabledLogo focusLogo onLevel offLevel
    14 	instanceVariableNames:'activeLogo passiveLogo disabledLogo focusLogo onLevel offLevel
    15 		disabledFgColor activeFgColor activeBgColor enteredFgColor
    15 		disabledFgColor activeFgColor activeBgColor enteredFgColor
    16 		enteredBgColor isReturnButton shadowForm lightForm formColor
    16 		enteredBgColor isReturnButton shadowForm lightForm formColor
    17 		formShadowColor formLightColor edgeStyle halfShadowColor
    17 		formShadowColor formLightColor edgeStyle halfShadowColor
    18 		halfLightColor defaultable'
    18 		halfLightColor defaultable enterLevel leaveLevel'
    19 	classVariableNames:'ReturnForm ReturnLightForm ReturnShadowForm DefaultActiveLevel
    19 	classVariableNames:'ReturnForm ReturnLightForm ReturnShadowForm DefaultActiveLevel
    20 		DefaultPassiveLevel DefaultEdgeStyle DefaultBorderWidth
    20 		DefaultPassiveLevel DefaultEdgeStyle DefaultBorderWidth
    21 		DefaultForegroundColor DefaultBackgroundColor
    21 		DefaultForegroundColor DefaultBackgroundColor
    22 		DefaultDisabledForegroundColor DefaultDisabledBackgroundColor
    22 		DefaultDisabledForegroundColor DefaultDisabledBackgroundColor
    23 		DefaultEnteredForegroundColor DefaultEnteredBackgroundColor
    23 		DefaultEnteredForegroundColor DefaultEnteredBackgroundColor
  1280     "set the edgestyle - currently only #soft or nil"
  1280     "set the edgestyle - currently only #soft or nil"
  1281 
  1281 
  1282     edgeStyle := aSymbol
  1282     edgeStyle := aSymbol
  1283 !
  1283 !
  1284 
  1284 
       
  1285 enterLevel
       
  1286     "return the level to be used when the mouse
       
  1287      pointer enters the button area"
       
  1288 
       
  1289     ^ enterLevel
       
  1290 
       
  1291     "Created: 26.4.1997 / 20:48:53 / cg"
       
  1292     "Modified: 26.4.1997 / 20:49:29 / cg"
       
  1293 !
       
  1294 
       
  1295 enterLevel:aNumber
       
  1296     "set the level to be used when the mouse
       
  1297      pointer enters the button area"
       
  1298 
       
  1299     enterLevel := aNumber
       
  1300 
       
  1301     "Created: 26.4.1997 / 20:49:10 / cg"
       
  1302     "Modified: 26.4.1997 / 20:49:35 / cg"
       
  1303 !
       
  1304 
  1285 enteredBackgroundColor
  1305 enteredBackgroundColor
  1286     "return the background color to be used when the mouse
  1306     "return the background color to be used when the mouse
  1287      pointer enters the button area"
  1307      pointer enters the button area"
  1288 
  1308 
  1289     ^ enteredBgColor
  1309     ^ enteredBgColor
  1329 	    self borderWidth:(aBoolean ifTrue:[1] ifFalse:[0])
  1349 	    self borderWidth:(aBoolean ifTrue:[1] ifFalse:[0])
  1330 	].
  1350 	].
  1331 	isReturnButton := aBoolean.
  1351 	isReturnButton := aBoolean.
  1332 	self newLayout
  1352 	self newLayout
  1333     ]
  1353     ]
       
  1354 !
       
  1355 
       
  1356 leaveLevel
       
  1357     "return the level to be used when the mouse
       
  1358      pointer leaves the button area"
       
  1359 
       
  1360     ^ leaveLevel
       
  1361 
       
  1362     "Created: 26.4.1997 / 20:48:26 / cg"
       
  1363     "Modified: 26.4.1997 / 20:49:47 / cg"
       
  1364 !
       
  1365 
       
  1366 leaveLevel:aNumber
       
  1367     "set the level to be used when the mouse
       
  1368      pointer leaves the button area"
       
  1369 
       
  1370     leaveLevel := aNumber
       
  1371 
       
  1372     "Created: 26.4.1997 / 20:49:22 / cg"
       
  1373     "Modified: 26.4.1997 / 20:49:53 / cg"
  1334 !
  1374 !
  1335 
  1375 
  1336 loseDefault
  1376 loseDefault
  1337     "ST-80 compatibility - clear isReturnButton attribute"
  1377     "ST-80 compatibility - clear isReturnButton attribute"
  1338 
  1378 
  1746             shadowForm := self class returnFormOn:device.
  1786             shadowForm := self class returnFormOn:device.
  1747             formColor := Black
  1787             formColor := Black
  1748         ].
  1788         ].
  1749     ].
  1789     ].
  1750 
  1790 
  1751     "Modified: 17.1.1997 / 23:15:57 / cg"
  1791     "Modified: 26.4.1997 / 20:53:05 / cg"
  1752 !
  1792 !
  1753 
  1793 
  1754 initialize
  1794 initialize
  1755     super initialize.
  1795     super initialize.
  1756 
  1796 
  2008 redraw
  2048 redraw
  2009     "redraw the button. 
  2049     "redraw the button. 
  2010      Thats like redrawing a label, but use different colors when pressed
  2050      Thats like redrawing a label, but use different colors when pressed
  2011      or entered."
  2051      or entered."
  2012 
  2052 
  2013     |fg bg entered noFrame|
  2053     |fg bg entered noFrame lvl|
  2014 
  2054 
  2015     shown ifFalse:[^ self].
  2055     shown ifFalse:[^ self].
  2016 
  2056 
  2017     disabledLogo notNil ifTrue:[
  2057     disabledLogo notNil ifTrue:[
  2018         controller enabled ifFalse:[
  2058         controller enabled ifFalse:[
  2033         fg := disabledFgColor
  2073         fg := disabledFgColor
  2034     ] ifTrue:[
  2074     ] ifTrue:[
  2035         entered := controller entered.
  2075         entered := controller entered.
  2036         entered ifTrue:[
  2076         entered ifTrue:[
  2037             enteredFgColor notNil ifTrue:[fg := enteredFgColor].
  2077             enteredFgColor notNil ifTrue:[fg := enteredFgColor].
  2038             enteredBgColor notNil ifTrue:[bg := enteredBgColor]
  2078             enteredBgColor notNil ifTrue:[bg := enteredBgColor].
       
  2079             lvl := enterLevel.
       
  2080         ] ifFalse:[
       
  2081             lvl := leaveLevel
       
  2082         ].
       
  2083         (enterLevel notNil and:[leaveLevel notNil]) ifTrue:[
       
  2084             offLevel ~~ lvl ifTrue:[
       
  2085                 offLevel := lvl.
       
  2086                 offLevel ~~ level ifTrue:[
       
  2087                     self level:offLevel
       
  2088                 ]
       
  2089             ]
  2039         ].
  2090         ].
  2040         (controller pressed and:[entered or:[controller isTriggerOnDown]]) ifTrue:[
  2091         (controller pressed and:[entered or:[controller isTriggerOnDown]]) ifTrue:[
  2041             noFrame := false.
  2092             noFrame := false.
  2042             activeFgColor isNil ifTrue:[
  2093             activeFgColor isNil ifTrue:[
  2043                 onLevel == offLevel ifTrue:[
  2094                 onLevel == offLevel ifTrue:[
  2067         self paint:fg.
  2118         self paint:fg.
  2068         self displayRectangleX:0 y:0 width:width height:height.
  2119         self displayRectangleX:0 y:0 width:width height:height.
  2069         ^ self
  2120         ^ self
  2070     ].
  2121     ].
  2071 
  2122 
  2072     "Modified: 1.4.1997 / 13:26:16 / cg"
  2123     "Modified: 26.4.1997 / 20:59:05 / cg"
  2073 !
  2124 !
  2074 
  2125 
  2075 redrawIfPressed
  2126 redrawIfPressed
  2076     "redraw the button, but only if visible and currently being pressed"
  2127     "redraw the button, but only if visible and currently being pressed"
  2077 
  2128 
  2119 ! !
  2170 ! !
  2120 
  2171 
  2121 !Button class methodsFor:'documentation'!
  2172 !Button class methodsFor:'documentation'!
  2122 
  2173 
  2123 version
  2174 version
  2124     ^ '$Header: /cvs/stx/stx/libwidg/Button.st,v 1.84 1997-04-18 18:36:15 cg Exp $'
  2175     ^ '$Header: /cvs/stx/stx/libwidg/Button.st,v 1.85 1997-04-26 19:00:46 cg Exp $'
  2125 ! !
  2176 ! !