Add API abstraction layer

Contributes to CURA-5595
This commit is contained in:
Ian Paschal 2018-08-09 15:14:55 +02:00
parent bf219c3821
commit 4912073aed
2 changed files with 38 additions and 0 deletions

View file

@ -0,0 +1,34 @@
# Copyright (c) 2018 Ultimaker B.V.
# Cura is released under the terms of the LGPLv3 or higher.
from cura.CuraApplication import CuraApplication
## The back-ups API provides a version-proof bridge between Cura's
# Sidebar Context Menu and plug-ins that hook into it.
#
# Usage:
# ``from cura.API import CuraAPI
# api = CuraAPI()
# api.sidebar_context_menu.getSidebarMenuItems()
# menu_actions = []
# menu_actions.append("sidebarMenuItemOnClickHander")
# data = {
# "name": "My Plugin Action",
# "iconName": "my-plugin-icon",
# "actions": menu_actions,
# "menu_item": MyPluginAction(self)
# }
# api.sidebar_context_menu.addSidebarMenuItems([])``
class SidebarContextMenu:
_application = CuraApplication.getInstance() # type: CuraApplication
## Add items to the sidebar context menu.
# \param menu_item dict containing the menu item to add.
def addSidebarMenuItem(self, menu_items: dict) -> None:
self._application.addSidebarCustomMenuItem(menu_items)
## Get all custom items currently added to the sidebar context menu.
# \return List containing all custom context menu items.
def getSidebarMenuItems(self) -> list:
return self._application.getSidebarCustomMenuItems()

View file

@ -2,6 +2,7 @@
# Cura is released under the terms of the LGPLv3 or higher. # Cura is released under the terms of the LGPLv3 or higher.
from UM.PluginRegistry import PluginRegistry from UM.PluginRegistry import PluginRegistry
from cura.API.Backups import Backups from cura.API.Backups import Backups
from cura.API.SidebarContextMenu import SidebarContextMenu
## The official Cura API that plug-ins can use to interact with Cura. ## The official Cura API that plug-ins can use to interact with Cura.
# #
@ -16,3 +17,6 @@ class CuraAPI:
# Backups API. # Backups API.
backups = Backups() backups = Backups()
# Sidebar Context Menu API
sidebar_context_menu = SidebarContextMenu()