eXept Software AG Logo

Smalltalk/X Webserver

Documentation of class 'MenuItem':

Home

Documentation
www.exept.de
Everywhere
for:
[back]

Class: MenuItem


Inheritance:

   Object
   |
   +--MenuItem

Package:
stx:libview2
Category:
Views-Support
Version:
rev: 1.156 date: 2024/03/19 09:04:30
user: cg
file: MenuItem.st directory: libview2
module: stx stc-classLibrary: libview2

Description:


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.

copyright

COPYRIGHT (c) 1998 by eXept Software AG All Rights Reserved This software is furnished under a license and may be used only in accordance with the terms of that license and with the inclusion of the above copyright notice. This software may not be provided or otherwise made available to, or used by, any other person. No title to or ownership of the software is hereby transferred.

Class protocol:

class initialization
o  initialize
(comment from inherited method)
called only once - initialize signals

constants
o  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
o  label: aString
create and return a new menuItem, given a label string

o  label: labelString argument: messageArg
create and return a new menuItem, given its label and value
and an argument to be passed with the action

o  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.

o  label: labelString itemValue: selectorOrValue
create and return a new menuItem, given its label and value (=action)

o  label: labelString itemValue: selectorOrValue argument: messageArg
create and return a new menuItem, given its label and value (=action)
and an argument to be passed with the action

o  label: labelString itemValue: selectorOrValue enabled: enabledHolder
create and return a new menuItem, given its label, value (=action)
and enabled holder, which can be a boolean, a boolean valueHolder,
a block or a selector (to be sent to the application)

o  label: labelString itemValue: selectorOrValue nameKey: nameKey
create and return a new menuItem, given its label, value (=action) and nameKey

o  label: labelString itemValue: selectorOrValue translateLabel: translateLabel
create and return a new menuItem, given its label, value (=action) and translateLabel flag

o  label: labelString submenu: aSymbolOrValueHolderOrBlock
create and return a new menuItem, given its label and submenu

o  label: labelString submenu: aSymbolOrValueHolderOrBlock enabled: enabledArg
create and return a new menuItem, given its label and submenu

o  label: labelString submenuChannel: aSymbolOrValueHolder
create and return a new menuItem, given its label and value

o  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) **

o  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) **

o  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) **

o  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) **

o  separator
create and return a new menuItem for a '----' separator

o  separator2
create and return a new menuItem for a '====' separator

o  separator: sepString
create and return a new menuItem for a separator

o  untranslatedLabel: labelString
create and return a new menuItem, given a label string

o  untranslatedLabel: labelString itemValue: selectorOrValue
create and return a new menuItem, given its label and value (=action)

o  untranslatedLabel: labelString itemValue: selectorOrValue argument: arg
create and return a new menuItem, given its label and value (=action)


Instance protocol:

Compatibility-ST80
o  enablementSelector: aSymbol
dummy for now - for visualworks compatibility (specs)

o  helpText: aString
dummy for now - for visualworks compatibility (specs)

o  indicationSelector: aSymbol
dummy for now - for visualworks compatibility (specs)

o  isEnabled: aBoolean
an enabled 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 before the menu is opened
or the pointer enters the item (which makes it look strange)

o  shortcutModifiers: something
dummy for now - for visualworks compatibility (specs)

o  value
obsolete - value is bad: it prevents us from using a valueHolder

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  value: something
obsolete - value is bad: it prevents us from using a valueHolder

** This is an obsolete interface - do not use it (it may vanish in future versions) **

accessing
o  accessCharacterPosition
get the index of the access character in the label text or string, or nil if none

o  accessCharacterPosition: index
set the index of the access character in the label text or string, or nil if none

o  activeHelpKey
the key used as index (and argument) to the helpSpec.
New: may also be an association; then the assoc's key is the help-text provider,
and the assoc's value is the key in that provider's helpspec.

o  activeHelpKey: aSymbolicKeyOrClassPlusSymbolAssoc
the key used as index (and argument) to the helpSpec.
New: may also be an association; then the assoc's key is the help-text provider,
and the assoc's value is the key in that provider's helpspec.

o  argument
get argument given to the value (selector)

o  argument: something
set argument given to the value (selector)

o  auxValue
an additional, arbitrary value

o  auxValue: something
set the auxValue - an arbitrary user value

o  choice: something

o  choiceValue

o  choiceValue: something

o  hierarchicalUUID

o  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

Usage example(s):

ignoreMnemonicKeys ? false

o  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 false

o  ignoreShortcutKeys
if true, shortcutKeys (accelerators) in the submenus under the item are ignored;
the default is set to false

Usage example(s):

ignoreShortcutKeys ? false

o  ignoreShortcutKeys: aBoolean
if true, shortcutKeys (accelerators) in the submenus under the item are ignored;
the default is set to false

o  indication
value of the items on/off indicator (CheckToggle).
Usually a valueHolder

o  indication: someValueHolder
value of the items on/off indicator (CheckToggle).
someValueHolder is usually a value holder

o  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 before the menu is opened

o  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 before the menu is opened

o  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

o  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

o  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

o  label: labelStringOrNil argument: someArgument

o  label: labelStringOrNil icon: anImage
Modified (format): / 27-12-2018 / 16:22:54 / Claus Gittinger

o  label: labelStringOrNil itemValue: selectorOrBlock

o  label: labelStringOrNil itemValue: selectorOrBlock argument: something
define label, value and an argument to be passed with the action

o  label: labelStringOrNil 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)

o  label: labelStringOrNil itemValue: selectorOrBlock nameKey: nameKeyArg

o  label: labelStringOrNil itemValue: selectorOrBlock translateLabel: translateLabelBoolean

o  labelFromApplication
if true, the label is actually the name of a message to be sent to the appliction
to retrieve the label

o  labelFromApplication: aBoolean
if true, the label is actually the name of a message to be sent to the appliction
to retrieve the label

o  labelImage

o  labelImage: anImage
VW compatibility: if I have a label also,

o  nameKey
nameKey can be used to identify menu items independent of any language translated labels;
used as a tag or ID
(iff the menuItem is to be referred to later programmatically eg. to change its enabled state
or its icon)

o  nameKey: aNameKey
nameKey can be used to identify menu items independent of any language translated labels;
used as a tag or ID
(iff the menuItem is to be referred to later programmatically eg. to change its enabled state
or its icon)

o  rawLabel

o  rawLabel: aString

o  resourceRetriever

o  resourceRetriever: aRetriever

o  shortcutKey
get the key to press to select the menu item from the keyboard

o  shortcutKey: something
set the key to press to select the menu item from the keyboard

o  shortcutKeyCharacter
Backward compatibility; same as #shortcutKey.
get the key to press to select the menu item from the keyboard

o  shortcutKeyCharacter: something
Backward compatibility; same as #shortcutKey:.
set the key to press to select the menu item from the keyboard

o  submenu
get the submenu or nil

o  submenu: aMenu
set the submenu or nil

o  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

o  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

o  uuid
automationID
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.
If it is defined, the generated Windows-Widget will get this automationID as
view-attribute.

o  uuid: aUUID
automationID
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
o  beOff
set indication off

o  beOn
set indication on

o  choice
return the menu items choice indicator (RadioButton)

o  disable

o  enable

o  enabled
returns a boolean, valueHolder or block

o  enabled: enabledHolder
enabledHolder can be a boolean, a boolean valueHolder,
a block or a selector (to be sent to the application)

o  hideMenuOnActivated
hide the menu when the item was activated; the default is true

Usage example(s):

hideMenuOnActivated ? true

o  hideMenuOnActivated: aBoolean
hide the menu when the item was activated; the default is true

o  keepLinkedMenu
if true, a linked submenu menu is only computed once (slightly faster),
but then, the linked menu cannot be dynamic

Usage example(s):

keepLinkedMenu ? false

o  keepLinkedMenu: aBoolean
if true, a linked submenu menu is only computed once (slightly faster),
but then, the linked menu cannot be dynamic

o  sendToOriginator
if true, the message is sent to the originating widget;
otherwise (the default), it it sent to the receiver/application.

Usage example(s):

sendToOriginator ? false

o  sendToOriginator: aBoolean
if true, the message is sent to the originating widget;
otherwise (the default), it it sent to the receiver/application.

o  showBusyCursorWhilePerforming
get the flag which controls if a busy cursor is to be shown
while performing the menu action. Defaults to false.

Usage example(s):

showBusyCursorWhilePerforming ? false

o  showBusyCursorWhilePerforming: aBoolean
set/clear the flag which controls if a busy cursor is to be shown
while performing the menu action. Defaults to false.

o  translateLabel
returns true if the label is to be translated.
The default is true

Usage example(s):

translateLabel ? true

o  translateLabel: aBoolean
sets whether label is translated or not;
The default is true. You should disable translation IFF the item is showing
a value such as a name, fileName, etc.

o  triggerOnDown
returns true if the action is triggered when pressed.
The default is false (trigger when released)

Usage example(s):

triggerOnDown ? false

o  triggerOnDown: aBoolean
controls if the action is triggered when pressed or released

accessing-channels
o  label: labelString submenu: aSymbolOrValueHolderOrBlockOrSubmenu

o  label: labelString submenu: aSymbolOrValueHolderOrBlockOrSubmenu enabled: enabledArg

o  label: labelString submenuChannel: aSymbolOrValueHolder

o  submenuChannel
get the submenuChannel or nil.
That is a submenu-value provider

o  submenuChannel: aMenuHolder
set the submenuChannel or nil.
That is a submenu-value provider

accessing-look
o  font
get the specific font for an item or nil

o  font: aFont
set a specific font for an item

o  hasMenuIndicator
returns whether item should always show a menu-indicator (arrow)

o  hasMenuIndicator: aBoolean
force the item to always show a menu-indicator (arrow)

o  horizontalLayout
by default, submenus have a vertical layout;
if true, the submenu has a horizontal layout.

Usage example(s):

horizontalLayout ? false

o  horizontalLayout: aBoolean
by default, submenus have a vertical layout;
if true, the submenu has a horizontal layout.

o  icon: anImage

o  isButton
returns whether the item looks like a Button.
This is typically only used with toolbars

Usage example(s):

isButton ? false

o  isButton: aBoolean
sets whether the item looks like a Button
This is typically only used with toolbars

o  isMenuSlice
returns true if the menu is a slice,
building its items into its container menu

Usage example(s):

isMenuSlice == true

o  isMenuSlice: aBoolean
isMenuSlice := aBoolean.

o  label
return the label without any &-chars

Usage example(s):

label

o  label: aStringOrMessageSelector
if labelFromApplication is true,
the label is actually the name of a message to be sent to the appliction
to retrieve the label

o  startGroup
start group #left #right #conditionalRight ... or nil
at the moment only #right and #conditionalRight are implemented

o  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
o  findGuiResourcesIn: aResourceContainerOrApplication
resolve national language translations from aResourceContainerOrApplication

o  findGuiResourcesIn: aResourceContainerOrApplication rememberResourcesIn: aValueHolderOrNil
resolve national language translations from aResourceContainerOrApplication.
In addition, expand %(xxx) by asking the application for an xxx aspect.

o  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

o  resolveSliceMenuItemsIn: aReceiver for: originalReceiver rememberResourcesIn: aValueHolderOrNil
('MenuItem [info]: no aspect for slice ',submenuChannel) infoPrintCR.

o  resolveSliceMenuItemsIn: aReceiver rememberResourcesIn: aValueHolderOrNil

encoding & decoding
o  fromLiteralArrayEncoding: aLiteralEncodedArray
read my contents from a aLiteralEncodedArray

o  skippedInLiteralEncoding
define the inst-slots which are skipped when generating a literalArrayEncoding;
(to skip the ones with default values.)

o  virtualSlotsInLiteralEncoding
defines additional virtual slots in the literalEncoding.
These are not instvars, but accessed via getters and setters during
store and load.
Use this when flags encode values which were previously encoded as boolean instvars,
to remain backward compatible

printing & storing
o  printOn: aStream
(comment from inherited method)
append a user printed representation of the receiver to aStream.
The format is suitable for a human - not meant to be read back.

The default here is to output the receiver's class name.
BUT: this method is heavily redefined for objects which
can print prettier.

private-accessing
o  filteredLabel
return the label without any &-chars

queries
o  hasChoice
test whether choice exists

o  hasIndication
test whether indication on/off exists

o  hasSubmenu

o  isEnabled
an enabled 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 before the menu is opened
or the pointer enters the item (which makes it look strange)

o  isHidden
not yet supported

o  isMenuItem

o  isOff
test whether indication on/off exists and is off

o  isOn
test whether indication on/off exists and is on

o  isSeparatorItem

utilities
o  replaceArgument: oldValue with: newValue
Recusively replace argument in menu items where
current argument is equal to oldValue by newValue



ST/X 7.7.0.0; WebServer 1.702 at 20f6060372b9.unknown:8081; Tue, 10 Dec 2024 07:30:01 GMT