12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- # Copyright (c) 2018 Ultimaker B.V.
- # Cura is released under the terms of the LGPLv3 or higher.
- from typing import TYPE_CHECKING
- if TYPE_CHECKING:
- from cura.CuraApplication import CuraApplication
- class Settings:
- """The Interface.Settings API provides a version-proof bridge
- between Cura's
- (currently) sidebar UI and plug-ins that hook into it.
- Usage:
- .. code-block:: python
- from cura.API import CuraAPI
- api = CuraAPI()
- api.interface.settings.getContextMenuItems()
- data = {
- "name": "My Plugin Action",
- "iconName": "my-plugin-icon",
- "actions": my_menu_actions,
- "menu_item": MyPluginAction(self)
- }
- api.interface.settings.addContextMenuItem(data)
- """
- def __init__(self, application: "CuraApplication") -> None:
- self.application = application
- def addContextMenuItem(self, menu_item: dict) -> None:
- """Add items to the sidebar context menu.
- :param menu_item: dict containing the menu item to add.
- """
- self.application.addSidebarCustomMenuItem(menu_item)
- def getContextMenuItems(self) -> list:
- """Get all custom items currently added to the sidebar context menu.
- :return: List containing all custom context menu items.
- """
- return self.application.getSidebarCustomMenuItems()
|