21#ifndef KICAD_API_HANDLER_EDITOR_H 
   22#define KICAD_API_HANDLER_EDITOR_H 
   25#include <api/common/commands/editor_commands.pb.h> 
   30using kiapi::common::types::DocumentSpecifier;
 
   31using kiapi::common::types::ItemRequestStatus;
 
   32using kiapi::common::commands::ItemDeletionStatus;
 
   47            const kiapi::common::types::ItemHeader& aHeader );
 
   65    virtual void pushCurrentCommit( 
const std::string& aClientName, 
const wxString& aMessage );
 
   96        const std::string& aClientName,
 
   97        const types::ItemHeader &aHeader,
 
   98        const google::protobuf::RepeatedPtrField<google::protobuf::Any>& aItems,
 
   99        std::function<
void( commands::ItemStatus, google::protobuf::Any )> aItemHandler ) = 0;
 
  102                                      const std::string& aClientName ) = 0;
 
  105                                                          const KIID& aId ) = 0;
 
  108    std::map<std::string, std::pair<KIID, std::unique_ptr<COMMIT>>> 
m_commits;
 
 
tl::expected< T, ApiResponseStatus > HANDLER_RESULT
 
virtual std::unique_ptr< COMMIT > createCommit()=0
Override this to create an appropriate COMMIT subclass for the frame in question.
 
HANDLER_RESULT< bool > validateDocument(const DocumentSpecifier &aDocument)
 
HANDLER_RESULT< commands::DeleteItemsResponse > handleDeleteItems(const HANDLER_CONTEXT< commands::DeleteItems > &aCtx)
 
virtual std::optional< EDA_ITEM * > getItemFromDocument(const DocumentSpecifier &aDocument, const KIID &aId)=0
 
HANDLER_RESULT< std::optional< KIID > > validateItemHeaderDocument(const kiapi::common::types::ItemHeader &aHeader)
If the header is valid, returns the item container.
 
HANDLER_RESULT< commands::EndCommitResponse > handleEndCommit(const HANDLER_CONTEXT< commands::EndCommit > &aCtx)
 
API_HANDLER_EDITOR(EDA_BASE_FRAME *aFrame=nullptr)
 
HANDLER_RESULT< commands::CreateItemsResponse > handleCreateItems(const HANDLER_CONTEXT< commands::CreateItems > &aCtx)
 
COMMIT * getCurrentCommit(const std::string &aClientName)
 
virtual void pushCurrentCommit(const std::string &aClientName, const wxString &aMessage)
 
virtual HANDLER_RESULT< ItemRequestStatus > handleCreateUpdateItemsInternal(bool aCreate, const std::string &aClientName, const types::ItemHeader &aHeader, const google::protobuf::RepeatedPtrField< google::protobuf::Any > &aItems, std::function< void(commands::ItemStatus, google::protobuf::Any)> aItemHandler)=0
 
std::set< std::string > m_activeClients
 
std::map< std::string, std::pair< KIID, std::unique_ptr< COMMIT > > > m_commits
 
HANDLER_RESULT< commands::UpdateItemsResponse > handleUpdateItems(const HANDLER_CONTEXT< commands::UpdateItems > &aCtx)
 
virtual void deleteItemsInternal(std::map< KIID, ItemDeletionStatus > &aItemsToDelete, const std::string &aClientName)=0
 
virtual std::optional< ApiResponseStatus > checkForBusy()
Checks if the editor can accept commands.
 
virtual types::DocumentType thisDocumentType() const =0
Override this to specify which document type this editor handles.
 
HANDLER_RESULT< commands::BeginCommitResponse > handleBeginCommit(const HANDLER_CONTEXT< commands::BeginCommit > &aCtx)
 
HANDLER_RESULT< commands::HitTestResponse > handleHitTest(const HANDLER_CONTEXT< commands::HitTest > &aCtx)
 
virtual bool validateDocumentInternal(const DocumentSpecifier &aDocument) const =0
 
Represent a set of changes (additions, deletions or modifications) of a data model (e....
 
The base frame for deriving all KiCad main window classes.