--- Cannot embed stylesheet: [Errno 2] No such file or directory: '../../../../aros.css' --->
Menustrip.mui
MUIA_Menustrip_Enabled
Function
This identifier is declared in the public header but is not handled by
the shared menu constructor, setter, or getter.
Inputs
BOOL; declared initialize, set, get.
Notes
The implementation handles MUIA_Menu_Enabled and MUIA_Menuitem_Enabled
instead, as aliases for one object-local flag. Setting that flag on a
Menustrip does not disable all descendants: NewMenu generation emits
children and does not propagate the root's enabled state.
Bugs
Do not treat this attribute as a working whole-menustrip enable switch.
An OM_SET tag can reach Notify and trigger a registration without any
corresponding menu state being stored. There is no successful menu
getter for this identifier.
MUIC_Menustrip
Superclass
Family.mui
Description
Represent a container of menu titles and their entries. The conventional
tree is Menustrip, then Menu children, then Menuitem children and
optional Menuitem subitems.
All three menu classes use the same attribute and method handlers and
derive directly from Family.mui. They differ by an internal type flag.
Family owns attached children and disposes of them; title and shortcut
strings remain borrowed. Enabled defaults to TRUE; Checked, Checkit,
CommandString, Toggle, and Exclude default to zero; title, shortcut,
trigger, and generated-menu pointers default to NULL.
A recognized menu-attribute set requests MUIM_Application_UpdateMenus
when the object has global info with an application pointer. That
request is synchronous and its result is ignored. Changes made before
connection are stored without requesting an application update. String
storage must remain valid while the object or any generated menu still
refers to it.
Methods
ConnectParent first obtains the parent's global info through Notify,
stores the parent pointer, and recursively connects every child to this
object. It returns TRUE. DisconnectParent recursively forwards the
message to children, clears this object's parent pointer, then calls the
superclass and returns TRUE. Global info remains borrowed and is not
cleared by Notify.
AddHead, AddTail, Insert, Remove, OM_ADDMEMBER, and OM_REMMEMBER forward
to Family and then request an application menu update when connected,
even if the operation returned failure. Their original return value is
preserved. Sort is inherited without an update request; Transfer invokes
the normal Remove and AddTail methods for its children. Serialize all
tree operations and do not mutate the traversal from callbacks.
Other methods and attributes follow Family and Notify. These classes add
no new public method identifiers.
Bugs
The three constructors do not check whether common superclass
construction returned NULL before writing their type flag. Allocation
failure or a NULL child that makes Family construction fail can
therefore cause invalid memory access instead of a clean NULL return. Do
not rely on the normal constructor-failure contract for these
implementations.