HierarchicalItemWithLabelAndIcon.st
author Claus Gittinger <cg@exept.de>
Fri, 15 Jun 2018 10:54:35 +0200
changeset 5816 7876c07931a7
parent 4946 bca0c3af0b20
child 6018 82aee28e50d5
permissions -rw-r--r--
#DOCUMENTATION by cg class: ComboListView class comment/format in: #documentation
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2943
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
 COPYRIGHT (c) 2006 by eXept Software AG
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
              All Rights Reserved
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
 This software is furnished under a license and may be used
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
 hereby transferred.
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
"
4694
7f830911e3aa change messages when icon or label changes
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
    12
"{ Package: 'stx:libwidg2' }"
2943
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
4694
7f830911e3aa change messages when icon or label changes
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
    14
"{ NameSpace: Smalltalk }"
2943
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
HierarchicalItemWithLabel subclass:#HierarchicalItemWithLabelAndIcon
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
	instanceVariableNames:'icon'
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
	classVariableNames:''
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
	poolDictionaries:''
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
	category:'Views-Support'
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
!
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
!HierarchicalItemWithLabelAndIcon class methodsFor:'documentation'!
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
copyright
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
"
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
 COPYRIGHT (c) 2006 by eXept Software AG
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
              All Rights Reserved
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
 This software is furnished under a license and may be used
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
 only in accordance with the terms of that license and with the
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
 inclusion of the above copyright notice.   This software may not
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
 be provided or otherwise made available to, or used by, any
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
 other person.  No title to or ownership of the software is
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
 hereby transferred.
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
"
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
! !
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
4945
dde70d8f3913 added instance creation messages label:/label:icon:
Claus Gittinger <cg@exept.de>
parents: 4694
diff changeset
    39
!HierarchicalItemWithLabelAndIcon class methodsFor:'instance creation'!
dde70d8f3913 added instance creation messages label:/label:icon:
Claus Gittinger <cg@exept.de>
parents: 4694
diff changeset
    40
dde70d8f3913 added instance creation messages label:/label:icon:
Claus Gittinger <cg@exept.de>
parents: 4694
diff changeset
    41
label:aLabel icon:anIcon
dde70d8f3913 added instance creation messages label:/label:icon:
Claus Gittinger <cg@exept.de>
parents: 4694
diff changeset
    42
    ^ self new label:aLabel icon:anIcon
dde70d8f3913 added instance creation messages label:/label:icon:
Claus Gittinger <cg@exept.de>
parents: 4694
diff changeset
    43
! !
dde70d8f3913 added instance creation messages label:/label:icon:
Claus Gittinger <cg@exept.de>
parents: 4694
diff changeset
    44
2943
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
!HierarchicalItemWithLabelAndIcon methodsFor:'accessing'!
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
icon
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
    "returns the icon"
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
    ^ icon
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
!
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
4694
7f830911e3aa change messages when icon or label changes
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
    53
icon:anIcon
2943
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
    "set the value of the instance variable 'icon' (automatically generated)"
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
4694
7f830911e3aa change messages when icon or label changes
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
    56
    icon ~= anIcon ifTrue:[
7f830911e3aa change messages when icon or label changes
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
    57
        icon := anIcon.
7f830911e3aa change messages when icon or label changes
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
    58
        self iconChanged
7f830911e3aa change messages when icon or label changes
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
    59
    ].
2943
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
!
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
label:aLabel icon:anIcon
4946
Claus Gittinger <cg@exept.de>
parents: 4945
diff changeset
    63
    |anyChange labelChanged|
4694
7f830911e3aa change messages when icon or label changes
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
    64
7f830911e3aa change messages when icon or label changes
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
    65
    anyChange := false.
7f830911e3aa change messages when icon or label changes
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
    66
    (icon ~= anIcon) ifTrue:[
7f830911e3aa change messages when icon or label changes
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
    67
        icon := anIcon.
7f830911e3aa change messages when icon or label changes
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
    68
        anyChange := true
7f830911e3aa change messages when icon or label changes
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
    69
    ].
4946
Claus Gittinger <cg@exept.de>
parents: 4945
diff changeset
    70
    
Claus Gittinger <cg@exept.de>
parents: 4945
diff changeset
    71
    labelChanged := false.
Claus Gittinger <cg@exept.de>
parents: 4945
diff changeset
    72
    (label isString and:[aLabel isString]) ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4945
diff changeset
    73
        labelChanged := (label sameStringAndEmphasisAs:aLabel) not.
Claus Gittinger <cg@exept.de>
parents: 4945
diff changeset
    74
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 4945
diff changeset
    75
        labelChanged := (label ~= aLabel)
Claus Gittinger <cg@exept.de>
parents: 4945
diff changeset
    76
    ].
Claus Gittinger <cg@exept.de>
parents: 4945
diff changeset
    77
    labelChanged ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4945
diff changeset
    78
        label := aLabel.
4694
7f830911e3aa change messages when icon or label changes
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
    79
        anyChange := true
7f830911e3aa change messages when icon or label changes
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
    80
    ].
7f830911e3aa change messages when icon or label changes
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
    81
    anyChange ifTrue:[ self changed ].
2943
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
!
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
labeled:aLabel icon:anIcon
4694
7f830911e3aa change messages when icon or label changes
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
    85
    "backward compatibility"
2943
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
4694
7f830911e3aa change messages when icon or label changes
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
    87
    self label:aLabel icon:anIcon
2943
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
! !
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
!HierarchicalItemWithLabelAndIcon class methodsFor:'documentation'!
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
version
4945
dde70d8f3913 added instance creation messages label:/label:icon:
Claus Gittinger <cg@exept.de>
parents: 4694
diff changeset
    93
    ^ '$Header$'
4946
Claus Gittinger <cg@exept.de>
parents: 4945
diff changeset
    94
!
Claus Gittinger <cg@exept.de>
parents: 4945
diff changeset
    95
Claus Gittinger <cg@exept.de>
parents: 4945
diff changeset
    96
version_CVS
Claus Gittinger <cg@exept.de>
parents: 4945
diff changeset
    97
    ^ '$Header$'
2943
8f42783f6e38 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
! !
4694
7f830911e3aa change messages when icon or label changes
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
    99