1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
# Enthought library imports.
from traits.api import Callable, HasTraits, Str, Enum
class SchemaAddition(HasTraits):
""" An addition to an existing menu bar or tool bar schema.
"""
# The schema addition's identifier. This optional, but if left unspecified,
# other schema additions will be unable to refer to this one.
id = Str
# A callable to create the item. Should have the following signature:
# callable() -> Action | ActionItem | Group | MenuManager |
# GroupSchema | MenuSchema
# If the result is a schema, it will itself admit of extension by other
# additions. If not, the result will be fixed.
factory = Callable
# A forward-slash-separated path through the action hierarchy to the menu
# to add the action, group or menu to. For example:
# - To add an item to the menu bar: ``path = "MenuBar"``
# - To add an item to the tool bar: ``path = "ToolBar"``
# - To add an item to a sub-menu: ``path = "MenuBar/File/New"``
path = Str
# The item appears after the item with this ID.
# - for groups, this is the ID of another group.
# - for menus and actions, this is the ID of another menu or action.
after = Str
# The action appears before the item with this ID.
# - for groups, this is the ID of another group.
# - for menus and actions, this is the ID of another menu or action.
before = Str
# The action appears at the absolute specified position first or last.
# This is useful for example to keep the File menu the first menu in a
# menubar, the help menu the last etc.
# If multiple actions in a schema have absolute_position 'first', they
# will appear in the same order specified; unless 'before' and 'after'
# traits are set to sort these multiple items.
# This trait takes precedence over 'after' and 'before', and values of
# those traits that are not compatible with the absolute_position are
# ignored.
absolute_position = Enum(None, 'first', 'last')
|