LinkButton.st
author Claus Gittinger <cg@exept.de>
Thu, 05 Mar 2009 22:18:55 +0100
changeset 3650 60a95483b993
child 3662 fb3778b66ce3
permissions -rw-r--r--
initial checkin
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3650
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:libwidg2' }"
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
Button subclass:#LinkButton
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
	instanceVariableNames:'labelsAndActions'
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
	classVariableNames:''
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	poolDictionaries:''
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	category:'Views-Layout'
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
!
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
!LinkButton class methodsFor:'documentation'!
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
documentation
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
"
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
    Looks like a Label, but behaves like a button with individually clickable text components.
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
    Can be used to create htmp-page-look-alike links in a view.
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
    [author:]
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
        cg (cg@CG-VOSTRO)
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
    [instance variables:]
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
    [class variables:]
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
    [see also:]
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
"
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
!
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
examples
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
"
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
    |v l|
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
    v := StandardSystemView new.
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
    l := LinkButton in:v.
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
    l labelsAndActions:{ 
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
                        'Hello' -> [ self halt:'Hello'].
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
                        ' ' -> nil.
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
                        'World' -> [ self halt:'World'].
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
                       }.
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
    l foregroundColor:Color blue.
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
    v open
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
"
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
! !
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
!LinkButton methodsFor:'accessing'!
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
labelsAndActions
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
    "returns the collection of label->action associations. 
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
     For display, the label strings are drawn as one concatenated string (add separating spaces, if you have to).
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
     When clicked on a string, the corresponding action is called"
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
    ^ labelsAndActions
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
!
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
labelsAndActions:aCollectionOfAssociations
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
    "set the collection of label->action associations. 
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
     For display, the label strings are drawn as one concatenated string (add separating spaces, if you have to).
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
     When clicked on a string, the corresponding action is called"
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
    labelsAndActions := aCollectionOfAssociations.
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
    self label:((aCollectionOfAssociations collect:[:assoc | assoc key]) asStringWith:'')
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
! !
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
!LinkButton methodsFor:'initialization'!
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
defaultControllerClass
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
    ^ LinkButtonController
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
! !
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
!LinkButton class methodsFor:'documentation'!
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
version
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
    ^ '$Header: /cvs/stx/stx/libwidg2/LinkButton.st,v 1.1 2009-03-05 21:18:55 cg Exp $'
60a95483b993 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
! !