|
Class: MenuItem
Object
|
+--MenuItem
- Package:
- stx:libview2
- Category:
- Views-Support
- Version:
- rev:
1.122
date: 2018/05/01 08:39:23
- user: cg
- file: MenuItem.st directory: libview2
- module: stx stc-classLibrary: libview2
- Author:
- Claus Gittinger
This together with MenuPanel will eventually replace
most of the MenuView and PopUpMenu stuff.
(and hopefully be ST-80 compatible ...)
For now, only a subset of the full protocol is implemented.
new:
%(xx) in label text will be expanded by asking the application
for the xx labelFor:-aspect.
[instance variables:]
label: MUST be a CharacterArray.
MenuItem
PopUpMenu
constants
-
supportedStartGroupValues
-
start group #left #right #conditionalRight ...
At the moment only #left/nil, #right/#conditionalRight are implemented.
The meanings are:
nil - default under control of the menu
#left - left align
#right - place at the right far end
#conditionalRight - controlled by a styleSheet variable;
like #right under all non-win32 systems,
ignored on win32.
Use with help-menu, which should be at the far right on some
viewStyles, but not under win32.
instance creation
-
label: aString
-
create and return a new menuItem, given a label string
-
label: labelString choice: choiceAspect choiceValue: selectorOrValue
-
create and return a new menuItem, given its label and choice/value.
This will create a Radio-Button-like item.
-
label: labelString itemValue: selectorOrValue
-
create and return a new menuItem, given its label and value
-
label: labelString itemValue: selectorOrValue argument: messageArg
-
create and return a new menuItem, given its label and value
and an argument to be passed with the action
-
label: labelString itemValue: selectorOrValue enabled: enabledHolder
-
create and return a new menuItem, given its label, value
and enabled holder, which can be a boolean, a boolean valueHolder,
a block or a selector (to be sent to the application)
-
label: labelString itemValue: selectorOrValue translateLabel: translateLabel
-
create and return a new menuItem, given its label, value and translateLabel flag
-
label: labelString submenuChannel: aSymbolOrValueHolder
-
create and return a new menuItem, given its label and value
-
label: labelString value: selectorOrValue
-
create and return a new menuItem, given its label and value
** This is an obsolete interface - do not use it (it may vanish in future versions) **
-
label: labelString value: selectorOrValue argument: messageArg
-
create and return a new menuItem, given its label and value
** This is an obsolete interface - do not use it (it may vanish in future versions) **
-
label: labelString value: selectorOrValue enabled: enabledHolder
-
create and return a new menuItem, given its label and value
** This is an obsolete interface - do not use it (it may vanish in future versions) **
-
labeled: aString
-
create and return a new menuItem, given a label string
** This is an obsolete interface - do not use it (it may vanish in future versions) **
-
separator
-
create and return a new menuItem for a '----' separator
-
separator2
-
create and return a new menuItem for a '====' separator
-
separator: sepString
-
create and return a new menuItem for a separator
Compatibility-ST80
-
enablementSelector: aSymbol
-
dummy for now - for visualworks compatibility (specs)
-
helpText: aString
-
dummy for now - for visualworks compatibility (specs)
-
indicationSelector: aSymbol
-
dummy for now - for visualworks compatibility (specs)
-
isEnabled: aBoolean
-
-
shortcutModifiers: something
-
dummy for now - for visualworks compatibility (specs)
-
value
-
obsolete - please use #itemValue (value is bad: it prevents us from using a valueHolder)
-
value: something
-
obsolete - please use #itemValue: (value is bad: it prevents us from using a valueHolder)
accessing
-
accessCharacterPosition
-
get the index of the access character in the label text or string, or nil if none
-
accessCharacterPosition: index
-
set the index of the access character in the label text or string, or nil if none
-
activeHelpKey
-
the key used as index (and argument) to the helpSpec
-
activeHelpKey: aKey
-
the key used as index (and argument) to the helpSpec
-
argument
-
get argument given to the value (selector)
-
argument: something
-
set argument given to the value (selector)
-
auxValue
-
an additional, arbitrary value
-
auxValue: something
-
set the auxValue - an arbitrary user value
-
choice: something
-
-
choiceValue
-
-
choiceValue: something
-
-
font
-
get the specific font for an item or nil
-
font: aFont
-
set a specific font for an item
-
hierarchicalUUID
-
-
horizontalLayout
-
by default, submenus have a vertical layout;
if true, the submenu has a horizontal layout.
-
horizontalLayout: aBoolean
-
by default, submenus have a vertical layout;
if true, the submenu has a horizontal layout.
-
ignoreMnemonicKeys
-
if true, mnemonic (access character) in the submenus under the item are ignored;
Set this to speedup accelerator key processing for slow dynamci menus.
The default is set to false
-
ignoreMnemonicKeys: aBoolean
-
if true, mnemonic (access character) in the submenus under the item are ignored;
Set this to speedup accelerator key processing for slow dynamci menus.
the default is set to false
-
ignoreShortcutKeys
-
if true, shortcutKeys (accelerators) in the submenus under the item are ignored;
the default is set to false
-
ignoreShortcutKeys: aBoolean
-
if true, shortcutKeys (accelerators) in the submenus under the item are ignored;
the default is set to false
-
indication
-
value of the items on/off indicator (CheckToggle).
Usually a valueHolder
-
indication: someValueHolder
-
value of the items on/off indicator (CheckToggle).
someValueHolder is usually a value holder
-
isMenuSlice: aBoolean
-
-
isVisible
-
a visibility holder; either a block, boolean or value holder.
If the menu is permanently visible, it should be a valueHolder,
as the value is otherwise only checked for before the menu is opened
-
isVisible: something
-
a visibility holder; either a block, boolean or value holder.
If the menu is permanently visible, it should be a valueHolder,
as the value is otherwise only checked for before the menu is opened
-
itemValue
-
the item's action; if it is a block, that is evaluated;
if a symbol, that message is sent to the menu's receiver
-
itemValue: aBlockOrSymbol
-
set the item's action; if it is a block, that is evaluated;
if a symbol, that message is sent to the menu's receiver
-
itemValue: selectorOrBlock argument: anArgument
-
set the item's action and an argument; if it is ablock, that is evaluated;
if a symbol, that message is sent to the menu's receiver
-
keepLinkedMenu
-
if true, a linked submenu menu is only computed once (slightly faster),
but then, the linked menu cannot be dynamic
-
keepLinkedMenu: aBoolean
-
if true, a linked submenu menu is only computed once (slightly faster),
but then, the linked menu cannot be dynamic
-
label: aString icon: anImage
-
-
label: labelString itemValue: selectorOrBlock
-
-
label: labelString itemValue: selectorOrBlock argument: something
-
define label, value and an argument to be passed with the action
-
label: labelString itemValue: selectorOrBlock enabled: enabledHolder
-
define label, value
and enabled holder, which can be a boolean, a boolean valueHolder,
a block or a selector (to be sent to the application)
-
label: labelString itemValue: selectorOrBlock translateLabel: translateLabelBoolean
-
-
labelImage
-
-
labelImage: something
-
VW compatibility: if I have a label also,
-
nameKey
-
-
nameKey: aNameKey
-
-
rawLabel
-
-
rawLabel: aString
-
-
resourceRetriever
-
-
resourceRetriever: aRetriever
-
-
shortcutKey
-
get the key to press to select the menu item from the keyboard
-
shortcutKey: something
-
set the key to press to select the menu item from the keyboard
-
shortcutKeyCharacter
-
Backward compatibility; same as #shortcutKey.
get the key to press to select the menu item from the keyboard
-
shortcutKeyCharacter: something
-
Backward compatibility; same as #shortcutKey:.
set the key to press to select the menu item from the keyboard
-
submenu
-
get the submenu or nil
-
submenu: aMenu
-
set the submenu or nil
-
submenuProvider
-
useful if a sub-menu is plugged in from another application (i.e. when
a submenu is fetched via a channel AND the top-menus application cannot provide
it
-
submenuProvider: something
-
useful if a sub-menu is plugged in from another application (i.e. when
a submenu is fetched via a channel AND the top-menus application cannot provide
it
-
uuid
-
return my uuid component to be used for resource-access.
This is a unique and once-assigned-never-changed uuid by which
UI automators can access the menu item.
-
uuid: aUUID
-
set my uuid component to be used for resource-access
(called by menuBuilder).
This is a unique and once-assigned-never-changed uuid by which
UI automators can access the menu item.
accessing-behavior
-
beOff
-
set indication off
-
beOn
-
set indication on
-
choice
-
return the menu items choice indicator (RadioButton)
-
disable
-
-
enable
-
-
enabled
-
returns a boolean, valueHolder or block
-
enabled: enabledHolder
-
enabledHolder can be a boolean, a boolean valueHolder,
a block or a selector (to be sent to the application)
-
hideMenuOnActivated
-
hide the menu when the item was activated; the default is true
-
hideMenuOnActivated: aBool
-
hide the menu when the item was activated; the default is true
-
sendToOriginator
-
if true, the message is sent to the originating widget;
otherwise (the default), it it sent to the receiver/application.
-
sendToOriginator: anBoolean
-
if true, the message is sent to the originating widget;
otherwise (the default), it it sent to the receiver/application.
-
showBusyCursorWhilePerforming
-
get the flag which controls if a busy cursor is to be shown
while performing the menu action. Defaults to false.
-
showBusyCursorWhilePerforming: aBoolean
-
set/clear the flag which controls if a busy cursor is to be shown
while performing the menu action. Defaults to false.
-
translateLabel
-
returns true if the label is to be translated.
The default is true
-
translateLabel: aBoolean
-
sets whether label is translated
-
triggerOnDown
-
returns true if the action is triggered when pressed.
The default is false (trigger when released)
-
triggerOnDown: aBool
-
controls if the action is triggered when pressed or released
accessing-channels
-
label: labelString submenuChannel: aSymbolOrValueHolder
-
-
submenuChannel
-
get the submenuChannel or nil
-
submenuChannel: aMenuHolder
-
set the submenuChannel or nil
accessing-look
-
icon: anImage
-
-
isButton
-
returns whether item looks like a Button
-
isButton: anBoolean
-
sets whether item looks like a Button
-
label
-
label
-
label: aString
-
-
startGroup
-
start group #left #right #conditionalRight ... or nil
at the moment only #right and #conditionalRight are implemented
-
startGroup: aSymbol
-
start group #left #right #conditionalRight ...
at the moment only #right and #conditionalRight are implemented.
The meanings are:
nil - default under control of the menu
#left - left align
#right - place at the right far end
#conditionalRight - controlled by a styleSheet variable;
like #right under all non-win32 systems,
ignored on win32.
Use with help-menu, which should be at the far right on some
viewStyles, but not under win32.
accessing-resource
-
findGuiResourcesIn: aResourceContainerOrApplication
-
resolve national language translations from aResourceContainerOrApplication
-
findGuiResourcesIn: aResourceContainerOrApplication rememberResourcesIn: aValueHolderOrNil
-
resolve national language translations from aResourceContainerOrApplication.
In addition, expand %(xxx) by asking the application for an xxx aspect.
-
receiver: aReceiver perform: aSelector with: anArgument ifNone: aBlock
-
send the one-arg-message aSelector to the application;
the result returned from the send or nil is returned
-
resolveSliceMenuItemsIn: aReceiver for: originalReceiver rememberResourcesIn: aValueHolderOrNil
-
('MenuItem [info]: no aspect for slice ',submenuChannel) infoPrintCR.
-
resolveSliceMenuItemsIn: aReceiver rememberResourcesIn: aValueHolderOrNil
-
converting
-
skippedInLiteralEncoding
-
could be a symbol
encoding & decoding
-
fromLiteralArrayEncoding: aLiteralEncodedArray
-
read my contents from a aLiteralEncodedArray
printing & storing
-
printOn: aStream
-
private-accessing
-
filteredLabel
-
return the label without any &-chars
queries
-
hasChoice
-
test whether choice exists
-
hasIndication
-
test whether indication on/off exists
-
hasSubmenu
-
-
isEnabled
-
-
isHidden
-
not yet supported
-
isMenuItem
-
-
isMenuSlice
-
returns true if the menu is a slice,
building its items into its container menu
-
isOff
-
test whether indication on/off exists and is off
-
isOn
-
test whether indication on/off exists and is on
-
isSeparatorItem
-
utilities
-
replaceArgument: oldValue with: newValue
-
Recusively Replace argument in menu items where
current argument is equal to oldValue by newValue
|