Application.documentDeactivating Event
Parent Object:
ApplicationDefined in namespace "adsk::core" and the header file is <Core/Application/Application.h>
Description
The DocumentDeactivating event fires at the VERY start of a document being deactivated.
Syntax
-------- Import ---------
# Import fusion360utils folder, which includes event_utils.py. from ...lib import fusion360utils as futil
-------- Global variables ---------
# Global variable used to maintain a reference to all event handlers. local_handlers = []
-------- Connect the handler to the event. ---------
# "application_var" is a variable referencing an Application object. # "application_documentDeactivating" is the event handler function. futil.add_handler(application_var.documentDeactivating, application_documentDeactivating, local_handlers=local_handlers)
-------- Event handler function definition ---------
# Event handler for the documentDeactivating event. def application_documentDeactivating(args: adsk.core.DocumentEventArgs): # Code to react to the event. app.log('In application_documentDeactivating event handler.')
|
-------- Global variables ---------
# Global variable used to maintain a reference to all event handlers. handlers = []
-------- Connect the handler to the event. ---------
# "application_var" is a variable referencing an Application object. # "MyDocumentDeactivatingHandler" is the name of the class that handles the event. onDocumentDeactivating = MyDocumentDeactivatingHandler() application_var.documentDeactivating.add(onDocumentDeactivating) handlers.append(onDocumentDeactivating)
-------- Event handler class definition ---------
# Event handler for the documentDeactivating event. class MyDocumentDeactivatingHandler(adsk.core.DocumentEventHandler): def __init__(self): super().__init__() def notify(self, args: adsk.core.DocumentEventArgs): # Code to react to the event. app.log('In MyDocumentDeactivatingHandler event handler.')
|
--------- Required include files. ---------
#include <Core/Application/Application.h> #include <Core/Application/DocumentEvent.h> #include <Core/Application/DocumentEventHandler.h> #include <Core/Application/DocumentEventArgs.h>
--------- Event handler class definition and global declaration. ---------
// Event handler for the documentDeactivating event. class MyDocumentDeactivatingEventHandler : public adsk::core::DocumentEventHandler { public: void notify(const Ptr<DocumentEventArgs>& eventArgs) override { // Code to react to the event. ui->messageBox("In MyDocumentDeactivatingEventHandler event handler."); } } _documentDeactivating;
--------- Connect the handler to the event. ---------
// "application_var" is a variable referencing an Application object. // Connect the handler function to the event. Ptr<DocumentEvent> documentDeactivatingEvent = application_var->documentDeactivating(); if (!documentDeactivatingEvent) return;
bool isOk = documentDeactivatingEvent->add(&_documentDeactivating); if (!isOk) return;
|
Property Value
This is an event property that returns a
DocumentEvent.
Samples
Application Event API Sample |
Add-In that demonstrates application events. To use this sample, create a new folder using the name you want to use for the new add-in. Inside the folder, create a new file that is the same name as the folder but has a .py extension. Copy the code below into the .py file. Create another file that is the same name as the folder but has a .manifest extension and copy the JSON data below into that file.
{
"autodeskProduct": "Fusion360",
"type": "addin",
"author": "",
"description": {
"": ""
},
"supportedOS": "windows|mac",
"editEnabled": true
}
Run the "Scripts and Add-Ins" command and click the green plus button near the top of the dialog. Browse to the location where you created the folder and select the folder. The add-in should now be displayed in the list of add-ins on the "Add-Ins" tab of the dialog. Select the add-in and click the "Run" button. This will load the add-in and when any of the application events occurr that it is watching for it will report them in the TEXT COMMAND window. |
Version
Introduced in version May 2017