ColoredListEntry.st
author claus
Sat, 09 Sep 1995 04:32:00 +0200
changeset 73 2ee590cb9714
parent 60 5b62e49552ba
child 86 4d7dbb5f1719
permissions -rw-r--r--
.

"
 COPYRIGHT (c) 1995 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.
"

'From Smalltalk/X, Version:2.10.5 on 15-may-1995 at 8:03:34 am'!

ListEntry subclass:#ColoredListEntry
	 instanceVariableNames:'color string'
	 classVariableNames:''
	 poolDictionaries:''
	 category:'Views-Support'
!

!ColoredListEntry class methodsFor:'documentation'!

copyright
"
 COPYRIGHT (c) 1995 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/libwidg2/ColoredListEntry.st,v 1.3 1995-09-09 02:32:00 claus Exp $
"
!

documentation
"
    Instances of ColoredListEntry can be used in place of strings
    as entries of the list in a ListView or SelectionInListView.
"
!

examples
"
     putting colored entries into a SelectionInListView
     (instead of strings)'

	|v e myList tabs|

	myList := OrderedCollection new.

	myList add:(ColoredListEntry string:'red' color:Color red).
	myList add:(ColoredListEntry string:'green' color:Color green).
	myList add:(ColoredListEntry string:'blue' color:Color blue).
	myList add:(ColoredListEntry string:'white' color:Color white).
	myList add:(ColoredListEntry string:'black' color:Color black).
	myList add:(ColoredListEntry string:'yellow' color:Color yellow).

	v := SelectionInListView new.
	v setList:myList expandTabs:false.
	v open


     in a popUpList (sorry, Labels do not (yet) know how to display
     non-strings.

	|v e myList selList tabs|

	myList := OrderedCollection new.

	myList add:(ColoredListEntry string:'red' color:Color red).
	myList add:(ColoredListEntry string:'green' color:Color green).
	myList add:(ColoredListEntry string:'blue' color:Color blue).
	myList add:(ColoredListEntry string:'white' color:Color white).
	myList add:(ColoredListEntry string:'black' color:Color black).
	myList add:(ColoredListEntry string:'yellow' color:Color yellow).

	selList := SelectionInList new list:myList.

	v := PopUpList on:selList.
	v open
"
! !

!ColoredListEntry class methodsFor:'instance creation'!

string:aString color:aColor
    ^ self new string:aString color:aColor
! !

!ColoredListEntry methodsFor:'drawing'!

displayOn:aGC x:x y:y
    "display the receiver on a GC"

    |savedPaint|

    savedPaint := aGC paint.
    aGC paint:color.
    aGC displayString:string x:x y:y.
    aGC paint:savedPaint
! !

!ColoredListEntry methodsFor:'accessing'!

string:aString color:aColor
    string := aString.
    color := aColor
! !

!ColoredListEntry methodsFor:'converting'!

string
    ^ string
!

asString
    ^ string
! !

!ColoredListEntry methodsFor:'queries'!

widthIn:aGC
    "return the width of the receiver when displayed in aGC"

    ^ aGC font widthOf:string
! !