RadioButtonGroup.st
author claus
Thu, 16 Feb 1995 04:13:03 +0100
changeset 86 df2687090a7f
parent 63 f4eaf04d1eaf
child 105 3d064ba4a0cc
permissions -rw-r--r--
*** empty log message ***

"
 COPYRIGHT (c) 1991 by Claus Gittinger
	      All Rights Reserved

 This software is furnished under a license and may be used
 only in accordance with the terms of that license and with the
 inclusion of the above copyright notice.   This software may not
 be provided or otherwise made available to, or used by, any
 other person.  No title to or ownership of the software is
 hereby transferred.
"

OrderedCollection subclass:#RadioButtonGroup
	 instanceVariableNames:''
	 classVariableNames:''
	 poolDictionaries:''
	 category:'Views-Support'
!

RadioButtonGroup comment:'
COPYRIGHT (c) 1991 by Claus Gittinger
	      All Rights Reserved

$Header: /cvs/stx/stx/libwidg/RadioButtonGroup.st,v 1.8 1995-02-16 03:12:56 claus Exp $
'!

!RadioButtonGroup class methodsFor:'documentation '!

copyright
"
 COPYRIGHT (c) 1991 by Claus Gittinger
	      All Rights Reserved

 This software is furnished under a license and may be used
 only in accordance with the terms of that license and with the
 inclusion of the above copyright notice.   This software may not
 be provided or otherwise made available to, or used by, any
 other person.  No title to or ownership of the software is
 hereby transferred.
"
!

version
"
$Header: /cvs/stx/stx/libwidg/RadioButtonGroup.st,v 1.8 1995-02-16 03:12:56 claus Exp $
"
!

documentation
"
    RadioButtonGroups control the interaction between RadioButtons
    turning off other button(s) when one of the group is pressed.
    To group some buttons (and have one-on behavior) use:

	|g|

	g := RadioButtonGroup new.
	...
	b1 := RadioButton label:....
	g add:b1
	...
	b2 := RadioButton label:....
	g add:b2
	...
"
! !

!RadioButtonGroup methodsFor:'adding / removing'!

add:aRadioButton
    super add:aRadioButton.
    aRadioButton addDependent:self.
    aRadioButton group:self
! !

!RadioButtonGroup methodsFor:'update'!

update:something with:someArgument from:changedButton
    (self includes:changedButton) ifFalse:[^ self].

    "a RadioButton in this group has changed - notify the others"

    "in case we have a toggle in the group, 
     and it has been turned off - turn it on again
    "
    changedButton isOn ifFalse:[
	changedButton toggleNoAction.
	^ self
    ].
    self do:[:aButton |
	(aButton == changedButton) ifFalse:[
	    aButton isOn ifTrue:[
		aButton turnOff
	    ]
	]
    ]

! !