Menu.st
author ca
Wed, 04 Jun 1997 13:12:25 +0200
changeset 589 cc422fe7824f
parent 584 9a4c30f7586f
child 610 72dbf392e888
permissions -rw-r--r--
ST-80 compatibility; enumerating & indication
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
451
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
Object subclass:#Menu
579
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
     2
	instanceVariableNames:'items groupSizes receiver'
451
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
	classVariableNames:''
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
	poolDictionaries:''
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
	category:'Views-Support'
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
!
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
!Menu class methodsFor:'documentation'!
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
documentation
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
"
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
    not yet finished Menu class - this will eventually replace
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
    most of the MenuView and PopUpMenu stuff.
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
    (and hopefully be ST-80 compatible ...)
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
    For now, only a subset of the full protocol is implemented.
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
    [author:]
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
        Claus Gittinger
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
    [see also:]
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
        MenuItem
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
        PopUpMenu
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
"
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
!Menu methodsFor:'accessing'!
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
589
cc422fe7824f ST-80 compatibility; enumerating & indication
ca
parents: 584
diff changeset
    29
addItem:aMenuItem
489
264ba86c52c1 checkin from browser
ca
parents: 457
diff changeset
    30
    items isNil ifTrue:[
264ba86c52c1 checkin from browser
ca
parents: 457
diff changeset
    31
        items := OrderedCollection new
264ba86c52c1 checkin from browser
ca
parents: 457
diff changeset
    32
    ].
264ba86c52c1 checkin from browser
ca
parents: 457
diff changeset
    33
    items add:aMenuItem.
589
cc422fe7824f ST-80 compatibility; enumerating & indication
ca
parents: 584
diff changeset
    34
!
cc422fe7824f ST-80 compatibility; enumerating & indication
ca
parents: 584
diff changeset
    35
cc422fe7824f ST-80 compatibility; enumerating & indication
ca
parents: 584
diff changeset
    36
addItem:aMenuItem value:aValue
cc422fe7824f ST-80 compatibility; enumerating & indication
ca
parents: 584
diff changeset
    37
    aMenuItem value:aValue.
cc422fe7824f ST-80 compatibility; enumerating & indication
ca
parents: 584
diff changeset
    38
    self addItem:aMenuItem.
489
264ba86c52c1 checkin from browser
ca
parents: 457
diff changeset
    39
!
264ba86c52c1 checkin from browser
ca
parents: 457
diff changeset
    40
264ba86c52c1 checkin from browser
ca
parents: 457
diff changeset
    41
addItemGroup:aGroup values:values
264ba86c52c1 checkin from browser
ca
parents: 457
diff changeset
    42
    groupSizes isNil ifTrue:[
264ba86c52c1 checkin from browser
ca
parents: 457
diff changeset
    43
        groupSizes := OrderedCollection new
264ba86c52c1 checkin from browser
ca
parents: 457
diff changeset
    44
    ].
264ba86c52c1 checkin from browser
ca
parents: 457
diff changeset
    45
    groupSizes add:items size.
264ba86c52c1 checkin from browser
ca
parents: 457
diff changeset
    46
264ba86c52c1 checkin from browser
ca
parents: 457
diff changeset
    47
    aGroup with:values do:[:item :value |
264ba86c52c1 checkin from browser
ca
parents: 457
diff changeset
    48
        self addItem:item value:value
264ba86c52c1 checkin from browser
ca
parents: 457
diff changeset
    49
    ].
264ba86c52c1 checkin from browser
ca
parents: 457
diff changeset
    50
!
264ba86c52c1 checkin from browser
ca
parents: 457
diff changeset
    51
578
7e0f62d9bc47 access methods ...
ca
parents: 494
diff changeset
    52
groupSizes
7e0f62d9bc47 access methods ...
ca
parents: 494
diff changeset
    53
    "return the value of the instance variable 'groupSizes' (automatically generated)"
7e0f62d9bc47 access methods ...
ca
parents: 494
diff changeset
    54
7e0f62d9bc47 access methods ...
ca
parents: 494
diff changeset
    55
    ^ groupSizes!
7e0f62d9bc47 access methods ...
ca
parents: 494
diff changeset
    56
7e0f62d9bc47 access methods ...
ca
parents: 494
diff changeset
    57
groupSizes:something
7e0f62d9bc47 access methods ...
ca
parents: 494
diff changeset
    58
    "set the value of the instance variable 'groupSizes' (automatically generated)"
7e0f62d9bc47 access methods ...
ca
parents: 494
diff changeset
    59
7e0f62d9bc47 access methods ...
ca
parents: 494
diff changeset
    60
    groupSizes := something.!
7e0f62d9bc47 access methods ...
ca
parents: 494
diff changeset
    61
584
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
    62
labelAt:anIndex
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
    63
    "gets the label of the menu item at the given index or nil
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
    64
    "
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
    65
    |item|
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
    66
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
    67
    (item := self menuItemAt:anIndex) notNil ifTrue:[
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
    68
        ^ item label
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
    69
    ].
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
    70
  ^ nil
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
    71
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
    72
!
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
    73
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
    74
labelAtValue:aValue
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
    75
    "gets the label of the menu item assigned to value
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
    76
    "
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
    77
    |item|
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
    78
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
    79
    item := self menuAndSubmenusDetectItem:[:anItem| anItem value == aValue ].
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
    80
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
    81
    item notNil ifTrue:[
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
    82
        ^ item label
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
    83
    ].
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
    84
  ^ nil
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
    85
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
    86
!
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
    87
451
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
labels
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
    "return a collection of labels from my items"
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
    ^ items collect:[:anItem | anItem label]
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
    "Created: 25.2.1997 / 19:47:53 / cg"
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
!
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
489
264ba86c52c1 checkin from browser
ca
parents: 457
diff changeset
    96
lines
579
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
    97
    "Answer the indexes of the menu items that are the last menu item in their group (except the very last)."
489
264ba86c52c1 checkin from browser
ca
parents: 457
diff changeset
    98
579
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
    99
    | lines |
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
   100
    groupSizes size <= 1 ifTrue: [^Array new].
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
   101
    lines := Array new: groupSizes size - 1.
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
   102
    lines at: 1 put: groupSizes first.
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
   103
    2 to: groupSizes size -1 do: 
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
   104
            [:i |
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
   105
            lines at: i put: (lines at: i - 1) + (groupSizes at: i)].
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
   106
    ^lines
489
264ba86c52c1 checkin from browser
ca
parents: 457
diff changeset
   107
264ba86c52c1 checkin from browser
ca
parents: 457
diff changeset
   108
264ba86c52c1 checkin from browser
ca
parents: 457
diff changeset
   109
!
264ba86c52c1 checkin from browser
ca
parents: 457
diff changeset
   110
264ba86c52c1 checkin from browser
ca
parents: 457
diff changeset
   111
menuItemAt:index
584
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   112
    "gets the menu item at the given index. When the index is out of bounds
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   113
     nil is returned
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   114
    "
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   115
    (index > 0 and:[index <= items size]) ifTrue:[
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   116
        ^ items at:index
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   117
    ].
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   118
  ^ nil
489
264ba86c52c1 checkin from browser
ca
parents: 457
diff changeset
   119
!
264ba86c52c1 checkin from browser
ca
parents: 457
diff changeset
   120
264ba86c52c1 checkin from browser
ca
parents: 457
diff changeset
   121
menuItems
264ba86c52c1 checkin from browser
ca
parents: 457
diff changeset
   122
    ^ items
264ba86c52c1 checkin from browser
ca
parents: 457
diff changeset
   123
!
264ba86c52c1 checkin from browser
ca
parents: 457
diff changeset
   124
454
539b7c318760 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 452
diff changeset
   125
menuItems:aCollectionOfMenuItems groupsSizes:sizes values:values
456
4eea9046617a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 454
diff changeset
   126
    |idx newItems nItems|
454
539b7c318760 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 452
diff changeset
   127
451
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
    items := aCollectionOfMenuItems.
579
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
   129
    groupSizes := sizes.
451
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   130
579
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
   131
    values notNil ifTrue:[
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
   132
        items with:values do:[:anItem :aValue |anItem value:aValue]
454
539b7c318760 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 452
diff changeset
   133
    ].
451
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   134
!
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   135
494
ce8c074d5e6b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   136
numberOfItems
ce8c074d5e6b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   137
    ^ items size
ce8c074d5e6b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   138
ce8c074d5e6b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   139
    "Created: 6.3.1997 / 15:15:53 / cg"
ce8c074d5e6b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   140
!
ce8c074d5e6b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   141
579
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
   142
receiver
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
   143
    "return the value of the instance variable 'receiver' (automatically generated)"
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
   144
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
   145
    ^ receiver!
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
   146
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
   147
receiver:something
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
   148
    "set the value of the instance variable 'receiver' (automatically generated)"
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
   149
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
   150
    receiver := something.!
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
   151
451
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   152
valueAt:index
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   153
    "return a collection of values from my items"
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   154
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   155
    ^ (items at:index) value
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   156
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   157
    "Created: 25.2.1997 / 19:49:41 / cg"
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   158
!
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   159
494
ce8c074d5e6b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   160
valueAt:anIndex put:aValue
ce8c074d5e6b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   161
    "put value an an index"
ce8c074d5e6b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   162
ce8c074d5e6b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   163
    (items at:anIndex) value:aValue
ce8c074d5e6b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   164
ce8c074d5e6b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   165
    "Created: 6.3.1997 / 15:15:48 / cg"
ce8c074d5e6b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   166
!
ce8c074d5e6b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   167
451
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   168
values
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   169
    "return a collection of values from my items"
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   170
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   171
    ^ items collect:[:anItem | anItem value]
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   172
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   173
    "Created: 25.2.1997 / 19:49:29 / cg"
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   174
! !
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   175
582
94f55f6a8bad support of ResourceRetriver
ca
parents: 579
diff changeset
   176
!Menu methodsFor:'accessing resource'!
94f55f6a8bad support of ResourceRetriver
ca
parents: 579
diff changeset
   177
584
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   178
findGuiResourcesIn:aResourceContainerOrApplication
582
94f55f6a8bad support of ResourceRetriver
ca
parents: 579
diff changeset
   179
    "setup a resource owner
94f55f6a8bad support of ResourceRetriver
ca
parents: 579
diff changeset
   180
    "
584
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   181
    aResourceContainerOrApplication notNil ifTrue:[
582
94f55f6a8bad support of ResourceRetriver
ca
parents: 579
diff changeset
   182
        items notNil ifTrue:[
584
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   183
            items do:[:anItem| anItem findGuiResourcesIn:aResourceContainerOrApplication ]
582
94f55f6a8bad support of ResourceRetriver
ca
parents: 579
diff changeset
   184
        ]
94f55f6a8bad support of ResourceRetriver
ca
parents: 579
diff changeset
   185
    ]
94f55f6a8bad support of ResourceRetriver
ca
parents: 579
diff changeset
   186
94f55f6a8bad support of ResourceRetriver
ca
parents: 579
diff changeset
   187
! !
94f55f6a8bad support of ResourceRetriver
ca
parents: 579
diff changeset
   188
451
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   189
!Menu methodsFor:'converting'!
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   190
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   191
fromLiteralArrayEncoding:aLiteralEncodedArray
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   192
    "read my contents from a aLiteralEncodedArray"
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   193
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   194
    |items groups values|
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   195
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   196
    items := (aLiteralEncodedArray at:2) collect:[:item | item decodeAsLiteralArray].
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   197
    groups := aLiteralEncodedArray at:3.
452
b708d60b96b4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 451
diff changeset
   198
    values := aLiteralEncodedArray at:4.
454
539b7c318760 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 452
diff changeset
   199
    self menuItems:items groupsSizes:groups values:values.
451
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   200
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   201
    "extract from PD folder.st:
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   202
     #(#Menu #(
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   203
                #(#MenuItem 
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   204
                        #rawLabel: 'left' 
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   205
                        #value: #left ) 
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   206
                #(#MenuItem 
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   207
                        #rawLabel: 'center' 
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   208
                        #value: #center ) 
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   209
                #(#MenuItem 
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   210
                        #rawLabel: 'right' 
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   211
                        #value: #right ) 
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   212
              ) 
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   213
             #(3 ) 
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   214
             nil 
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   215
       ) decodeAsLiteralArray
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   216
    "
452
b708d60b96b4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 451
diff changeset
   217
    "
b708d60b96b4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 451
diff changeset
   218
     #(#Menu #(
b708d60b96b4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 451
diff changeset
   219
                #(#MenuItem 
b708d60b96b4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 451
diff changeset
   220
                        #label: 'Straighten Up' ) 
b708d60b96b4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 451
diff changeset
   221
                #(#MenuItem 
b708d60b96b4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 451
diff changeset
   222
                        #label: 'Inspect' ) 
b708d60b96b4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 451
diff changeset
   223
                #(#MenuItem 
b708d60b96b4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 451
diff changeset
   224
                        #label: 'Coredump' ) 
b708d60b96b4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 451
diff changeset
   225
              ) 
b708d60b96b4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 451
diff changeset
   226
             #(3 ) 
b708d60b96b4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 451
diff changeset
   227
            #(#straightenUp #inspect #halt ) 
b708d60b96b4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 451
diff changeset
   228
       ) decodeAsLiteralArray startUp  
b708d60b96b4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 451
diff changeset
   229
    "
457
19f2c28e4adb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 456
diff changeset
   230
454
539b7c318760 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 452
diff changeset
   231
    "extract from iconicBrowser.st:
452
b708d60b96b4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 451
diff changeset
   232
     #(#Menu #(
b708d60b96b4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 451
diff changeset
   233
                #(#MenuItem 
b708d60b96b4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 451
diff changeset
   234
                        #label: 'Straighten Up' ) 
b708d60b96b4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 451
diff changeset
   235
                #(#MenuItem 
b708d60b96b4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 451
diff changeset
   236
                        #label: 'Inspect' ) 
b708d60b96b4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 451
diff changeset
   237
                #(#MenuItem 
b708d60b96b4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 451
diff changeset
   238
                        #label: 'Coredump' ) 
b708d60b96b4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 451
diff changeset
   239
              ) 
b708d60b96b4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 451
diff changeset
   240
             #(3 ) 
b708d60b96b4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 451
diff changeset
   241
             #(1 2 3 )
b708d60b96b4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 451
diff changeset
   242
       ) decodeAsLiteralArray startUp  
b708d60b96b4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 451
diff changeset
   243
    "
451
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   244
454
539b7c318760 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 452
diff changeset
   245
    "extract from refactory213.st:
539b7c318760 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 452
diff changeset
   246
     #(#Menu #(
539b7c318760 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 452
diff changeset
   247
                #(#MenuItem 
539b7c318760 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 452
diff changeset
   248
                    #label: 'File List' 
539b7c318760 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 452
diff changeset
   249
                    #accessCharacterPosition: 1 ) 
539b7c318760 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 452
diff changeset
   250
                #(#MenuItem #label: 'File Editor...' 
539b7c318760 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 452
diff changeset
   251
                    #accessCharacterPosition: 6 ) 
539b7c318760 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 452
diff changeset
   252
                #(#MenuItem #label: 'Refactoring Tool...' 
539b7c318760 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 452
diff changeset
   253
                    #accessCharacterPosition: 1 ) 
539b7c318760 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 452
diff changeset
   254
                #(#MenuItem #label: 'Workspace' 
539b7c318760 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 452
diff changeset
   255
                    #accessCharacterPosition: 1 ) 
539b7c318760 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 452
diff changeset
   256
                #(#MenuItem #label: 'New Canvas' 
539b7c318760 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 452
diff changeset
   257
                    #accessCharacterPosition: 1 ) 
539b7c318760 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 452
diff changeset
   258
                #(#MenuItem #label: 'Palette' 
539b7c318760 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 452
diff changeset
   259
                    #accessCharacterPosition: 1 ) 
539b7c318760 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 452
diff changeset
   260
                #(#MenuItem #label: 'Canvas Tool' 
539b7c318760 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 452
diff changeset
   261
                    #accessCharacterPosition: 1 ) 
539b7c318760 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 452
diff changeset
   262
                #(#MenuItem #label: 'Image Editor' 
539b7c318760 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 452
diff changeset
   263
                    #accessCharacterPosition: 1 ) 
539b7c318760 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 452
diff changeset
   264
                #(#MenuItem #label: 'Menu Editor' 
539b7c318760 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 452
diff changeset
   265
                    #accessCharacterPosition: 1 ) 
539b7c318760 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 452
diff changeset
   266
                #(#MenuItem #label: 'Advanced' 
539b7c318760 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 452
diff changeset
   267
                    #accessCharacterPosition: 1 ) 
539b7c318760 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 452
diff changeset
   268
                #(#MenuItem #label: 'DLL and C Connect' 
539b7c318760 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 452
diff changeset
   269
                    #accessCharacterPosition: 1 ) 
539b7c318760 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 452
diff changeset
   270
                #(#MenuItem #label: 'System Transcript' 
539b7c318760 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 452
diff changeset
   271
                    #accessCharacterPosition: 8 ) 
539b7c318760 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 452
diff changeset
   272
              ) 
539b7c318760 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 452
diff changeset
   273
              #(4 5 2 1 ) 
539b7c318760 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 452
diff changeset
   274
              #(#openFileList #openFileEditor #openRefactoringTool #toolsNewWorkspace #toolsNewCanvas #toolsPalette #toolsCanvasTool #toolsMaskEditor #toolsMenuEditor nil #openExternalFinder #toggleSystemTranscript ) 
456
4eea9046617a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 454
diff changeset
   275
        ) decodeAsLiteralArray startUp
454
539b7c318760 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 452
diff changeset
   276
    "
539b7c318760 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 452
diff changeset
   277
457
19f2c28e4adb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 456
diff changeset
   278
    "submenus:
19f2c28e4adb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 456
diff changeset
   279
     #(#Menu #(
19f2c28e4adb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 456
diff changeset
   280
                #(#MenuItem 
19f2c28e4adb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 456
diff changeset
   281
                        #label: 'Foo' 
19f2c28e4adb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 456
diff changeset
   282
                        #submenu: #(#Menu #(
19f2c28e4adb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 456
diff changeset
   283
                                            #(#MenuItem #label: 'foo 1')     
19f2c28e4adb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 456
diff changeset
   284
                                            #(#MenuItem #label: 'foo 2')     
19f2c28e4adb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 456
diff changeset
   285
                                          )
19f2c28e4adb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 456
diff changeset
   286
                                          nil
19f2c28e4adb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 456
diff changeset
   287
                                          #(11 22)
19f2c28e4adb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 456
diff changeset
   288
                                   )     
19f2c28e4adb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 456
diff changeset
   289
                 ) 
19f2c28e4adb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 456
diff changeset
   290
                #(#MenuItem 
19f2c28e4adb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 456
diff changeset
   291
                        #label: 'Inspect' ) 
19f2c28e4adb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 456
diff changeset
   292
                #(#MenuItem 
19f2c28e4adb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 456
diff changeset
   293
                        #label: 'Coredump' ) 
19f2c28e4adb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 456
diff changeset
   294
              ) 
19f2c28e4adb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 456
diff changeset
   295
             #(3 ) 
19f2c28e4adb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 456
diff changeset
   296
             #(1 2 3 )
19f2c28e4adb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 456
diff changeset
   297
       ) decodeAsLiteralArray startUp  
19f2c28e4adb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 456
diff changeset
   298
    "
19f2c28e4adb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 456
diff changeset
   299
19f2c28e4adb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 456
diff changeset
   300
    "Modified: 25.2.1997 / 21:05:06 / cg"
489
264ba86c52c1 checkin from browser
ca
parents: 457
diff changeset
   301
!
264ba86c52c1 checkin from browser
ca
parents: 457
diff changeset
   302
264ba86c52c1 checkin from browser
ca
parents: 457
diff changeset
   303
literalArrayEncoding
264ba86c52c1 checkin from browser
ca
parents: 457
diff changeset
   304
    "return myself encoded as a literal array"
264ba86c52c1 checkin from browser
ca
parents: 457
diff changeset
   305
264ba86c52c1 checkin from browser
ca
parents: 457
diff changeset
   306
    |coll|
264ba86c52c1 checkin from browser
ca
parents: 457
diff changeset
   307
264ba86c52c1 checkin from browser
ca
parents: 457
diff changeset
   308
    coll := OrderedCollection new.
264ba86c52c1 checkin from browser
ca
parents: 457
diff changeset
   309
    coll add:#Menu.
264ba86c52c1 checkin from browser
ca
parents: 457
diff changeset
   310
    coll add:(items literalArrayEncoding).
264ba86c52c1 checkin from browser
ca
parents: 457
diff changeset
   311
    coll add:(groupSizes literalArrayEncoding).
264ba86c52c1 checkin from browser
ca
parents: 457
diff changeset
   312
    coll add:nil.
579
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
   313
  ^ coll asArray
451
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   314
! !
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   315
584
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   316
!Menu methodsFor:'enumerating'!
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   317
589
cc422fe7824f ST-80 compatibility; enumerating & indication
ca
parents: 584
diff changeset
   318
itemsDo:aOneArgBlock
cc422fe7824f ST-80 compatibility; enumerating & indication
ca
parents: 584
diff changeset
   319
    "evaluate the block for each item in the current menu
cc422fe7824f ST-80 compatibility; enumerating & indication
ca
parents: 584
diff changeset
   320
    "
cc422fe7824f ST-80 compatibility; enumerating & indication
ca
parents: 584
diff changeset
   321
    items notNil ifTrue:[items do:aOneArgBlock]
cc422fe7824f ST-80 compatibility; enumerating & indication
ca
parents: 584
diff changeset
   322
!
cc422fe7824f ST-80 compatibility; enumerating & indication
ca
parents: 584
diff changeset
   323
584
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   324
menuAndSubmenusDetectItem:aOneArgBlock
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   325
    "evaluate the block for each item in the current menu and all
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   326
     submenus. In case that the block returns a non nil argument,
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   327
     the item will be returned
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   328
    "
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   329
    |sm item|
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   330
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   331
    items notNil ifTrue:[
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   332
        items do:[:anItem|
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   333
            (aOneArgBlock value:anItem) notNil ifTrue:[
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   334
                ^ anItem
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   335
            ].
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   336
            (sm := anItem submenu) notNil ifTrue:[
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   337
                item := anItem submenu menuAndSubmenusDetectItem:aOneArgBlock.
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   338
                item notNil ifTrue:[
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   339
                    ^ item
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   340
                ]
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   341
            ]
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   342
        ]
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   343
    ].
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   344
  ^ nil
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   345
! !
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   346
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   347
!Menu methodsFor:'menu items'!
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   348
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   349
someMenuItemWithValue:aValue
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   350
    "get the menu item assigned with the value; in case that the value
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   351
     is not found nil is returned
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   352
    "
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   353
    ^ self someMenuItemWithValue:aValue ifNone:nil
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   354
!
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   355
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   356
someMenuItemWithValue:aValue ifNone:exceptionBlock
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   357
    "get the menu item assigned with the value; in case that the value
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   358
     is not found, the given exceptionBlock is executed and returned
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   359
    "
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   360
    |item|
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   361
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   362
    item := self menuAndSubmenusDetectItem:[:anItem| anItem value == aValue].
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   363
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   364
    item notNil ifTrue:[
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   365
        ^ item
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   366
    ].
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   367
  ^ exceptionBlock value
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   368
! !
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   369
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   370
!Menu methodsFor:'queries'!
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   371
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   372
hasSubMenuAt:anIndex
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   373
    "test whether the menu item at the given index has a submenu
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   374
    "
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   375
    ^ (self menuItemAt:anIndex) hasSubmenu
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   376
! !
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   377
451
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   378
!Menu methodsFor:'startup'!
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   379
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   380
startUp
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   381
    "display the menu as a popUp; return the value associated with the
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   382
     selected item, 0 if none was selected"
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   383
584
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   384
    |menu result|
457
19f2c28e4adb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 456
diff changeset
   385
579
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
   386
    menu := MenuPanel menu:self.
584
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   387
    result := menu startUp.
9a4c30f7586f ST-80 compatible features addded
ca
parents: 582
diff changeset
   388
  ^ result ? 0
451
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   389
579
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
   390
"   
451
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   391
        |m|
579
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
   392
451
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   393
        m := #(#Menu #(
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   394
                        #(#MenuItem 
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   395
                                #rawLabel: 'left' 
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   396
                                #value: #left ) 
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   397
                        #(#MenuItem 
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   398
                                #rawLabel: 'center' 
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   399
                                #value: #center ) 
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   400
                        #(#MenuItem 
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   401
                                #rawLabel: 'right' 
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   402
                                #value: #right ) ) 
579
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
   403
                 #(2) 
451
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   404
                nil 
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   405
        ) decodeAsLiteralArray.
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   406
579
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
   407
      Transcript showCR:(m startUp)        
77f6d490f1ac so far, so good
ca
parents: 578
diff changeset
   408
"
451
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   409
! !
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   410
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   411
!Menu class methodsFor:'documentation'!
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   412
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   413
version
589
cc422fe7824f ST-80 compatibility; enumerating & indication
ca
parents: 584
diff changeset
   414
    ^ '$Header: /cvs/stx/stx/libview2/Menu.st,v 1.12 1997-06-04 11:12:25 ca Exp $'
451
95064b26ded1 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   415
! !