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