Creating custom Group toolbar buttons
A group toolbar button is a toolbar button that contains a collection of other toolbar buttons that are displayed in a pop-up when clicked. The style of toolbar shown is based on the current toolbar mode. For example, if toolbar_mode
is set to floating
, the toolbar group pop-up will appear in a floating shelf.
The group toolbar button is only supported when using the floating toolbar mode. If the toolbar_groups option is used with other toolbar modes, the toolbar group button will not be displayed and a warning message will be printed in the console.
|
Options
Name | Value | Requirement | Description |
---|---|---|---|
text |
string |
optional |
Text to display if no icon is found. |
icon |
string |
optional |
Name of the icon to be displayed. Must correspond to an icon: in the icon pack, in a custom icon pack, or added using the |
tooltip |
string |
optional |
Text for button tooltip. |
items |
string or |
required |
A string of space separated toolbar button names, or an array of labelled toolbar buttons. |
onSetup |
|
optional |
default: |
API
Name | Value | Description |
---|---|---|
isEnabled |
|
Checks if the button is enabled. |
setEnabled |
|
Sets the button’s enabled state. |
NOTE: This feature is only available for TinyMCE 6.4 and later. |
||
setText |
|
Sets the text label to display. |
setIcon |
|
Sets the icon of the button. |
Group toolbar button example and explanation
The following is a simple group toolbar button example:
The example above configures a custom alignment group toolbar button. When clicked the button will show a floating shelf containing the align left, center, right and justify toolbar buttons.
Using onSetup
onSetup
is a complex property. It takes a function that is passed the component’s API and should return a callback that is passed the component’s API and returns nothing. This occurs because onSetup
runs whenever the component is rendered, and the returned callback is executed when the component is destroyed. This is essentially an onTeardown
handler, and can be used to unbind events and callbacks.
To clarify, in code onSetup
may look like this:
onSetup: (api) => {
// Do something here on component render, like set component properties or bind an event listener
return (api) => {
// Do something here on teardown, like unbind an event listener
};
};
To bind a callback function to an editor event use editor.on(eventName, callback)
. To unbind an event listener use editor.off(eventName, callback)
. Any event listeners should be unbound in the teardown callback. The only editor event which does not need to be unbound is init
e.g. editor.on('init', callback)
.
|