pyface.action.schema.schema_addition module

class pyface.action.schema.schema_addition.SchemaAddition[source]

Bases: traits.has_traits.HasTraits

An addition to an existing menu bar or tool bar schema.

id = Str()

The schema addition’s identifier. This optional, but if left unspecified, other schema additions will be unable to refer to this one.

factory = Callable
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.

path = Str()

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"

after = 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.

before = 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.

absolute_position = Enum(None, "first", "last")

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.