Comment on page
🔘
Buttons
Add buttons to your plugin so users can select and trigger one-time actions.
Buttons are entries that appear in the list when assigning a particular Button to an action. Built-in buttons are small tasks such as "Play media" or "Set default output device".

The "Example Button Type" button created by the MIDI Mixer Template Plugin
Adding your own buttons allows the user to manually trigger one-time actions within your plugin.
/**
* Example of setting up a button type to be controlled by the plugin.
*/
const myButton = new ButtonType("bar", {
name: "Example Button Type",
});
The above code creates a new
ButtonType
with a user-facing name of "Example Button Type"
.The first argument to the constructor (
"bar"
) is the button's ID. This is important to keep standardised, as this is used internally to manage what the user has assigned their Button to, ensuring that the button is correctly remembered as your plugin activates, loads, or deactivates.The second argument is an object containing any values that the assignment should start with:
name
and active
. The available parameters mirror the parameters we can set at any time once the button is created:name
The name of the entry that will appear in MIDI Mixer. It will also be marked with the name of the plugin.Blank names are not allowed.active
The initial indicator status of the entry.Defaults tofalse
.
Once a button has been created, you can update it at any time using the same parameters as above. For example:
myButton.name = "A Different Button Type";
myButton.active = true;
In order to react to user input, we can use event listeners to run a function when the button is pressed.
myButton.on("pressed", () => {
console.log("User pressed the button!");
});
This simple example listens for the user pressing the button, then logs that the button has been pressed.
Removing a button is as easy as creating one.
myButton.remove();
After calling
.remove()
, setting properties will no longer cause any action, and listeners will no longer trigger. It's recommended that you dereference the button so that it can be garbage collected.Last modified 1yr ago