MenuItem.st
author Claus Gittinger <cg@exept.de>
Tue, 03 Sep 2013 17:23:55 +0200
changeset 3228 187a4158a51a
parent 3225 7cfefeb97495
child 3305 06a3d26394de
permissions -rw-r--r--
class: FlyByHelp changed: #initiateHelpFor:at:now: #showHelp:for: changed the flyBy suppression slightly: if the same text is to be shown again, do not show it except if the help is for another widget. (used to check for the text only previously)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1196
27897663fc97 docu & copyright
Claus Gittinger <cg@exept.de>
parents: 1044
diff changeset
     1
"
27897663fc97 docu & copyright
Claus Gittinger <cg@exept.de>
parents: 1044
diff changeset
     2
 COPYRIGHT (c) 1998 by eXept Software AG
27897663fc97 docu & copyright
Claus Gittinger <cg@exept.de>
parents: 1044
diff changeset
     3
              All Rights Reserved
27897663fc97 docu & copyright
Claus Gittinger <cg@exept.de>
parents: 1044
diff changeset
     4
27897663fc97 docu & copyright
Claus Gittinger <cg@exept.de>
parents: 1044
diff changeset
     5
 This software is furnished under a license and may be used
27897663fc97 docu & copyright
Claus Gittinger <cg@exept.de>
parents: 1044
diff changeset
     6
 only in accordance with the terms of that license and with the
27897663fc97 docu & copyright
Claus Gittinger <cg@exept.de>
parents: 1044
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
27897663fc97 docu & copyright
Claus Gittinger <cg@exept.de>
parents: 1044
diff changeset
     8
 be provided or otherwise made available to, or used by, any
27897663fc97 docu & copyright
Claus Gittinger <cg@exept.de>
parents: 1044
diff changeset
     9
 other person.  No title to or ownership of the software is
27897663fc97 docu & copyright
Claus Gittinger <cg@exept.de>
parents: 1044
diff changeset
    10
 hereby transferred.
27897663fc97 docu & copyright
Claus Gittinger <cg@exept.de>
parents: 1044
diff changeset
    11
"
1369
281acc9f1a73 dont store choiceValue for non-choice items.
Claus Gittinger <cg@exept.de>
parents: 1360
diff changeset
    12
"{ Package: 'stx:libview2' }"
281acc9f1a73 dont store choiceValue for non-choice items.
Claus Gittinger <cg@exept.de>
parents: 1360
diff changeset
    13
451
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
Object subclass:#MenuItem
3023
763ad69e9832 menuitem protocol
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
    15
	instanceVariableNames:'activeHelpKey enabled label itemValue nameKey translateLabel
763ad69e9832 menuitem protocol
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
    16
		isButton startGroup isVisible hideMenuOnActivated triggerOnDown
763ad69e9832 menuitem protocol
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
    17
		indication submenu submenuChannel submenuProvider shortcutKey
763ad69e9832 menuitem protocol
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
    18
		labelImage accessCharacterPosition argument choice choiceValue
763ad69e9832 menuitem protocol
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
    19
		font auxValue showBusyCursorWhilePerforming keepLinkedMenu
763ad69e9832 menuitem protocol
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
    20
		horizontalLayout sendToOriginator ignoreMnemonicKeys
763ad69e9832 menuitem protocol
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
    21
		ignoreShortcutKeys isMenuSlice uuid'
451
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
	classVariableNames:''
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
	poolDictionaries:''
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
	category:'Views-Support'
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
!
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
!MenuItem class methodsFor:'documentation'!
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
1196
27897663fc97 docu & copyright
Claus Gittinger <cg@exept.de>
parents: 1044
diff changeset
    29
copyright
27897663fc97 docu & copyright
Claus Gittinger <cg@exept.de>
parents: 1044
diff changeset
    30
"
27897663fc97 docu & copyright
Claus Gittinger <cg@exept.de>
parents: 1044
diff changeset
    31
 COPYRIGHT (c) 1998 by eXept Software AG
27897663fc97 docu & copyright
Claus Gittinger <cg@exept.de>
parents: 1044
diff changeset
    32
              All Rights Reserved
27897663fc97 docu & copyright
Claus Gittinger <cg@exept.de>
parents: 1044
diff changeset
    33
27897663fc97 docu & copyright
Claus Gittinger <cg@exept.de>
parents: 1044
diff changeset
    34
 This software is furnished under a license and may be used
27897663fc97 docu & copyright
Claus Gittinger <cg@exept.de>
parents: 1044
diff changeset
    35
 only in accordance with the terms of that license and with the
27897663fc97 docu & copyright
Claus Gittinger <cg@exept.de>
parents: 1044
diff changeset
    36
 inclusion of the above copyright notice.   This software may not
27897663fc97 docu & copyright
Claus Gittinger <cg@exept.de>
parents: 1044
diff changeset
    37
 be provided or otherwise made available to, or used by, any
27897663fc97 docu & copyright
Claus Gittinger <cg@exept.de>
parents: 1044
diff changeset
    38
 other person.  No title to or ownership of the software is
27897663fc97 docu & copyright
Claus Gittinger <cg@exept.de>
parents: 1044
diff changeset
    39
 hereby transferred.
27897663fc97 docu & copyright
Claus Gittinger <cg@exept.de>
parents: 1044
diff changeset
    40
"
27897663fc97 docu & copyright
Claus Gittinger <cg@exept.de>
parents: 1044
diff changeset
    41
27897663fc97 docu & copyright
Claus Gittinger <cg@exept.de>
parents: 1044
diff changeset
    42
!
27897663fc97 docu & copyright
Claus Gittinger <cg@exept.de>
parents: 1044
diff changeset
    43
451
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
documentation
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
"
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
    not yet finished MenuItem class - this will eventually replace
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
    most of the MenuView and PopUpMenu stuff.
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
    (and hopefully be ST-80 compatible ...)
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
    For now, only a subset of the full protocol is implemented.
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
    [author:]
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
        Claus Gittinger
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
    [see also:]
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
        MenuItem
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
        PopUpMenu
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
"
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
! !
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
490
ebe88e50b29a *** empty log message ***
ca
parents: 458
diff changeset
    62
!MenuItem class methodsFor:'instance creation'!
ebe88e50b29a *** empty log message ***
ca
parents: 458
diff changeset
    63
1044
5ecf46d0f1b7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1041
diff changeset
    64
label:aString
5ecf46d0f1b7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1041
diff changeset
    65
    "create and return a new menuItem, given a label string"
5ecf46d0f1b7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1041
diff changeset
    66
3003
e2177537ecb8 added: #label:value:argument:
Claus Gittinger <cg@exept.de>
parents: 2987
diff changeset
    67
    ^ self new 
e2177537ecb8 added: #label:value:argument:
Claus Gittinger <cg@exept.de>
parents: 2987
diff changeset
    68
        label:aString;
e2177537ecb8 added: #label:value:argument:
Claus Gittinger <cg@exept.de>
parents: 2987
diff changeset
    69
        yourself
1044
5ecf46d0f1b7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1041
diff changeset
    70
3003
e2177537ecb8 added: #label:value:argument:
Claus Gittinger <cg@exept.de>
parents: 2987
diff changeset
    71
    "Created: / 14-08-1998 / 19:19:14 / cg"
1044
5ecf46d0f1b7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1041
diff changeset
    72
!
5ecf46d0f1b7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1041
diff changeset
    73
2813
Claus Gittinger <cg@exept.de>
parents: 2755
diff changeset
    74
label:labelString choice:choiceAspect choiceValue:selectorOrValue
Claus Gittinger <cg@exept.de>
parents: 2755
diff changeset
    75
    "create and return a new menuItem, given its label and choice/value.
Claus Gittinger <cg@exept.de>
parents: 2755
diff changeset
    76
     This will create a Radio-Button-like item."
Claus Gittinger <cg@exept.de>
parents: 2755
diff changeset
    77
3003
e2177537ecb8 added: #label:value:argument:
Claus Gittinger <cg@exept.de>
parents: 2987
diff changeset
    78
    ^ (self new) 
e2177537ecb8 added: #label:value:argument:
Claus Gittinger <cg@exept.de>
parents: 2987
diff changeset
    79
        label:labelString; choice:choiceAspect; choiceValue:selectorOrValue; 
e2177537ecb8 added: #label:value:argument:
Claus Gittinger <cg@exept.de>
parents: 2987
diff changeset
    80
        yourself
e2177537ecb8 added: #label:value:argument:
Claus Gittinger <cg@exept.de>
parents: 2987
diff changeset
    81
e2177537ecb8 added: #label:value:argument:
Claus Gittinger <cg@exept.de>
parents: 2987
diff changeset
    82
    "Modified (format): / 26-04-2012 / 12:06:41 / cg"
2813
Claus Gittinger <cg@exept.de>
parents: 2755
diff changeset
    83
!
Claus Gittinger <cg@exept.de>
parents: 2755
diff changeset
    84
3023
763ad69e9832 menuitem protocol
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
    85
label:labelString itemValue:selectorOrValue
763ad69e9832 menuitem protocol
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
    86
    "create and return a new menuItem, given its label and value"
763ad69e9832 menuitem protocol
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
    87
763ad69e9832 menuitem protocol
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
    88
    ^ (self new) 
763ad69e9832 menuitem protocol
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
    89
        label:labelString itemValue:selectorOrValue; 
763ad69e9832 menuitem protocol
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
    90
        yourself
763ad69e9832 menuitem protocol
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
    91
763ad69e9832 menuitem protocol
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
    92
    "Created: / 09-09-2012 / 13:21:48 / cg"
763ad69e9832 menuitem protocol
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
    93
!
763ad69e9832 menuitem protocol
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
    94
763ad69e9832 menuitem protocol
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
    95
label:labelString itemValue:selectorOrValue argument:messageArg
1030
3684379a1ac8 added inst-creation #label:value:
Claus Gittinger <cg@exept.de>
parents: 985
diff changeset
    96
    "create and return a new menuItem, given its label and value"
3684379a1ac8 added inst-creation #label:value:
Claus Gittinger <cg@exept.de>
parents: 985
diff changeset
    97
3003
e2177537ecb8 added: #label:value:argument:
Claus Gittinger <cg@exept.de>
parents: 2987
diff changeset
    98
    ^ (self new) 
3023
763ad69e9832 menuitem protocol
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
    99
        label:labelString; 
763ad69e9832 menuitem protocol
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
   100
        itemValue:selectorOrValue argument:messageArg;
3003
e2177537ecb8 added: #label:value:argument:
Claus Gittinger <cg@exept.de>
parents: 2987
diff changeset
   101
        yourself
e2177537ecb8 added: #label:value:argument:
Claus Gittinger <cg@exept.de>
parents: 2987
diff changeset
   102
3023
763ad69e9832 menuitem protocol
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
   103
    "Created: / 09-09-2012 / 13:22:31 / cg"
763ad69e9832 menuitem protocol
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
   104
!
763ad69e9832 menuitem protocol
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
   105
763ad69e9832 menuitem protocol
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
   106
label:labelString itemValue:selectorOrValue enabled:enabledHolder
763ad69e9832 menuitem protocol
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
   107
    "create and return a new menuItem, given its label and value"
763ad69e9832 menuitem protocol
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
   108
763ad69e9832 menuitem protocol
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
   109
    ^ (self new) 
763ad69e9832 menuitem protocol
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
   110
        label:labelString itemValue:selectorOrValue; 
763ad69e9832 menuitem protocol
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
   111
        enabled:enabledHolder;
763ad69e9832 menuitem protocol
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
   112
        yourself
763ad69e9832 menuitem protocol
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
   113
763ad69e9832 menuitem protocol
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
   114
    "Created: / 09-09-2012 / 13:23:05 / cg"
763ad69e9832 menuitem protocol
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
   115
!
763ad69e9832 menuitem protocol
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
   116
3221
fe5d6ca2dfd9 class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3215
diff changeset
   117
label:labelString submenuChannel:aSymbolOrValueHolder
fe5d6ca2dfd9 class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3215
diff changeset
   118
    "create and return a new menuItem, given its label and value"
fe5d6ca2dfd9 class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3215
diff changeset
   119
fe5d6ca2dfd9 class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3215
diff changeset
   120
    ^ (self new) 
fe5d6ca2dfd9 class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3215
diff changeset
   121
        label:labelString submenuChannel:aSymbolOrValueHolder; 
fe5d6ca2dfd9 class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3215
diff changeset
   122
        yourself
fe5d6ca2dfd9 class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3215
diff changeset
   123
!
fe5d6ca2dfd9 class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3215
diff changeset
   124
3023
763ad69e9832 menuitem protocol
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
   125
label:labelString value:selectorOrValue
763ad69e9832 menuitem protocol
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
   126
    <resource: #obsolete>
763ad69e9832 menuitem protocol
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
   127
    "create and return a new menuItem, given its label and value"
763ad69e9832 menuitem protocol
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
   128
763ad69e9832 menuitem protocol
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
   129
    ^ self label:labelString itemValue:selectorOrValue
763ad69e9832 menuitem protocol
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
   130
3003
e2177537ecb8 added: #label:value:argument:
Claus Gittinger <cg@exept.de>
parents: 2987
diff changeset
   131
    "Created: / 04-08-1998 / 17:34:18 / cg"
e2177537ecb8 added: #label:value:argument:
Claus Gittinger <cg@exept.de>
parents: 2987
diff changeset
   132
!
1030
3684379a1ac8 added inst-creation #label:value:
Claus Gittinger <cg@exept.de>
parents: 985
diff changeset
   133
3003
e2177537ecb8 added: #label:value:argument:
Claus Gittinger <cg@exept.de>
parents: 2987
diff changeset
   134
label:labelString value:selectorOrValue argument:messageArg
3023
763ad69e9832 menuitem protocol
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
   135
    <resource: #obsolete>
3003
e2177537ecb8 added: #label:value:argument:
Claus Gittinger <cg@exept.de>
parents: 2987
diff changeset
   136
    "create and return a new menuItem, given its label and value"
e2177537ecb8 added: #label:value:argument:
Claus Gittinger <cg@exept.de>
parents: 2987
diff changeset
   137
e2177537ecb8 added: #label:value:argument:
Claus Gittinger <cg@exept.de>
parents: 2987
diff changeset
   138
    ^ (self new) 
e2177537ecb8 added: #label:value:argument:
Claus Gittinger <cg@exept.de>
parents: 2987
diff changeset
   139
        label:labelString; value:selectorOrValue; argument:messageArg;
e2177537ecb8 added: #label:value:argument:
Claus Gittinger <cg@exept.de>
parents: 2987
diff changeset
   140
        yourself
e2177537ecb8 added: #label:value:argument:
Claus Gittinger <cg@exept.de>
parents: 2987
diff changeset
   141
e2177537ecb8 added: #label:value:argument:
Claus Gittinger <cg@exept.de>
parents: 2987
diff changeset
   142
    "Created: / 26-04-2012 / 12:06:34 / cg"
1030
3684379a1ac8 added inst-creation #label:value:
Claus Gittinger <cg@exept.de>
parents: 985
diff changeset
   143
!
3684379a1ac8 added inst-creation #label:value:
Claus Gittinger <cg@exept.de>
parents: 985
diff changeset
   144
2876
de49b76ae355 added: #label:value:enabled:
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
   145
label:labelString value:selectorOrValue enabled:enabledHolder
3023
763ad69e9832 menuitem protocol
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
   146
    <resource: #obsolete>
2876
de49b76ae355 added: #label:value:enabled:
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
   147
    "create and return a new menuItem, given its label and value"
de49b76ae355 added: #label:value:enabled:
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
   148
de49b76ae355 added: #label:value:enabled:
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
   149
    ^ (self new) 
3003
e2177537ecb8 added: #label:value:argument:
Claus Gittinger <cg@exept.de>
parents: 2987
diff changeset
   150
        label:labelString; value:selectorOrValue; 
2876
de49b76ae355 added: #label:value:enabled:
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
   151
        enabled:enabledHolder;
de49b76ae355 added: #label:value:enabled:
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
   152
        yourself
de49b76ae355 added: #label:value:enabled:
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
   153
de49b76ae355 added: #label:value:enabled:
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
   154
    "Created: / 29-10-2010 / 12:21:27 / cg"
de49b76ae355 added: #label:value:enabled:
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
   155
!
de49b76ae355 added: #label:value:enabled:
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
   156
490
ebe88e50b29a *** empty log message ***
ca
parents: 458
diff changeset
   157
labeled:aString
3225
7cfefeb97495 class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3221
diff changeset
   158
    <resource: #obsolete>
7cfefeb97495 class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3221
diff changeset
   159
1030
3684379a1ac8 added inst-creation #label:value:
Claus Gittinger <cg@exept.de>
parents: 985
diff changeset
   160
    "create and return a new menuItem, given a label string"
3684379a1ac8 added inst-creation #label:value:
Claus Gittinger <cg@exept.de>
parents: 985
diff changeset
   161
3225
7cfefeb97495 class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3221
diff changeset
   162
    ^ self label:aString
1030
3684379a1ac8 added inst-creation #label:value:
Claus Gittinger <cg@exept.de>
parents: 985
diff changeset
   163
3003
e2177537ecb8 added: #label:value:argument:
Claus Gittinger <cg@exept.de>
parents: 2987
diff changeset
   164
    "Modified: / 26-04-2012 / 12:07:12 / cg"
1486
251879696655 *** empty log message ***
martin
parents: 1468
diff changeset
   165
!
251879696655 *** empty log message ***
martin
parents: 1468
diff changeset
   166
251879696655 *** empty log message ***
martin
parents: 1468
diff changeset
   167
separator
251879696655 *** empty log message ***
martin
parents: 1468
diff changeset
   168
    "create and return a new menuItem for a separator"
251879696655 *** empty log message ***
martin
parents: 1468
diff changeset
   169
3003
e2177537ecb8 added: #label:value:argument:
Claus Gittinger <cg@exept.de>
parents: 2987
diff changeset
   170
    ^ self new 
e2177537ecb8 added: #label:value:argument:
Claus Gittinger <cg@exept.de>
parents: 2987
diff changeset
   171
        label:'-'; translateLabel:false;
e2177537ecb8 added: #label:value:argument:
Claus Gittinger <cg@exept.de>
parents: 2987
diff changeset
   172
        yourself
e2177537ecb8 added: #label:value:argument:
Claus Gittinger <cg@exept.de>
parents: 2987
diff changeset
   173
e2177537ecb8 added: #label:value:argument:
Claus Gittinger <cg@exept.de>
parents: 2987
diff changeset
   174
    "Modified: / 26-04-2012 / 12:07:04 / cg"
490
ebe88e50b29a *** empty log message ***
ca
parents: 458
diff changeset
   175
! !
ebe88e50b29a *** empty log message ***
ca
parents: 458
diff changeset
   176
2264
8736ee5ec90e new startGroup value: #conditionalRight
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
   177
!MenuItem class methodsFor:'constants'!
8736ee5ec90e new startGroup value: #conditionalRight
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
   178
8736ee5ec90e new startGroup value: #conditionalRight
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
   179
supportedStartGroupValues
8736ee5ec90e new startGroup value: #conditionalRight
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
   180
    "start group #left #right #conditionalRight ...
8736ee5ec90e new startGroup value: #conditionalRight
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
   181
     At the moment only #left/nil, #right/#conditionalRight are implemented.
8736ee5ec90e new startGroup value: #conditionalRight
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
   182
8736ee5ec90e new startGroup value: #conditionalRight
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
   183
     The meanings are:
8736ee5ec90e new startGroup value: #conditionalRight
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
   184
        nil                 - default under control of the menu
8736ee5ec90e new startGroup value: #conditionalRight
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
   185
        #left               - left align
8736ee5ec90e new startGroup value: #conditionalRight
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
   186
        #right              - place at the right far end
8736ee5ec90e new startGroup value: #conditionalRight
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
   187
        #conditionalRight   - controlled by a styleSheet variable;
8736ee5ec90e new startGroup value: #conditionalRight
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
   188
                              like #right under all non-win32 systems,
8736ee5ec90e new startGroup value: #conditionalRight
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
   189
                              ignored on win32.
8736ee5ec90e new startGroup value: #conditionalRight
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
   190
                              Use with help-menu, which should be at the far right on some
8736ee5ec90e new startGroup value: #conditionalRight
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
   191
                              viewStyles, but not under win32."
8736ee5ec90e new startGroup value: #conditionalRight
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
   192
8736ee5ec90e new startGroup value: #conditionalRight
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
   193
    ^ #(nil #left #right #conditionalRight)
8736ee5ec90e new startGroup value: #conditionalRight
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
   194
8736ee5ec90e new startGroup value: #conditionalRight
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
   195
    "Created: / 16-10-2006 / 13:09:27 / cg"
8736ee5ec90e new startGroup value: #conditionalRight
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
   196
! !
8736ee5ec90e new startGroup value: #conditionalRight
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
   197
1763
fabe0b506e33 method category rename
Claus Gittinger <cg@exept.de>
parents: 1761
diff changeset
   198
!MenuItem methodsFor:'Compatibility-ST80'!
724
898519684261 more VW comaptibility
Claus Gittinger <cg@exept.de>
parents: 684
diff changeset
   199
2755
Claus Gittinger <cg@exept.de>
parents: 2736
diff changeset
   200
enablementSelector:aSymbol
Claus Gittinger <cg@exept.de>
parents: 2736
diff changeset
   201
    "dummy for now - for visualworks compatibility (specs)"
Claus Gittinger <cg@exept.de>
parents: 2736
diff changeset
   202
Claus Gittinger <cg@exept.de>
parents: 2736
diff changeset
   203
    "/ self halt.
Claus Gittinger <cg@exept.de>
parents: 2736
diff changeset
   204
!
Claus Gittinger <cg@exept.de>
parents: 2736
diff changeset
   205
Claus Gittinger <cg@exept.de>
parents: 2736
diff changeset
   206
helpText:aString
Claus Gittinger <cg@exept.de>
parents: 2736
diff changeset
   207
    "dummy for now - for visualworks compatibility (specs)"
Claus Gittinger <cg@exept.de>
parents: 2736
diff changeset
   208
Claus Gittinger <cg@exept.de>
parents: 2736
diff changeset
   209
    activeHelpKey := aString.
Claus Gittinger <cg@exept.de>
parents: 2736
diff changeset
   210
!
Claus Gittinger <cg@exept.de>
parents: 2736
diff changeset
   211
Claus Gittinger <cg@exept.de>
parents: 2736
diff changeset
   212
indicationSelector:aSymbol
Claus Gittinger <cg@exept.de>
parents: 2736
diff changeset
   213
    "dummy for now - for visualworks compatibility (specs)"
Claus Gittinger <cg@exept.de>
parents: 2736
diff changeset
   214
Claus Gittinger <cg@exept.de>
parents: 2736
diff changeset
   215
    "/ self halt.
Claus Gittinger <cg@exept.de>
parents: 2736
diff changeset
   216
!
Claus Gittinger <cg@exept.de>
parents: 2736
diff changeset
   217
724
898519684261 more VW comaptibility
Claus Gittinger <cg@exept.de>
parents: 684
diff changeset
   218
isEnabled:aBoolean
898519684261 more VW comaptibility
Claus Gittinger <cg@exept.de>
parents: 684
diff changeset
   219
    self enabled:aBoolean
898519684261 more VW comaptibility
Claus Gittinger <cg@exept.de>
parents: 684
diff changeset
   220
898519684261 more VW comaptibility
Claus Gittinger <cg@exept.de>
parents: 684
diff changeset
   221
    "Created: / 27.10.1997 / 16:34:55 / cg"
1646
da8d044c7c0d value - itemValue
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   222
!
da8d044c7c0d value - itemValue
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   223
2755
Claus Gittinger <cg@exept.de>
parents: 2736
diff changeset
   224
shortcutModifiers:something
Claus Gittinger <cg@exept.de>
parents: 2736
diff changeset
   225
    "dummy for now - for visualworks compatibility (specs)"
Claus Gittinger <cg@exept.de>
parents: 2736
diff changeset
   226
Claus Gittinger <cg@exept.de>
parents: 2736
diff changeset
   227
    "/ self halt.
Claus Gittinger <cg@exept.de>
parents: 2736
diff changeset
   228
!
Claus Gittinger <cg@exept.de>
parents: 2736
diff changeset
   229
1646
da8d044c7c0d value - itemValue
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   230
value
da8d044c7c0d value - itemValue
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   231
    "obsolete - please use #itemValue (value is bad: it prevents us from using a valueHolder)"
da8d044c7c0d value - itemValue
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   232
da8d044c7c0d value - itemValue
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   233
    ^ itemValue
da8d044c7c0d value - itemValue
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   234
da8d044c7c0d value - itemValue
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   235
    "Created: 25.2.1997 / 19:50:14 / cg"
da8d044c7c0d value - itemValue
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   236
!
da8d044c7c0d value - itemValue
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   237
da8d044c7c0d value - itemValue
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   238
value:something
da8d044c7c0d value - itemValue
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   239
    "obsolete - please use #itemValue: (value is bad: it prevents us from using a valueHolder)"
da8d044c7c0d value - itemValue
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   240
da8d044c7c0d value - itemValue
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   241
    itemValue := something
da8d044c7c0d value - itemValue
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   242
da8d044c7c0d value - itemValue
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   243
    "Created: 25.2.1997 / 19:11:13 / cg"
724
898519684261 more VW comaptibility
Claus Gittinger <cg@exept.de>
parents: 684
diff changeset
   244
! !
898519684261 more VW comaptibility
Claus Gittinger <cg@exept.de>
parents: 684
diff changeset
   245
451
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   246
!MenuItem methodsFor:'accessing'!
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   247
579
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
   248
accessCharacterPosition
2112
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   249
    "get the index of the access character in the label text or string, or nil if none"
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   250
    
1643
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   251
    ^ accessCharacterPosition
451
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   252
!
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   253
2112
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   254
accessCharacterPosition:index 
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   255
    "set the index of the access character in the label text or string, or nil if none"
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   256
    
1643
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   257
    accessCharacterPosition := index
451
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   258
!
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   259
640
4e1c0d0a633b add active help for items
ca
parents: 590
diff changeset
   260
activeHelpKey
3215
0b3ad7144d4f class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   261
    "the key used as index (and argument) to the help/flyByHelpSpec"
0b3ad7144d4f class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   262
640
4e1c0d0a633b add active help for items
ca
parents: 590
diff changeset
   263
    ^ activeHelpKey
4e1c0d0a633b add active help for items
ca
parents: 590
diff changeset
   264
!
4e1c0d0a633b add active help for items
ca
parents: 590
diff changeset
   265
4e1c0d0a633b add active help for items
ca
parents: 590
diff changeset
   266
activeHelpKey:aKey
3215
0b3ad7144d4f class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   267
    "the key used as index (and argument) to the help/flyByHelpSpec"
0b3ad7144d4f class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   268
640
4e1c0d0a633b add active help for items
ca
parents: 590
diff changeset
   269
    activeHelpKey := aKey
4e1c0d0a633b add active help for items
ca
parents: 590
diff changeset
   270
!
4e1c0d0a633b add active help for items
ca
parents: 590
diff changeset
   271
684
184dd159d02e support of arguments
ca
parents: 666
diff changeset
   272
argument
2112
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   273
    "get argument given to the value (selector)"
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   274
    
1643
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   275
    ^ argument
684
184dd159d02e support of arguments
ca
parents: 666
diff changeset
   276
!
184dd159d02e support of arguments
ca
parents: 666
diff changeset
   277
2112
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   278
argument:something 
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   279
    "set argument given to the value (selector)"
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   280
    
684
184dd159d02e support of arguments
ca
parents: 666
diff changeset
   281
    |arg|
184dd159d02e support of arguments
ca
parents: 666
diff changeset
   282
184dd159d02e support of arguments
ca
parents: 666
diff changeset
   283
    (arg := something) notNil ifTrue:[
184dd159d02e support of arguments
ca
parents: 666
diff changeset
   284
        arg isString ifTrue:[
2112
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   285
            (arg size == 0 or:[ (arg indexOfNonSeparatorStartingAt:1) == 0 ]) ifTrue:[
684
184dd159d02e support of arguments
ca
parents: 666
diff changeset
   286
                arg := nil
184dd159d02e support of arguments
ca
parents: 666
diff changeset
   287
            ]
184dd159d02e support of arguments
ca
parents: 666
diff changeset
   288
        ]
184dd159d02e support of arguments
ca
parents: 666
diff changeset
   289
    ].
1643
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   290
    argument := arg
684
184dd159d02e support of arguments
ca
parents: 666
diff changeset
   291
!
184dd159d02e support of arguments
ca
parents: 666
diff changeset
   292
1213
a80ce81d2944 auxValue added
tm
parents: 1203
diff changeset
   293
auxValue
a80ce81d2944 auxValue added
tm
parents: 1203
diff changeset
   294
    "an additional, arbitrary value"
a80ce81d2944 auxValue added
tm
parents: 1203
diff changeset
   295
1643
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   296
    ^ auxValue
1213
a80ce81d2944 auxValue added
tm
parents: 1203
diff changeset
   297
!
a80ce81d2944 auxValue added
tm
parents: 1203
diff changeset
   298
2112
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   299
auxValue:something 
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   300
    "set the auxValue - an arbitrary user value"
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   301
    
1643
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   302
    auxValue := something
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   303
!
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   304
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   305
choice:something
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   306
    choice := something.
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   307
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   308
    "Created: / 14.8.1998 / 14:32:06 / cg"
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   309
!
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   310
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   311
choiceValue
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   312
    ^ choiceValue
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   313
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   314
    "Created: / 14.8.1998 / 15:39:26 / cg"
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   315
!
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   316
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   317
choiceValue:something
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   318
    choiceValue := something.
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   319
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   320
    "Created: / 14.8.1998 / 15:39:26 / cg"
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   321
!
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   322
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   323
font
2112
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   324
    "get the specific font for an item or nil"
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   325
    
1643
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   326
    ^ font
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   327
!
1333
423b4b4404c4 avoid creating an adornment (when nil adornment values are stored)
Claus Gittinger <cg@exept.de>
parents: 1329
diff changeset
   328
2112
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   329
font:aFont 
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   330
    "set a specific font for an item"
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   331
    
1643
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   332
    font := aFont.
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   333
!
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   334
2548
07251b4e7ac9 changed #hierarchicalUUID
fm
parents: 2533
diff changeset
   335
hierarchicalUUID
07251b4e7ac9 changed #hierarchicalUUID
fm
parents: 2533
diff changeset
   336
07251b4e7ac9 changed #hierarchicalUUID
fm
parents: 2533
diff changeset
   337
    ^ self uuid
07251b4e7ac9 changed #hierarchicalUUID
fm
parents: 2533
diff changeset
   338
!
07251b4e7ac9 changed #hierarchicalUUID
fm
parents: 2533
diff changeset
   339
1643
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   340
horizontalLayout
1990
dca233a39477 horizontalLayout bug
Claus Gittinger <cg@exept.de>
parents: 1986
diff changeset
   341
    "by default, submenus have a vertical layout;
2112
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   342
     if true, the submenu has a horizontal layout."
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   343
    
1990
dca233a39477 horizontalLayout bug
Claus Gittinger <cg@exept.de>
parents: 1986
diff changeset
   344
    ^ horizontalLayout ? false
1643
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   345
!
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   346
2112
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   347
horizontalLayout:aBoolean 
1990
dca233a39477 horizontalLayout bug
Claus Gittinger <cg@exept.de>
parents: 1986
diff changeset
   348
    "by default, submenus have a vertical layout;
2112
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   349
     if true, the submenu has a horizontal layout."
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   350
    
1643
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   351
    horizontalLayout := aBoolean.
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   352
!
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   353
1884
4b317db4d387 support of ignoreShortcutKeys and ignoreMnemonicKeys
ca
parents: 1763
diff changeset
   354
ignoreMnemonicKeys
4b317db4d387 support of ignoreShortcutKeys and ignoreMnemonicKeys
ca
parents: 1763
diff changeset
   355
    "if true, mnemonic (access character) in the submenus under the item are ignored;
2938
e9074e9333fa comment: #ignoreMnemonicKeys
Claus Gittinger <cg@exept.de>
parents: 2876
diff changeset
   356
     Set this to speedup accelerator key processing for slow dynamci menus.
e9074e9333fa comment: #ignoreMnemonicKeys
Claus Gittinger <cg@exept.de>
parents: 2876
diff changeset
   357
     The default is set to false"
2112
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   358
    
1884
4b317db4d387 support of ignoreShortcutKeys and ignoreMnemonicKeys
ca
parents: 1763
diff changeset
   359
    ^ ignoreMnemonicKeys ? false
2938
e9074e9333fa comment: #ignoreMnemonicKeys
Claus Gittinger <cg@exept.de>
parents: 2876
diff changeset
   360
e9074e9333fa comment: #ignoreMnemonicKeys
Claus Gittinger <cg@exept.de>
parents: 2876
diff changeset
   361
    "Modified (comment): / 08-09-2011 / 04:30:19 / cg"
1884
4b317db4d387 support of ignoreShortcutKeys and ignoreMnemonicKeys
ca
parents: 1763
diff changeset
   362
!
4b317db4d387 support of ignoreShortcutKeys and ignoreMnemonicKeys
ca
parents: 1763
diff changeset
   363
2112
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   364
ignoreMnemonicKeys:aBoolean 
1884
4b317db4d387 support of ignoreShortcutKeys and ignoreMnemonicKeys
ca
parents: 1763
diff changeset
   365
    "if true, mnemonic (access character) in the submenus under the item are ignored;
2939
c04e85910837 comment: #ignoreMnemonicKeys:
Claus Gittinger <cg@exept.de>
parents: 2938
diff changeset
   366
     Set this to speedup accelerator key processing for slow dynamci menus.
2112
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   367
     the default is set to false"
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   368
    
1884
4b317db4d387 support of ignoreShortcutKeys and ignoreMnemonicKeys
ca
parents: 1763
diff changeset
   369
    ignoreMnemonicKeys := aBoolean.
2939
c04e85910837 comment: #ignoreMnemonicKeys:
Claus Gittinger <cg@exept.de>
parents: 2938
diff changeset
   370
c04e85910837 comment: #ignoreMnemonicKeys:
Claus Gittinger <cg@exept.de>
parents: 2938
diff changeset
   371
    "Modified (comment): / 08-09-2011 / 04:52:23 / cg"
1884
4b317db4d387 support of ignoreShortcutKeys and ignoreMnemonicKeys
ca
parents: 1763
diff changeset
   372
!
4b317db4d387 support of ignoreShortcutKeys and ignoreMnemonicKeys
ca
parents: 1763
diff changeset
   373
4b317db4d387 support of ignoreShortcutKeys and ignoreMnemonicKeys
ca
parents: 1763
diff changeset
   374
ignoreShortcutKeys
4b317db4d387 support of ignoreShortcutKeys and ignoreMnemonicKeys
ca
parents: 1763
diff changeset
   375
    "if true, shortcutKeys (accelerators) in the submenus under the item are ignored;
2112
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   376
     the default is set to false"
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   377
    
1884
4b317db4d387 support of ignoreShortcutKeys and ignoreMnemonicKeys
ca
parents: 1763
diff changeset
   378
    ^ ignoreShortcutKeys ? false
4b317db4d387 support of ignoreShortcutKeys and ignoreMnemonicKeys
ca
parents: 1763
diff changeset
   379
!
4b317db4d387 support of ignoreShortcutKeys and ignoreMnemonicKeys
ca
parents: 1763
diff changeset
   380
2112
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   381
ignoreShortcutKeys:aBoolean 
1884
4b317db4d387 support of ignoreShortcutKeys and ignoreMnemonicKeys
ca
parents: 1763
diff changeset
   382
    "if true, shortcutKeys (accelerators) in the submenus under the item are ignored;
2112
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   383
     the default is set to false"
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   384
    
1884
4b317db4d387 support of ignoreShortcutKeys and ignoreMnemonicKeys
ca
parents: 1763
diff changeset
   385
    ignoreShortcutKeys := aBoolean.
4b317db4d387 support of ignoreShortcutKeys and ignoreMnemonicKeys
ca
parents: 1763
diff changeset
   386
!
4b317db4d387 support of ignoreShortcutKeys and ignoreMnemonicKeys
ca
parents: 1763
diff changeset
   387
1643
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   388
indication
3178
ced60e8c83fe class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3033
diff changeset
   389
    "value of the items on/off indicator (CheckToggle).
ced60e8c83fe class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3033
diff changeset
   390
     Usually a valueHolder"
2112
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   391
    
1643
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   392
    ^ indication
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   393
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   394
    "Created: 25.2.1997 / 20:59:28 / cg"
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   395
!
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   396
3178
ced60e8c83fe class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3033
diff changeset
   397
indication:someValueHolder 
ced60e8c83fe class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3033
diff changeset
   398
    "value of the items on/off indicator (CheckToggle).
ced60e8c83fe class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3033
diff changeset
   399
     someValueHolder is usually a value holder"
2112
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   400
    
3178
ced60e8c83fe class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3033
diff changeset
   401
    indication := someValueHolder.
1643
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   402
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   403
    "Created: 25.2.1997 / 20:59:28 / cg"
1213
a80ce81d2944 auxValue added
tm
parents: 1203
diff changeset
   404
!
a80ce81d2944 auxValue added
tm
parents: 1203
diff changeset
   405
1986
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
   406
isMenuSlice:aBoolean
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
   407
    isMenuSlice := aBoolean.
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
   408
!
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
   409
798
8a27a879ff23 support of visible/invisible items
ca
parents: 794
diff changeset
   410
isVisible
3215
0b3ad7144d4f class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   411
    "a visibility holder; either a block, boolean or value holder.
0b3ad7144d4f class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   412
     If the menu is permanently visible, it should be a valueHolder,
0b3ad7144d4f class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   413
     as the value is otherwise only checked for before the menu is opened"
0b3ad7144d4f class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   414
1663
00afd9631d8c isVisible - default is true
Claus Gittinger <cg@exept.de>
parents: 1658
diff changeset
   415
    ^ isVisible ? true
798
8a27a879ff23 support of visible/invisible items
ca
parents: 794
diff changeset
   416
!
8a27a879ff23 support of visible/invisible items
ca
parents: 794
diff changeset
   417
8a27a879ff23 support of visible/invisible items
ca
parents: 794
diff changeset
   418
isVisible:something
3215
0b3ad7144d4f class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   419
    "a visibility holder; either a block, boolean or value holder.
0b3ad7144d4f class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   420
     If the menu is permanently visible, it should be a valueHolder,
0b3ad7144d4f class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   421
     as the value is otherwise only checked for before the menu is opened"
0b3ad7144d4f class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   422
798
8a27a879ff23 support of visible/invisible items
ca
parents: 794
diff changeset
   423
    isVisible := something
8a27a879ff23 support of visible/invisible items
ca
parents: 794
diff changeset
   424
!
8a27a879ff23 support of visible/invisible items
ca
parents: 794
diff changeset
   425
1643
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   426
itemValue
3215
0b3ad7144d4f class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   427
    "the item's action; if it is a block, that is evaluated;
0b3ad7144d4f class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   428
     if a symbol, that message is sent to the menu's receiver"
0b3ad7144d4f class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   429
1643
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   430
    ^ itemValue
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   431
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   432
    "Created: 25.2.1997 / 19:50:14 / cg"
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   433
!
1370
4d2a3cc1d3c7 allow views in subMenus
ca
parents: 1369
diff changeset
   434
3215
0b3ad7144d4f class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   435
itemValue:aBlockOrSymbol
0b3ad7144d4f class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   436
    "set the item's action; if it is a block, that is evaluated;
0b3ad7144d4f class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   437
     if a symbol, that message is sent to the menu's receiver"
0b3ad7144d4f class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   438
0b3ad7144d4f class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   439
    itemValue := aBlockOrSymbol
1643
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   440
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   441
    "Created: 25.2.1997 / 19:11:13 / cg"
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   442
!
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   443
3023
763ad69e9832 menuitem protocol
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
   444
itemValue:selectorOrBlock argument:anArgument
3215
0b3ad7144d4f class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   445
    "set the item's action and an argument; if it is ablock, that is evaluated;
0b3ad7144d4f class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   446
     if a symbol, that message is sent to the menu's receiver"
0b3ad7144d4f class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   447
3023
763ad69e9832 menuitem protocol
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
   448
    itemValue := selectorOrBlock.
763ad69e9832 menuitem protocol
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
   449
    argument := anArgument
763ad69e9832 menuitem protocol
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
   450
763ad69e9832 menuitem protocol
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
   451
    "Created: / 09-09-2012 / 13:05:14 / cg"
763ad69e9832 menuitem protocol
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
   452
!
763ad69e9832 menuitem protocol
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
   453
1643
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   454
keepLinkedMenu
3215
0b3ad7144d4f class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   455
    "if true, a linked submenu menu is only computed once (slightly faster),
0b3ad7144d4f class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   456
     but then, the linked menu cannot be dynamic"
0b3ad7144d4f class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   457
1643
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   458
    ^ keepLinkedMenu ? false
1370
4d2a3cc1d3c7 allow views in subMenus
ca
parents: 1369
diff changeset
   459
!
4d2a3cc1d3c7 allow views in subMenus
ca
parents: 1369
diff changeset
   460
4d2a3cc1d3c7 allow views in subMenus
ca
parents: 1369
diff changeset
   461
keepLinkedMenu:aBoolean
3215
0b3ad7144d4f class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   462
    "if true, a linked submenu menu is only computed once (slightly faster),
0b3ad7144d4f class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   463
     but then, the linked menu cannot be dynamic"
0b3ad7144d4f class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   464
1643
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   465
    keepLinkedMenu := aBoolean ? false.
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   466
!
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   467
3221
fe5d6ca2dfd9 class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3215
diff changeset
   468
label:aString icon:anImage
fe5d6ca2dfd9 class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3215
diff changeset
   469
    self label:aString.
fe5d6ca2dfd9 class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3215
diff changeset
   470
    self resourceRetriever: (ResourceRetriever icon:anImage string:'')
fe5d6ca2dfd9 class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3215
diff changeset
   471
!
fe5d6ca2dfd9 class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3215
diff changeset
   472
fe5d6ca2dfd9 class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3215
diff changeset
   473
label:labelString itemValue:selectorOrBlock
fe5d6ca2dfd9 class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3215
diff changeset
   474
    label := labelString.
fe5d6ca2dfd9 class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3215
diff changeset
   475
    itemValue := selectorOrBlock
fe5d6ca2dfd9 class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3215
diff changeset
   476
fe5d6ca2dfd9 class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3215
diff changeset
   477
    "Created: / 09-09-2012 / 13:18:34 / cg"
fe5d6ca2dfd9 class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3215
diff changeset
   478
!
fe5d6ca2dfd9 class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3215
diff changeset
   479
fe5d6ca2dfd9 class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3215
diff changeset
   480
label:labelString itemValue:selectorOrBlock argument:something
fe5d6ca2dfd9 class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3215
diff changeset
   481
    label := labelString.
fe5d6ca2dfd9 class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3215
diff changeset
   482
    itemValue := selectorOrBlock.
fe5d6ca2dfd9 class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3215
diff changeset
   483
    argument := something
fe5d6ca2dfd9 class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3215
diff changeset
   484
fe5d6ca2dfd9 class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3215
diff changeset
   485
    "Created: / 09-09-2012 / 13:19:36 / cg"
fe5d6ca2dfd9 class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3215
diff changeset
   486
!
fe5d6ca2dfd9 class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3215
diff changeset
   487
fe5d6ca2dfd9 class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3215
diff changeset
   488
label:labelString submenuChannel:aSymbolOrValueHolder
fe5d6ca2dfd9 class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3215
diff changeset
   489
    label := labelString.
fe5d6ca2dfd9 class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3215
diff changeset
   490
    submenuChannel := aSymbolOrValueHolder
fe5d6ca2dfd9 class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3215
diff changeset
   491
!
fe5d6ca2dfd9 class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3215
diff changeset
   492
1643
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   493
labelImage
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   494
    ^ labelImage
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   495
!
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   496
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   497
labelImage:something
2125
78bd48d8de76 labelImage: VW7 compat.
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
   498
    labelImage := something.
1643
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   499
2125
78bd48d8de76 labelImage: VW7 compat.
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
   500
    "/ VW compatibility: if I have a label also,
78bd48d8de76 labelImage: VW7 compat.
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
   501
    "/ this will become a LabelAndImage.
78bd48d8de76 labelImage: VW7 compat.
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
   502
    something isImage ifTrue:[
78bd48d8de76 labelImage: VW7 compat.
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
   503
        label notNil ifTrue:[
78bd48d8de76 labelImage: VW7 compat.
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
   504
            labelImage := LabelAndIcon icon:labelImage string:label
78bd48d8de76 labelImage: VW7 compat.
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
   505
        ]
78bd48d8de76 labelImage: VW7 compat.
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
   506
    ].
1370
4d2a3cc1d3c7 allow views in subMenus
ca
parents: 1369
diff changeset
   507
!
4d2a3cc1d3c7 allow views in subMenus
ca
parents: 1369
diff changeset
   508
578
7e0f62d9bc47 access methods ...
ca
parents: 490
diff changeset
   509
nameKey
7e0f62d9bc47 access methods ...
ca
parents: 490
diff changeset
   510
    ^ nameKey
7e0f62d9bc47 access methods ...
ca
parents: 490
diff changeset
   511
7e0f62d9bc47 access methods ...
ca
parents: 490
diff changeset
   512
7e0f62d9bc47 access methods ...
ca
parents: 490
diff changeset
   513
!
7e0f62d9bc47 access methods ...
ca
parents: 490
diff changeset
   514
7e0f62d9bc47 access methods ...
ca
parents: 490
diff changeset
   515
nameKey:aNameKey
579
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
   516
    nameKey := aNameKey.
578
7e0f62d9bc47 access methods ...
ca
parents: 490
diff changeset
   517
7e0f62d9bc47 access methods ...
ca
parents: 490
diff changeset
   518
7e0f62d9bc47 access methods ...
ca
parents: 490
diff changeset
   519
!
7e0f62d9bc47 access methods ...
ca
parents: 490
diff changeset
   520
490
ebe88e50b29a *** empty log message ***
ca
parents: 458
diff changeset
   521
rawLabel
ebe88e50b29a *** empty log message ***
ca
parents: 458
diff changeset
   522
    ^ label
ebe88e50b29a *** empty log message ***
ca
parents: 458
diff changeset
   523
ebe88e50b29a *** empty log message ***
ca
parents: 458
diff changeset
   524
    "Created: 25.2.1997 / 19:48:16 / cg"
ebe88e50b29a *** empty log message ***
ca
parents: 458
diff changeset
   525
!
ebe88e50b29a *** empty log message ***
ca
parents: 458
diff changeset
   526
451
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   527
rawLabel:aString
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   528
    label := aString
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   529
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   530
    "Created: 25.2.1997 / 19:11:02 / cg"
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   531
!
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   532
1621
f913c0e7a3a8 access the resourceRetriever
ca
parents: 1595
diff changeset
   533
resourceRetriever
f913c0e7a3a8 access the resourceRetriever
ca
parents: 1595
diff changeset
   534
    |retriever|
f913c0e7a3a8 access the resourceRetriever
ca
parents: 1595
diff changeset
   535
1643
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   536
    retriever := labelImage.
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   537
    (retriever notNil and:[retriever isKindOf:ResourceRetriever]) ifTrue:[
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   538
        ^ retriever
1621
f913c0e7a3a8 access the resourceRetriever
ca
parents: 1595
diff changeset
   539
    ].
f913c0e7a3a8 access the resourceRetriever
ca
parents: 1595
diff changeset
   540
    ^ nil
f913c0e7a3a8 access the resourceRetriever
ca
parents: 1595
diff changeset
   541
!
f913c0e7a3a8 access the resourceRetriever
ca
parents: 1595
diff changeset
   542
f913c0e7a3a8 access the resourceRetriever
ca
parents: 1595
diff changeset
   543
resourceRetriever:aRetriever
1643
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   544
    self labelImage:aRetriever
1621
f913c0e7a3a8 access the resourceRetriever
ca
parents: 1595
diff changeset
   545
!
f913c0e7a3a8 access the resourceRetriever
ca
parents: 1595
diff changeset
   546
1655
d937610cfe89 shorrtcutKey vs. shortcutKeyCharacter
Claus Gittinger <cg@exept.de>
parents: 1651
diff changeset
   547
shortcutKey
2112
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   548
    "get the key to press to select the menu item from the keyboard"
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   549
    
1643
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   550
    ^ shortcutKey
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   551
!
490
ebe88e50b29a *** empty log message ***
ca
parents: 458
diff changeset
   552
2112
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   553
shortcutKey:something 
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   554
    "set the  key to press to select the menu item from the keyboard"
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   555
    
1643
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   556
    shortcutKey := something.
490
ebe88e50b29a *** empty log message ***
ca
parents: 458
diff changeset
   557
!
ebe88e50b29a *** empty log message ***
ca
parents: 458
diff changeset
   558
1655
d937610cfe89 shorrtcutKey vs. shortcutKeyCharacter
Claus Gittinger <cg@exept.de>
parents: 1651
diff changeset
   559
shortcutKeyCharacter
d937610cfe89 shorrtcutKey vs. shortcutKeyCharacter
Claus Gittinger <cg@exept.de>
parents: 1651
diff changeset
   560
    "Backward compatibility; same as #shortcutKey.
2112
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   561
     get the  key to press to select the menu item from the keyboard"
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   562
    
1655
d937610cfe89 shorrtcutKey vs. shortcutKeyCharacter
Claus Gittinger <cg@exept.de>
parents: 1651
diff changeset
   563
    ^ self shortcutKey
d937610cfe89 shorrtcutKey vs. shortcutKeyCharacter
Claus Gittinger <cg@exept.de>
parents: 1651
diff changeset
   564
!
d937610cfe89 shorrtcutKey vs. shortcutKeyCharacter
Claus Gittinger <cg@exept.de>
parents: 1651
diff changeset
   565
2112
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   566
shortcutKeyCharacter:something 
1655
d937610cfe89 shorrtcutKey vs. shortcutKeyCharacter
Claus Gittinger <cg@exept.de>
parents: 1651
diff changeset
   567
    "Backward compatibility; same as #shortcutKey:.
2112
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   568
     set the  key to press to select the menu item from the keyboard"
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   569
    
1655
d937610cfe89 shorrtcutKey vs. shortcutKeyCharacter
Claus Gittinger <cg@exept.de>
parents: 1651
diff changeset
   570
    self shortcutKey:something.
d937610cfe89 shorrtcutKey vs. shortcutKeyCharacter
Claus Gittinger <cg@exept.de>
parents: 1651
diff changeset
   571
!
d937610cfe89 shorrtcutKey vs. shortcutKeyCharacter
Claus Gittinger <cg@exept.de>
parents: 1651
diff changeset
   572
458
729ffdbd2b13 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 455
diff changeset
   573
submenu
2112
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   574
    "get the submenu or nil"
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   575
    
1643
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   576
    ^ submenu value
458
729ffdbd2b13 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 455
diff changeset
   577
1643
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   578
    "Created: / 25.2.1997 / 20:59:28 / cg"
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   579
    "Modified: / 19.6.1998 / 00:33:58 / cg"
458
729ffdbd2b13 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 455
diff changeset
   580
!
729ffdbd2b13 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 455
diff changeset
   581
2987
66fad8f6ad33 comment/format in: #submenu:
Claus Gittinger <cg@exept.de>
parents: 2966
diff changeset
   582
submenu:aMenu 
2112
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   583
    "set the submenu or nil"
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   584
    
2987
66fad8f6ad33 comment/format in: #submenu:
Claus Gittinger <cg@exept.de>
parents: 2966
diff changeset
   585
    (aMenu isValueModel or:[ aMenu isBlock ]) ifTrue:[
1643
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   586
        submenuChannel notNil ifTrue:[
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   587
            "/ programmers error ?
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   588
            "/ how can I decide which one to use if there is both
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   589
            "/ a channel and a subMenu ...
1649
162e89bf1079 halt -> error
ca
parents: 1648
diff changeset
   590
            self error:'overwriting submenuchannel' mayProceed:true.
1643
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   591
        ].
2987
66fad8f6ad33 comment/format in: #submenu:
Claus Gittinger <cg@exept.de>
parents: 2966
diff changeset
   592
        submenuChannel := aMenu
1643
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   593
    ] ifFalse:[
2987
66fad8f6ad33 comment/format in: #submenu:
Claus Gittinger <cg@exept.de>
parents: 2966
diff changeset
   594
        submenu := aMenu.
1333
423b4b4404c4 avoid creating an adornment (when nil adornment values are stored)
Claus Gittinger <cg@exept.de>
parents: 1329
diff changeset
   595
    ]
458
729ffdbd2b13 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 455
diff changeset
   596
1643
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   597
    "Created: / 25.2.1997 / 20:59:28 / cg"
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   598
    "Modified: / 5.2.2000 / 16:53:28 / cg"
458
729ffdbd2b13 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 455
diff changeset
   599
!
729ffdbd2b13 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 455
diff changeset
   600
666
6e614a5d9248 add submenuChannel
ca
parents: 661
diff changeset
   601
submenuChannel
2112
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   602
    "get the submenuChannel or nil"
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   603
    
1643
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   604
    ^ submenuChannel
666
6e614a5d9248 add submenuChannel
ca
parents: 661
diff changeset
   605
!
6e614a5d9248 add submenuChannel
ca
parents: 661
diff changeset
   606
2987
66fad8f6ad33 comment/format in: #submenu:
Claus Gittinger <cg@exept.de>
parents: 2966
diff changeset
   607
submenuChannel:aMenuHolder 
2112
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   608
    "set the submenuChannel or nil"
3c4dd2e9203f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   609
    
2987
66fad8f6ad33 comment/format in: #submenu:
Claus Gittinger <cg@exept.de>
parents: 2966
diff changeset
   610
    submenuChannel := aMenuHolder.
2517
35e21e2e29a6 support uuid's
fm
parents: 2412
diff changeset
   611
!
35e21e2e29a6 support uuid's
fm
parents: 2412
diff changeset
   612
2866
2d1ab34d1836 +submenuProvider
Claus Gittinger <cg@exept.de>
parents: 2813
diff changeset
   613
submenuProvider 
2d1ab34d1836 +submenuProvider
Claus Gittinger <cg@exept.de>
parents: 2813
diff changeset
   614
    "useful if a sub-menu is plugged in from another application (i.e. when
2d1ab34d1836 +submenuProvider
Claus Gittinger <cg@exept.de>
parents: 2813
diff changeset
   615
     a submenu is fetched via a channel AND the top-menus application cannot provide
2d1ab34d1836 +submenuProvider
Claus Gittinger <cg@exept.de>
parents: 2813
diff changeset
   616
     it"
2d1ab34d1836 +submenuProvider
Claus Gittinger <cg@exept.de>
parents: 2813
diff changeset
   617
    
2d1ab34d1836 +submenuProvider
Claus Gittinger <cg@exept.de>
parents: 2813
diff changeset
   618
    ^ submenuProvider
2d1ab34d1836 +submenuProvider
Claus Gittinger <cg@exept.de>
parents: 2813
diff changeset
   619
2d1ab34d1836 +submenuProvider
Claus Gittinger <cg@exept.de>
parents: 2813
diff changeset
   620
    "Created: / 22-09-2010 / 13:55:55 / cg"
2d1ab34d1836 +submenuProvider
Claus Gittinger <cg@exept.de>
parents: 2813
diff changeset
   621
!
2d1ab34d1836 +submenuProvider
Claus Gittinger <cg@exept.de>
parents: 2813
diff changeset
   622
2d1ab34d1836 +submenuProvider
Claus Gittinger <cg@exept.de>
parents: 2813
diff changeset
   623
submenuProvider:something 
2d1ab34d1836 +submenuProvider
Claus Gittinger <cg@exept.de>
parents: 2813
diff changeset
   624
    "useful if a sub-menu is plugged in from another application (i.e. when
2d1ab34d1836 +submenuProvider
Claus Gittinger <cg@exept.de>
parents: 2813
diff changeset
   625
     a submenu is fetched via a channel AND the top-menus application cannot provide
2d1ab34d1836 +submenuProvider
Claus Gittinger <cg@exept.de>
parents: 2813
diff changeset
   626
     it"
2d1ab34d1836 +submenuProvider
Claus Gittinger <cg@exept.de>
parents: 2813
diff changeset
   627
    
2d1ab34d1836 +submenuProvider
Claus Gittinger <cg@exept.de>
parents: 2813
diff changeset
   628
    submenuProvider := something.
2d1ab34d1836 +submenuProvider
Claus Gittinger <cg@exept.de>
parents: 2813
diff changeset
   629
2d1ab34d1836 +submenuProvider
Claus Gittinger <cg@exept.de>
parents: 2813
diff changeset
   630
    "Created: / 22-09-2010 / 13:55:40 / cg"
2d1ab34d1836 +submenuProvider
Claus Gittinger <cg@exept.de>
parents: 2813
diff changeset
   631
!
2d1ab34d1836 +submenuProvider
Claus Gittinger <cg@exept.de>
parents: 2813
diff changeset
   632
2517
35e21e2e29a6 support uuid's
fm
parents: 2412
diff changeset
   633
uuid
35e21e2e29a6 support uuid's
fm
parents: 2412
diff changeset
   634
35e21e2e29a6 support uuid's
fm
parents: 2412
diff changeset
   635
    ^ uuid
35e21e2e29a6 support uuid's
fm
parents: 2412
diff changeset
   636
!
35e21e2e29a6 support uuid's
fm
parents: 2412
diff changeset
   637
35e21e2e29a6 support uuid's
fm
parents: 2412
diff changeset
   638
uuid:aUUID
35e21e2e29a6 support uuid's
fm
parents: 2412
diff changeset
   639
    "return my name component to be used for resource-access"
35e21e2e29a6 support uuid's
fm
parents: 2412
diff changeset
   640
35e21e2e29a6 support uuid's
fm
parents: 2412
diff changeset
   641
    uuid := aUUID
451
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   642
! !
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   643
1333
423b4b4404c4 avoid creating an adornment (when nil adornment values are stored)
Claus Gittinger <cg@exept.de>
parents: 1329
diff changeset
   644
!MenuItem methodsFor:'accessing-behavior'!
579
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
   645
590
fb2c55428c52 ST-80 compatibility
ca
parents: 584
diff changeset
   646
beOff
2082
cab2f7b1f938 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
   647
    "set indication off"
cab2f7b1f938 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
   648
590
fb2c55428c52 ST-80 compatibility
ca
parents: 584
diff changeset
   649
    self indication:false
fb2c55428c52 ST-80 compatibility
ca
parents: 584
diff changeset
   650
!
fb2c55428c52 ST-80 compatibility
ca
parents: 584
diff changeset
   651
fb2c55428c52 ST-80 compatibility
ca
parents: 584
diff changeset
   652
beOn
2082
cab2f7b1f938 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
   653
    "set indication on"
cab2f7b1f938 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
   654
590
fb2c55428c52 ST-80 compatibility
ca
parents: 584
diff changeset
   655
    self indication:true
fb2c55428c52 ST-80 compatibility
ca
parents: 584
diff changeset
   656
!
fb2c55428c52 ST-80 compatibility
ca
parents: 584
diff changeset
   657
1041
d28f0375cd26 added choice type menu items (i.e. radioButton behavior)
Claus Gittinger <cg@exept.de>
parents: 1030
diff changeset
   658
choice
2082
cab2f7b1f938 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
   659
    "return the menu items choice indicator (RadioButton)"
cab2f7b1f938 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
   660
1643
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   661
    ^ choice
1041
d28f0375cd26 added choice type menu items (i.e. radioButton behavior)
Claus Gittinger <cg@exept.de>
parents: 1030
diff changeset
   662
d28f0375cd26 added choice type menu items (i.e. radioButton behavior)
Claus Gittinger <cg@exept.de>
parents: 1030
diff changeset
   663
    "Created: / 14.8.1998 / 14:34:55 / cg"
d28f0375cd26 added choice type menu items (i.e. radioButton behavior)
Claus Gittinger <cg@exept.de>
parents: 1030
diff changeset
   664
    "Modified: / 14.8.1998 / 15:11:57 / cg"
d28f0375cd26 added choice type menu items (i.e. radioButton behavior)
Claus Gittinger <cg@exept.de>
parents: 1030
diff changeset
   665
!
d28f0375cd26 added choice type menu items (i.e. radioButton behavior)
Claus Gittinger <cg@exept.de>
parents: 1030
diff changeset
   666
579
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
   667
disable
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
   668
    enabled := false
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
   669
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
   670
    "Created: 25.2.1997 / 19:39:09 / cg"
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
   671
!
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
   672
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
   673
enable
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
   674
    enabled := true
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
   675
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
   676
    "Created: 25.2.1997 / 19:39:00 / cg"
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
   677
!
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
   678
581
0080d12b5758 enabled can be something not only a boolean
ca
parents: 580
diff changeset
   679
enabled
2082
cab2f7b1f938 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
   680
    "returns a boolean, valueHolder or block"
cab2f7b1f938 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
   681
581
0080d12b5758 enabled can be something not only a boolean
ca
parents: 580
diff changeset
   682
    ^ enabled
0080d12b5758 enabled can be something not only a boolean
ca
parents: 580
diff changeset
   683
!
579
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
   684
581
0080d12b5758 enabled can be something not only a boolean
ca
parents: 580
diff changeset
   685
enabled:something
2082
cab2f7b1f938 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
   686
    "a boolean, valueHolder or block"
cab2f7b1f938 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
   687
581
0080d12b5758 enabled can be something not only a boolean
ca
parents: 580
diff changeset
   688
    enabled := something
590
fb2c55428c52 ST-80 compatibility
ca
parents: 584
diff changeset
   689
!
fb2c55428c52 ST-80 compatibility
ca
parents: 584
diff changeset
   690
1595
0595db55a829 preps for delayedMenu
Claus Gittinger <cg@exept.de>
parents: 1568
diff changeset
   691
hideMenuOnActivated
2082
cab2f7b1f938 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
   692
    "hide the menu when the item was activated; the default is true"
cab2f7b1f938 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
   693
1595
0595db55a829 preps for delayedMenu
Claus Gittinger <cg@exept.de>
parents: 1568
diff changeset
   694
    ^ hideMenuOnActivated ? true
1566
99ef8f1123c8 menuBuilder: support of horizontal/vertical layout of submenu
ca
parents: 1486
diff changeset
   695
!
99ef8f1123c8 menuBuilder: support of horizontal/vertical layout of submenu
ca
parents: 1486
diff changeset
   696
1595
0595db55a829 preps for delayedMenu
Claus Gittinger <cg@exept.de>
parents: 1568
diff changeset
   697
hideMenuOnActivated:aBool
2082
cab2f7b1f938 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
   698
   "hide the menu when the item was activated; the default is true"
cab2f7b1f938 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
   699
1595
0595db55a829 preps for delayedMenu
Claus Gittinger <cg@exept.de>
parents: 1568
diff changeset
   700
    hideMenuOnActivated := aBool ? true
1566
99ef8f1123c8 menuBuilder: support of horizontal/vertical layout of submenu
ca
parents: 1486
diff changeset
   701
!
99ef8f1123c8 menuBuilder: support of horizontal/vertical layout of submenu
ca
parents: 1486
diff changeset
   702
1651
429e02e097d9 can now specify if menu action is to be performed by
ca
parents: 1649
diff changeset
   703
sendToOriginator
429e02e097d9 can now specify if menu action is to be performed by
ca
parents: 1649
diff changeset
   704
    "if true, the message is sent to the originating widget;
429e02e097d9 can now specify if menu action is to be performed by
ca
parents: 1649
diff changeset
   705
     otherwise (the default), it it sent to the receiver/application."
429e02e097d9 can now specify if menu action is to be performed by
ca
parents: 1649
diff changeset
   706
429e02e097d9 can now specify if menu action is to be performed by
ca
parents: 1649
diff changeset
   707
   ^ sendToOriginator ? false
429e02e097d9 can now specify if menu action is to be performed by
ca
parents: 1649
diff changeset
   708
!
429e02e097d9 can now specify if menu action is to be performed by
ca
parents: 1649
diff changeset
   709
429e02e097d9 can now specify if menu action is to be performed by
ca
parents: 1649
diff changeset
   710
sendToOriginator:anBoolean
429e02e097d9 can now specify if menu action is to be performed by
ca
parents: 1649
diff changeset
   711
    "if true, the message is sent to the originating widget;
429e02e097d9 can now specify if menu action is to be performed by
ca
parents: 1649
diff changeset
   712
     otherwise (the default), it it sent to the receiver/application."
429e02e097d9 can now specify if menu action is to be performed by
ca
parents: 1649
diff changeset
   713
429e02e097d9 can now specify if menu action is to be performed by
ca
parents: 1649
diff changeset
   714
    sendToOriginator := anBoolean
429e02e097d9 can now specify if menu action is to be performed by
ca
parents: 1649
diff changeset
   715
!
429e02e097d9 can now specify if menu action is to be performed by
ca
parents: 1649
diff changeset
   716
2533
569fd3176543 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2517
diff changeset
   717
showBusyCursorWhilePerforming
569fd3176543 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2517
diff changeset
   718
    "get the flag which controls if a busy cursor is to be shown
569fd3176543 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2517
diff changeset
   719
     while performing the menu action. Defaults to false."
569fd3176543 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2517
diff changeset
   720
569fd3176543 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2517
diff changeset
   721
    ^ showBusyCursorWhilePerforming ? false
569fd3176543 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2517
diff changeset
   722
569fd3176543 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2517
diff changeset
   723
!
569fd3176543 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2517
diff changeset
   724
569fd3176543 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2517
diff changeset
   725
showBusyCursorWhilePerforming:aBoolean
569fd3176543 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2517
diff changeset
   726
    "set/clear the flag which controls if a busy cursor is to be shown
569fd3176543 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2517
diff changeset
   727
     while performing the menu action. Defaults to false."
569fd3176543 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2517
diff changeset
   728
569fd3176543 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2517
diff changeset
   729
    showBusyCursorWhilePerforming := aBoolean
569fd3176543 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2517
diff changeset
   730
569fd3176543 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2517
diff changeset
   731
!
569fd3176543 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2517
diff changeset
   732
1595
0595db55a829 preps for delayedMenu
Claus Gittinger <cg@exept.de>
parents: 1568
diff changeset
   733
translateLabel
2082
cab2f7b1f938 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
   734
    "returns true if the label is to be translated"
cab2f7b1f938 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
   735
2412
3f11e716f802 Do not try to translate separators
Stefan Vogel <sv@exept.de>
parents: 2293
diff changeset
   736
    ^ translateLabel ? true
1595
0595db55a829 preps for delayedMenu
Claus Gittinger <cg@exept.de>
parents: 1568
diff changeset
   737
!
0595db55a829 preps for delayedMenu
Claus Gittinger <cg@exept.de>
parents: 1568
diff changeset
   738
2082
cab2f7b1f938 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
   739
translateLabel:aBoolean
cab2f7b1f938 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
   740
    "sets whether label is translated"
1595
0595db55a829 preps for delayedMenu
Claus Gittinger <cg@exept.de>
parents: 1568
diff changeset
   741
2082
cab2f7b1f938 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
   742
    translateLabel := aBoolean
1595
0595db55a829 preps for delayedMenu
Claus Gittinger <cg@exept.de>
parents: 1568
diff changeset
   743
!
0595db55a829 preps for delayedMenu
Claus Gittinger <cg@exept.de>
parents: 1568
diff changeset
   744
0595db55a829 preps for delayedMenu
Claus Gittinger <cg@exept.de>
parents: 1568
diff changeset
   745
triggerOnDown
2082
cab2f7b1f938 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
   746
   "returns true if the action is triggered when pressed"
cab2f7b1f938 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
   747
1595
0595db55a829 preps for delayedMenu
Claus Gittinger <cg@exept.de>
parents: 1568
diff changeset
   748
   ^ triggerOnDown ? false
0595db55a829 preps for delayedMenu
Claus Gittinger <cg@exept.de>
parents: 1568
diff changeset
   749
!
0595db55a829 preps for delayedMenu
Claus Gittinger <cg@exept.de>
parents: 1568
diff changeset
   750
0595db55a829 preps for delayedMenu
Claus Gittinger <cg@exept.de>
parents: 1568
diff changeset
   751
triggerOnDown:aBool
2082
cab2f7b1f938 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
   752
   "controls if the action is triggered when pressed or released"
cab2f7b1f938 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
   753
1595
0595db55a829 preps for delayedMenu
Claus Gittinger <cg@exept.de>
parents: 1568
diff changeset
   754
    triggerOnDown := aBool.
0595db55a829 preps for delayedMenu
Claus Gittinger <cg@exept.de>
parents: 1568
diff changeset
   755
! !
0595db55a829 preps for delayedMenu
Claus Gittinger <cg@exept.de>
parents: 1568
diff changeset
   756
0595db55a829 preps for delayedMenu
Claus Gittinger <cg@exept.de>
parents: 1568
diff changeset
   757
!MenuItem methodsFor:'accessing-look'!
0595db55a829 preps for delayedMenu
Claus Gittinger <cg@exept.de>
parents: 1568
diff changeset
   758
1643
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   759
icon:anImage
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   760
    self resourceRetriever: (ResourceRetriever icon:anImage)
1595
0595db55a829 preps for delayedMenu
Claus Gittinger <cg@exept.de>
parents: 1568
diff changeset
   761
!
0595db55a829 preps for delayedMenu
Claus Gittinger <cg@exept.de>
parents: 1568
diff changeset
   762
752
93690dcd1b75 button and label translation support added.
tz
parents: 724
diff changeset
   763
isButton
93690dcd1b75 button and label translation support added.
tz
parents: 724
diff changeset
   764
    "returns whether item looks like a Button
93690dcd1b75 button and label translation support added.
tz
parents: 724
diff changeset
   765
    "
1646
da8d044c7c0d value - itemValue
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   766
    ^ isButton ? false
752
93690dcd1b75 button and label translation support added.
tz
parents: 724
diff changeset
   767
!
93690dcd1b75 button and label translation support added.
tz
parents: 724
diff changeset
   768
93690dcd1b75 button and label translation support added.
tz
parents: 724
diff changeset
   769
isButton:anBoolean
93690dcd1b75 button and label translation support added.
tz
parents: 724
diff changeset
   770
    "sets whether item looks like a Button
93690dcd1b75 button and label translation support added.
tz
parents: 724
diff changeset
   771
    "
93690dcd1b75 button and label translation support added.
tz
parents: 724
diff changeset
   772
    isButton := anBoolean
93690dcd1b75 button and label translation support added.
tz
parents: 724
diff changeset
   773
93690dcd1b75 button and label translation support added.
tz
parents: 724
diff changeset
   774
93690dcd1b75 button and label translation support added.
tz
parents: 724
diff changeset
   775
!
93690dcd1b75 button and label translation support added.
tz
parents: 724
diff changeset
   776
1595
0595db55a829 preps for delayedMenu
Claus Gittinger <cg@exept.de>
parents: 1568
diff changeset
   777
label
0595db55a829 preps for delayedMenu
Claus Gittinger <cg@exept.de>
parents: 1568
diff changeset
   778
    ^ self filteredLabel "/ label
0595db55a829 preps for delayedMenu
Claus Gittinger <cg@exept.de>
parents: 1568
diff changeset
   779
0595db55a829 preps for delayedMenu
Claus Gittinger <cg@exept.de>
parents: 1568
diff changeset
   780
    "Created: / 25.2.1997 / 19:48:16 / cg"
0595db55a829 preps for delayedMenu
Claus Gittinger <cg@exept.de>
parents: 1568
diff changeset
   781
    "Modified: / 19.6.1998 / 00:02:55 / cg"
0595db55a829 preps for delayedMenu
Claus Gittinger <cg@exept.de>
parents: 1568
diff changeset
   782
!
0595db55a829 preps for delayedMenu
Claus Gittinger <cg@exept.de>
parents: 1568
diff changeset
   783
0595db55a829 preps for delayedMenu
Claus Gittinger <cg@exept.de>
parents: 1568
diff changeset
   784
label:aString
0595db55a829 preps for delayedMenu
Claus Gittinger <cg@exept.de>
parents: 1568
diff changeset
   785
    label := aString
0595db55a829 preps for delayedMenu
Claus Gittinger <cg@exept.de>
parents: 1568
diff changeset
   786
0595db55a829 preps for delayedMenu
Claus Gittinger <cg@exept.de>
parents: 1568
diff changeset
   787
    "Created: 25.2.1997 / 19:55:16 / cg"
0595db55a829 preps for delayedMenu
Claus Gittinger <cg@exept.de>
parents: 1568
diff changeset
   788
!
0595db55a829 preps for delayedMenu
Claus Gittinger <cg@exept.de>
parents: 1568
diff changeset
   789
0595db55a829 preps for delayedMenu
Claus Gittinger <cg@exept.de>
parents: 1568
diff changeset
   790
startGroup
2264
8736ee5ec90e new startGroup value: #conditionalRight
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
   791
    "start group #left #right #conditionalRight ... or nil
8736ee5ec90e new startGroup value: #conditionalRight
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
   792
     at the moment only #right and #conditionalRight are implemented"
8736ee5ec90e new startGroup value: #conditionalRight
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
   793
1595
0595db55a829 preps for delayedMenu
Claus Gittinger <cg@exept.de>
parents: 1568
diff changeset
   794
    ^ startGroup ? #left
2264
8736ee5ec90e new startGroup value: #conditionalRight
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
   795
8736ee5ec90e new startGroup value: #conditionalRight
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
   796
    "Modified: / 16-10-2006 / 13:05:52 / cg"
1595
0595db55a829 preps for delayedMenu
Claus Gittinger <cg@exept.de>
parents: 1568
diff changeset
   797
!
752
93690dcd1b75 button and label translation support added.
tz
parents: 724
diff changeset
   798
1595
0595db55a829 preps for delayedMenu
Claus Gittinger <cg@exept.de>
parents: 1568
diff changeset
   799
startGroup:aSymbol
2264
8736ee5ec90e new startGroup value: #conditionalRight
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
   800
    "start group #left #right #conditionalRight ...
8736ee5ec90e new startGroup value: #conditionalRight
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
   801
     at the moment only #right and #conditionalRight are implemented.
8736ee5ec90e new startGroup value: #conditionalRight
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
   802
     The meanings are:
8736ee5ec90e new startGroup value: #conditionalRight
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
   803
        nil                 - default under control of the menu
8736ee5ec90e new startGroup value: #conditionalRight
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
   804
        #left               - left align
8736ee5ec90e new startGroup value: #conditionalRight
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
   805
        #right              - place at the right far end
8736ee5ec90e new startGroup value: #conditionalRight
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
   806
        #conditionalRight   - controlled by a styleSheet variable;
8736ee5ec90e new startGroup value: #conditionalRight
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
   807
                              like #right under all non-win32 systems,
8736ee5ec90e new startGroup value: #conditionalRight
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
   808
                              ignored on win32.
8736ee5ec90e new startGroup value: #conditionalRight
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
   809
                              Use with help-menu, which should be at the far right on some
8736ee5ec90e new startGroup value: #conditionalRight
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
   810
                              viewStyles, but not under win32.
1595
0595db55a829 preps for delayedMenu
Claus Gittinger <cg@exept.de>
parents: 1568
diff changeset
   811
    "
2264
8736ee5ec90e new startGroup value: #conditionalRight
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
   812
8736ee5ec90e new startGroup value: #conditionalRight
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
   813
    (self class supportedStartGroupValues includes:aSymbol) ifTrue:[
1595
0595db55a829 preps for delayedMenu
Claus Gittinger <cg@exept.de>
parents: 1568
diff changeset
   814
        startGroup := aSymbol
0595db55a829 preps for delayedMenu
Claus Gittinger <cg@exept.de>
parents: 1568
diff changeset
   815
    ] ifFalse:[
0595db55a829 preps for delayedMenu
Claus Gittinger <cg@exept.de>
parents: 1568
diff changeset
   816
        self warn:('unsupported group: ', aSymbol printString ).
0595db55a829 preps for delayedMenu
Claus Gittinger <cg@exept.de>
parents: 1568
diff changeset
   817
        startGroup := #left
0595db55a829 preps for delayedMenu
Claus Gittinger <cg@exept.de>
parents: 1568
diff changeset
   818
    ]
2263
30cf468f47ca new startGroup value: #conditionalRight
Claus Gittinger <cg@exept.de>
parents: 2125
diff changeset
   819
2264
8736ee5ec90e new startGroup value: #conditionalRight
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
   820
    "Modified: / 16-10-2006 / 13:09:45 / cg"
581
0080d12b5758 enabled can be something not only a boolean
ca
parents: 580
diff changeset
   821
! !
0080d12b5758 enabled can be something not only a boolean
ca
parents: 580
diff changeset
   822
1333
423b4b4404c4 avoid creating an adornment (when nil adornment values are stored)
Claus Gittinger <cg@exept.de>
parents: 1329
diff changeset
   823
!MenuItem methodsFor:'accessing-resource'!
581
0080d12b5758 enabled can be something not only a boolean
ca
parents: 580
diff changeset
   824
584
9a4c30f7586f ST-80 compatible features addded
ca
parents: 581
diff changeset
   825
findGuiResourcesIn:aResourceContainerOrApplication
581
0080d12b5758 enabled can be something not only a boolean
ca
parents: 580
diff changeset
   826
    "setup a resource container
0080d12b5758 enabled can be something not only a boolean
ca
parents: 580
diff changeset
   827
    "
1425
b2db2ec8a083 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1409
diff changeset
   828
    ^ self findGuiResourcesIn:aResourceContainerOrApplication rememberResourcesIn:nil
1401
0fda9891ba4a only ask once for resources (remember locally)
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
   829
!
0fda9891ba4a only ask once for resources (remember locally)
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
   830
0fda9891ba4a only ask once for resources (remember locally)
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
   831
findGuiResourcesIn:aResourceContainerOrApplication rememberResourcesIn:aValueHolderOrNil
0fda9891ba4a only ask once for resources (remember locally)
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
   832
    "setup a resource container
0fda9891ba4a only ask once for resources (remember locally)
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
   833
    "
1643
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   834
    |retriever m|
1401
0fda9891ba4a only ask once for resources (remember locally)
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
   835
1986
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
   836
    (aResourceContainerOrApplication isNil or:[self isMenuSlice]) ifTrue:[
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
   837
        ^ self.
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
   838
    ].
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
   839
2412
3f11e716f802 Do not try to translate separators
Stefan Vogel <sv@exept.de>
parents: 2293
diff changeset
   840
    (self translateLabel and:[label ~= '-']) ifTrue:[
1401
0fda9891ba4a only ask once for resources (remember locally)
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
   841
        label := ResourceRetriever 
0fda9891ba4a only ask once for resources (remember locally)
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
   842
                        findResourceLabel:label 
0fda9891ba4a only ask once for resources (remember locally)
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
   843
                        in:aResourceContainerOrApplication
2018
5a6446cf5079 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1990
diff changeset
   844
                        rememberResourcesIn:aValueHolderOrNil.
1401
0fda9891ba4a only ask once for resources (remember locally)
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
   845
    ].
0fda9891ba4a only ask once for resources (remember locally)
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
   846
1643
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   847
    (retriever := self resourceRetriever) notNil ifTrue:[ 
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   848
        retriever findGuiResourcesIn:aResourceContainerOrApplication.
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   849
        retriever labelText notNil ifTrue: [retriever labelText: label].
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   850
    ].   
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   851
    (m := self submenu) notNil ifTrue:[
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   852
        m := m value.
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   853
        m notNil ifTrue:[
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   854
            m findGuiResourcesIn:aResourceContainerOrApplication rememberResourcesIn:aValueHolderOrNil
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   855
        ]
1401
0fda9891ba4a only ask once for resources (remember locally)
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
   856
    ]
0fda9891ba4a only ask once for resources (remember locally)
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
   857
0fda9891ba4a only ask once for resources (remember locally)
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
   858
    "Modified: / 18.6.1998 / 16:54:25 / cg"
1986
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
   859
!
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
   860
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
   861
receiver:aReceiver perform:aSelector with:anArgument ifNone:aBlock
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
   862
    "send the one-arg-message aSelector to the application;
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
   863
     the result returned from the send or nil is returned
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
   864
    "
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
   865
    |result|
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
   866
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
   867
    MessageNotUnderstood handle:[:ex|
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
   868
        ex selector ~~ aSelector ifTrue:[
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
   869
            ex reject
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
   870
        ].
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
   871
        result := aBlock value.
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
   872
    ] do:[
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
   873
        aSelector numArgs == 0 ifTrue:[
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
   874
            result := aReceiver perform:aSelector.
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
   875
        ] ifFalse:[
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
   876
            result := aReceiver perform:aSelector with:anArgument.
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
   877
        ].
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
   878
    ].
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
   879
    ^ result
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
   880
!
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
   881
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
   882
resolveSliceMenuItemsIn:aReceiver rememberResourcesIn:aValueHolderOrNil
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
   883
    |menu|
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
   884
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
   885
    self isMenuSlice ifFalse:[
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
   886
        self error:'not a slice menu'.
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
   887
        ^ Array with:self.
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
   888
    ].
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
   889
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
   890
    aReceiver isNil ifTrue:[
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
   891
        ^ nil
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
   892
    ].
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
   893
    menu := self receiver:aReceiver perform:submenuChannel with:argument
2036
f8e99bb346e4 *** empty log message ***
penk
parents: 2033
diff changeset
   894
        ifNone:[ 
f8e99bb346e4 *** empty log message ***
penk
parents: 2033
diff changeset
   895
            self receiver:(aReceiver class) perform:submenuChannel with:argument 
f8e99bb346e4 *** empty log message ***
penk
parents: 2033
diff changeset
   896
                ifNone:[
2060
7bda88c4fff1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2059
diff changeset
   897
                    "/ ('MenuItem [info]: no aspect for slice ',submenuChannel) infoPrintCR.
2036
f8e99bb346e4 *** empty log message ***
penk
parents: 2033
diff changeset
   898
                    nil
f8e99bb346e4 *** empty log message ***
penk
parents: 2033
diff changeset
   899
                ].
f8e99bb346e4 *** empty log message ***
penk
parents: 2033
diff changeset
   900
        ].
1986
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
   901
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
   902
    menu := menu value.
2033
a9ed3856e834 *** empty log message ***
james
parents: 2018
diff changeset
   903
    menu isNil ifTrue:[^ nil].
1986
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
   904
2292
d7b06b31d72b use decodeFromLiteralArray
Claus Gittinger <cg@exept.de>
parents: 2268
diff changeset
   905
    menu isCollection ifTrue:[
d7b06b31d72b use decodeFromLiteralArray
Claus Gittinger <cg@exept.de>
parents: 2268
diff changeset
   906
        menu := Menu decodeFromLiteralArray:menu.
1986
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
   907
    ].
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
   908
    menu findGuiResourcesIn:aReceiver rememberResourcesIn:aValueHolderOrNil.
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
   909
    ^ menu items
2268
a947e7f7a28f resolveGUIResources no longer sets the receiver recursively
Claus Gittinger <cg@exept.de>
parents: 2264
diff changeset
   910
2293
bd71da1fd58a changed #resolveSliceMenuItemsIn:rememberResourcesIn:
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
   911
    "Modified: / 27-03-2007 / 11:20:43 / cg"
579
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
   912
! !
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
   913
451
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   914
!MenuItem methodsFor:'converting'!
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   915
1646
da8d044c7c0d value - itemValue
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   916
skippedInLiteralEncoding
da8d044c7c0d value - itemValue
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   917
    |coll|
da8d044c7c0d value - itemValue
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   918
da8d044c7c0d value - itemValue
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   919
    coll := super skippedInLiteralEncoding asOrderedCollection.
da8d044c7c0d value - itemValue
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   920
da8d044c7c0d value - itemValue
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   921
    label isNil ifTrue:[ coll add:#label ].
3021
39995ec958eb changed: #skippedInLiteralEncoding
Claus Gittinger <cg@exept.de>
parents: 3003
diff changeset
   922
    (translateLabel isNil or:[translateLabel == true or:[#('' '-' '=') includes:label]]) ifTrue:[ coll add:#translateLabel ].
1646
da8d044c7c0d value - itemValue
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   923
    self isButton ifFalse:[ coll add:#isButton ].
da8d044c7c0d value - itemValue
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   924
    self triggerOnDown ifFalse:[ coll add:#triggerOnDown ].
da8d044c7c0d value - itemValue
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   925
    self hideMenuOnActivated ifTrue:[ coll add:#hideMenuOnActivated].
da8d044c7c0d value - itemValue
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   926
    nameKey isNil ifTrue:[ coll add:#nameKey ].
1658
9524b83860db suppress true in isVisible field of MenuEditor
Claus Gittinger <cg@exept.de>
parents: 1655
diff changeset
   927
    (self isVisible ? true) ifTrue:[coll add:#isVisible].
1646
da8d044c7c0d value - itemValue
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   928
    (startGroup isNil or:[startGroup == #left]) ifTrue:[coll add:#startGroup].
da8d044c7c0d value - itemValue
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   929
    itemValue isNil ifTrue:[ coll add:#itemValue].
da8d044c7c0d value - itemValue
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   930
    activeHelpKey isNil ifTrue:[ coll add:#activeHelpKey].
da8d044c7c0d value - itemValue
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   931
    enabled == true "could be a symbol" ifTrue:[ coll add:#enabled].
da8d044c7c0d value - itemValue
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   932
    shortcutKey isNil ifTrue:[ coll add:#shortcutKeyCharacter].
da8d044c7c0d value - itemValue
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   933
    font isNil ifTrue:[ coll add:#font].
da8d044c7c0d value - itemValue
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   934
    accessCharacterPosition isNil ifTrue:[coll add:#accessCharacterPosition].
1990
dca233a39477 horizontalLayout bug
Claus Gittinger <cg@exept.de>
parents: 1986
diff changeset
   935
    self horizontalLayout ifFalse:[coll add:#horizontalLayout].
1646
da8d044c7c0d value - itemValue
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   936
    self showBusyCursorWhilePerforming ifFalse:[ coll add:#showBusyCursorWhilePerforming ].
da8d044c7c0d value - itemValue
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   937
    argument isNil ifTrue:[ coll add:#argument].
da8d044c7c0d value - itemValue
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   938
    self resourceRetriever isNil ifTrue:[ coll add:#resourceRetriever].
da8d044c7c0d value - itemValue
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   939
    indication isNil ifTrue:[ coll add:#indication].
da8d044c7c0d value - itemValue
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   940
    choice isNil ifTrue:[coll add:#choice].
da8d044c7c0d value - itemValue
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   941
    choiceValue isNil ifTrue:[ coll add:#choiceValue].
da8d044c7c0d value - itemValue
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   942
    auxValue isNil ifTrue:[ coll add:#auxValue ].
da8d044c7c0d value - itemValue
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   943
    submenuChannel isNil ifTrue:[ coll add:#submenuChannel].
da8d044c7c0d value - itemValue
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   944
    self keepLinkedMenu ifFalse:[ coll add:#keepLinkedMenu].
da8d044c7c0d value - itemValue
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   945
    submenu value isNil ifTrue:[coll add:#submenu ].
1651
429e02e097d9 can now specify if menu action is to be performed by
ca
parents: 1649
diff changeset
   946
    self sendToOriginator ifFalse:[coll add:#sendToOriginator ].
1646
da8d044c7c0d value - itemValue
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   947
1885
860b47f2535f support ignoreShortcutKeys and ignoreMnemonicKeys in Editor
ca
parents: 1884
diff changeset
   948
    self ignoreShortcutKeys ifFalse:[coll add:#ignoreShortcutKeys ].
860b47f2535f support ignoreShortcutKeys and ignoreMnemonicKeys in Editor
ca
parents: 1884
diff changeset
   949
    self ignoreMnemonicKeys ifFalse:[coll add:#ignoreMnemonicKeys ].
1884
4b317db4d387 support of ignoreShortcutKeys and ignoreMnemonicKeys
ca
parents: 1763
diff changeset
   950
1986
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
   951
    self isMenuSlice ifFalse:[coll add:#isMenuSlice].
1884
4b317db4d387 support of ignoreShortcutKeys and ignoreMnemonicKeys
ca
parents: 1763
diff changeset
   952
1646
da8d044c7c0d value - itemValue
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
   953
    ^ coll
3021
39995ec958eb changed: #skippedInLiteralEncoding
Claus Gittinger <cg@exept.de>
parents: 3003
diff changeset
   954
39995ec958eb changed: #skippedInLiteralEncoding
Claus Gittinger <cg@exept.de>
parents: 3003
diff changeset
   955
    "Modified: / 22-08-2012 / 21:22:20 / cg"
451
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   956
! !
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   957
1643
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   958
!MenuItem methodsFor:'encoding & decoding'!
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   959
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   960
fromLiteralArrayEncoding:aLiteralEncodedArray
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   961
    "read my contents from a aLiteralEncodedArray"
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   962
2047
f3b5fa8cd08e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2040
diff changeset
   963
    |selector value retriever|
1643
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   964
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   965
    2 to:aLiteralEncodedArray size by:2 do:[:i |
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   966
        selector := aLiteralEncodedArray at:i.
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   967
        value    := (aLiteralEncodedArray at:i+1).
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   968
        selector == #argument: ifFalse:[
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   969
            value := value decodeAsLiteralArray
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   970
        ].
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   971
        self perform:selector with:value
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   972
    ].
2047
f3b5fa8cd08e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2040
diff changeset
   973
    "/ kludge in case someone forgets to call findGUIResourcesIn:
f3b5fa8cd08e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2040
diff changeset
   974
    (retriever := self resourceRetriever) notNil ifTrue:[ 
f3b5fa8cd08e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2040
diff changeset
   975
        retriever labelText notNil ifTrue: [retriever labelText: label].
f3b5fa8cd08e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2040
diff changeset
   976
    ].   
1643
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   977
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   978
    "
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   979
     #( #MenuItem #rawLabel: 'left' #nameKey: 'identifier'  #value: #left )
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   980
         decodeAsLiteralArray
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   981
    "
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   982
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   983
    "Modified: / 4.2.2000 / 12:50:28 / cg"
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   984
! !
e1148c53ad3c got rid of adornment; ResourceRetriever code cleaned up.
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
   985
1329
b56172875855 nicer displayString
Claus Gittinger <cg@exept.de>
parents: 1328
diff changeset
   986
!MenuItem methodsFor:'printing & storing'!
b56172875855 nicer displayString
Claus Gittinger <cg@exept.de>
parents: 1328
diff changeset
   987
2736
4798b0251087 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2548
diff changeset
   988
printOn:aStream
4798b0251087 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2548
diff changeset
   989
    aStream nextPutAll:self classNameWithArticle.
4798b0251087 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2548
diff changeset
   990
    aStream nextPutAll:'('.
4798b0251087 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2548
diff changeset
   991
    aStream nextPutAll:label storeString.
4798b0251087 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2548
diff changeset
   992
    aStream nextPutAll:')'
1329
b56172875855 nicer displayString
Claus Gittinger <cg@exept.de>
parents: 1328
diff changeset
   993
! !
b56172875855 nicer displayString
Claus Gittinger <cg@exept.de>
parents: 1328
diff changeset
   994
1761
18ec27a0300e method category rename
Claus Gittinger <cg@exept.de>
parents: 1664
diff changeset
   995
!MenuItem methodsFor:'private-accessing'!
458
729ffdbd2b13 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 455
diff changeset
   996
973
cd6b8d08c9c9 submenu item send #value.
Claus Gittinger <cg@exept.de>
parents: 960
diff changeset
   997
filteredLabel
cd6b8d08c9c9 submenu item send #value.
Claus Gittinger <cg@exept.de>
parents: 960
diff changeset
   998
    "return the label without any &-chars"
cd6b8d08c9c9 submenu item send #value.
Claus Gittinger <cg@exept.de>
parents: 960
diff changeset
   999
3212
a5ee318ee18d class: MenuItem
Stefan Vogel <sv@exept.de>
parents: 3178
diff changeset
  1000
    |rawLabel l in out c emp e|
985
5a5b476cfd6b care for Text & images in rawLabel, when filtering.
Claus Gittinger <cg@exept.de>
parents: 973
diff changeset
  1001
5a5b476cfd6b care for Text & images in rawLabel, when filtering.
Claus Gittinger <cg@exept.de>
parents: 973
diff changeset
  1002
    rawLabel := self rawLabel.
5a5b476cfd6b care for Text & images in rawLabel, when filtering.
Claus Gittinger <cg@exept.de>
parents: 973
diff changeset
  1003
    rawLabel isString ifFalse:[^ rawLabel].
5a5b476cfd6b care for Text & images in rawLabel, when filtering.
Claus Gittinger <cg@exept.de>
parents: 973
diff changeset
  1004
5a5b476cfd6b care for Text & images in rawLabel, when filtering.
Claus Gittinger <cg@exept.de>
parents: 973
diff changeset
  1005
    "/ be careful to preserve any emphasis ...
5a5b476cfd6b care for Text & images in rawLabel, when filtering.
Claus Gittinger <cg@exept.de>
parents: 973
diff changeset
  1006
    "/ bad kludge ...
5a5b476cfd6b care for Text & images in rawLabel, when filtering.
Claus Gittinger <cg@exept.de>
parents: 973
diff changeset
  1007
    rawLabel isText ifTrue:[
5a5b476cfd6b care for Text & images in rawLabel, when filtering.
Claus Gittinger <cg@exept.de>
parents: 973
diff changeset
  1008
        emp := RunArray new.
5a5b476cfd6b care for Text & images in rawLabel, when filtering.
Claus Gittinger <cg@exept.de>
parents: 973
diff changeset
  1009
    ].
973
cd6b8d08c9c9 submenu item send #value.
Claus Gittinger <cg@exept.de>
parents: 960
diff changeset
  1010
cd6b8d08c9c9 submenu item send #value.
Claus Gittinger <cg@exept.de>
parents: 960
diff changeset
  1011
    out := WriteStream on:''.
985
5a5b476cfd6b care for Text & images in rawLabel, when filtering.
Claus Gittinger <cg@exept.de>
parents: 973
diff changeset
  1012
    in := rawLabel readStream.
973
cd6b8d08c9c9 submenu item send #value.
Claus Gittinger <cg@exept.de>
parents: 960
diff changeset
  1013
    [in atEnd] whileFalse:[
985
5a5b476cfd6b care for Text & images in rawLabel, when filtering.
Claus Gittinger <cg@exept.de>
parents: 973
diff changeset
  1014
        emp notNil ifTrue:[
3212
a5ee318ee18d class: MenuItem
Stefan Vogel <sv@exept.de>
parents: 3178
diff changeset
  1015
            e := rawLabel emphasisAt:(in position + 1).
985
5a5b476cfd6b care for Text & images in rawLabel, when filtering.
Claus Gittinger <cg@exept.de>
parents: 973
diff changeset
  1016
        ].
973
cd6b8d08c9c9 submenu item send #value.
Claus Gittinger <cg@exept.de>
parents: 960
diff changeset
  1017
        c := in next.
2040
98d3508fd6e1 care for Unicode-Strings.
Claus Gittinger <cg@exept.de>
parents: 2036
diff changeset
  1018
        c bitsPerCharacter > out collection bitsPerCharacter ifTrue:[
98d3508fd6e1 care for Unicode-Strings.
Claus Gittinger <cg@exept.de>
parents: 2036
diff changeset
  1019
            out setCollection:(c stringSpecies fromString:out collection).
98d3508fd6e1 care for Unicode-Strings.
Claus Gittinger <cg@exept.de>
parents: 2036
diff changeset
  1020
        ].
973
cd6b8d08c9c9 submenu item send #value.
Claus Gittinger <cg@exept.de>
parents: 960
diff changeset
  1021
        c == $& ifTrue:[
cd6b8d08c9c9 submenu item send #value.
Claus Gittinger <cg@exept.de>
parents: 960
diff changeset
  1022
            in peek == $& ifTrue:[
985
5a5b476cfd6b care for Text & images in rawLabel, when filtering.
Claus Gittinger <cg@exept.de>
parents: 973
diff changeset
  1023
                out nextPut:c.
5a5b476cfd6b care for Text & images in rawLabel, when filtering.
Claus Gittinger <cg@exept.de>
parents: 973
diff changeset
  1024
                emp notNil ifTrue:[
5a5b476cfd6b care for Text & images in rawLabel, when filtering.
Claus Gittinger <cg@exept.de>
parents: 973
diff changeset
  1025
                    emp add:e
5a5b476cfd6b care for Text & images in rawLabel, when filtering.
Claus Gittinger <cg@exept.de>
parents: 973
diff changeset
  1026
                ]
973
cd6b8d08c9c9 submenu item send #value.
Claus Gittinger <cg@exept.de>
parents: 960
diff changeset
  1027
            ]
cd6b8d08c9c9 submenu item send #value.
Claus Gittinger <cg@exept.de>
parents: 960
diff changeset
  1028
        ] ifFalse:[
985
5a5b476cfd6b care for Text & images in rawLabel, when filtering.
Claus Gittinger <cg@exept.de>
parents: 973
diff changeset
  1029
            out nextPut:c.
5a5b476cfd6b care for Text & images in rawLabel, when filtering.
Claus Gittinger <cg@exept.de>
parents: 973
diff changeset
  1030
            emp notNil ifTrue:[
5a5b476cfd6b care for Text & images in rawLabel, when filtering.
Claus Gittinger <cg@exept.de>
parents: 973
diff changeset
  1031
                emp add:e
5a5b476cfd6b care for Text & images in rawLabel, when filtering.
Claus Gittinger <cg@exept.de>
parents: 973
diff changeset
  1032
            ]
973
cd6b8d08c9c9 submenu item send #value.
Claus Gittinger <cg@exept.de>
parents: 960
diff changeset
  1033
        ]
cd6b8d08c9c9 submenu item send #value.
Claus Gittinger <cg@exept.de>
parents: 960
diff changeset
  1034
    ].
985
5a5b476cfd6b care for Text & images in rawLabel, when filtering.
Claus Gittinger <cg@exept.de>
parents: 973
diff changeset
  1035
    l := out contents.
5a5b476cfd6b care for Text & images in rawLabel, when filtering.
Claus Gittinger <cg@exept.de>
parents: 973
diff changeset
  1036
    emp notNil ifTrue:[
5a5b476cfd6b care for Text & images in rawLabel, when filtering.
Claus Gittinger <cg@exept.de>
parents: 973
diff changeset
  1037
        ^ Text string:l emphasisCollection:emp
5a5b476cfd6b care for Text & images in rawLabel, when filtering.
Claus Gittinger <cg@exept.de>
parents: 973
diff changeset
  1038
    ].
5a5b476cfd6b care for Text & images in rawLabel, when filtering.
Claus Gittinger <cg@exept.de>
parents: 973
diff changeset
  1039
    ^ l.
973
cd6b8d08c9c9 submenu item send #value.
Claus Gittinger <cg@exept.de>
parents: 960
diff changeset
  1040
cd6b8d08c9c9 submenu item send #value.
Claus Gittinger <cg@exept.de>
parents: 960
diff changeset
  1041
    "Created: / 19.6.1998 / 00:02:10 / cg"
985
5a5b476cfd6b care for Text & images in rawLabel, when filtering.
Claus Gittinger <cg@exept.de>
parents: 973
diff changeset
  1042
    "Modified: / 20.6.1998 / 17:15:18 / cg"
458
729ffdbd2b13 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 455
diff changeset
  1043
! !
729ffdbd2b13 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 455
diff changeset
  1044
579
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
  1045
!MenuItem methodsFor:'queries'!
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
  1046
1041
d28f0375cd26 added choice type menu items (i.e. radioButton behavior)
Claus Gittinger <cg@exept.de>
parents: 1030
diff changeset
  1047
hasChoice
d28f0375cd26 added choice type menu items (i.e. radioButton behavior)
Claus Gittinger <cg@exept.de>
parents: 1030
diff changeset
  1048
    "test whether choice exists
d28f0375cd26 added choice type menu items (i.e. radioButton behavior)
Claus Gittinger <cg@exept.de>
parents: 1030
diff changeset
  1049
    "
d28f0375cd26 added choice type menu items (i.e. radioButton behavior)
Claus Gittinger <cg@exept.de>
parents: 1030
diff changeset
  1050
  ^ self choice notNil
d28f0375cd26 added choice type menu items (i.e. radioButton behavior)
Claus Gittinger <cg@exept.de>
parents: 1030
diff changeset
  1051
d28f0375cd26 added choice type menu items (i.e. radioButton behavior)
Claus Gittinger <cg@exept.de>
parents: 1030
diff changeset
  1052
    "Created: / 14.8.1998 / 14:34:29 / cg"
d28f0375cd26 added choice type menu items (i.e. radioButton behavior)
Claus Gittinger <cg@exept.de>
parents: 1030
diff changeset
  1053
!
d28f0375cd26 added choice type menu items (i.e. radioButton behavior)
Claus Gittinger <cg@exept.de>
parents: 1030
diff changeset
  1054
590
fb2c55428c52 ST-80 compatibility
ca
parents: 584
diff changeset
  1055
hasIndication
fb2c55428c52 ST-80 compatibility
ca
parents: 584
diff changeset
  1056
    "test whether indication on/off exists
fb2c55428c52 ST-80 compatibility
ca
parents: 584
diff changeset
  1057
    "
2875
eb6fea74e5e6 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 2866
diff changeset
  1058
    ^ self indication notNil
eb6fea74e5e6 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 2866
diff changeset
  1059
eb6fea74e5e6 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 2866
diff changeset
  1060
    "Modified: / 28-10-2010 / 23:30:52 / cg"
590
fb2c55428c52 ST-80 compatibility
ca
parents: 584
diff changeset
  1061
!
fb2c55428c52 ST-80 compatibility
ca
parents: 584
diff changeset
  1062
579
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
  1063
hasSubmenu
584
9a4c30f7586f ST-80 compatible features addded
ca
parents: 581
diff changeset
  1064
    ^ self submenu notNil
579
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
  1065
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
  1066
    "Created: 25.2.1997 / 20:56:20 / cg"
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
  1067
!
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
  1068
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
  1069
isEnabled
581
0080d12b5758 enabled can be something not only a boolean
ca
parents: 580
diff changeset
  1070
    ^ enabled value ? true
579
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
  1071
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
  1072
    "Created: 25.2.1997 / 19:39:17 / cg"
590
fb2c55428c52 ST-80 compatibility
ca
parents: 584
diff changeset
  1073
!
fb2c55428c52 ST-80 compatibility
ca
parents: 584
diff changeset
  1074
724
898519684261 more VW comaptibility
Claus Gittinger <cg@exept.de>
parents: 684
diff changeset
  1075
isHidden
898519684261 more VW comaptibility
Claus Gittinger <cg@exept.de>
parents: 684
diff changeset
  1076
    "not yet supported"
898519684261 more VW comaptibility
Claus Gittinger <cg@exept.de>
parents: 684
diff changeset
  1077
898519684261 more VW comaptibility
Claus Gittinger <cg@exept.de>
parents: 684
diff changeset
  1078
    ^ false
898519684261 more VW comaptibility
Claus Gittinger <cg@exept.de>
parents: 684
diff changeset
  1079
898519684261 more VW comaptibility
Claus Gittinger <cg@exept.de>
parents: 684
diff changeset
  1080
    "Created: / 27.10.1997 / 15:13:43 / cg"
898519684261 more VW comaptibility
Claus Gittinger <cg@exept.de>
parents: 684
diff changeset
  1081
!
898519684261 more VW comaptibility
Claus Gittinger <cg@exept.de>
parents: 684
diff changeset
  1082
1648
d49c84402011 add query #isMenuItem
ca
parents: 1647
diff changeset
  1083
isMenuItem
d49c84402011 add query #isMenuItem
ca
parents: 1647
diff changeset
  1084
    ^ true
d49c84402011 add query #isMenuItem
ca
parents: 1647
diff changeset
  1085
!
d49c84402011 add query #isMenuItem
ca
parents: 1647
diff changeset
  1086
1986
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
  1087
isMenuSlice
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
  1088
    "returns true if the menu is a slice buildin its items
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
  1089
     into its container menu
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
  1090
    "
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
  1091
    ^ submenuChannel notNil and:[isMenuSlice == true].
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
  1092
!
f819e439d917 *** empty log message ***
ca
parents: 1885
diff changeset
  1093
590
fb2c55428c52 ST-80 compatibility
ca
parents: 584
diff changeset
  1094
isOff
fb2c55428c52 ST-80 compatibility
ca
parents: 584
diff changeset
  1095
    "test whether indication on/off exists and is off
fb2c55428c52 ST-80 compatibility
ca
parents: 584
diff changeset
  1096
    "
fb2c55428c52 ST-80 compatibility
ca
parents: 584
diff changeset
  1097
    |indication|
fb2c55428c52 ST-80 compatibility
ca
parents: 584
diff changeset
  1098
fb2c55428c52 ST-80 compatibility
ca
parents: 584
diff changeset
  1099
    indication := self indication.
2875
eb6fea74e5e6 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 2866
diff changeset
  1100
    ^ indication value == false
eb6fea74e5e6 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 2866
diff changeset
  1101
eb6fea74e5e6 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 2866
diff changeset
  1102
    "Modified: / 28-10-2010 / 23:30:57 / cg"
590
fb2c55428c52 ST-80 compatibility
ca
parents: 584
diff changeset
  1103
!
fb2c55428c52 ST-80 compatibility
ca
parents: 584
diff changeset
  1104
fb2c55428c52 ST-80 compatibility
ca
parents: 584
diff changeset
  1105
isOn
fb2c55428c52 ST-80 compatibility
ca
parents: 584
diff changeset
  1106
    "test whether indication on/off exists and is on
fb2c55428c52 ST-80 compatibility
ca
parents: 584
diff changeset
  1107
    "
fb2c55428c52 ST-80 compatibility
ca
parents: 584
diff changeset
  1108
    |indication|
fb2c55428c52 ST-80 compatibility
ca
parents: 584
diff changeset
  1109
fb2c55428c52 ST-80 compatibility
ca
parents: 584
diff changeset
  1110
    indication := self indication.
2875
eb6fea74e5e6 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 2866
diff changeset
  1111
    ^ indication value == true
eb6fea74e5e6 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 2866
diff changeset
  1112
eb6fea74e5e6 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 2866
diff changeset
  1113
    "Modified: / 28-10-2010 / 23:31:02 / cg"
2122
4a0a8af7bd71 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2112
diff changeset
  1114
!
4a0a8af7bd71 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2112
diff changeset
  1115
4a0a8af7bd71 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2112
diff changeset
  1116
isSeparatorItem
4a0a8af7bd71 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2112
diff changeset
  1117
    ^ #('' '-' '=') includes:label
4a0a8af7bd71 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2112
diff changeset
  1118
4a0a8af7bd71 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2112
diff changeset
  1119
    "Created: 25.2.1997 / 19:39:17 / cg"
579
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
  1120
! !
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
  1121
2966
5f538729ab69 Added #replaceArgument:with:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2939
diff changeset
  1122
!MenuItem methodsFor:'utilities'!
5f538729ab69 Added #replaceArgument:with:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2939
diff changeset
  1123
5f538729ab69 Added #replaceArgument:with:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2939
diff changeset
  1124
replaceArgument: oldValue with: newValue
5f538729ab69 Added #replaceArgument:with:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2939
diff changeset
  1125
5f538729ab69 Added #replaceArgument:with:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2939
diff changeset
  1126
    "Recusively Replace argument in menu items where
5f538729ab69 Added #replaceArgument:with:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2939
diff changeset
  1127
     current argument is equal to oldValue by newValue"
5f538729ab69 Added #replaceArgument:with:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2939
diff changeset
  1128
5f538729ab69 Added #replaceArgument:with:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2939
diff changeset
  1129
    argument = oldValue ifTrue:[
5f538729ab69 Added #replaceArgument:with:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2939
diff changeset
  1130
        argument := newValue.
5f538729ab69 Added #replaceArgument:with:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2939
diff changeset
  1131
    ].
5f538729ab69 Added #replaceArgument:with:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2939
diff changeset
  1132
    submenu notNil ifTrue:[
5f538729ab69 Added #replaceArgument:with:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2939
diff changeset
  1133
        submenu replaceArgument: oldValue with: newValue
5f538729ab69 Added #replaceArgument:with:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2939
diff changeset
  1134
    ].
5f538729ab69 Added #replaceArgument:with:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2939
diff changeset
  1135
5f538729ab69 Added #replaceArgument:with:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2939
diff changeset
  1136
    "Created: / 12-10-2011 / 20:12:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5f538729ab69 Added #replaceArgument:with:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2939
diff changeset
  1137
! !
5f538729ab69 Added #replaceArgument:with:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2939
diff changeset
  1138
451
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1139
!MenuItem class methodsFor:'documentation'!
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1140
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1141
version
3225
7cfefeb97495 class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3221
diff changeset
  1142
    ^ '$Header: /cvs/stx/stx/libview2/MenuItem.st,v 1.105 2013-08-31 19:31:30 cg Exp $'
2755
Claus Gittinger <cg@exept.de>
parents: 2736
diff changeset
  1143
!
Claus Gittinger <cg@exept.de>
parents: 2736
diff changeset
  1144
Claus Gittinger <cg@exept.de>
parents: 2736
diff changeset
  1145
version_CVS
3225
7cfefeb97495 class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3221
diff changeset
  1146
    ^ '$Header: /cvs/stx/stx/libview2/MenuItem.st,v 1.105 2013-08-31 19:31:30 cg Exp $'
451
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1147
! !
3178
ced60e8c83fe class: MenuItem
Claus Gittinger <cg@exept.de>
parents: 3033
diff changeset
  1148